mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2025-09-19 23:49:23 +08:00
Merge pull request #3163 from kmlebedev/metric_replica_placement_mismatch
stats master_replica_placement_mismatch
This commit is contained in:
@@ -8,6 +8,7 @@ scrape_configs:
|
|||||||
static_configs:
|
static_configs:
|
||||||
- targets:
|
- targets:
|
||||||
- 'prometheus:9090'
|
- 'prometheus:9090'
|
||||||
|
- 'master:9324'
|
||||||
- 'volume:9325'
|
- 'volume:9325'
|
||||||
- 'filer:9326'
|
- 'filer:9326'
|
||||||
- 's3:9327'
|
- 's3:9327'
|
@@ -6,7 +6,8 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- 9333:9333
|
- 9333:9333
|
||||||
- 19333:19333
|
- 19333:19333
|
||||||
command: "master -ip=master -ip.bind=0.0.0.0"
|
- 9324:9324
|
||||||
|
command: "master -ip=master -ip.bind=0.0.0.0 -metricsPort=9324"
|
||||||
volume:
|
volume:
|
||||||
image: chrislusf/seaweedfs # use a remote image
|
image: chrislusf/seaweedfs # use a remote image
|
||||||
ports:
|
ports:
|
||||||
|
@@ -44,6 +44,14 @@ var (
|
|||||||
Help: "Counter of master received heartbeat.",
|
Help: "Counter of master received heartbeat.",
|
||||||
}, []string{"type"})
|
}, []string{"type"})
|
||||||
|
|
||||||
|
MasterReplicaPlacementMismatch = prometheus.NewGaugeVec(
|
||||||
|
prometheus.GaugeOpts{
|
||||||
|
Namespace: "SeaweedFS",
|
||||||
|
Subsystem: "master",
|
||||||
|
Name: "replica_placement_mismatch",
|
||||||
|
Help: "replica placement mismatch",
|
||||||
|
}, []string{"collection", "id"})
|
||||||
|
|
||||||
MasterLeaderChangeCounter = prometheus.NewCounterVec(
|
MasterLeaderChangeCounter = prometheus.NewCounterVec(
|
||||||
prometheus.CounterOpts{
|
prometheus.CounterOpts{
|
||||||
Namespace: "SeaweedFS",
|
Namespace: "SeaweedFS",
|
||||||
@@ -165,6 +173,7 @@ func init() {
|
|||||||
Gather.MustRegister(MasterRaftIsleader)
|
Gather.MustRegister(MasterRaftIsleader)
|
||||||
Gather.MustRegister(MasterReceivedHeartbeatCounter)
|
Gather.MustRegister(MasterReceivedHeartbeatCounter)
|
||||||
Gather.MustRegister(MasterLeaderChangeCounter)
|
Gather.MustRegister(MasterLeaderChangeCounter)
|
||||||
|
Gather.MustRegister(MasterReplicaPlacementMismatch)
|
||||||
|
|
||||||
Gather.MustRegister(FilerRequestCounter)
|
Gather.MustRegister(FilerRequestCounter)
|
||||||
Gather.MustRegister(FilerRequestHistogram)
|
Gather.MustRegister(FilerRequestHistogram)
|
||||||
|
@@ -3,6 +3,7 @@ package topology
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"github.com/chrislusf/seaweedfs/weed/glog"
|
"github.com/chrislusf/seaweedfs/weed/glog"
|
||||||
|
"github.com/chrislusf/seaweedfs/weed/stats"
|
||||||
"github.com/chrislusf/seaweedfs/weed/storage/erasure_coding"
|
"github.com/chrislusf/seaweedfs/weed/storage/erasure_coding"
|
||||||
"github.com/chrislusf/seaweedfs/weed/storage/needle"
|
"github.com/chrislusf/seaweedfs/weed/storage/needle"
|
||||||
"github.com/chrislusf/seaweedfs/weed/storage/types"
|
"github.com/chrislusf/seaweedfs/weed/storage/types"
|
||||||
@@ -246,6 +247,14 @@ func (n *NodeImpl) CollectDeadNodeAndFullVolumes(freshThreshHold int64, volumeSi
|
|||||||
} else if float64(v.Size) > float64(volumeSizeLimit)*growThreshold {
|
} else if float64(v.Size) > float64(volumeSizeLimit)*growThreshold {
|
||||||
n.GetTopology().chanCrowdedVolumes <- v
|
n.GetTopology().chanCrowdedVolumes <- v
|
||||||
}
|
}
|
||||||
|
copyCount := v.ReplicaPlacement.GetCopyCount()
|
||||||
|
if copyCount > 1 {
|
||||||
|
if copyCount > len(n.GetTopology().Lookup(v.Collection, v.Id)) {
|
||||||
|
stats.MasterReplicaPlacementMismatch.WithLabelValues(v.Collection, v.Id.String()).Set(1)
|
||||||
|
} else {
|
||||||
|
stats.MasterReplicaPlacementMismatch.WithLabelValues(v.Collection, v.Id.String()).Set(0)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
Reference in New Issue
Block a user