package metrics

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

var (
	Proxy = proxyMetrics{
		RequestsTotal: prometheus.NewCounterVec(
			prometheus.CounterOpts{
				Namespace: namespace,
				Subsystem: proxySubsystem,
				Name:      "proxy_requests_total",
				Help:      "How many proxied requests are served by jump gateway.",
			},
			[]string{"method", "code", "target_type"},
		),
		RequestDuration: prometheus.NewHistogramVec(
			prometheus.HistogramOpts{
				Namespace: namespace,
				Subsystem: proxySubsystem,
				Name:      "proxy_request_duration_seconds",
				Help:      "The proxied request latencies in seconds.",
			},
			[]string{"method", "code", "target_type"},
		),
	}
)

type proxyMetrics struct {
	RequestsTotal   *prometheus.CounterVec
	RequestDuration *prometheus.HistogramVec
}
