docs(claude-in-office): document otlp_resource_attributes config key (#73)

Adds the new `otlp_resource_attributes` key (comma-separated k=v, same
format as OTEL_RESOURCE_ATTRIBUTES) to:

- build-manifest.mjs KEYS validator
- manifest.md / bootstrap.md telemetry sections
- update-user-attrs.md key table

Paired with anthropics/office-agent OA-336.
This commit is contained in:
Vivek Nair
2026-04-22 23:20:45 -04:00
committed by GitHub
parent 356f09fe93
commit 532221dcf1
4 changed files with 20 additions and 4 deletions
+7 -3
View File
@@ -166,14 +166,18 @@ Vertex `:rawPredict` URL the add-in constructs. `"bedrock"` needs no extras.
```json
"otlp_endpoint": "https://otel-collector.your-domain.com",
"otlp_headers": "Authorization=Bearer {{gateway_token}}"
"otlp_headers": "Authorization=Bearer {{gateway_token}}",
"otlp_resource_attributes": "team.name={{team}},deployment.environment=prod"
```
`otlp_endpoint` is the base HTTPS URL of an OpenTelemetry collector you
operate; the add-in appends `/v1/traces` and posts OTLP/HTTP. `otlp_headers`
uses the standard `key1=value1,key2=value2` format and interpolates like any
other value. The collector must allow CORS from the add-in origin — see
[above](#cors--every-url-needs-it).
other value. `otlp_resource_attributes` uses the same format (matching the
standard `OTEL_RESOURCE_ATTRIBUTES` variable) and is merged into the
OpenTelemetry Resource on every span — use it when your collector requires
specific resource attributes for routing or attribution. The collector must
allow CORS from the add-in origin — see [above](#cors--every-url-needs-it).
### `inference_headers`
+8
View File
@@ -73,6 +73,14 @@ browser WebView). Leave it unset and no custom collector is configured.
`key1=value1,key2=value2` format as the standard
`OTEL_EXPORTER_OTLP_HEADERS` variable. URL-encode the value in the manifest.
`otlp_resource_attributes` adds attributes to the OpenTelemetry Resource on
every span, in the same `key1=value1,key2=value2` format as the standard
`OTEL_RESOURCE_ATTRIBUTES` variable. Use this when your collector requires
specific resource attributes for routing or attribution (e.g.
`team.name=platform,deployment.environment=prod`). The add-in already sets
`service.name`, `service.version`, and `git.sha`; values you provide here are
merged on top.
Setting these here applies one collector org-wide; per-user routing belongs in
[bootstrap](bootstrap.md#telemetry) or extension attrs.
@@ -26,7 +26,7 @@ over manifest params, so whatever's here wins. All values are 256 chars max.
| `gcp_region` | Data-residency override |
| `google_client_id` `google_client_secret` | Different OAuth client per team (uncommon) |
| `aws_role_arn` `aws_region` | Different Bedrock roles by team |
| `otlp_endpoint` `otlp_headers` | Route telemetry to a team-specific OTEL collector |
| `otlp_endpoint` `otlp_headers` `otlp_resource_attributes` | Route telemetry to a team-specific OTEL collector / tag spans with team-level resource attributes |
## One user
@@ -43,6 +43,10 @@ const KEYS = {
bootstrap_url: { pattern: /^https:\/\//, hint: "HTTPS endpoint returning per-user config" },
otlp_endpoint: { pattern: /^https:\/\//, hint: "OTLP/HTTP traces collector URL" },
otlp_headers: { pattern: /./, hint: "comma-separated k=v pairs for the OTLP exporter" },
otlp_resource_attributes: {
pattern: /^([^=,\s]+=[^,]*)(,[^=,\s]+=[^,]*)*$/,
hint: "comma-separated k=v pairs added to the OTEL Resource (same format as OTEL_RESOURCE_ATTRIBUTES)",
},
auto_connect: { pattern: /^[01]$/, hint: "0 shows form, 1 (or omit) auto-connects" },
entra_sso: { pattern: /^[01]$/, hint: "1 enables Entra SSO (required for aws_role_arn)" },
allow_1p: {