CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (push) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (push) Canceled after 0s
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
45 lines
1.2 KiB
Go
45 lines
1.2 KiB
Go
// metrics-devserver stellt den OPS-03-Metrics-Aggregator (internal/metrics)
|
|
// unter /metrics bereit, damit ein echter Prometheus-Scrape-Vorgang gegen
|
|
// den Core-Dienst geprueft werden kann (Pruefung 3). Getrennt von cmd/core
|
|
// aus demselben Grund wie die anderen *-devserver.
|
|
package main
|
|
|
|
import (
|
|
"context"
|
|
"log"
|
|
"net/http"
|
|
"os"
|
|
|
|
"gitea.perlbach24.de/scripte/nexarch/internal/db"
|
|
"gitea.perlbach24.de/scripte/nexarch/internal/httpharden"
|
|
"gitea.perlbach24.de/scripte/nexarch/internal/metrics"
|
|
)
|
|
|
|
func main() {
|
|
dsn := os.Getenv("NEXARCH_REGISTRY_DSN")
|
|
if dsn == "" {
|
|
log.Fatal("NEXARCH_REGISTRY_DSN nicht gesetzt")
|
|
}
|
|
addr := os.Getenv("NEXARCH_METRICS_LISTEN_ADDR")
|
|
if addr == "" {
|
|
addr = "127.0.0.1:8085"
|
|
}
|
|
|
|
ctx := context.Background()
|
|
pool, err := db.Connect(ctx, dsn)
|
|
if err != nil {
|
|
log.Fatalf("db: %v", err)
|
|
}
|
|
defer pool.Close()
|
|
|
|
sourceStore := metrics.NewSourceStore(pool)
|
|
agg := metrics.NewAggregator(metrics.NewCoreRegistry(), sourceStore.Provide)
|
|
|
|
mux := http.NewServeMux()
|
|
mux.HandleFunc("/metrics", agg.Handler())
|
|
mux.HandleFunc("/healthz", func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusOK) })
|
|
|
|
log.Printf("metrics-devserver listening on %s", addr)
|
|
log.Fatal(httpharden.ListenAndServe(addr, mux))
|
|
}
|