Follow Discord
Sweep 22 Oct 2026 · 04:32Z Build v2.1.308 527 read Stable v2.1.308 Latest v2.1.308 Next v2.1.308 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One change · claude-docs

Configure a custom OpenTelemetry collector changedoffice-agents/opentelemetry

Nearest release: v2.1.280, published 10 hours before upstream edited the page. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.

Upstream edited this page at 23 Sep 2026 02:40 UTC, give or take a minute or two: the time comes from Anthropic’s own sitemap rather than from a commit. This site recorded the change at 28 Sep 2026 22:07 UTC.

Upstream edited
Recorded here
Lines+74added
Lines−74removed
From line 67 where the diff opens
First seen 25 Aug 2026 this site's first read of the page
Recorded edits4to this page, all time

The whole hunk

from line 67, old and new numbered
/
lines
from line 67
6767Claude admin console under Organization settings, Office agents. Two
6868settings are available:
6969 
70| Setting | Description |
71| --------------- | --------------------------------------------------------------------------------- |
72| `otlp_endpoint` | Base URL of your OTLP collector. The add-in appends `/v1/traces` |
73| `otlp_headers` | Optional authentication headers in OpenTelemetry `key1=value1,key2=value2` format |
70| Setting | Description |
71| - | - |
72| `otlp_endpoint` | Base URL of your OTLP collector. The add-in appends `/v1/traces` |
73| `otlp_headers` | Optional authentication headers in OpenTelemetry `key1=value1,key2=value2` format |
7474 
7575### Direct-provider deployments
7676 
from line 79
7979channels described in
8080[Use Claude for M365 with third-party platforms](/docs/office-agents/third-party-platforms).
8181 
82| Key | Format | Description |
83| --------------- | ------------------------- | ------------------------------------------------- |
84| `otlp_endpoint` | HTTPS URL | Collector base URL. Trailing slashes are stripped |
85| `otlp_headers` | `key1=value1,key2=value2` | Optional authentication headers |
82| Key | Format | Description |
83| - | - | - |
84| `otlp_endpoint` | HTTPS URL | Collector base URL. Trailing slashes are stripped |
85| `otlp_headers` | `key1=value1,key2=value2` | Optional authentication headers |
8686 
8787The `claude-for-msft-365-install` setup plugin writes these for you. To
8888set them by hand, use any of the three channels below. Later channels override
from line 156
156156 
157157These are set on every span.
158158 
159| Attribute | Description |
160| ----------------- | -------------------------------------------------------- |
161| `service.name` | Fixed value `office-agent` |
159| Attribute | Description |
160| - | - |
161| `service.name` | Fixed value `office-agent` |
162162| `service.version` | Fixed value `1.0.0`. Use `git.sha` to identify the build |
163| `git.sha` | Build commit |
163| `git.sha` | Build commit |
164164 
165165### agent.query
166166 
167167Root span, one per user turn. SpanKind `INTERNAL`.
168168 
169| Attribute | Description |
170| ----------------------------------------------- | ------------------------------------------------------------- |
171| `agent.surface` | `sheet`, `doc`, `slide`, or `mail` |
172| `agent.vendor` | `m` |
173| `user.message` *content* | User prompt, truncated per the attribute cap |
174| `user.message_chars` | Pre-truncation length of the prompt |
175| `session.id` | Opaque session identifier |
176| `document.url` *content* | URL of the open Office document |
177| `agent.selected_model` | Model selected for the session |
178| `office.platform` | `PC`, `Mac`, `OfficeOnline`, `iOS`, `Android`, or `Universal` |
179| `office.version` | Office build number |
180| `user.email` *Claude sign-in only* | User email |
181| `user.account_uuid` *Claude sign-in only* | Claude account UUID |
182| `organization.id` *Claude sign-in only* | Claude organization UUID |
183| `org.rate_limit_tier` *Claude sign-in only* | Subscription tier |
184| `mcp.configured_count` *Claude sign-in only* | Configured MCP servers |
185| `mcp.connected_count` *Claude sign-in only* | Connected MCP servers |
186| `mcp.failed_count` *Claude sign-in only* | Failed MCP connections |
187| `file.upload.count` *Claude sign-in only* | Files attached to the turn |
188| `file.upload.total_bytes` *Claude sign-in only* | Total uploaded bytes |
189| `error.name` | Exception class name, on failure |
190| `agent.query_phase` | Phase at failure, on failure |
169| Attribute | Description |
170| - | - |
171| `agent.surface` | `sheet`, `doc`, `slide`, or `mail` |
172| `agent.vendor` | `m` |
173| `user.message` *content* | User prompt, truncated per the attribute cap |
174| `user.message_chars` | Pre-truncation length of the prompt |
175| `session.id` | Opaque session identifier |
176| `document.url` *content* | URL of the open Office document |
177| `agent.selected_model` | Model selected for the session |
178| `office.platform` | `PC`, `Mac`, `OfficeOnline`, `iOS`, `Android`, or `Universal` |
179| `office.version` | Office build number |
180| `user.email` *Claude sign-in only* | User email |
181| `user.account_uuid` *Claude sign-in only* | Claude account UUID |
182| `organization.id` *Claude sign-in only* | Claude organization UUID |
183| `org.rate_limit_tier` *Claude sign-in only* | Subscription tier |
184| `mcp.configured_count` *Claude sign-in only* | Configured MCP servers |
185| `mcp.connected_count` *Claude sign-in only* | Connected MCP servers |
186| `mcp.failed_count` *Claude sign-in only* | Failed MCP connections |
187| `file.upload.count` *Claude sign-in only* | Files attached to the turn |
188| `file.upload.total_bytes` *Claude sign-in only* | Total uploaded bytes |
189| `error.name` | Exception class name, on failure |
190| `agent.query_phase` | Phase at failure, on failure |
191191 
192192### agent.stream
193193 
194194One span per model API call, child of `agent.query`. SpanKind `CLIENT`.
195195 
196| Attribute | Description |
197| ----------------------- | ------------------------------------------------- |
198| `model` | Model ID used |
199| `max_tokens` | Maximum output tokens requested |
200| `agent.message_count` | Messages in the conversation at stream start |
201| `input_tokens` | Input tokens billed |
202| `output_tokens` | Output tokens billed |
203| `cache_read_tokens` | Tokens served from prompt cache |
204| `cache_creation_tokens` | Tokens written to prompt cache |
205| `stop_reason` | `end_turn`, `tool_use`, `max_tokens`, and similar |
206| `request_id` | Provider request ID for support correlation |
196| Attribute | Description |
197| - | - |
198| `model` | Model ID used |
199| `max_tokens` | Maximum output tokens requested |
200| `agent.message_count` | Messages in the conversation at stream start |
201| `input_tokens` | Input tokens billed |
202| `output_tokens` | Output tokens billed |
203| `cache_read_tokens` | Tokens served from prompt cache |
204| `cache_creation_tokens` | Tokens written to prompt cache |
205| `stop_reason` | `end_turn`, `tool_use`, `max_tokens`, and similar |
206| `request_id` | Provider request ID for support correlation |
207207 
208208The add-in requests prompt caching on every call. Cache token attributes
209209are set from the provider's response and omitted when the provider does
from line 214
214214One span per tool call, child of `agent.stream`. SpanKind `INTERNAL`.
215215This is the primary record of what the model did to the document.
216216 
217| Attribute | Description |
218| ----------------------- | --------------------------------------------------------------------------------------------------------------------- |
219| `tool_name` | Tool identifier, for example `get_cell_ranges` or `execute_office_js`. MCP connector tools are recorded as `mcp_tool` |
220| `tool.id` | Unique invocation ID |
221| `tool.caller` | `direct` for tools the add-in runs, or `server_tool` for tools the model provider runs |
222| `tool.owner` | `first_party` for built-in tools, or `third_party` for MCP connector tools |
223| `tool.read_write` | `read` or `write` |
224| `tool.accept_decision` | `manual` (user approved this action), `auto_accept` (standing approval), or `deferred` (queued for review) |
225| `tool.input` *content* | Serialized tool input, truncated per the attribute cap |
226| `tool.success` | Boolean |
227| `tool.output` *content* | Serialized tool output, truncated per the attribute cap |
228| `tool.output_chars` | Full output length in characters |
229| `tool.error_type` | Error classification, on failure |
230| `sheet.cells_read` | Cells read, sheet surface only |
231| `sheet.cells_written` | Cells written, sheet surface only |
232| `sheet.cells_copied` | Cells copied, sheet surface only |
217| Attribute | Description |
218| - | - |
219| `tool_name` | Tool identifier, for example `get_cell_ranges` or `execute_office_js`. MCP connector tools are recorded as `mcp_tool` |
220| `tool.id` | Unique invocation ID |
221| `tool.caller` | `direct` for tools the add-in runs, or `server_tool` for tools the model provider runs |
222| `tool.owner` | `first_party` for built-in tools, or `third_party` for MCP connector tools |
223| `tool.read_write` | `read` or `write` |
224| `tool.accept_decision` | `manual` (user approved this action), `auto_accept` (standing approval), or `deferred` (queued for review) |
225| `tool.input` *content* | Serialized tool input, truncated per the attribute cap |
226| `tool.success` | Boolean |
227| `tool.output` *content* | Serialized tool output, truncated per the attribute cap |
228| `tool.output_chars` | Full output length in characters |
229| `tool.error_type` | Error classification, on failure |
230| `sheet.cells_read` | Cells read, sheet surface only |
231| `sheet.cells_written` | Cells written, sheet surface only |
232| `sheet.cells_copied` | Cells copied, sheet surface only |
233233 
234234### agent.compaction
235235 
from line 239
239239`office.platform`, `office.version`, and `user.email` (Claude sign-in
240240only).
241241 
242| Attribute | Description |
243| ------------------------- | -------------------------------- |
244| `compaction.pre_tokens` | Token count before summarization |
245| `compaction.post_tokens` | Token count after summarization |
246| `compaction.tokens_saved` | Delta |
247| `compaction.success` | Boolean |
248| `compaction.trigger` | Currently always `reactive` |
242| Attribute | Description |
243| - | - |
244| `compaction.pre_tokens` | Token count before summarization |
245| `compaction.post_tokens` | Token count after summarization |
246| `compaction.tokens_saved` | Delta |
247| `compaction.success` | Boolean |
248| `compaction.trigger` | Currently always `reactive` |
249249 
250250### file.upload
251251 
from line 254
254254carries `session.id` and `user.email`. Correlate to the turn by
255255`session.id` and timestamp.
256256 
257| Attribute | Description |
258| ------------------------ | ------------------------------ |
259| `file.upload.size_bytes` | File size |
260| `file.upload.mime_type` | MIME type |
261| `file.upload.file_id` | Anthropic Files API identifier |
262| `file.upload.success` | Boolean |
257| Attribute | Description |
258| - | - |
259| `file.upload.size_bytes` | File size |
260| `file.upload.mime_type` | MIME type |
261| `file.upload.file_id` | Anthropic Files API identifier |
262| `file.upload.success` | Boolean |
263263 
264264## Span events
265265 
Feedback