Skip to content

[Diagnostics] Add GraphQL request spans to adapters#9684

Merged
tobias-tengler merged 4 commits into
mainfrom
tte/add-graphql-request-spans-to-adapters
May 12, 2026
Merged

[Diagnostics] Add GraphQL request spans to adapters#9684
tobias-tengler merged 4 commits into
mainfrom
tte/add-graphql-request-spans-to-adapters

Conversation

@tobias-tengler
Copy link
Copy Markdown
Member

No description provided.

@tobias-tengler tobias-tengler marked this pull request as ready for review May 12, 2026 16:32
Copilot AI review requested due to automatic review settings May 12, 2026 16:32
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR extends HotChocolate diagnostics instrumentation to cover GraphQL execution triggered by the OpenAPI and MCP adapters (including Fusion adapters), ensuring GraphQL request spans are emitted even when execution happens outside the normal /graphql transport middleware.

Changes:

  • Wrapped OpenAPI adapter endpoint execution in an IServerDiagnosticEvents.ExecuteHttpRequest(...) scope to produce GraphQL request spans.
  • Wrapped MCP tools/call GraphQL execution in an ExecuteHttpRequest(...) scope to emit GraphQL request spans for tool execution.
  • Added/updated adapter-specific activity snapshot tests (and conditional test project references) for net9.0+.

Reviewed changes

Copilot reviewed 28 out of 28 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/HotChocolate/Fusion/test/Fusion.Diagnostics.Tests/HotChocolate.Fusion.Diagnostics.Tests.csproj Conditionally references Fusion OpenAPI/MCP adapters for net9.0+ test execution.
src/HotChocolate/Fusion/test/Fusion.Diagnostics.Tests/FusionOpenApiAdapterActivityTests.cs Adds Fusion OpenAPI adapter activity tests (net9.0+).
src/HotChocolate/Fusion/test/Fusion.Diagnostics.Tests/FusionMcpAdapterActivityTests.cs Adds Fusion MCP adapter activity tests with snapshot scrubbing (net9.0+).
src/HotChocolate/Fusion/test/Fusion.Diagnostics.Tests/snapshots/FusionOpenApiAdapterActivityTests.Http_Get_OpenApi.snap Snapshot for successful Fusion OpenAPI GET execution spans.
src/HotChocolate/Fusion/test/Fusion.Diagnostics.Tests/snapshots/FusionOpenApiAdapterActivityTests.Http_Get_OpenApi_GraphQL_Field_Error.snap Snapshot for Fusion OpenAPI GET with GraphQL execution error spans.
src/HotChocolate/Fusion/test/Fusion.Diagnostics.Tests/snapshots/FusionOpenApiAdapterActivityTests.Http_Get_OpenApi_Field_Does_Not_Exist.snap Snapshot for Fusion OpenAPI route with invalid GraphQL selection.
src/HotChocolate/Fusion/test/Fusion.Diagnostics.Tests/snapshots/FusionOpenApiAdapterActivityTests.Http_Get_OpenApi_Endpoint_Does_Not_Exist.snap Snapshot for Fusion OpenAPI 404 path behavior.
src/HotChocolate/Fusion/test/Fusion.Diagnostics.Tests/snapshots/FusionMcpAdapterActivityTests.Mcp_GetPrompt.snap Snapshot for Fusion MCP prompt retrieval spans (with scrubbed session id).
src/HotChocolate/Fusion/test/Fusion.Diagnostics.Tests/snapshots/FusionMcpAdapterActivityTests.Mcp_CallTool.snap Snapshot for Fusion MCP successful tool call spans including nested GraphQL execution.
src/HotChocolate/Fusion/test/Fusion.Diagnostics.Tests/snapshots/FusionMcpAdapterActivityTests.Mcp_CallTool_Tool_Does_Not_Exist.snap Snapshot for Fusion MCP tool-not-found error spans.
src/HotChocolate/Fusion/test/Fusion.Diagnostics.Tests/snapshots/FusionMcpAdapterActivityTests.Mcp_CallTool_GraphQL_Field_Error.snap Snapshot for Fusion MCP tool call producing GraphQL execution error spans.
src/HotChocolate/Fusion/test/Fusion.Diagnostics.Tests/snapshots/FusionMcpAdapterActivityTests.Mcp_CallTool_Field_Does_Not_Exist.snap Snapshot for Fusion MCP tool call with invalid GraphQL selection spans.
src/HotChocolate/Diagnostics/test/Diagnostics.Tests/HotChocolate.Diagnostics.Tests.csproj Conditionally references OpenAPI/MCP adapters for net9.0+ diagnostics tests.
src/HotChocolate/Diagnostics/test/Diagnostics.Tests/OpenApiAdapterActivityTests.cs Adds OpenAPI adapter activity tests (net9.0+).
src/HotChocolate/Diagnostics/test/Diagnostics.Tests/McpAdapterActivityTests.cs Adds MCP adapter activity tests (net9.0+) with session-id scrubbing.
src/HotChocolate/Diagnostics/test/Diagnostics.Tests/snapshots/OpenApiAdapterActivityTests.Http_Get_OpenApi.snap Snapshot for OpenAPI adapter successful GET execution spans.
src/HotChocolate/Diagnostics/test/Diagnostics.Tests/snapshots/OpenApiAdapterActivityTests.Http_Get_OpenApi_GraphQL_Field_Error.snap Snapshot for OpenAPI adapter GraphQL execution error spans.
src/HotChocolate/Diagnostics/test/Diagnostics.Tests/snapshots/OpenApiAdapterActivityTests.Http_Get_OpenApi_Field_Does_Not_Exist.snap Snapshot for OpenAPI adapter invalid GraphQL selection case.
src/HotChocolate/Diagnostics/test/Diagnostics.Tests/snapshots/OpenApiAdapterActivityTests.Http_Get_OpenApi_Endpoint_Does_Not_Exist.snap Snapshot for OpenAPI adapter 404 path behavior.
src/HotChocolate/Diagnostics/test/Diagnostics.Tests/snapshots/McpAdapterActivityTests.Mcp_GetPrompt.snap Snapshot for MCP prompt retrieval spans (includes transport request span).
src/HotChocolate/Diagnostics/test/Diagnostics.Tests/snapshots/McpAdapterActivityTests.Mcp_CallTool.snap Snapshot for MCP successful tool call spans including nested GraphQL execution.
src/HotChocolate/Diagnostics/test/Diagnostics.Tests/snapshots/McpAdapterActivityTests.Mcp_CallTool_Tool_Does_Not_Exist.snap Snapshot for MCP tool-not-found error spans.
src/HotChocolate/Diagnostics/test/Diagnostics.Tests/snapshots/McpAdapterActivityTests.Mcp_CallTool_GraphQL_Field_Error.snap Snapshot for MCP tool call producing GraphQL execution error spans.
src/HotChocolate/Diagnostics/test/Diagnostics.Tests/snapshots/McpAdapterActivityTests.Mcp_CallTool_Field_Does_Not_Exist.snap Snapshot for MCP tool call with invalid GraphQL selection spans.
src/HotChocolate/Adapters/test/Adapters.Mcp.Tests/CoreIntegrationTests.cs Updates test server setup to use AddGraphQLServer() in one integration path.
src/HotChocolate/Adapters/src/Adapters.OpenApi.Core/Execution/DynamicEndpointMiddleware.cs Starts ExecuteHttpRequest diagnostic scope around OpenAPI adapter execution.
src/HotChocolate/Adapters/src/Adapters.Mcp.Core/HotChocolate.Adapters.Mcp.Core.csproj Adds reference to AspNetCore pipeline project to support server diagnostic events usage.
src/HotChocolate/Adapters/src/Adapters.Mcp.Core/Handlers/CallToolHandler.cs Starts ExecuteHttpRequest diagnostic scope around MCP tool GraphQL execution.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@tobias-tengler tobias-tengler merged commit 470643f into main May 12, 2026
138 of 140 checks passed
@tobias-tengler tobias-tengler deleted the tte/add-graphql-request-spans-to-adapters branch May 12, 2026 16:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants