aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2019-06-16 21:56:41 -0700
committerChris Lu <chris.lu@gmail.com>2019-06-16 21:56:41 -0700
commit935639b9086b625fc7006874c6ee491293748f1d (patch)
treeecfed42de1556eef5683ce7d9279341e73342b34
parent0fdb1e705d21a5be1ddca8f1cdc64a5c5b65d413 (diff)
downloadseaweedfs-935639b9086b625fc7006874c6ee491293748f1d.tar.xz
seaweedfs-935639b9086b625fc7006874c6ee491293748f1d.zip
metrics: disk size for <collection, normal/EC>
-rw-r--r--weed/stats/metrics.go19
-rw-r--r--weed/storage/store.go9
-rw-r--r--weed/storage/store_ec.go8
3 files changed, 17 insertions, 19 deletions
diff --git a/weed/stats/metrics.go b/weed/stats/metrics.go
index 2408b607a..d487768af 100644
--- a/weed/stats/metrics.go
+++ b/weed/stats/metrics.go
@@ -60,23 +60,17 @@ var (
prometheus.GaugeOpts{
Namespace: "SeaweedFS",
Subsystem: "volumeServer",
- Name: "ecShards",
+ Name: "ec_shards",
Help: "Number of EC shards.",
})
- VolumeServerVolumeSizeGauge = prometheus.NewGauge(
+
+ VolumeServerDiskSizeGauge = prometheus.NewGaugeVec(
prometheus.GaugeOpts{
Namespace: "SeaweedFS",
Subsystem: "volumeServer",
- Name: "totalVolumeSize",
+ Name: "total_disk_size",
Help: "Actual disk size used by volumes.",
- })
- VolumeServerEcShardSizeGauge = prometheus.NewGauge(
- prometheus.GaugeOpts{
- Namespace: "SeaweedFS",
- Subsystem: "volumeServer",
- Name: "totalEcShardSize",
- Help: "Actual disk size used by ec shards.",
- })
+ }, []string{"collection", "type"})
)
func init() {
@@ -88,8 +82,7 @@ func init() {
VolumeServerGather.MustRegister(VolumeServerRequestHistogram)
VolumeServerGather.MustRegister(VolumeServerVolumeCounter)
VolumeServerGather.MustRegister(VolumeServerEcShardCounter)
- VolumeServerGather.MustRegister(VolumeServerVolumeSizeGauge)
- VolumeServerGather.MustRegister(VolumeServerEcShardSizeGauge)
+ VolumeServerGather.MustRegister(VolumeServerDiskSizeGauge)
}
diff --git a/weed/storage/store.go b/weed/storage/store.go
index 1f1337e59..2d8be7be3 100644
--- a/weed/storage/store.go
+++ b/weed/storage/store.go
@@ -162,7 +162,7 @@ func (s *Store) CollectHeartbeat() *master_pb.Heartbeat {
var volumeMessages []*master_pb.VolumeInformationMessage
maxVolumeCount := 0
var maxFileKey NeedleId
- var totalVolumeSize uint64
+ collectionVolumeSize := make(map[string]uint64)
for _, location := range s.Locations {
maxVolumeCount = maxVolumeCount + location.MaxVolumeCount
location.Lock()
@@ -181,11 +181,14 @@ func (s *Store) CollectHeartbeat() *master_pb.Heartbeat {
}
}
fileSize, _, _ := v.FileStat()
- totalVolumeSize += fileSize
+ collectionVolumeSize[v.Collection] += fileSize
}
location.Unlock()
}
- stats.VolumeServerVolumeSizeGauge.Set(float64(totalVolumeSize))
+
+ for col, size := range collectionVolumeSize {
+ stats.VolumeServerDiskSizeGauge.WithLabelValues(col, "normal").Set(float64(size))
+ }
return &master_pb.Heartbeat{
Ip: s.Ip,
diff --git a/weed/storage/store_ec.go b/weed/storage/store_ec.go
index d5e361041..b39776dcf 100644
--- a/weed/storage/store_ec.go
+++ b/weed/storage/store_ec.go
@@ -20,20 +20,22 @@ import (
func (s *Store) CollectErasureCodingHeartbeat() *master_pb.Heartbeat {
var ecShardMessages []*master_pb.VolumeEcShardInformationMessage
- var totalEcShardSize int64
+ collectionEcShardSize := make(map[string]int64)
for _, location := range s.Locations {
location.ecVolumesLock.RLock()
for _, ecShards := range location.ecVolumes {
ecShardMessages = append(ecShardMessages, ecShards.ToVolumeEcShardInformationMessage()...)
for _, ecShard := range ecShards.Shards {
- totalEcShardSize += ecShard.Size()
+ collectionEcShardSize[ecShards.Collection] += ecShard.Size()
}
}
location.ecVolumesLock.RUnlock()
}
- stats.VolumeServerEcShardSizeGauge.Set(float64(totalEcShardSize))
+ for col, size := range collectionEcShardSize {
+ stats.VolumeServerDiskSizeGauge.WithLabelValues(col, "ec").Set(float64(size))
+ }
return &master_pb.Heartbeat{
EcShards: ecShardMessages,