mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-01-19 02:48:24 +00:00
Add healthy indicator for raft status
This commit is contained in:
parent
0f50fcb96a
commit
1a4a36d510
|
@ -2,19 +2,21 @@ package command
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"golang.org/x/exp/slices"
|
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"golang.org/x/exp/slices"
|
||||||
|
|
||||||
"github.com/gorilla/mux"
|
"github.com/gorilla/mux"
|
||||||
"github.com/seaweedfs/raft/protobuf"
|
"github.com/seaweedfs/raft/protobuf"
|
||||||
stats_collect "github.com/seaweedfs/seaweedfs/weed/stats"
|
|
||||||
"github.com/spf13/viper"
|
"github.com/spf13/viper"
|
||||||
"google.golang.org/grpc/reflection"
|
"google.golang.org/grpc/reflection"
|
||||||
|
|
||||||
|
stats_collect "github.com/seaweedfs/seaweedfs/weed/stats"
|
||||||
|
|
||||||
"github.com/seaweedfs/seaweedfs/weed/util/grace"
|
"github.com/seaweedfs/seaweedfs/weed/util/grace"
|
||||||
|
|
||||||
"github.com/seaweedfs/seaweedfs/weed/glog"
|
"github.com/seaweedfs/seaweedfs/weed/glog"
|
||||||
|
@ -179,6 +181,7 @@ func startMaster(masterOption MasterOptions, masterWhiteList []string) {
|
||||||
}
|
}
|
||||||
ms.SetRaftServer(raftServer)
|
ms.SetRaftServer(raftServer)
|
||||||
r.HandleFunc("/cluster/status", raftServer.StatusHandler).Methods("GET")
|
r.HandleFunc("/cluster/status", raftServer.StatusHandler).Methods("GET")
|
||||||
|
r.HandleFunc("/cluster/healthz", raftServer.HealthzHandler).Methods("GET", "HEAD")
|
||||||
if *m.raftHashicorp {
|
if *m.raftHashicorp {
|
||||||
r.HandleFunc("/raft/stats", raftServer.StatsRaftHandler).Methods("GET")
|
r.HandleFunc("/raft/stats", raftServer.StatsRaftHandler).Methods("GET")
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,15 @@ func (s *RaftServer) StatusHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
writeJsonQuiet(w, r, http.StatusOK, ret)
|
writeJsonQuiet(w, r, http.StatusOK, ret)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *RaftServer) HealthzHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
|
_, err := s.topo.Leader()
|
||||||
|
if err != nil {
|
||||||
|
w.WriteHeader(http.StatusServiceUnavailable)
|
||||||
|
} else {
|
||||||
|
w.WriteHeader(http.StatusOK)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (s *RaftServer) StatsRaftHandler(w http.ResponseWriter, r *http.Request) {
|
func (s *RaftServer) StatsRaftHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
if s.RaftHashicorp == nil {
|
if s.RaftHashicorp == nil {
|
||||||
writeJsonQuiet(w, r, http.StatusNotFound, nil)
|
writeJsonQuiet(w, r, http.StatusNotFound, nil)
|
||||||
|
|
Loading…
Reference in a new issue