grafana/k6 · error
failed to create gauge for %q: %w
Error message
failed to create gauge for %q: %w
What it means
When a gauge is not yet cached, getOrCreateGauge calls meter.Float64Gauge to create it; an error here (wrapped with the metric name) comes from the OpenTelemetry meter — typically an invalid metric name/unit per OTel semantics. It aborts dispatch of that metric to the exporter.
Source
Thrown at internal/output/opentelemetry/registry.go:126
}
func (r *registry) getOrCreateGauge(name, unit string) (otelMetric.Float64Gauge, error) {
if gauge, ok := r.gauges.Load(name); ok {
if v, ok := gauge.(otelMetric.Float64Gauge); ok {
return v, nil
}
return nil, fmt.Errorf("metric %q is not a gauge", name)
}
opts := []otelMetric.Float64GaugeOption{}
if unit != "" {
opts = append(opts, otelMetric.WithUnit(unit))
}
gauge, err := r.meter.Float64Gauge(name, opts...)
if err != nil {
return nil, fmt.Errorf("failed to create gauge for %q: %w", name, err)
}
r.logger.Debugf("registered gauge metric %q ", name)
r.gauges.Store(name, gauge)
return gauge, nil
}
View on GitHub (pinned to 01ffac6f24)
Solutions
- Check the wrapped error from the meter provider
- Use a unique metric name for the gauge instrument
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at internal/output/opentelemetry/registry.go:126 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of grafana/k6@01ffac6f24 (2026-08-18).
Data as JSON: /api/errors/89655ea16ab51e36.
Report an issue: GitHub.