Browse Source

add available resource stats

fix https://github.com/chrislusf/seaweedfs/issues/1555
Chris Lu 4 years ago
parent
commit
575d7952a1
2 changed files with 12 additions and 0 deletions
  1. 9 0
      weed/stats/metrics.go
  2. 3 0
      weed/storage/disk_location.go

+ 9 - 0
weed/stats/metrics.go

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

+ 3 - 0
weed/storage/disk_location.go

@@ -305,6 +305,9 @@ func (l *DiskLocation) CheckDiskSpace() {
 	for {
 		if dir, e := filepath.Abs(l.Directory); e == nil {
 			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 {
 				l.isDiskSpaceLow = !l.isDiskSpaceLow
 			}