add proxy name label to the proxy_count prometheus metric (#4985)

* add proxy name label to the proxy_count metric

* undo label addition in favor of a new metric - this change should not break existing queries

* also register this new metric

* add type label to proxy_counts_detailed

* Update pkg/metrics/prometheus/server.go

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
pull/4993/head
Charlie Blevins 2025-09-22 11:18:49 -05:00 committed by GitHub
parent 0a798a7a69
commit 7cfa546b55
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 17 additions and 7 deletions

View File

@ -14,11 +14,12 @@ const (
var ServerMetrics metrics.ServerMetrics = newServerMetrics() var ServerMetrics metrics.ServerMetrics = newServerMetrics()
type serverMetrics struct { type serverMetrics struct {
clientCount prometheus.Gauge clientCount prometheus.Gauge
proxyCount *prometheus.GaugeVec proxyCount *prometheus.GaugeVec
connectionCount *prometheus.GaugeVec proxyCountDetailed *prometheus.GaugeVec
trafficIn *prometheus.CounterVec connectionCount *prometheus.GaugeVec
trafficOut *prometheus.CounterVec trafficIn *prometheus.CounterVec
trafficOut *prometheus.CounterVec
} }
func (m *serverMetrics) NewClient() { func (m *serverMetrics) NewClient() {
@ -29,12 +30,14 @@ func (m *serverMetrics) CloseClient() {
m.clientCount.Dec() m.clientCount.Dec()
} }
func (m *serverMetrics) NewProxy(_ string, proxyType string) { func (m *serverMetrics) NewProxy(name string, proxyType string) {
m.proxyCount.WithLabelValues(proxyType).Inc() m.proxyCount.WithLabelValues(proxyType).Inc()
m.proxyCountDetailed.WithLabelValues(proxyType, name).Inc()
} }
func (m *serverMetrics) CloseProxy(_ string, proxyType string) { func (m *serverMetrics) CloseProxy(name string, proxyType string) {
m.proxyCount.WithLabelValues(proxyType).Dec() m.proxyCount.WithLabelValues(proxyType).Dec()
m.proxyCountDetailed.WithLabelValues(proxyType, name).Dec()
} }
func (m *serverMetrics) OpenConnection(name string, proxyType string) { func (m *serverMetrics) OpenConnection(name string, proxyType string) {
@ -67,6 +70,12 @@ func newServerMetrics() *serverMetrics {
Name: "proxy_counts", Name: "proxy_counts",
Help: "The current proxy counts", Help: "The current proxy counts",
}, []string{"type"}), }, []string{"type"}),
proxyCountDetailed: prometheus.NewGaugeVec(prometheus.GaugeOpts{
Namespace: namespace,
Subsystem: serverSubsystem,
Name: "proxy_counts_detailed",
Help: "The current number of proxies grouped by type and name",
}, []string{"type", "name"}),
connectionCount: prometheus.NewGaugeVec(prometheus.GaugeOpts{ connectionCount: prometheus.NewGaugeVec(prometheus.GaugeOpts{
Namespace: namespace, Namespace: namespace,
Subsystem: serverSubsystem, Subsystem: serverSubsystem,
@ -88,6 +97,7 @@ func newServerMetrics() *serverMetrics {
} }
prometheus.MustRegister(m.clientCount) prometheus.MustRegister(m.clientCount)
prometheus.MustRegister(m.proxyCount) prometheus.MustRegister(m.proxyCount)
prometheus.MustRegister(m.proxyCountDetailed)
prometheus.MustRegister(m.connectionCount) prometheus.MustRegister(m.connectionCount)
prometheus.MustRegister(m.trafficIn) prometheus.MustRegister(m.trafficIn)
prometheus.MustRegister(m.trafficOut) prometheus.MustRegister(m.trafficOut)