Skip to content

Commit 48163f1

Browse files
fix: support 'none' value for OTEL exporters to disable telemetry
- 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
1 parent c4e21cc commit 48163f1

3 files changed

Lines changed: 15 additions & 3 deletions

File tree

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 0.0.42
2+
3+
* **Support "none" value for OTEL_TRACES_EXPORTER and OTEL_METRICS_EXPORTER** - Filter "none" from exporter lists and return None when no exporters configured to properly disable OpenTelemetry instrumentation
4+
15
## 0.0.39
26

37
* **Remove wrap_error logic as exceptions are categorized in unstructured-ingest**
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "0.0.41" # pragma: no cover
1+
__version__ = "0.0.42" # pragma: no cover

unstructured_platform_plugins/etl_uvicorn/otel.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,18 +30,23 @@ def get_settings() -> OtelSettings:
3030
service_name = os.environ.get(OTEL_SERVICE_NAME, "unknown_service")
3131
trace_exporters = os.environ.get(OTEL_TRACES_EXPORTER)
3232
trace_exporters = trace_exporters.split(",") if trace_exporters else []
33+
trace_exporters = [e for e in trace_exporters if e != "none"]
3334

3435
metric_exporters = os.environ.get(OTEL_METRICS_EXPORTER)
3536
metric_exporters = metric_exporters.split(",") if metric_exporters else []
37+
metric_exporters = [e for e in metric_exporters if e != "none"]
3638
return OtelSettings(
3739
service_name=service_name,
3840
trace_exporters=trace_exporters,
3941
metric_exporters=metric_exporters,
4042
)
4143

4244

43-
def get_trace_provider() -> TracerProvider:
45+
def get_trace_provider() -> TracerProvider | None:
4446
settings = get_settings()
47+
if not settings["trace_exporters"]:
48+
return None
49+
4550
provider = TracerProvider(resource=Resource({SERVICE_NAME: settings["service_name"]}))
4651

4752
for trace_exporter_type in settings["trace_exporters"]:
@@ -50,8 +55,11 @@ def get_trace_provider() -> TracerProvider:
5055
return provider
5156

5257

53-
def get_metric_provider() -> MeterProvider:
58+
def get_metric_provider() -> MeterProvider | None:
5459
settings = get_settings()
60+
if not settings["metric_exporters"]:
61+
return None
62+
5563
readers = []
5664
for metric_exporter_type in settings["metric_exporters"]:
5765
readers.append(_get_metrics_reader(exporter_type=metric_exporter_type))

0 commit comments

Comments
 (0)