From 442236f8515e761c1bd97f2cf3fd6b102bdecb64 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Thu, 16 Apr 2026 08:47:11 +0300 Subject: Add /metrics Prometheus endpoint to daemon mode Exposes a gauge per host tracking the Unix timestamp of the last records file update. Excluded hosts (from the excluded_host table) are labeled excluded="true" so alerting rules can filter them out. Uses manual Prometheus text format to avoid adding a new dependency. Co-Authored-By: Claude Sonnet 4.6 --- internal/cli/cmd_daemon.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'internal/cli') diff --git a/internal/cli/cmd_daemon.go b/internal/cli/cmd_daemon.go index 2bd74a8..111968f 100644 --- a/internal/cli/cmd_daemon.go +++ b/internal/cli/cmd_daemon.go @@ -25,6 +25,7 @@ func runDaemon(args []string) error { statsDir := fs.String("stats-dir", os.Getenv("GOPRECORDS_STATS_DIR"), "Uptimed stats directory (required; env GOPRECORDS_STATS_DIR)") listen := fs.String("listen", defaultListenFromEnv(), "TCP listen address (env GOPRECORDS_LISTEN, default :8080)") authDB := fs.String("auth-db", "", "SQLite file for upload API keys (default: /goprecords-auth.db)") + db := fs.String("db", os.Getenv("GOPRECORDS_DB"), "SQLite database path for excluded hosts used by /metrics (env GOPRECORDS_DB)") if err := fs.Parse(args); err != nil { return err } @@ -35,7 +36,7 @@ func runDaemon(args []string) error { } ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM) defer stop() - err := daemon.Run(ctx, daemon.Config{StatsDir: *statsDir, Addr: *listen, AuthDB: *authDB}) + err := daemon.Run(ctx, daemon.Config{StatsDir: *statsDir, Addr: *listen, AuthDB: *authDB, DB: *db}) if err != nil && !errors.Is(err, context.Canceled) { return err } -- cgit v1.2.3