Compare commits

...

2 Commits

Author SHA1 Message Date
4b7ab8cd0f
flake.lock: Update
Flake lock file updates:

• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/2795c506fe8fb7b03c36ccb51f75b6df0ab2553f?narHash=sha256-W7lqHp0qZiENCDwUZ5EX/lNhxjMdNapFnbErcbnP11Q%3D' (2025-05-20)
  → 'github:NixOS/nixpkgs/910796cabe436259a29a72e8d3f5e180fc6dfacc?narHash=sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8%3D' (2025-05-31)
2025-06-03 22:41:06 +02:00
8220d21ec4
Add lifetime to certificates monitored 2025-06-03 22:40:42 +02:00
4 changed files with 22 additions and 4 deletions

6
flake.lock generated
View File

@ -2,11 +2,11 @@
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1747744144,
"narHash": "sha256-W7lqHp0qZiENCDwUZ5EX/lNhxjMdNapFnbErcbnP11Q=",
"lastModified": 1748693115,
"narHash": "sha256-StSrWhklmDuXT93yc3GrTlb0cKSS0agTAxMGjLKAsY8=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "2795c506fe8fb7b03c36ccb51f75b6df0ab2553f",
"rev": "910796cabe436259a29a72e8d3f5e180fc6dfacc",
"type": "github"
},
"original": {

View File

@ -17,7 +17,7 @@ import (
"github.com/prometheus/client_golang/prometheus/promhttp"
)
const Version = "0.1.0"
const Version = "0.1.1"
func LoadConfig() (*config.Config, error) {
path := "labmon.toml"

View File

@ -29,6 +29,13 @@ var stepCertError = promauto.NewGaugeVec(prometheus.GaugeOpts{
Help: "Error checking the certificate.",
}, []string{"cert_id"})
var stepCertLifetime = promauto.NewGaugeVec(prometheus.GaugeOpts{
Namespace: "labmon",
Subsystem: "stepmon",
Name: "certificate_lifetime_seconds",
Help: "How long the certificate is valid in seconds.",
}, []string{"cert_id"})
type StepMonitor struct {
BaseURL string
RootID string
@ -77,6 +84,8 @@ func (sm *StepMonitor) Start() {
stepCertError.WithLabelValues(sm.RootID).Set(1)
} else {
stepCertError.WithLabelValues(sm.RootID).Set(0)
lifetime := sm.certificate.NotAfter.Sub(sm.certificate.NotBefore).Seconds()
stepCertLifetime.WithLabelValues(sm.RootID).Set(lifetime)
}
timerCertFetch.Reset(5 * time.Minute)

View File

@ -37,6 +37,13 @@ var (
Help: "Error checking the certificate.",
}, []string{"address"})
gaugeCertLifetime = promauto.NewGaugeVec(prometheus.GaugeOpts{
Namespace: "labmon",
Subsystem: "tlsconmon",
Name: "certificate_lifetime_seconds",
Help: "How long the certificate is valid in seconds.",
}, []string{"address"})
// OTEL tracing
tracer = otel.Tracer(name)
)
@ -104,6 +111,8 @@ func (tm *TLSConnectionMonitor) Start(ctx context.Context) {
if err := tm.fetchCert(ctx); err != nil {
gaugeCertError.WithLabelValues(tm.Address).Set(1)
gaugeCertTimeLeft.WithLabelValues(tm.Address).Set(0)
lifetime := tm.cert.NotAfter.Sub(tm.cert.NotBefore).Seconds()
gaugeCertLifetime.WithLabelValues(tm.Address).Set(lifetime)
} else {
gaugeCertError.WithLabelValues(tm.Address).Set(0)
timeLeft := time.Until(tm.cert.NotAfter).Seconds()