Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Opentelemetry exporters can be programmatically activated/deactivated using the SDK API of the chosen language.

In Python, for example, you can create an exporter and register/unregister it using the trace_provider module:

from opentelemetry import trace
from opentelemetry.exporter.otlp.trace_exporter import OTLPSpanExporter
from opentelemetry.sdk.trace import TracerProvider

# Create an exporter
exporter = OTLPSpanExporter()

# Create a tracer provider and register the exporter
trace_provider = TracerProvider()
trace_provider.add_span_processor(SimpleExportSpanProcessor(exporter))

# Disable the exporter
trace.set_tracer_provider(None)

Similarly, in Java, you can use the TracerSdkProvider class and its addSpanProcessor() and shutdown() methods:

import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter;
import io.opentelemetry.sdk.trace.SdkTracerProvider;
import io.opentelemetry.sdk.trace.export.SpanExporter;
import io.opentelemetry.sdk.trace.export.SpanExporter.SpanExportingExceptionHandler;

// Create an exporter
SpanExporter exporter = OtlpGrpcSpanExporter.newBuilder().build();

// Create a tracer provider and register the exporter
SdkTracerProvider tracerProvider = SdkTracerProvider.builder()
    .addSpanProcessor(
        SimpleSpanProcessor.newBuilder(exporter).build(),
        SpanExportingExceptionHandler.logging())
    .build();

// Disable the exporter
tracerProvider.shutdown();