add available resource stats

fix https://github.com/chrislusf/seaweedfs/issues/1555
This commit is contained in:
Chris Lu 2020-10-22 09:13:47 -07:00
parent 5179e559f7
commit 575d7952a1
2 changed files with 12 additions and 0 deletions

View file

@ -101,6 +101,14 @@ var (
Help: "Actual disk size used by volumes.", Help: "Actual disk size used by volumes.",
}, []string{"collection", "type"}) }, []string{"collection", "type"})
VolumeServerResourceGauge = prometheus.NewGaugeVec(
prometheus.GaugeOpts{
Namespace: "SeaweedFS",
Subsystem: "volumeServer",
Name: "resource",
Help: "Resource usage",
}, []string{"name", "type"})
S3RequestCounter = prometheus.NewCounterVec( S3RequestCounter = prometheus.NewCounterVec(
prometheus.CounterOpts{ prometheus.CounterOpts{
Namespace: "SeaweedFS", Namespace: "SeaweedFS",
@ -132,6 +140,7 @@ func init() {
Gather.MustRegister(VolumeServerMaxVolumeCounter) Gather.MustRegister(VolumeServerMaxVolumeCounter)
Gather.MustRegister(VolumeServerReadOnlyVolumeGauge) Gather.MustRegister(VolumeServerReadOnlyVolumeGauge)
Gather.MustRegister(VolumeServerDiskSizeGauge) Gather.MustRegister(VolumeServerDiskSizeGauge)
Gather.MustRegister(VolumeServerResourceGauge)
Gather.MustRegister(S3RequestCounter) Gather.MustRegister(S3RequestCounter)
Gather.MustRegister(S3RequestHistogram) Gather.MustRegister(S3RequestHistogram)

View file

@ -305,6 +305,9 @@ func (l *DiskLocation) CheckDiskSpace() {
for { for {
if dir, e := filepath.Abs(l.Directory); e == nil { if dir, e := filepath.Abs(l.Directory); e == nil {
s := stats.NewDiskStatus(dir) s := stats.NewDiskStatus(dir)
stats.VolumeServerResourceGauge.WithLabelValues(l.Directory, "all").Set(float64(s.All))
stats.VolumeServerResourceGauge.WithLabelValues(l.Directory, "used").Set(float64(s.Used))
stats.VolumeServerResourceGauge.WithLabelValues(l.Directory, "free").Set(float64(s.Free))
if (s.PercentFree < l.MinFreeSpacePercent) != l.isDiskSpaceLow { if (s.PercentFree < l.MinFreeSpacePercent) != l.isDiskSpaceLow {
l.isDiskSpaceLow = !l.isDiskSpaceLow l.isDiskSpaceLow = !l.isDiskSpaceLow
} }