packages/hyprspace: enable optional prometheus metrics endpoint

This commit is contained in:
Max Headroom 2023-10-22 15:14:16 +02:00
parent 43c5e4b68f
commit e0569ac31e
2 changed files with 14 additions and 1 deletions

View file

@ -7,6 +7,7 @@ import (
"fmt"
"io/fs"
"net"
"net/http"
"os"
"os/signal"
"path/filepath"
@ -26,6 +27,7 @@ import (
"github.com/libp2p/go-libp2p/core/peer"
"github.com/multiformats/go-multiaddr"
"github.com/multiformats/go-multibase"
"github.com/prometheus/client_golang/prometheus/promhttp"
)
var (
@ -140,6 +142,17 @@ func UpRun(r *cmd.Root, c *cmd.Sub) {
// RPC server
go hsrpc.RpcServer(ctx, multiaddr.StringCast(fmt.Sprintf("/unix/run/hyprspace-rpc.%s.sock", cfg.Interface.Name)), host, *cfg)
// metrics endpoint
metricsPort, ok := os.LookupEnv("HYPRSPACE_METRICS_PORT")
if ok {
metricsTuple := fmt.Sprintf("127.0.0.1:%s", metricsPort)
http.Handle("/metrics", promhttp.Handler())
go func() {
http.ListenAndServe(metricsTuple, nil)
}()
fmt.Printf("[+] Listening for metrics scrape requests on http://%s/metrics\n", metricsTuple)
}
// Write lock to filesystem to indicate an existing running daemon.
err = os.WriteFile(lockPath, []byte(fmt.Sprint(os.Getpid())), os.ModePerm)
checkErr(err)

View file

@ -8,6 +8,7 @@ require (
github.com/libp2p/go-libp2p-kad-dht v0.25.0
github.com/multiformats/go-multiaddr v0.11.0
github.com/multiformats/go-multibase v0.2.0
github.com/prometheus/client_golang v1.16.0
github.com/songgao/water v0.0.0-20200317203138-2b4b6d7c09d8
github.com/vishvananda/netlink v1.1.0
gopkg.in/yaml.v2 v2.4.0
@ -87,7 +88,6 @@ require (
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/polydawn/refmt v0.89.0 // indirect
github.com/prometheus/client_golang v1.16.0 // indirect
github.com/prometheus/client_model v0.4.0 // indirect
github.com/prometheus/common v0.44.0 // indirect
github.com/prometheus/procfs v0.11.1 // indirect