Monitoring is available for Team and Enterprise plans. OTel monitoring requires Claude desktop app version 1.1.4173 or later.
Setup
Configure monitoring from the Cowork admin settings:- Navigate to Admin settings > Cowork
-
Configure the following fields:
- Save your settings
- Start a new Cowork session — settings are loaded at session start, so existing sessions won’t pick up the new configuration
The OTel exporter runs inside the Cowork VM, so it is subject to the session’s egress rules. If your organization restricts network egress, Cowork automatically adds your collector’s hostname to the session’s egress allowlist. You don’t need to add it at Admin settings > Capabilities > Network egress.
Events
Cowork exports the following events to your OTel collector. By default, events include metadata only. User prompt content, model response text, and tool details are included only when you enable them with theotlpContentCapture setting.
Event correlation
When a user submits a prompt, Cowork may make multiple API calls and run several tools. Theprompt.id attribute links all events back to the single prompt that triggered them.
To trace all activity triggered by a single prompt, filter your events by a specific
prompt.id value.
On third-party deployments, you can additionally enable OpenTelemetry trace export with the otlpTracesEnabled setting (beta). When it is enabled, events emitted while a prompt is processed also carry trace_id and span_id, linking them to the session’s trace spans for end-to-end correlation in your observability backend.
Standard attributes
All events include these attributes:User prompt event
Logged when a user submits a prompt. Event name:user_prompt
Attributes:
All standard attributes, plus:
Model response event
Logged when the model completes a response that includes text output. Requires Claude desktop app version 1.17377 or later. Event name:assistant_response
Attributes:
All standard attributes, plus:
Model responses are captured when
otlpContentCapture includes assistantResponses, and also whenever user prompts are captured.
Tool result event
Logged when a tool completes execution. Event name:tool_result
Attributes:
All standard attributes, plus:
API request event
Logged for each API request to Claude. Event name:api_request
Attributes:
All standard attributes, plus:
API error event
Logged when an API request to Claude fails. Event name:api_error
Attributes:
All standard attributes, plus:
Tool decision event
Logged when a tool permission decision is made. Event name:tool_decision
Attributes:
All standard attributes, plus:
Event analysis
The exported events support a range of analyses: Tool usage patterns — Analyze tool result events to identify most frequently used tools, success rates, average execution times, and error patterns. Cost monitoring — Trackcost_usd from API request events to understand usage trends across users and teams. Group by user.account_uuid or organization.id for per-user or per-team breakdowns.
Performance monitoring — Track API request durations and tool execution times to identify performance bottlenecks.
Cost values from events are approximations. For official billing data, refer to your billing dashboard.
Backend considerations
Your choice of logs backend determines the types of analyses you can perform:- Log aggregation systems (e.g., Elasticsearch, Loki): Full-text search and log analysis
- Columnar stores (e.g., ClickHouse): Structured event analysis and complex queries
- Observability platforms (e.g., Honeycomb, Datadog): Advanced querying, visualization, and alerting
Service information
All events are exported with the following resource attributes:Security and privacy
- Events are only exported when an admin configures the OTLP endpoint
- User prompt content is included only when you enable
userPromptsinotlpContentCapture - On Claude desktop app version 1.17377 or later, model response text is included when you enable
assistantResponsesinotlpContentCapture, and also whenever user prompt content is included - The
tool_inputattribute (file paths, URLs, search patterns, and other arguments) is included only when you enabletoolDetailsinotlpContentCapture user.emailis always included in event attributes, so configure your telemetry backend to filter or redact it if this is a concern