grafana/k6 · error

failed to create OpenTelemetry resource: %w

Error message

failed to create OpenTelemetry resource: %w

What it means

Output.Start failed while merging the default OpenTelemetry resource with the service name/version attributes. resource.Merge errors when attribute schemas conflict; this wrapper reports the resource-construction step.

Source

Thrown at internal/output/opentelemetry/output.go:86

	return o.StopWithTestError(nil)
}

// Start performs initialization tasks prior to Engine using the output
func (o *Output) Start() error {
	o.logger.Debug("Starting output...")

	exp, err := getExporter(o.config)
	if err != nil {
		return fmt.Errorf("failed to create OpenTelemetry exporter: %w", err)
	}

	res, err := resource.Merge(resource.Default(),
		resource.NewSchemaless(
			semconv.ServiceName(o.config.ServiceName.String),
			semconv.ServiceVersion(o.config.ServiceVersion.String),
		))
	if err != nil {
		return fmt.Errorf("failed to create OpenTelemetry resource: %w", err)
	}

	meterProvider := metric.NewMeterProvider(
		metric.WithResource(res),
		metric.WithReader(
			metric.NewPeriodicReader(
				exp,
				metric.WithInterval(o.config.ExportInterval.TimeDuration()),
			),
		),
	)

	pf, err := output.NewPeriodicFlusher(o.config.FlushInterval.TimeDuration(), o.flushMetrics)
	if err != nil {
		return err
	}

	o.logger.Debug("Started!")

View on GitHub (pinned to 01ffac6f24)

Solutions

  1. Check the wrapped error for the conflicting attribute
  2. Ensure K6_OTEL_SERVICE_NAME and K6_OTEL_SERVICE_VERSION are plain, distinct strings
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at internal/output/opentelemetry/output.go:86 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/c9c4453ccabbe6cc. Report an issue: GitHub.