symfonic.observability.otel.kernel_sink¶
kernel_sink ¶
OpenTelemetry projection of the kernel's single ordered event stream.
KernelOTelSink ¶
KernelOTelSink(*, endpoint: str | None, service_name: str, policy: TracePolicy, span_exporter: SpanExporter | None = None)
Create a root turn span and an ordered child span for every event.
Source code in src/symfonic/observability/otel/kernel_sink.py
bind_run ¶
bind_run(run_id: str, *, root_run_id: str = '', parent_run_id: str | None = None, tenant_id: str = '', session_id: str = '') -> None
Add attribution once the telemetry stage knows the conversation.
Source code in src/symfonic/observability/otel/kernel_sink.py
capture_model_round ¶
Attach privacy-gated model input/output without widening KernelEvent.
The ordinary kernel event stream is metadata-only because it also feeds durable operational storage. Engineering content is a privileged OTel projection and therefore crosses this explicit, policy-gated seam.