/v1/logs and /v1/traces), which is why each has its own URL field.
What MCP Manager sends to your collector
For every MCP request that flows through an MCP Manager gateway, MCP Manager emits structured OTLP log records describing that request. The full record carries the same data you see on the Viewing Logs page, including:- Timing — durations for the client-facing leg and each upstream MCP server leg.
- Who — the acting user’s email and name, plus the organization and team.
- What — the JSON-RPC method, the MCP feature type and feature name, the tool or resource involved, and the inbound server name and URL.
- How much — estimated token counts, HTTP response codes, and durations.
- Correlation — a
correlation_idshared across the (typically four) records that make up one message, so you can reconstruct a single interaction end-to-end. See Log types and the correlation model. - Trace context — every record carries a
trace_idand aspan_id, and (on the legs that have one) atraceparent, so each log can pivot to its distributed trace. These are stamped onto every record whether or not you configure a traces endpoint. See Traces and trace-correlated logs.
service.name (in production, mcp-manager) and service.version (1.0.0). Use these to filter MCP Manager’s logs in your backend — they are also shown to you in the configuration panel after you save (see Verify that logs are flowing).
Traces and trace-correlated logs
Trace correlation is always on — it does not depend on a traces endpoint. For every proxied MCP request, the gateway mints one OpenTelemetry trace and the spans within it, and stamps the trace identifiers onto every log record that request produces:trace_id— the W3C trace ID (32 hex characters) for the whole request, identical on every log leg of that request. It is the key you filter on to pull back all the logs of one interaction.span_id— the span that log leg represents (16 hex characters): the gateway span on the client- and server-facing legs, and a distinct child span for each rule-engine evaluation.traceparent— the W3Ctraceparentin play on that leg (see the determinism rule below).
traceparent context, and otherwise starts a fresh root. A client can supply it two ways: the HTTP traceparent header, or the JSON-RPC body at params._meta.traceparent. When both are present, the body value (params._meta.traceparent) wins. MCP Manager then propagates the context downstream to the upstream MCP server on both the HTTP traceparent header and params._meta.traceparent, so the gateway → upstream hop stitches into the same trace. The body value carries the gateway span — the same trace ID as the inbound request, with MCP Manager’s own span ID — so MCP-native and multi-hop servers can link their own records to the trace.
traceparent column makes the origin of a trace deterministic from the logs alone. On the client-facing leg (proxy_request_success), a present traceparent means the client sent it and MCP Manager adopted that trace; an absent traceparent means MCP Manager minted the trace itself — and in that case only the gateway ↔ upstream (mcp_*) legs carry a traceparent. The server-facing mcp_* legs always carry the outbound traceparent MCP Manager forwarded, because MCP Manager always mints downstream context.Set up the OpenTelemetry collector
You configure forwarding from the Integrations tab of the Logging section. You need the endpoint URL(s) from your collector or backend — a logs collector URL, a traces collector URL, or both — and any request headers the backend requires for authentication. The headers you configure are sent with both signals.Open the OpenTelemetry collector settings
Enter the logs and/or traces collector URLs
<your-otlp-host> with the host (and port, if required) from your provider. MCP Manager sends to each URL verbatim — if your provider’s documented OTLP URLs end in /v1/logs and /v1/traces (or vendor-specific paths such as Grafana Cloud’s /otlp/v1/logs), include those paths here.You must fill in at least one of the two URLs — the form rejects a save with both blank. Set only the logs URL to forward logs (still trace-correlated, see Traces and trace-correlated logs); set only the traces URL to forward spans; set both to forward everything.Add request headers
Authorization header with the value Bearer <your-token>, or a vendor-specific header such as New Relic’s api-key. Because the headers are an open key/value list, MCP Manager supports both standard Authorization schemes and custom headers. Add as many pairs as your backend requires; leave the section empty only if your collector accepts unauthenticated traffic. Each pair must have both a name and a value, or both blank.Save the configuration
Verify that logs are flowing
Saving the configuration confirms only that MCP Manager stored it, not that records are successfully reaching your collector. To verify actual delivery:Trigger an MCP call
tools/list call is a safe choice. A single MCP message produces several log records — at minimum a proxy_request_success and a proxy_response_success — that should now export to your collector.Filter your backend by the service name
service.name and service.version MCP Manager is sending (in production, mcp-manager and 1.0.0). Use those values to filter in your logs backend. The OTLP service.name resource attribute typically surfaces as a service_name field or label in your backend.If nothing arrives, check Alerts first
Per-vendor setup guides
The exact endpoint URL, the authentication header, and where to find your logs differ by backend. Use the vendor guide for your platform:New Relic
api-key header; query with NRQL.Grafana Cloud
/otlp/v1/logs gateway and an instance-ID/token Basic header; logs land in Loki.Datadog
dd-api-key header; verify JSON acceptance.Honeycomb
x-honeycomb-team ingest key.Splunk Observability Cloud
Self-hosted Collector
Troubleshooting
Before diving into vendor-specific details, rule out the most common causes. Export failures almost always come down to the URL path or the authentication header.404 Not Found — the URL is missing a path segment
404 Not Found — the URL is missing a path segment
404 almost always means the path is incomplete. A stock OTLP/HTTP receiver accepts logs at /v1/logs, but many hosted backends mount the OTLP endpoint under a prefix — for example Grafana Cloud uses /otlp/v1/logs. Confirm the exact, complete URL with your provider and paste it in full. Whatever they tell you to put in an OTLP exporter’s url field is what belongs in Collector URL.Your own collector is reachable but not forwarding
Your own collector is reachable but not forwarding
service.pipelines.logs.exporters, the collector accepts records from MCP Manager and silently drops them.You are querying the wrong datasource
You are querying the wrong datasource
Test the collector URL manually
Test the collector URL manually
400 Bad Requestmentioning an invalid or malformed payload — the URL and authentication are both correct; the backend just rejected the empty test body. This is the result you want.404 Not Found— the URL path is wrong. You are reaching the host but not the OTLP logs endpoint (often a missing path prefix).401/403— the URL is right but the authentication header is wrong.- Could not resolve host — a DNS or hostname typo.
- Connection refused or timeout — the host is unreachable (a self-hosted collector not exposed to MCP Manager, or a wrong port).
Where export failures surface
When an export fails, MCP Manager records it in two places so you can diagnose it without watching the gateway in real time:- The Alerts tab. MCP Manager raises a warning-level alert the first time an export fails for a given collector URL and error — titled “Failed to export telemetry logs to OTEL collector” for the logs signal, or “Failed to export telemetry traces to OTEL collector” for the traces signal. The alert message names the collector URL, the number of records or spans, and the HTTP status or error code. To avoid flooding the workspace, the alert is deduplicated for one hour per unique combination of collector, signal, and error, so a persistently broken configuration produces one alert per hour rather than one per failed request. Open Alerts to see it.
- The gateway logs. Each failed export is logged on the gateway — by the
OtlpLoggerExporterfor logs and theOtlpTracerExporterfor traces — including the target URL, the HTTP status, and the error message.
Who can set up log export
Two conditions govern access to log forwarding, and they are separate from the ability to view logs.- Plan. The OpenTelemetry integration is an Enterprise capability. On plans that do not include it, the Integrations tab shows a promotional panel with a contact prompt instead of the configuration form.
- Capability. Configuring, editing, and removing the collector is controlled by the Manage OpenTelemetry collector capability, found in the Logging group under the Capabilities tab when managing a role (in People). When a user’s role has this capability, the OpenTelemetry collector panel is available to them; when it does not, the panel is hidden. Capabilities are assigned per role and are fully configurable — including on any custom roles you create — so access depends on the capabilities granted to a person’s role, not on any fixed role name.
Frequently asked questions
Do I need to run my own OpenTelemetry Collector?
Do I need to run my own OpenTelemetry Collector?
Can I forward logs to more than one destination?
Can I forward logs to more than one destination?
Can I forward only certain log events?
Can I forward only certain log events?
Does MCP Manager buffer logs if my collector is down?
Does MCP Manager buffer logs if my collector is down?
Will a broken collector configuration slow down MCP requests?
Will a broken collector configuration slow down MCP requests?
I saved the configuration but no logs appear. What is wrong?
I saved the configuration but no logs appear. What is wrong?

