mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-01-19 02:48:24 +00:00
Merge branch 'master' of https://github.com/chrislusf/seaweedfs
This commit is contained in:
commit
a74e926063
|
@ -8,6 +8,7 @@ scrape_configs:
|
|||
static_configs:
|
||||
- targets:
|
||||
- 'prometheus:9090'
|
||||
- 'master:9324'
|
||||
- 'volume:9325'
|
||||
- 'filer:9326'
|
||||
- 's3:9327'
|
|
@ -6,7 +6,8 @@ services:
|
|||
ports:
|
||||
- 9333:9333
|
||||
- 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:
|
||||
image: chrislusf/seaweedfs # use a remote image
|
||||
ports:
|
||||
|
|
|
@ -225,6 +225,10 @@
|
|||
handleFiles(files);
|
||||
}
|
||||
|
||||
function reloadPage() {
|
||||
window.location.reload(true);
|
||||
}
|
||||
|
||||
var uploadList = {};
|
||||
|
||||
function handleFiles(files) {
|
||||
|
@ -277,7 +281,7 @@
|
|||
}
|
||||
if (allFinish) {
|
||||
console.log('All Finish');
|
||||
window.location.reload();
|
||||
reloadPage();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -318,7 +322,7 @@
|
|||
xhr.open('POST', url, false);
|
||||
xhr.setRequestHeader('Content-Type', '');
|
||||
xhr.send();
|
||||
window.location.reload();
|
||||
reloadPage();
|
||||
}
|
||||
|
||||
function handleRename(originName, basePath) {
|
||||
|
@ -333,7 +337,7 @@
|
|||
xhr.open('POST', url, false);
|
||||
xhr.setRequestHeader('Content-Type', '');
|
||||
xhr.send();
|
||||
window.location.reload();
|
||||
reloadPage();
|
||||
}
|
||||
|
||||
function handleDelete(path) {
|
||||
|
@ -348,7 +352,7 @@
|
|||
var xhr = new XMLHttpRequest();
|
||||
xhr.open('DELETE', url, false);
|
||||
xhr.send();
|
||||
window.location.reload();
|
||||
reloadPage();
|
||||
}
|
||||
</script>
|
||||
</html>
|
||||
|
|
|
@ -119,15 +119,15 @@ func (vs *VolumeServer) doHeartbeat(masterAddress pb.ServerAddress, grpcDialOpti
|
|||
return
|
||||
}
|
||||
if len(in.DuplicatedUuids) > 0 {
|
||||
var duplictedDir []string
|
||||
var duplicateDir []string
|
||||
for _, loc := range vs.store.Locations {
|
||||
for _, uuid := range in.DuplicatedUuids {
|
||||
if uuid == loc.DirectoryUuid {
|
||||
duplictedDir = append(duplictedDir, loc.Directory)
|
||||
duplicateDir = append(duplicateDir, loc.Directory)
|
||||
}
|
||||
}
|
||||
}
|
||||
glog.Errorf("Shut down Volume Server due to duplicated volume directories: %v", duplictedDir)
|
||||
glog.Errorf("Shut down Volume Server due to duplicate volume directories: %v", duplicateDir)
|
||||
os.Exit(1)
|
||||
}
|
||||
if in.GetVolumeSizeLimit() != 0 && vs.store.GetVolumeSizeLimit() != in.GetVolumeSizeLimit() {
|
||||
|
|
|
@ -44,6 +44,14 @@ var (
|
|||
Help: "Counter of master received heartbeat.",
|
||||
}, []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(
|
||||
prometheus.CounterOpts{
|
||||
Namespace: "SeaweedFS",
|
||||
|
@ -165,6 +173,7 @@ func init() {
|
|||
Gather.MustRegister(MasterRaftIsleader)
|
||||
Gather.MustRegister(MasterReceivedHeartbeatCounter)
|
||||
Gather.MustRegister(MasterLeaderChangeCounter)
|
||||
Gather.MustRegister(MasterReplicaPlacementMismatch)
|
||||
|
||||
Gather.MustRegister(FilerRequestCounter)
|
||||
Gather.MustRegister(FilerRequestHistogram)
|
||||
|
|
|
@ -3,6 +3,7 @@ package topology
|
|||
import (
|
||||
"errors"
|
||||
"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/needle"
|
||||
"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 {
|
||||
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 {
|
||||
|
|
Loading…
Reference in a new issue