grafana/k6 · error

failed to create OpenTelemetry exporter: %w

Error message

failed to create OpenTelemetry exporter: %w

What it means

Output.Start failed while building the OTLP metric exporter (bad TLS files, unparseable headers, or exporter construction error). Start wraps whatever getExporter returned as the exporter-creation failure.

Source

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

	if err := o.meterProvider.Shutdown(context.Background()); err != nil {
		o.logger.WithError(err).Error("can't shutdown OpenTelemetry metric provider")
	}

	return nil
}

// Stop just implements an old interface (output.Output)
func (o *Output) Stop() error {
	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()),
			),

View on GitHub (pinned to 01ffac6f24)

Solutions

  1. Inspect the wrapped error: fix header syntax, TLS certificate paths, or exporter endpoint settings
  2. Verify K6_OTEL_* endpoint, protocol and credential configuration
Defensive patterns

Strategy: fallback

When it happens

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