Skip to content

nimwire/observability

This page is generated from the module’s exported API and ## documentation comments.

Optional request observability hooks.

Opaque application-owned state returned by a span start hook.

McpSpanHandle = ref object
state*: JsonNode

View source

McpRequestEvent = object
correlationId*: string
requestId*: McpId
methodName*: string
transport*: McpTransportInfo
hasTraceContext*: bool
traceContext*: McpTraceContext
hasLogLevel*: bool
logLevel*: McpLogLevel
durationMs*: float
requestBytes*: int
responseBytes*: int
hasResultType*: bool
resultType*: McpResultType
errorCode*: int
cancelled*: bool
activeSubscriptions*: int

View source

McpRequestLogHook = proc (event: McpRequestEvent) {.closure.}

View source

McpMetricsHook = proc (event: McpRequestEvent) {.closure.}

View source

McpSpanStartHook = proc (event: McpRequestEvent): McpSpanHandle {.closure.}

View source

McpSpanEndHook = proc (span: McpSpanHandle; event: McpRequestEvent) {.closure.}

View source

All hooks are optional and remain independent of telemetry libraries.

McpObservability = object
requestLog*: McpRequestLogHook
metrics*: McpMetricsHook
spanStart*: McpSpanStartHook
spanEnd*: McpSpanEndHook

View source

proc newMcpRequestEvent(context: McpContext; methodName = "";
requestId = McpId(kind: mcpNullId)): McpRequestEvent {.
raises: [OSError], tags: [], forbids: [].}

Returns: McpRequestEvent.

Name Type Default
context McpContext
methodName inferred ""
requestId inferred McpId(kind: mcpNullId)

View source

proc toJson(event: McpRequestEvent): JsonNode {.raises: [], tags: [],
forbids: [].}

Returns: JsonNode.

Name Type Default
event McpRequestEvent

View source