Skip to content

feat(docker): export driver traces over OTLP - #2851

Open
krishicks wants to merge 1 commit into
mainfrom
hicks/push-mxvulrnqtzxq
Open

feat(docker): export driver traces over OTLP#2851
krishicks wants to merge 1 commit into
mainfrom
hicks/push-mxvulrnqtzxq

Conversation

@krishicks

Copy link
Copy Markdown
Collaborator

Summary

Mirror the VM and Podman driver tracing setup for Docker. Export Docker driver spans through OTLP/gRPC as the distinct openshell-driver-docker service, preserve gateway trace context, record lifecycle and asynchronous provisioning operations, and report gRPC failures.

Docker currently runs in-process when selected as a built-in gateway driver. Add the same temporary server-boundary shim used by Podman so traces retain the shape they will have when Docker moves to a separate process. Generalize the gateway provider selection for both in-process drivers and share the OTLP collector fixture across Docker, Podman, and VM tracing tests.

This also introduces the openshell-otel-test-support crate, which provides a shared loopback OTLP/gRPC collector fixture for Docker, Podman, and VM tracing tests. It captures exported spans and service names, waits for an export, and handles collector shutdown.

A separate crate lets all three use the fixture as a dev-dependency while:

  • Avoiding duplicated collector implementations.
  • Keeping test-only OTLP server dependencies out of production binaries.
  • Avoiding a public test-support feature on openshell-otel, which could be enabled
    through Cargo feature unification.
image

Related Issue

#1055
#2507

Changes

Testing

  • mise run pre-commit passes
  • Unit tests added/updated
  • E2E tests added/updated (if applicable)

Checklist

  • Follows Conventional Commits
  • Commits are signed off (DCO)
  • Architecture docs updated (if applicable)

@krishicks
krishicks force-pushed the hicks/push-mxvulrnqtzxq branch from 6b81d9e to 1eb0de4 Compare August 20, 2026 22:49
@github-actions

Copy link
Copy Markdown

@johntmyers johntmyers left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

PR Review Status

Validation: Project-valid observability work under roadmap issue #1055 and the gateway OpenTelemetry design in #2507.
Head SHA: 1eb0de44e898a80b2af9c148a252cb477eb48cce
Base SHA: ef296806f52c03956a4bb7ce9a384105160f9c6a
Merge base SHA: ef296806f52c03956a4bb7ce9a384105160f9c6a
Patch ID: 5306193da05a425d1b9908d4b1f4dc43a2232492
Gator payload: 4
Review mode: initial
Previous reviewed SHA: none
Review budget exhausted: no
Maintainer decision required: no

Blocking findings:

  • GATOR-1eb0de44-01: The background Docker provisioning task retains the completed scheduling-operation span for its full lifetime, making docker.schedule_sandbox duration and export timing incorrect.

Carried findings:

  • None

Non-blocking suggestions:

  • None

Docs: The gateway configuration reference and architecture overview are updated; no additional Fern navigation change is needed for this tracing implementation.

Next state: gator:in-review

Comment thread crates/openshell-driver-docker/src/lib.rs Outdated
@johntmyers johntmyers added gator:in-review Gator is reviewing or awaiting PR review feedback gator:blocked Gator is blocked by process or repository gates and removed gator:in-review Gator is reviewing or awaiting PR review feedback labels Aug 20, 2026
Mirror the VM and Podman driver tracing setup for Docker. Export Docker
driver spans through OTLP/gRPC as the distinct openshell-driver-docker
service, preserve gateway trace context, record lifecycle and asynchronous
provisioning operations, and report gRPC failures.

Docker currently runs in-process when selected as a built-in gateway driver.
Add the same temporary server-boundary shim used by Podman so traces retain
the shape they will have when Docker moves to a separate process. Generalize
the gateway provider selection for both in-process drivers and share the OTLP
collector fixture across Docker, Podman, and VM tracing tests.

Signed-off-by: Kris Hicks <khicks@nvidia.com>
@krishicks
krishicks force-pushed the hicks/push-mxvulrnqtzxq branch from 1eb0de4 to 45aea6f Compare August 21, 2026 15:41
@johntmyers johntmyers added the test:e2e Requires end-to-end coverage label Aug 21, 2026
@github-actions

Copy link
Copy Markdown

Label test:e2e applied for 45aea6f. Open the existing run and click Re-run all jobs to execute with the label set. The run will execute the standard E2E suite after building the required gateway and supervisor images once. The matching required CI gate status on this PR will flip green automatically once the run finishes.

@johntmyers johntmyers left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gator-agent

PR Review Status

Validation: Project-valid observability work under roadmap issue #1055 and the gateway OpenTelemetry design in #2507.
Head SHA: 45aea6f39b4b9d462dd6f653544a863863ded00c
Base SHA: de4c1fecf564cd16854447ec9c08659e7b64061b
Merge base SHA: de4c1fecf564cd16854447ec9c08659e7b64061b
Patch ID: e953603a47f25777aba085d0bd6bd2fb5f96b8bb
Gator payload: 4
Review mode: follow_up
Previous reviewed SHA: 1eb0de44e898a80b2af9c148a252cb477eb48cce
Review budget exhausted: no
Maintainer decision required: no

Thanks @krishicks. I checked the update that replaces the retained scheduling span with a distinct docker.provision child span and adds a regression test proving the scheduling span completes while provisioning remains pending. That resolves GATOR-1eb0de44-01.

Blocking findings:

  • No blocking findings remain.

Carried findings:

  • None; GATOR-1eb0de44-01 is resolved by this head.

Docs: The gateway configuration reference and architecture overview are updated; no additional Fern navigation change is needed for this tracing implementation.

E2E: test:e2e is applied. The E2E Label Help bot requires re-running current-head workflow run 32499002864; dispatch is awaiting approval of the sandbox's exact-endpoint policy proposal.

Next state: gator:blocked
Blocked reason: test_dispatch_required

@johntmyers johntmyers added gator:watch-pipeline Gator is monitoring PR CI/CD status gator:approval-needed Gator completed review; maintainer approval needed and removed gator:blocked Gator is blocked by process or repository gates gator:watch-pipeline Gator is monitoring PR CI/CD status labels Aug 21, 2026
@johntmyers johntmyers added gator:merge-ready and removed gator:approval-needed Gator completed review; maintainer approval needed labels Aug 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gator:merge-ready test:e2e Requires end-to-end coverage

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants