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
/
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
No line in this hunk matches that.