package metrics

import "github.com/prometheus/client_golang/prometheus"

var (
	O11yServerRequestErrCnt = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Namespace: "dbaas",
			Subsystem: "o11y_server",
			Name:      "request_error_count",
			Help:      "error count of http request sending to o11y server",
		}, []string{"url", "path", "method"},
	)

	O11yServerRequestDuration = prometheus.NewHistogramVec(
		prometheus.HistogramOpts{
			Namespace: "dbaas",
			Subsystem: "o11y_server",
			Name:      "request_duration_ms",
			Help:      "duration of http request sending to o11y server, unit: ms",
		}, []string{"url", "path", "method"},
	)

	MetricsApiRequestErrCnt = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Namespace: "dbaas",
			Subsystem: "metrics_api",
			Name:      "request_error_count",
			Help:      "error count of http request sending to metrics api",
		}, []string{"url", "path", "method"},
	)

	MetricsApiRequestDuration = prometheus.NewHistogramVec(
		prometheus.HistogramOpts{
			Namespace: "dbaas",
			Subsystem: "metrics_api",
			Name:      "request_duration_ms",
			Help:      "duration of http request sending to metrics api, unit: ms",
		}, []string{"url", "path", "method"},
	)

	O11yServerQueryRequest = prometheus.NewCounterVec(
		prometheus.CounterOpts{
			Namespace: "dbaas",
			Subsystem: "o11y_server",
			Name:      "query_request_total",
			Help:      "total count of prometheus query request, excluding retries",
		}, []string{"url", "tidb_cluster_id", "metric_name", "status"},
	)
)
