Uh oh!
There was an error while loading. Please reload this page.
feat(vm): export driver traces over OTLP - #2564
Conversation
🌿 Preview your docs:https://nvidia-preview-pr-2564.docs.buildwithfern.com/openshell |
498b495 to
32b368bCompareAuto-sync is disabled for draft pull requests in this repository. Workflows must be run manually. Contributors can view more details about this message here. |
32b368b to
47cd4ebCompare72dfb6a to
43cce78Compare5faf418 to
c3de0c8CompareUh oh!
There was an error while loading. Please reload this page.
9b888d6 to
d4ae496CompareUh oh!
There was an error while loading. Please reload this page.
d4ae496 to
2bad42fCompare
matthewgrossman
left a comment
There was a problem hiding this comment.
Generated with help from Codex.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
matthewgrossman
left a comment
There was a problem hiding this comment.
Generated with help from Codex.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
2bad42f to
98659dbCompareContinue distributed traces across the gateway-to-driver process boundary and export VM driver spans to the same OTLP/gRPC collector. The driver reports as the distinct openshell-driver-vm service. Updated the gateway architecture and configuration reference with a generic external-driver forwarding contract. Instrumented: - Every RemoteComputeDriver RPC injects the active W3C trace context into tonic metadata. Managed VM readiness and runtime initialization give startup capability probes stable parent operations rather than isolated root spans. - A tonic service layer creates fixed, low-cardinality server spans for every ComputeDriver RPC. New handlers inherit tracing automatically; failures record OpenTelemetry error status and the gRPC status code. - Background provisioning remains attached to CreateSandbox after the RPC returns without extending the RPC span lifetime. - Provisioning records image preparation, bootstrap image resolution, overlay preparation, lifecycle configuration, pre-launch hooks, guest preparation, and launcher spawn as child spans. - VM startup reconciliation roots one trace for the persisted-sandbox scan, with per-sandbox restore and provision operations beneath it. The root remains open until all spawned restore tasks finish. - Delete cleanup records its own child operation. Design notes: - The gateway forwards its configured OTLP endpoint to managed external drivers. SDK `OTEL_*` variables continue to own sampling, batching, limits, headers, and transport tuning. - The VM driver has its own tracer provider and service resource so trace backends preserve the service boundary. - RPC operation names come from an explicit method mapping, keeping cardinality bounded without parsing the protobuf descriptor set at runtime. - Propagation uses a remote SpanContext for spawned provisioning. This keeps one trace while allowing the CreateSandbox server span to finish when the RPC response is sent. - Startup restoration is independent of gateway requests. It begins at the VM driver reconciliation span rather than attaching to an unrelated RPC. - Existing tracing events remain on the logging path. The OpenTelemetry layer exports spans only and excludes the SDK exporter callsites to avoid recursive traces. - Export configuration failures do not prevent the driver from serving, and buffered spans are drained during graceful shutdown. - Trace fields identify drivers, sandboxes, images, lifecycle phases, and gRPC outcomes without recording credentials, sandbox tokens, or request query parameters. Refs #2507 Signed-off-by: Kris Hicks <khicks@nvidia.com>
98659db to
d50ac12Comparekrishicks
commented
Aug 3, 2026
I think all the feedback has been addressed. |
Uh oh!
There was an error while loading. Please reload this page.
Summary
Continue distributed traces across the gateway-to-driver process boundary and export VM driver spans to the same OTLP/gRPC collector. The driver reports as the distinct openshell-driver-vm service.
Updated the gateway architecture and configuration reference with a generic external-driver forwarding contract.
Related Issue
Refs #2507
Changes
Instrumented:
Design notes:
OTEL_*variables continue to own sampling, batching, limits, headers, and transport tuning.Testing
mise run pre-commitpassesChecklist