Skip to content

Conversation

@micmarty-deepsense
Copy link

@micmarty-deepsense micmarty-deepsense commented Jan 27, 2026

Problem

When OTEL_TRACES_EXPORTER=none or OTEL_METRICS_EXPORTER=none is set, plugin pods crash on startup with:

Real-world scenario

In in-vpc or single-node clusters, you might notice this issue in plugin pods (created by the job-execution-operator) when you set those environment variables in the JOB_ENV_VARS block.

https://github.com/Unstructured-IO/platform-applications-cd/blob/9cf7335f3fe620106c61da208c12d44539d743bc/apps/dataplane/etl-operator/values.yaml#L52

NotImplementedError: none implementation not supported yet

Root cause: The code splits the env var by comma but doesn't filter "none", then tries to initialize exporters for it, hitting the NotImplementedError in _add_trace_exporter() and _get_metrics_reader().

Solution

1. Filter "none" from exporter lists (lines 33, 37)

trace_exporters = [e for e in trace_exporters if e != "none"]
metric_exporters = [e for e in metric_exporters if e != "none"]

2. Return None when no exporters configured (lines 45-49, 59-63)

def get_trace_provider() -> TracerProvider | None:
    settings = get_settings()
    if not settings["trace_exporters"]:
        return None  # Let OTEL SDK use default no-op
    ...

Compatibility

FastAPIInstrumentor.instrument_app() explicitly supports None values for tracer_provider and meter_provider parameters (defaults to None). When None, OTEL SDK uses its built-in no-op providers.

Testing

Before: Plugin crashes with NotImplementedError
After: Plugin starts successfully with telemetry disabled

Changes

  • Filter "none" from OTEL_TRACES_EXPORTER and OTEL_METRICS_EXPORTER env vars
  • Return None from get_trace_provider/get_metric_provider when exporters list empty
  • Bump version 0.0.41 → 0.0.42
  • Update CHANGELOG.md

Deployment

  1. After merge, we need to rebuild platform-plugins images (auto-picks latest version)
  2. Cut a new platform release

- Filter "none" from OTEL_TRACES_EXPORTER and OTEL_METRICS_EXPORTER
- Return None from get_trace_provider/get_metric_provider when no exporters
- Prevents NotImplementedError on plugin startup with OTEL disabled
- Bump version 0.0.41 → 0.0.42

Fixes plugin crash when OTEL_TRACES_EXPORTER=none or OTEL_METRICS_EXPORTER=none
@micmarty-deepsense micmarty-deepsense changed the title fix: support 'none' value for OTEL exporters to disable telemetry fix(UNTRACKED): support 'none' value for OTEL exporters to disable telemetry Jan 27, 2026
@micmarty-deepsense micmarty-deepsense changed the title fix(UNTRACKED): support 'none' value for OTEL exporters to disable telemetry fix(UNTRACKED): support "none" value for OTEL exporters to disable telemetry Jan 27, 2026
@micmarty-deepsense micmarty-deepsense self-assigned this Jan 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants