sgl-project/sglang · error · RuntimeError

opentelemetry package is not installed!!! Please not enable…

Error message

opentelemetry package is not installed!!! Please not enable tracing or install opentelemetry

What it means

Emitted when tracing is enabled (--enable-trace or equivalent) but the opentelemetry package is not installed in the environment. Tracing is disabled / initialization fails; either install opentelemetry (opentelemetry-api, -sdk, -exporter-otlp) or turn off tracing.

Solutions

  1. pip install opentelemetry-sdk opentelemetry-exporter-otlp (or sglang[tracing] extra if provided)
  2. Or disable tracing (remove --enable-tracing / trace config) to launch without otel
  3. Verify with python -c 'import opentelemetry.sdk' before relaunching

Example fix

# before: launch fails with RuntimeError
python -m sglang.launch_server --model ... --enable-tracing
# after
pip install opentelemetry-sdk opentelemetry-exporter-otlp
python -m sglang.launch_server --model ... --enable-tracing
Defensive patterns

Strategy: validation

Validate before calling

try:
    import opentelemetry.sdk, opentelemetry.exporter.otlp.proto.grpc.trace_exporter  # noqa
    otel_ok = True
except ImportError:
    otel_ok = False
assert otel_ok or not enable_tracing, 'tracing requires opentelemetry packages'

Try / catch

try:
    process_tracing_init(...)
except RuntimeError as e:
    if 'opentelemetry package is not installed' in str(e):
        disable_tracing_and_retry_launch()
    else:
        raise

Prevention

When it happens

Trigger: Launching sglang with --enable-tracing (or trace-related args) in an environment where opentelemetry-sdk / opentelemetry-exporter-otlp are not installed.

Common situations: Enabling tracing on a base sglang install; slim containers; dependency conflicts removing otel packages after an upgrade.

Understand the failure class

Background: "X is not installed. Please install it with pip install Y": missing optional dependency errors — ImportError/ValueError raised when a library's optional extra was never installed — this error's family across 22 libraries.

Related errors


AI-assisted analysis of sgl-project/sglang@0132848349 (2026-08-28). Data as JSON: /api/errors/3838ada2f0015636. Report an issue: GitHub.

Appendix: source

Thrown at python/sglang/srt/observability/trace.py:226


# Should be called by each tracked process.
def process_tracing_init(
    otlp_endpoint, server_name, trace_modules: Optional[str] = None
):
    global opentelemetry_initialized
    global get_cur_time_ns
    global tracer
    global global_trace_modules

    if trace_modules is not None:
        global_trace_modules = [
            module.strip() for module in trace_modules.split(",") if module.strip()
        ]

    if not opentelemetry_imported:
        opentelemetry_initialized = False
        raise RuntimeError(
            "opentelemetry package is not installed!!! Please not enable tracing or install opentelemetry"
        )

    try:
        resource = Resource.create(
            attributes={
                SERVICE_NAME: server_name,
            }
        )
        tracer_provider = TracerProvider(
            resource=resource, id_generator=TraceCustomIdGenerator()
        )

        schedule_delay_millis = envs.SGLANG_OTLP_EXPORTER_SCHEDULE_DELAY_MILLIS.get()
        max_export_batch_size = envs.SGLANG_OTLP_EXPORTER_MAX_EXPORT_BATCH_SIZE.get()

        processor = BatchSpanProcessor(
            span_exporter=get_otlp_span_exporter(otlp_endpoint),

View on GitHub (pinned to 0132848349)