53 lines
1.9 KiB
Go
53 lines
1.9 KiB
Go
package metrics
|
|
|
|
import "github.com/go-gost/core/metrics"
|
|
|
|
const (
|
|
// Number of services. Labels: host.
|
|
MetricServicesGauge metrics.MetricName = "gost_services"
|
|
// Total service requests. Labels: host, service.
|
|
MetricServiceRequestsCounter metrics.MetricName = "gost_service_requests_total"
|
|
// Number of in-flight requests. Labels: host, service.
|
|
MetricServiceRequestsInFlightGauge metrics.MetricName = "gost_service_requests_in_flight"
|
|
// Request duration historgram. Labels: host, service.
|
|
MetricServiceRequestsDurationObserver metrics.MetricName = "gost_service_request_duration_seconds"
|
|
// Total service input data transfer size in bytes. Labels: host, service.
|
|
MetricServiceTransferInputBytesCounter metrics.MetricName = "gost_service_transfer_input_bytes_total"
|
|
// Total service output data transfer size in bytes. Labels: host, service.
|
|
MetricServiceTransferOutputBytesCounter metrics.MetricName = "gost_service_transfer_output_bytes_total"
|
|
// Chain node connect duration histogram. Labels: host, chain, node.
|
|
MetricNodeConnectDurationObserver metrics.MetricName = "gost_chain_node_connect_duration_seconds"
|
|
// Total service handler errors. Labels: host, service.
|
|
MetricServiceHandlerErrorsCounter metrics.MetricName = "gost_service_handler_errors_total"
|
|
// Total chain connect errors. Labels: host, chain, node.
|
|
MetricChainErrorsCounter metrics.MetricName = "gost_chain_errors_total"
|
|
)
|
|
|
|
var (
|
|
global metrics.Metrics = Noop()
|
|
)
|
|
|
|
func Init(m metrics.Metrics) {
|
|
if m != nil {
|
|
global = m
|
|
} else {
|
|
global = Noop()
|
|
}
|
|
}
|
|
|
|
func IsEnabled() bool {
|
|
return global != Noop()
|
|
}
|
|
|
|
func GetCounter(name metrics.MetricName, labels metrics.Labels) metrics.Counter {
|
|
return global.Counter(name, labels)
|
|
}
|
|
|
|
func GetGauge(name metrics.MetricName, labels metrics.Labels) metrics.Gauge {
|
|
return global.Gauge(name, labels)
|
|
}
|
|
|
|
func GetObserver(name metrics.MetricName, labels metrics.Labels) metrics.Observer {
|
|
return global.Observer(name, labels)
|
|
}
|