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();