mirror of https://github.com/matrix-org/go-neb.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
2.0 KiB
60 lines
2.0 KiB
package metrics
|
|
|
|
import (
|
|
"github.com/prometheus/client_golang/prometheus"
|
|
)
|
|
|
|
// Status is the status of a measurable metric (incoming commands, outgoing polls, etc)
|
|
type Status string
|
|
|
|
// Common status values
|
|
const (
|
|
StatusSuccess = "success"
|
|
StatusFailure = "failure"
|
|
)
|
|
|
|
var (
|
|
cmdCounter = prometheus.NewCounterVec(prometheus.CounterOpts{
|
|
Name: "goneb_pling_cmd_total",
|
|
Help: "The number of incoming commands from matrix clients",
|
|
}, []string{"cmd", "status"})
|
|
configureServicesCounter = prometheus.NewCounterVec(prometheus.CounterOpts{
|
|
Name: "goneb_configure_services_total",
|
|
Help: "The total number of configured services requests",
|
|
}, []string{"service_type"})
|
|
webhookCounter = prometheus.NewCounterVec(prometheus.CounterOpts{
|
|
Name: "goneb_webhook_total",
|
|
Help: "The total number of recognised incoming webhook requests",
|
|
}, []string{"service_type"})
|
|
authSessionCounter = prometheus.NewCounterVec(prometheus.CounterOpts{
|
|
Name: "goneb_auth_session_total",
|
|
Help: "The total number of successful /requestAuthSession requests",
|
|
}, []string{"realm_type"})
|
|
)
|
|
|
|
// IncrementCommand increments the pling command counter
|
|
func IncrementCommand(cmdName string, st Status) {
|
|
cmdCounter.With(prometheus.Labels{"cmd": cmdName, "status": string(st)}).Inc()
|
|
}
|
|
|
|
// IncrementConfigureService increments the /configureService counter
|
|
func IncrementConfigureService(serviceType string) {
|
|
configureServicesCounter.With(prometheus.Labels{"service_type": serviceType}).Inc()
|
|
}
|
|
|
|
// IncrementWebhook increments the incoming webhook request counter
|
|
func IncrementWebhook(serviceType string) {
|
|
webhookCounter.With(prometheus.Labels{"service_type": serviceType}).Inc()
|
|
}
|
|
|
|
// IncrementAuthSession increments the /requestAuthSession request counter
|
|
func IncrementAuthSession(realmType string) {
|
|
authSessionCounter.With(prometheus.Labels{"realm_type": realmType}).Inc()
|
|
}
|
|
|
|
func init() {
|
|
prometheus.MustRegister(cmdCounter)
|
|
prometheus.MustRegister(configureServicesCounter)
|
|
prometheus.MustRegister(webhookCounter)
|
|
prometheus.MustRegister(authSessionCounter)
|
|
}
|