1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- package weed_server
- import (
- "github.com/seaweedfs/seaweedfs/weed/topology"
- "net/http"
- "path/filepath"
- "github.com/seaweedfs/seaweedfs/weed/pb/volume_server_pb"
- "github.com/seaweedfs/seaweedfs/weed/stats"
- "github.com/seaweedfs/seaweedfs/weed/util"
- )
- func (vs *VolumeServer) healthzHandler(w http.ResponseWriter, r *http.Request) {
- w.Header().Set("Server", "SeaweedFS Volume "+util.VERSION)
- volumeInfos := vs.store.VolumeInfos()
- for _, vinfo := range volumeInfos {
- if len(vinfo.Collection) == 0 {
- continue
- }
- if vinfo.ReplicaPlacement.GetCopyCount() > 1 {
- _, err := topology.GetWritableRemoteReplications(vs.store, vs.grpcDialOption, vinfo.Id, vs.GetMaster)
- if err != nil {
- w.WriteHeader(http.StatusServiceUnavailable)
- return
- }
- }
- }
- w.WriteHeader(http.StatusOK)
- }
- func (vs *VolumeServer) statusHandler(w http.ResponseWriter, r *http.Request) {
- w.Header().Set("Server", "SeaweedFS Volume "+util.VERSION)
- m := make(map[string]interface{})
- m["Version"] = util.Version()
- var ds []*volume_server_pb.DiskStatus
- for _, loc := range vs.store.Locations {
- if dir, e := filepath.Abs(loc.Directory); e == nil {
- newDiskStatus := stats.NewDiskStatus(dir)
- newDiskStatus.DiskType = loc.DiskType.String()
- ds = append(ds, newDiskStatus)
- }
- }
- m["DiskStatuses"] = ds
- m["Volumes"] = vs.store.VolumeInfos()
- writeJsonQuiet(w, r, http.StatusOK, m)
- }
- func (vs *VolumeServer) statsDiskHandler(w http.ResponseWriter, r *http.Request) {
- w.Header().Set("Server", "SeaweedFS Volume "+util.VERSION)
- m := make(map[string]interface{})
- m["Version"] = util.Version()
- var ds []*volume_server_pb.DiskStatus
- for _, loc := range vs.store.Locations {
- if dir, e := filepath.Abs(loc.Directory); e == nil {
- newDiskStatus := stats.NewDiskStatus(dir)
- newDiskStatus.DiskType = loc.DiskType.String()
- ds = append(ds, newDiskStatus)
- }
- }
- m["DiskStatuses"] = ds
- writeJsonQuiet(w, r, http.StatusOK, m)
- }
|