> ## Documentation Index
> Fetch the complete documentation index at: https://docs.knoxcall.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Telemetry Export (OTLP, per workspace)

> Stream your workspace's request logs and analytics metrics — and nothing else — to your own OTLP collector or SIEM: the endpoint and headers to enter, what ships, and how it differs from the operator export.

# Telemetry Export (OTLP, per workspace)

Every request KnoxCall proxies for your workspace, and the request-count and latency metrics derived from them, can be streamed to a collector **you** run — Datadog, Grafana, Splunk, SigNoz, Elastic, or an OpenTelemetry Collector in front of anything. Only your workspace's records ship to it; there is no operator data in the stream and no other workspace's.

**Scope: This tenant.** There is no platform default; each workspace configures its own destination.

## What ships

| Signal      | Content                                                                                                                                                                                                                                                                   |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Logs**    | One `knoxcall.proxy.request` record per proxied request and one `knoxcall.webhook.delivery` record per webhook delivery: method, path, status, upstream host, request id, route name, latency. No bodies and no headers — those stay in [API logs](/monitoring/api-logs). |
| **Metrics** | `knoxcall.proxy.requests` (counter) and `knoxcall.proxy.request.duration` (histogram, ms), by status code, status class, route and environment, exported every 60 seconds.                                                                                                |

No traces. Traces belong to the operator export, because a trace spans the whole platform.

## 1. Configure

1. Mint a write-only ingest credential at your backend and find its OTLP/HTTP base endpoint. The values are identical to the operator export's — use the [recipes](/integrations/setup/opentelemetry#recipes) for Grafana Cloud, Honeycomb, New Relic, Datadog, SigNoz, Elastic, Axiom and a self-run Collector.
2. **Settings → Integrations → This tenant → Telemetry export (OTLP)** → *Configure*:

| Field                                                  | Value                                                                                                    |
| ------------------------------------------------------ | -------------------------------------------------------------------------------------------------------- |
| **OTLP HTTP endpoint**                                 | The **base** URL, e.g. `https://otlp.your-collector.com`. KnoxCall appends `/v1/logs` and `/v1/metrics`. |
| **OTLP auth headers**                                  | `name=value, name2=value2`, e.g. `Authorization=Bearer <token>`. Stored encrypted.                       |
| **Service name**                                       | Resource `service.name`; default `knoxcall`.                                                             |
| **Export request logs** / **Export analytics metrics** | Toggles, both on by default.                                                                             |

3. **Save.** Applies on the next request — no restart.

## 2. Verify

Make a request through one of your routes. The log record arrives within the batch interval (a few seconds); the first metric point on the next 60-second tick.

## Things that bite

* **Base endpoint only** — never a URL that already ends in `/v1/logs`.
* **Export must never affect your traffic**, so a failing collector is not reported on the request path: a wrong token shows up as *nothing arriving*, not as an error in KnoxCall. Check the backend, then the headers.
* **Changes propagate within about a minute** across all gateway workers; the worker that took your save switches immediately.
* **Disabling the row stops the stream**; deleting it does too. There is no environment fallback for a workspace export.

## Related

* [OpenTelemetry export](/monitoring/opentelemetry) — signal contents and conventions
* [OpenTelemetry export (operator)](/integrations/setup/opentelemetry) — the whole-gateway export, and the backend recipes
* [Analytics](/monitoring/analytics) — the same metrics in the dashboard
