You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add a public llmobs/export package: an offline client for exporting
already-built LLM Observability spans and evaluations to Datadog intake
(direct) or through the Agent EVP proxy. This is an export/transport API,
not live instrumentation — it never starts the tracer, depends on the live
LLM Obs lifecycle, or replays payloads through StartSpan/Finish.
Implements the "Raw LLM Observability Export" part of the RFC. It lets
offline reconstruction tools (e.g. Trajectory) depend on the SDK for the
export mechanics — endpoint derivation, auth, HTTP, retry classification,
size handling, and structured per-request results — while keeping
reconstruction, projection, privacy, dedup and durable retry above the SDK.
- Client.ExportSpans / ExportEvaluations over caller-built SpanEvent /
EvaluationMetric payloads, lowered to the LLM Obs wire shape.
- Caller-assigned trace/span/parent IDs preserved verbatim as opaque
string payload fields; never routed into APM span IDs or sampling.
- Chunking (50 spans, 1000 evals per request), best-effort 5MB size guard
(truncates input/output), and per-request ExportResult with validation
attribution.
- Datadog route (DD-API-KEY) and Agent EVP route; reuses the internal LLM
Obs transport for auth/routing/retry via a new transport.Post primitive.
Multi-destination is modeled as one isolated Client per destination. A
sibling otlp/export package is a stacked follow-up.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Please view our contrib [README.md](contrib/README.md) for information on integrations. If you need support for a new integration, please file an issue to discuss before opening a PR.
298
298
299
+
### Offline export clients
300
+
301
+
The [`llmobs/export`](./llmobs/export) package provides an offline client for exporting already-built LLM Observability spans and evaluations directly to Datadog intake or through the Agent EVP proxy. It is an export/transport API — not live instrumentation — for tools that reconstruct telemetry offline and need the SDK to own endpoint derivation, auth, retry, size handling, and structured results. Caller-assigned IDs are preserved as opaque payload fields and are never routed into APM span IDs or sampling. A sibling `otlp/export` package for offline OTLP trace/metric/log export is planned as a follow-up.
302
+
299
303
### Working with environment variables
300
304
301
305
When working with environment variables, direct use of `os.Getenv` and `os.LookupEnv` is not permitted. Instead, all environment variables must be validated against an [allowed list](./internal/env/supported_configurations.gen.go) using `env.Get` and `env.Lookup` from the [`internal/env`](./internal/env.go) package (or [`instrumentation/env`](./instrumentation/env/env.go) when working on contrib packages). This validation system helps us automatically detect newly introduced variables and ensures they are properly documented and tracked.
0 commit comments