fix: record JSON-RPC errors on client OpenTelemetry spans - #3401
fix: record JSON-RPC errors on client OpenTelemetry spans#3401mikemikimike wants to merge 1 commit into
Conversation
|
This PR has been closed automatically. This repo only keeps pull requests open when they come from a maintainer, or from a contributor a maintainer has assigned to the linked issue, and you aren't currently assigned to #3174. If a maintainer assigns you to #3174, this PR reopens on its own and there's nothing more you need to do here. Assignment is a maintainer call based on capacity; comments that only ask to be assigned don't factor in. What does help is engaging on the issue itself by confirming the repro, explaining why it matters for your use case, or describing the approach you'd take. You're welcome to keep pushing commits here (just avoid force-pushing, since GitHub can't reopen a rewritten branch), but that on its own won't get the PR reviewed or the issue assigned, and realistically most auto-closed PRs stay closed. There's no need to open a new PR either way. CONTRIBUTING.md has the full reasoning, but in short:
Maintainers: reopen, remove |
Summary
Client OpenTelemetry spans did not record JSON-RPC error responses because
ErrorDatawas converted toMCPErrorafter the span context exited. This made failed client requests indistinguishable from successful requests in telemetry.This change records
StatusCode.ERROR,error.type, andrpc.response.status_codewhile the client span is still active. The existingMCPErrorbehavior is unchanged.Tests
uv run --frozen pytest tests/server/test_otel.py -q(17 passed)uv run --frozen ruff check src/mcp/shared/jsonrpc_dispatcher.py tests/server/test_otel.pyuv run --frozen ruff format --check src/mcp/shared/jsonrpc_dispatcher.py tests/server/test_otel.pyuv run --frozen pyright src/mcp/shared/jsonrpc_dispatcher.py tests/server/test_otel.pyPYTHONUTF8=1: 5574 passed, 16 skipped, 1 xfailed; one unrelated local HTTP 502 failure intests/client/test_transport_stream_cleanup.py::test_sse_client_closes_all_streams_on_connection_error.AI assistance was used during development, and the change was reviewed and verified locally.
Fixes #3174