# OpenTelemetry

> No SDK for your language? If it speaks OpenTelemetry, Pagerless can listen: OTLP over HTTP, protobuf or JSON.

URL: https://pagerless.dev/docs/opentelemetry
Updated: 2026-10-22

## What counts as a problem

- Logs with severity ERROR or higher.
- Traces with an `exception` span event, or a SERVER span that answered 5xx.
- Metrics: `http.server.request.duration` (or `http.server.duration`) histograms with delta temporality become request counts per route and status, so the 5xx floor works. Cumulative points are skipped.

## Exporter settings

```bash
OTEL_EXPORTER_OTLP_ENDPOINT=https://events.pagerless.dev/v1/otlp
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
OTEL_EXPORTER_OTLP_HEADERS="Authorization=Bearer pl_live_..."
OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE=delta
```

`http/json` works too, gzip-compressed or not. gRPC is not accepted: use OTLP over HTTP. Paths: `/v1/otlp/v1/logs`, `/v1/otlp/v1/traces`, `/v1/otlp/v1/metrics`. A partly bad batch returns 200 with partial-success counts.

## Through an OpenTelemetry Collector

```yaml
receivers:
  otlp:
    protocols:
      grpc:
      http:
exporters:
  otlphttp/pagerless:
    endpoint: https://events.pagerless.dev/v1/otlp
    headers:
      Authorization: "Bearer ${env:PAGERLESS_KEY}"
service:
  pipelines:
    logs:
      receivers: [otlp]
      exporters: [otlphttp/pagerless]
    traces:
      receivers: [otlp]
      exporters: [otlphttp/pagerless]
```
