feat(trace): support SGLANG_TRACE_LEVEL env var for startup trace level (#24716)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
2e69266f84
commit
95985f983d
@@ -52,9 +52,14 @@ This section explains how to configure the request tracing and export the trace
|
|||||||
0: disable tracing
|
0: disable tracing
|
||||||
1: Trace important slices
|
1: Trace important slices
|
||||||
2: Trace all slices except nested ones
|
2: Trace all slices except nested ones
|
||||||
3: Trace all slices
|
3: Trace all slices (default)
|
||||||
```
|
```
|
||||||
The trace level can be dynamically set via HTTP API, for example:
|
**At startup** — set `SGLANG_TRACE_LEVEL` before launching the server:
|
||||||
|
```bash
|
||||||
|
SGLANG_TRACE_LEVEL=2 python -m sglang.launch_server --enable-trace --otlp-traces-endpoint 0.0.0.0:4317 <other options>
|
||||||
|
```
|
||||||
|
|
||||||
|
**At runtime** — dynamically adjust via HTTP API without restarting:
|
||||||
```bash
|
```bash
|
||||||
curl http://0.0.0.0:30000/set_trace_level?level=2
|
curl http://0.0.0.0:30000/set_trace_level?level=2
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ opentelemetry_initialized = False
|
|||||||
_trace_context_propagator = None
|
_trace_context_propagator = None
|
||||||
tracer: Optional[trace.Tracer] = None
|
tracer: Optional[trace.Tracer] = None
|
||||||
|
|
||||||
global_trace_level = 3
|
global_trace_level = get_int_env_var("SGLANG_TRACE_LEVEL", 3)
|
||||||
|
|
||||||
TRACE_HEADERS = ["traceparent", "tracestate"]
|
TRACE_HEADERS = ["traceparent", "tracestate"]
|
||||||
|
|
||||||
|
|||||||
@@ -56,6 +56,15 @@ class TestTraceFunctions(unittest.TestCase):
|
|||||||
self.assertEqual(mod.global_trace_level, 5)
|
self.assertEqual(mod.global_trace_level, 5)
|
||||||
mod.global_trace_level = orig
|
mod.global_trace_level = orig
|
||||||
|
|
||||||
|
def test_global_trace_level_env_var(self):
|
||||||
|
import importlib
|
||||||
|
|
||||||
|
with patch.dict(os.environ, {"SGLANG_TRACE_LEVEL": "2"}):
|
||||||
|
importlib.reload(mod)
|
||||||
|
self.assertEqual(mod.global_trace_level, 2)
|
||||||
|
importlib.reload(mod) # restore default (SGLANG_TRACE_LEVEL unset → 3)
|
||||||
|
self.assertEqual(mod.global_trace_level, 3)
|
||||||
|
|
||||||
def test_get_global_tracing_enabled(self):
|
def test_get_global_tracing_enabled(self):
|
||||||
self.assertEqual(get_global_tracing_enabled(), mod.opentelemetry_initialized)
|
self.assertEqual(get_global_tracing_enabled(), mod.opentelemetry_initialized)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user