From 25e2af7c89a7b91ffc21e29271ebf4970d59811c Mon Sep 17 00:00:00 2001 From: Julien Pivotto Date: Tue, 14 Feb 2017 22:14:40 +0100 Subject: [PATCH] prometheus: Add mgmt_process_start_time_seconds metric --- docs/prometheus.md | 1 + prometheus/prometheus.go | 13 ++++++++++++- test/shell/prometheus-1.sh | 3 +++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/docs/prometheus.md b/docs/prometheus.md index d1a83419..df888da6 100644 --- a/docs/prometheus.md +++ b/docs/prometheus.md @@ -52,6 +52,7 @@ Here is a list of the metrics we provide: - `mgmt_checkapply_total`: The number of CheckApply's that mgmt has run - `mgmt_failures_total`: The number of resources that have failed - `mgmt_failures_current`: The number of resources that have failed +- `mgmt_process_start_time_seconds`: Start time of the process since unix epoch in seconds For each metric, you will get some extra labels: diff --git a/prometheus/prometheus.go b/prometheus/prometheus.go index c2edb412..bf99d3ed 100644 --- a/prometheus/prometheus.go +++ b/prometheus/prometheus.go @@ -36,7 +36,8 @@ const DefaultPrometheusListen = "127.0.0.1:9233" type Prometheus struct { Listen string // the listen specification for the net/http server - checkApplyTotal *prometheus.CounterVec // total of CheckApplies that have been triggered + checkApplyTotal *prometheus.CounterVec // total of CheckApplies that have been triggered + processStartTimeSeconds prometheus.Gauge // process start time in seconds since unix epoch } @@ -59,6 +60,16 @@ func (obj *Prometheus) Init() error { ) prometheus.MustRegister(obj.checkApplyTotal) + obj.processStartTimeSeconds = prometheus.NewGauge( + prometheus.GaugeOpts{ + Name: "mgmt_process_start_time_seconds", + Help: "Start time of the process since unix epoch in seconds.", + }, + ) + prometheus.MustRegister(obj.processStartTimeSeconds) + // directly set the processStartTimeSeconds + obj.processStartTimeSeconds.SetToCurrentTime() + return nil } diff --git a/test/shell/prometheus-1.sh b/test/shell/prometheus-1.sh index 5421a679..f6811592 100755 --- a/test/shell/prometheus-1.sh +++ b/test/shell/prometheus-1.sh @@ -11,6 +11,9 @@ curl 127.0.0.1:9233/metrics | grep "^etcd_server_has_leader 1" # Check that go metrics are loaded curl 127.0.0.1:9233/metrics | grep "^go_goroutines [0-9]\+" +# Check mgmt_process_start_time_seconds +curl 127.0.0.1:9233/metrics | grep "^mgmt_process_start_time_seconds [0-9]\+" + killall -SIGINT mgmt # send ^C to exit mgmt wait $pid # get exit status exit $?