Add new gauge to show currently available proxies

This commit is contained in:
Cecylia Bocovich 2021-03-31 17:22:31 -04:00
parent 92bd900bc5
commit 2a310682b5
2 changed files with 16 additions and 3 deletions

View file

@ -151,6 +151,7 @@ func (ctx *BrokerContext) Broker() {
} else {
heap.Remove(ctx.restrictedSnowflakes, snowflake.index)
}
promMetrics.AvailableProxies.With(prometheus.Labels{"nat": request.natType, "type": request.proxyType}).Dec()
delete(ctx.idToSnowflake, snowflake.id)
close(request.offerChannel)
}
@ -176,6 +177,7 @@ func (ctx *BrokerContext) AddSnowflake(id string, proxyType string, natType stri
} else {
heap.Push(ctx.restrictedSnowflakes, snowflake)
}
promMetrics.AvailableProxies.With(prometheus.Labels{"nat": natType, "type": proxyType}).Inc()
ctx.snowflakeLock.Unlock()
ctx.idToSnowflake[id] = snowflake
return snowflake
@ -319,6 +321,7 @@ func clientOffers(ctx *BrokerContext, w http.ResponseWriter, r *http.Request) {
}
ctx.snowflakeLock.Lock()
promMetrics.AvailableProxies.With(prometheus.Labels{"nat": snowflake.natType, "type": snowflake.proxyType}).Dec()
delete(ctx.idToSnowflake, snowflake.id)
ctx.snowflakeLock.Unlock()
}

View file

@ -264,6 +264,7 @@ type PromMetrics struct {
ProxyTotal *prometheus.CounterVec
ProxyPollTotal *RoundedCounterVec
ClientPollTotal *RoundedCounterVec
AvailableProxies *prometheus.GaugeVec
}
//Initialize metrics for prometheus exporter
@ -280,6 +281,15 @@ func initPrometheus() *PromMetrics {
[]string{"type", "nat", "cc"},
)
promMetrics.AvailableProxies = promauto.NewGaugeVec(
prometheus.GaugeOpts{
Namespace: prometheusNamespace,
Name: "available_proxies",
Help: "The number of currently available snowflake proxies",
},
[]string{"type", "nat"},
)
promMetrics.ProxyPollTotal = NewRoundedCounterVec(
prometheus.CounterOpts{
Namespace: prometheusNamespace,