fix: add prefix to standalone metrics (#27526)

Adds `coder_ai_gateway_` to standalone Gateway metics to match embedded
case.
This commit is contained in:
Paweł Banaszewski
2026-07-27 13:02:49 +00:00
committed by GitHub
parent b67e1b24f9
commit 5770085435
3 changed files with 9 additions and 4 deletions
+2
View File
@@ -8,6 +8,8 @@ import (
var baseLabels = []string{"provider", "model"}
const (
PrometheusMetricPrefix = "coder_ai_gateway_"
InterceptionCountStatusFailed = "failed"
InterceptionCountStatusCompleted = "completed"
)
+2 -1
View File
@@ -57,6 +57,7 @@ import (
"cdr.dev/slog/v3"
"cdr.dev/slog/v3/sloggers/sloghuman"
"github.com/coder/coder/v2/aibridge"
aibridgemetrics "github.com/coder/coder/v2/aibridge/metrics"
"github.com/coder/coder/v2/buildinfo"
"github.com/coder/coder/v2/cli/clilog"
"github.com/coder/coder/v2/cli/cliui"
@@ -1180,7 +1181,7 @@ func (r *RootCmd) Server(newAPI func(context.Context, *coderd.Options) (*coderd.
// TODO(deprecation): Remove "coder_aibridged_" in v2.37.
// See AIGOV-447:
// https://linear.app/codercom/issue/AIGOV-447/remove-legacy-ai-gateway-metric-aliases
aibridgeReg := prometheusmetrics.NewMetricAliasRegisterer(coderAPI.PrometheusRegistry, "coder_ai_gateway_", "coder_aibridged_")
aibridgeReg := prometheusmetrics.NewMetricAliasRegisterer(coderAPI.PrometheusRegistry, aibridgemetrics.PrometheusMetricPrefix, "coder_aibridged_")
aibridgeMetrics := aibridge.NewMetrics(aibridgeReg)
var unsubscribeProviderReload func()
aibridgeDaemon, unsubscribeProviderReload, err = newAIBridgeDaemon(coderAPI, vals.AI.BridgeConfig, aibridgeReg, aibridgeMetrics)
+5 -3
View File
@@ -25,6 +25,7 @@ import (
"cdr.dev/slog/v3"
"github.com/coder/coder/v2/aibridge"
"github.com/coder/coder/v2/aibridge/keypool"
aibridgemetrics "github.com/coder/coder/v2/aibridge/metrics"
agpl "github.com/coder/coder/v2/cli"
"github.com/coder/coder/v2/cli/clilog"
"github.com/coder/coder/v2/coderd/aibridged"
@@ -143,8 +144,9 @@ func (r *RootCmd) aiGatewayStart() *serpent.Command {
registry.MustRegister(collectors.NewGoCollector())
registry.MustRegister(collectors.NewProcessCollector(collectors.ProcessCollectorOpts{}))
metrics := aibridge.NewMetrics(registry)
providerMetrics := aibridged.NewMetrics(registry)
gatewayRegisterer := prometheus.WrapRegistererWithPrefix(aibridgemetrics.PrometheusMetricPrefix, registry)
metrics := aibridge.NewMetrics(gatewayRegisterer)
providerMetrics := aibridged.NewMetrics(gatewayRegisterer)
tracerProvider, _, closeTracing := agpl.ConfigureTraceProviderWithService(signalCtx, logger, vals, "coder-ai-gateway")
// The tracer is shared by the gateway's HTTP middleware, pool, and
@@ -172,7 +174,7 @@ func (r *RootCmd) aiGatewayStart() *serpent.Command {
if err != nil {
return xerrors.Errorf("create request pool: %w", err)
}
registry.MustRegister(keypool.NewStateCollector(pool.KeyPools))
gatewayRegisterer.MustRegister(keypool.NewStateCollector(pool.KeyPools))
return runStandaloneGateway(signalCtx, standaloneGatewayParams{
bridgeConfig: vals.AI.BridgeConfig,