mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-12 03:48:56 +00:00
* feat(dev): seed linked tracing and spend fixtures * chore(dev): use OpenAI model in tracing config * chore(dev): align tracing credentials with UI E2E * fix(dev): update fixture seeder query scope * feat(dev): seed linked tracing and spend fixtures * chore(dev): use OpenAI model in tracing config * chore(dev): align tracing credentials with UI E2E * fix(dev): update fixture seeder query scope * wip * wip * wip * chore(trace): checkpoint ongoing Rust migration * refactor(trace): group Python bridge under trace package * refactor(traces): read span conventions through a Convention trait Each span format (Claude Code, LangSmith, OpenInference, gen_ai) now lives under normalize/convention/ as a unit struct implementing Convention, owning both its detection and its extraction. Precedence is one ordered registry instead of an if-chain in mod.rs that reached into each module differently. The modules now share one way to read attributes: present() for the first non-empty key and Payload for a text that also reports the key it consumed, replacing three different idioms and the &mut Vec threaded through payload readers. Instrumentation::adjust returns a new Extraction instead of mutating one, with each SDK rule as its own function, and the LangChain middleware suffix list exists once. * feat(trace): export Rust-owned wire schemas and enforce contract bounds * fix(trace): bound quoted counts in ClickHouse wire schemas * feat(trace): generate Python wire contracts with datamodel-code-generator * test(trace): validate migrated callers and generated contracts at the native boundary * refactor(traces): rename normalization convention to format * fix(traces): reconcile spend evidence and preserve unknown costs * feat(traces): normalize additional telemetry formats * test(traces): cover captured normalization fixtures * refactor(traces): isolate SDK normalization rules * feat(tracing): seed all trace exports for local dashboard * fix(clickhouse): preserve custom LiteLLM request metadata * docs(traces): define normalization module boundaries * docs(traces): define resolution and OTLP boundaries * fix(ui): normalize nullable trace message names * refactor(traces): split resolver modules and cover resolution behavior * test(traces): replace normalization snapshots with behavior assertions * fix(ui): align dashboard API contracts with generated types * refactor(traces): type normalization and storage boundaries * fix(traces): seed captured SDK spend and preserve provider identities * wip * test(traces): verify guide discovery and content ordering --------- Co-authored-by: Yujong Lee <yujong@berri.ai> Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
161 lines
3.4 KiB
JSON
161 lines
3.4 KiB
JSON
{
|
|
"$defs": {
|
|
"SpanStatus": {
|
|
"enum": [
|
|
"ok",
|
|
"error",
|
|
"unset"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"TraceSummary": {
|
|
"properties": {
|
|
"agent_count": {
|
|
"format": "uint64",
|
|
"maximum": 18446744073709551615,
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"agent_invocations": {
|
|
"format": "uint64",
|
|
"maximum": 18446744073709551615,
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"agent_names": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"x-python-optional": true
|
|
},
|
|
"duration_ms": {
|
|
"format": "double",
|
|
"type": "number"
|
|
},
|
|
"error_count": {
|
|
"format": "uint64",
|
|
"maximum": 18446744073709551615,
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"frameworks": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array",
|
|
"x-python-optional": true
|
|
},
|
|
"input_preview": {
|
|
"type": "string"
|
|
},
|
|
"input_tokens": {
|
|
"format": "uint64",
|
|
"maximum": 18446744073709551615,
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"llm_calls": {
|
|
"format": "uint64",
|
|
"maximum": 18446744073709551615,
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"models": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"output_tokens": {
|
|
"format": "uint64",
|
|
"maximum": 18446744073709551615,
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"service": {
|
|
"type": "string"
|
|
},
|
|
"span_count": {
|
|
"format": "uint64",
|
|
"maximum": 18446744073709551615,
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"spend": {
|
|
"format": "double",
|
|
"type": [
|
|
"number",
|
|
"null"
|
|
]
|
|
},
|
|
"start_time": {
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"$ref": "#/$defs/SpanStatus"
|
|
},
|
|
"tool_calls": {
|
|
"format": "uint64",
|
|
"maximum": 18446744073709551615,
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"trace_id": {
|
|
"type": "string"
|
|
},
|
|
"trace_ref": {
|
|
"type": "string",
|
|
"x-python-optional": true
|
|
}
|
|
},
|
|
"required": [
|
|
"trace_id",
|
|
"trace_ref",
|
|
"name",
|
|
"service",
|
|
"agent_names",
|
|
"frameworks",
|
|
"input_preview",
|
|
"start_time",
|
|
"duration_ms",
|
|
"status",
|
|
"span_count",
|
|
"agent_count",
|
|
"agent_invocations",
|
|
"llm_calls",
|
|
"tool_calls",
|
|
"error_count",
|
|
"input_tokens",
|
|
"output_tokens",
|
|
"models",
|
|
"spend"
|
|
],
|
|
"type": "object"
|
|
}
|
|
},
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"properties": {
|
|
"data": {
|
|
"items": {
|
|
"$ref": "#/$defs/TraceSummary"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"next_cursor": {
|
|
"type": [
|
|
"string",
|
|
"null"
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"next_cursor"
|
|
],
|
|
"title": "TracePage",
|
|
"type": "object"
|
|
}
|