mirror of
https://github.com/juanfont/headscale.git
synced 2024-12-27 14:45:52 -05:00
1d5b090579
This commit adds some Prometheus metrics to /metrics in headscale. It will add the standard go metrics, some automatic gin metrics and some initial headscale specific ones. Some of them has been added to aid debugging #97 (loop bug) In the future, we can use the metrics to get rid of the sleep in the integration tests by checking that our expected number of nodes has been registered: ``` headscale_machine_registrations_total ```
42 lines
1.6 KiB
Go
42 lines
1.6 KiB
Go
package headscale
|
|
|
|
import (
|
|
"github.com/prometheus/client_golang/prometheus"
|
|
"github.com/prometheus/client_golang/prometheus/promauto"
|
|
)
|
|
|
|
const prometheusNamespace = "headscale"
|
|
|
|
var (
|
|
// This is a high cardinality metric (namespace x machines), we might want to make this
|
|
// configurable/opt-in in the future.
|
|
lastStateUpdate = promauto.NewGaugeVec(prometheus.GaugeOpts{
|
|
Namespace: prometheusNamespace,
|
|
Name: "last_update_seconds",
|
|
Help: "Time stamp in unix time when a machine or headscale was updated",
|
|
}, []string{"namespace", "machine"})
|
|
|
|
machineRegistrations = promauto.NewCounterVec(prometheus.CounterOpts{
|
|
Namespace: prometheusNamespace,
|
|
Name: "machine_registrations_total",
|
|
Help: "The total amount of registered machine attempts",
|
|
}, []string{"action", "auth", "status", "namespace"})
|
|
|
|
updateRequestsFromNode = promauto.NewCounterVec(prometheus.CounterOpts{
|
|
Namespace: prometheusNamespace,
|
|
Name: "update_request_from_node_total",
|
|
Help: "The number of updates requested by a node/update function",
|
|
}, []string{"state"})
|
|
updateRequestsToNode = promauto.NewCounter(prometheus.CounterOpts{
|
|
Namespace: prometheusNamespace,
|
|
Name: "update_request_to_node_total",
|
|
Help: "The number of calls/messages issued on a specific nodes update channel",
|
|
})
|
|
//TODO(kradalby): This is very debugging, we might want to remove it.
|
|
updateRequestsReceivedOnChannel = promauto.NewCounterVec(prometheus.CounterOpts{
|
|
Namespace: prometheusNamespace,
|
|
Name: "update_request_received_on_channel_total",
|
|
Help: "The number of update requests received on an update channel",
|
|
}, []string{"machine"})
|
|
)
|