Add optional OpenTelemetry tracing hooks to the Python SDK
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 8.7k
- Forks
- 1.3k
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 253
Description
Motivation
OpenShell users need visibility into remote execution latency, failures, and gateway interactions. Optional OpenTelemetry hooks would improve observability without forcing tracing dependencies into the core install.
Proposed change
Auto-detect OpenTelemetry when installed and emit spans around major Python SDK operations such as connection setup, execution calls, and teardown. The implementation should be no-op when OpenTelemetry is not installed or not configured.
Acceptance criteria
- Do not add a hard dependency on OpenTelemetry in the core package.
- Emit spans for major SDK operations with useful attributes such as operation name, gateway target, status, and error type.
- Add tests using a mocked or in-memory tracer provider.
- Document how to enable tracing.
Notes
This is intended as an SDK-only change.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files or tests are named. Start by locating the Python SDK's connection setup, execution, and teardown entry points, then review how optional dependencies are handled. Done means optional tracing emits useful spans without a core OpenTelemetry dependency, tests cover a mocked or in-memory tracer, and enablement is documented.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api, observability
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100