Browse Source

Add healthy indicator for raft status

pull/3385/head
Patrick Schmidt 2 years ago
parent
commit
1a4a36d510
No known key found for this signature in database GPG Key ID: 671175E37C0DA371
  1. 7
      weed/command/master.go
  2. 9
      weed/server/raft_server_handlers.go

7
weed/command/master.go

@ -2,19 +2,21 @@ package command
import (
"fmt"
"golang.org/x/exp/slices"
"net/http"
"os"
"path"
"strings"
"time"
"golang.org/x/exp/slices"
"github.com/gorilla/mux"
"github.com/seaweedfs/raft/protobuf"
stats_collect "github.com/seaweedfs/seaweedfs/weed/stats"
"github.com/spf13/viper"
"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/glog"
@ -179,6 +181,7 @@ func startMaster(masterOption MasterOptions, masterWhiteList []string) {
}
ms.SetRaftServer(raftServer)
r.HandleFunc("/cluster/status", raftServer.StatusHandler).Methods("GET")
r.HandleFunc("/cluster/healthz", raftServer.HealthzHandler).Methods("GET", "HEAD")
if *m.raftHashicorp {
r.HandleFunc("/raft/stats", raftServer.StatsRaftHandler).Methods("GET")
}

9
weed/server/raft_server_handlers.go

@ -26,6 +26,15 @@ func (s *RaftServer) StatusHandler(w http.ResponseWriter, r *http.Request) {
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) {
if s.RaftHashicorp == nil {
writeJsonQuiet(w, r, http.StatusNotFound, nil)

Loading…
Cancel
Save