ArohaDevelopers

OpenTelemetry

See each tool call clearly.

Metrics for counts and latency. Traces for execution and downstream requests. Logs for bounded outcomes.

Signals and identity

SignalContract
Counteraroha.mcp.tool.calls
Duration histogramaroha.mcp.tool.duration · seconds
Tracemcp.tool.call · real SDK context
Logmcp.tool.completed · correlated span context

Service identity is aroha-mcp in namespace aroha-retreat, with actual package version and environment. Dimensions use the bounded tool name, outcome and error code. Unknown tool names are normalized.

Configure an exporter

Host environment · placeholders only
OTEL_EXPORTER_OTLP_ENDPOINT=https://your-approved-collector/otlp
OTEL_EXPORTER_OTLP_HEADERS=Authorization=Bearer%20<secret-reference>

Use your collector's real base path. For Dynatrace it normally ends in /api/v2/otlp; the SDK appends /v1/traces, /v1/metrics and /v1/logs. Supply exporter credentials through your host's secret configuration. Never embed them in the npm package or pass them as tool inputs.

Without an endpoint, the SDK still observes tool calls and emits sanitized stderr completion logs, but exported OTel observations are discarded. This is not a claim of central telemetry collection.

Privacy and failure behavior

No tool arguments, results, contacts, notes, tokens, free-text provider errors or private URLs enter logs, metrics or spans. Real traceparent flows to the downstream API and safe request IDs return for correlation. Export queues and timeouts are bounded; telemetry failure does not reverse a successful API read.

Evidence has separate stages

Local tests, collector acceptance, tenant-searchable records and native navigation are separate results. The package's synthetic three-signal test verifies encoding and transport; it cannot certify your tenant configuration, sampling or retention.