|
17 | 17 | from ddtrace.internal.logger import get_logger |
18 | 18 | from ddtrace.internal.utils.formats import asbool |
19 | 19 | from ddtrace.llmobs._integrations.mcp import CLIENT_TOOL_CALL_OPERATION_NAME |
20 | | -from ddtrace.llmobs._integrations.mcp import REQUEST_RESPONDER_ENTER_OPERATION_NAME |
21 | | -from ddtrace.llmobs._integrations.mcp import REQUEST_RESPONDER_RESPOND_OPERATION_NAME |
| 20 | +from ddtrace.llmobs._integrations.mcp import SERVER_REQUEST_OPERATION_NAME |
| 21 | +from ddtrace.llmobs._integrations.mcp import SERVER_TOOL_CALL_OPERATION_NAME |
22 | 22 | from ddtrace.llmobs._integrations.mcp import MCPIntegration |
23 | 23 | from ddtrace.llmobs._utils import _get_attr |
24 | 24 | from ddtrace.propagation.http import HTTPPropagator |
@@ -231,9 +231,13 @@ def traced_request_responder_enter(mcp, pin: Pin, func, instance, args: tuple, k |
231 | 231 | if headers: |
232 | 232 | activate_distributed_headers(pin.tracer, config.mcp, headers) |
233 | 233 |
|
| 234 | + operation_name = ( |
| 235 | + SERVER_TOOL_CALL_OPERATION_NAME if isinstance(request_root, CallToolRequest) else SERVER_REQUEST_OPERATION_NAME |
| 236 | + ) |
| 237 | + |
234 | 238 | span = integration.trace( |
235 | 239 | pin, |
236 | | - REQUEST_RESPONDER_ENTER_OPERATION_NAME, |
| 240 | + operation_name, |
237 | 241 | submit_to_llmobs=True, |
238 | 242 | span_name="mcp.{}".format(_get_attr(request_root, "method", "unknown")), |
239 | 243 | ) |
@@ -263,18 +267,16 @@ async def traced_request_responder_respond(mcp, pin: Pin, func, instance, args: |
263 | 267 | integration: MCPIntegration = mcp._datadog_integration |
264 | 268 | span: Optional[Span] = getattr(instance, "_dd_span", None) |
265 | 269 |
|
266 | | - result = await func(*args, **kwargs) |
267 | | - |
268 | 270 | if span: |
269 | 271 | integration.llmobs_set_tags( |
270 | 272 | span, |
271 | 273 | args=args, |
272 | 274 | kwargs=dict(**kwargs, request_responder=instance), |
273 | 275 | response=None, |
274 | | - operation=REQUEST_RESPONDER_RESPOND_OPERATION_NAME, |
| 276 | + operation=SERVER_REQUEST_OPERATION_NAME, |
275 | 277 | ) |
276 | 278 |
|
277 | | - return result |
| 279 | + return await func(*args, **kwargs) |
278 | 280 |
|
279 | 281 |
|
280 | 282 | def patch(): |
|
0 commit comments