You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 7fcfdf6
Browse filesBrowse the repository at this point in the historyBrowse files
fix(telemetry): send browser events to the configured collector and keep logs off the anonymous one (#9317)
* fix(telemetry): send browser events to the configured collector and keep logs off the anonymous one
The browser telemetry route read only TELEMETRY_ENDPOINT, so a deployment exporting to its own
collector through OTEL_EXPORTER_OTLP_ENDPOINT still posted browser events to the anonymous
default, ignored NEXT_TELEMETRY_DISABLED, and built spans without trace or span ids under the
retired instrumentationLibrarySpans field. It now resolves the endpoint and headers exactly like
the server export, honors the disable flag, and emits valid OTLP. Server logs and metrics are no
longer exported to the anonymous collector, which receives traces only.
* fix(telemetry): never send collector credentials to the anonymous endpoint, match it by host
OTEL_EXPORTER_OTLP_HEADERS belong to the operator's collector, so they are dropped when the
endpoint resolves to the anonymous one; that check now compares hosts, so any spelling of the
anonymous URL gets traces only. The browser relay falls back to telemetry.config.ts like the
server export, and the traces URL is built on the parsed path, keeping query strings and
accepting a trailing slash.
* fix(telemetry): never attach operator collector credentials to browser events
/api/telemetry relays unauthenticated input, so sending it with OTEL_EXPORTER_OTLP_HEADERS let
anyone write spans into the operator's authenticated collector. Browser events now go only to
TELEMETRY_ENDPOINT or the configured anonymous collector, without credentials; the server's own
export keeps using the operator's collector.
* fix(telemetry): post browser events to TELEMETRY_ENDPOINT as-is and document routing per side
| `OTEL_TRACES_SAMPLER_ARG` | Trace sampling ratio |
299
299
| `OTEL_DEPLOYMENT_ENVIRONMENT` | Environment label on emitted spans |
300
300
| `TELEMETRY_SAMPLING_RATIO` | Application-level sampling ratio |
301
-
| `TELEMETRY_ENDPOINT` | Where anonymous telemetry is sent. Defaults to `https://telemetry.simstudio.ai/v1/traces` — point it at your own collector to keep traces internal |
301
+
| `TELEMETRY_ENDPOINT` | Full URL browser telemetry events are posted to, as-is (they never carry `OTEL_EXPORTER_OTLP_HEADERS`). Server traces use it only when `OTEL_EXPORTER_OTLP_ENDPOINT` is unset. Defaults to `https://telemetry.simstudio.ai/v1/traces`, which receives traces only: server logs and metrics are exported only to a collector you configure. `NEXT_TELEMETRY_DISABLED=1` (the Docker and Helm default) turns all of it off |
302
302
| `NEXT_TELEMETRY_DISABLED` | Set to `1` to disable anonymous telemetry entirely |
0 commit comments