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 (user x nodes), 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 node or headscale was updated", }, []string{"user", "nodes"}) nodeRegistrations = promauto.NewCounterVec(prometheus.CounterOpts{ Namespace: prometheusNamespace, Name: "node_registrations_total", Help: "The total amount of registered node attempts", }, []string{"action", "auth", "status", "user"}) 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{"user", "node", "state"}) updateRequestsSentToNode = promauto.NewCounterVec(prometheus.CounterOpts{ Namespace: prometheusNamespace, Name: "update_request_sent_to_node_total", Help: "The number of calls/messages issued on a specific nodes update channel", }, []string{"user", "node", "status"}) // 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{"user", "node"}) )