OpenTelemetry
Bugtail is an OTLP endpoint for logs, traces and metrics. Point the exporter you already run at it, from an OpenTelemetry SDK or from an OpenTelemetry Collector.
Create a collector with the OpenTelemetry (OTLP) protocol under Settings > Projects and collectors. Its screen shows the endpoint and the key to use as a bearer token.
From an SDK
Every OpenTelemetry SDK reads these environment variables:
OTEL_EXPORTER_OTLP_ENDPOINT=https://ingest.bugtail.eu
OTEL_EXPORTER_OTLP_HEADERS=authorization=Bearer <key>
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
The endpoint is the base: the exporter adds /v1/logs, /v1/traces and /v1/metrics itself. If your SDK rejects the space in the header, write it as %20: authorization=Bearer%20<key>.
From an OpenTelemetry Collector
Add Bugtail as an exporter and list it in your pipelines:
exporters:
otlphttp/bugtail:
endpoint: https://ingest.bugtail.eu
headers:
authorization: Bearer <key>
service:
pipelines:
traces:
receivers: [otlp]
exporters: [otlphttp/bugtail]
Add the exporter to your logs and metrics pipelines the same way.
Protocol
- OTLP over HTTP, with
http/protobuforhttp/json. OTLP over gRPC is not supported. - Bodies may be compressed with gzip.
- Set
service.name,service.versionanddeployment.environment.nameas resource attributes. Bugtail uses the version as the release and the environment to filter by.
What you get
| Signal | Where it shows up |
|---|---|
| Logs | Logs, with the trace and span id of the operation that wrote them |
| Traces | Performance. A root span with an error status marks the trace as failed. |
| Metrics | Metrics |
Issues are made from error events, which OpenTelemetry does not have. To get grouped issues as well, report exceptions with a Sentry SDK or over HTTP next to your exporter.
Metrics
Sums, gauges and histograms are supported, both cumulative and delta. A cumulative counter is charted as the change between readings, not as the running total the exporter reports.
Exponential histograms and summaries are not supported and are refused. Configure your SDK to export explicit-bucket histograms instead, which is the default in most SDKs.