]> go.fuhry.dev Git - runtime.git/commitdiff
metrics/metricbus: add healthcheck endpoint
authorDan Fuhry <dan@fuhry.com>
Sat, 22 Mar 2025 01:10:32 +0000 (21:10 -0400)
committerDan Fuhry <dan@fuhry.com>
Sat, 22 Mar 2025 01:10:32 +0000 (21:10 -0400)
metrics/metricbus/internal/server.go

index ba3f78c236c281caef4024f3a9229f5cfbbbb087..eee82546e52ed74a37eb57f2461b1df1afac45e9 100644 (file)
@@ -15,6 +15,7 @@ import (
 
        "github.com/godbus/dbus/v5"
        "github.com/godbus/dbus/v5/introspect"
+       "go.fuhry.dev/runtime/constants"
        "go.fuhry.dev/runtime/metrics/metricbus"
        "go.fuhry.dev/runtime/mtls"
        "go.fuhry.dev/runtime/utils/hashset"
@@ -115,7 +116,7 @@ func makeTlsListener(tcpAddr *net.TCPAddr, ctx context.Context) (net.Listener, e
                return nil, err
        }
        cv.AllowFrom(mtls.Service, "prometheus")
-       cv.AllowFrom(mtls.User, "dan")
+       cv.AllowFrom(mtls.Service, "healthcheck")
 
        return tls.NewListener(netListener, tlsc), nil
 }
@@ -134,6 +135,7 @@ func NewMetricBusServerWithPort(port uint) (*mbServer, error) {
        }
 
        handler := http.NewServeMux()
+       handler.HandleFunc("/healthz", servicer.healthCheck)
        handler.HandleFunc("/metrics", servicer.metricsToString)
        server := &mbServer{
                log:     logger,
@@ -301,6 +303,11 @@ func (s *mbServicer) metricsToString(w http.ResponseWriter, r *http.Request) {
        }
 }
 
+func (s *mbServicer) healthCheck(w http.ResponseWriter, r *http.Request) {
+       w.WriteHeader(http.StatusOK)
+       w.Write([]byte(fmt.Sprintf("<h1>%s Metric Collector</h1>", constants.OrgName)))
+}
+
 func (s *mbServicer) Ping() *dbus.Error {
        return nil
 }