thanos-io/thanos · error

tracing with type is not supported

Error message

tracing with type %s is not supported

What it means

NewTracer switches on tracingConf.Type and falls through to the default branch when the type matches none of the supported backends (stackdriver/googlecloud, jaeger, elasticapm, lightstep, otlp). It returns errors.Errorf('tracing with type %s is not supported'). The type string is matched after ToUpper, so casing is not the issue — only the literal backend name.

Solutions

  1. Set type to one of the supported values: JAEGER, OTLP, ELASTIC_APM, LIGHTSTEP, or STACKDRIVER/GOOGLE_CLOUD
  2. Fix typos in the type field (exact string match, e.g. 'JAEGER' not 'jager')
  3. Check Thanos docs/version for the backend name; some backends were removed or renamed across versions
  4. Use an OTLP collector as a bridge if your vendor backend is unsupported

Example fix

// before
tracing:
  type: zipkin
// after
tracing:
  type: OTLP
  config:
    client_type: http
    endpoint: http://otel:4318
Defensive patterns

Strategy: validation

Validate before calling

supported := map[string]bool{"STACKDRIVER": true, "GOOGLE_CLOUD": true, "JAEGER": true, "ELASTIC_APM": true, "LIGHTSTEP": true, "OTLP": true}
if !supported[strings.ToUpper(tracingType)] {
    return fmt.Errorf("tracing type %q not supported; use one of %v", tracingType, []string{"JAEGER", "OTLP", "STACKDRIVER", "ELASTIC_APM"})
}

Try / catch

tracer, closer, err := tracing.NewTracer(ctx, logger, reg, cfgYaml)
if err != nil && strings.Contains(err.Error(), "is not supported") {
    logger.Error(err, "unsupported tracing backend; fix the 'type' field")
    return err
}

Prevention

When it happens

Trigger: Passing a tracing config whose 'type' value is anything other than the supported constants, e.g. 'zipkin', 'datadog', 'otlpgrpc', or a misspelling like 'jager'.

Common situations: Migrating configs from other tools (zipkin/datadog users), typos in the type field, or older configs using names removed/renamed in newer Thanos versions (e.g. lightstep deprecation).

Related errors


AI-assisted analysis of thanos-io/thanos@35b8b99117 (2026-09-07). Data as JSON: /api/errors/60764a51b9c88a96. Report an issue: GitHub.

Appendix: source

Thrown at pkg/tracing/client/factory.go:86

		tracerProvider, err := jaeger.NewTracerProvider(ctx, logger, config)
		if err != nil {
			return nil, nil, errors.Wrap(err, "new tracer provider err")
		}
		tracer, closerFunc := migration.Bridge(tracerProvider, logger)
		return tracer, closerFunc, nil
	case string(ElasticAPM):
		return elasticapm.NewTracer(config)
	case string(Lightstep):
		return lightstep.NewTracer(ctx, config)
	case string(OpenTelemetryProtocol):
		tracerProvider, err := otlp.NewTracerProvider(ctx, logger, config)
		if err != nil {
			return nil, nil, errors.Wrap(err, "new tracer provider err")
		}
		tracer, closerFunc := migration.Bridge(tracerProvider, logger)
		return tracer, closerFunc, nil
	default:
		return nil, nil, errors.Errorf("tracing with type %s is not supported", tracingConf.Type)
	}
}

func NoopTracer() opentracing.Tracer {
	return &opentracing.NoopTracer{}
}

View on GitHub (pinned to 35b8b99117)