Raccoon Docs

OpenTelemetry

Export traces and logs from Python, Go, Java, Ruby, .NET or any other OpenTelemetry SDK straight to Raccoon.

Raccoon accepts OTLP over HTTP, so any OpenTelemetry SDK can send to it without a collector in between. For Node.js and Next.js, raccoon-nodejs sets all of this up for you.

Configure the exporter#

Most SDKs read these standard variables. Use a token from Settings → Environments. The space after Bearer is written %20.

OTEL_EXPORTER_OTLP_ENDPOINT=https://raccoon.watch/api/otlp
OTEL_EXPORTER_OTLP_HEADERS=Authorization=Bearer%20<environment token>
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
OTEL_SERVICE_NAME=my-app
OTEL_METRICS_EXPORTER=none
  • Raccoon takes OTLP over HTTP, as protobuf or JSON. It doesn't support gRPC, and some SDKs (.NET, and Python in some versions) default to gRPC, so set OTEL_EXPORTER_OTLP_PROTOCOL explicitly.
  • The SDK adds /v1/traces and /v1/logs to the endpoint. If you configure each signal on its own, use https://raccoon.watch/api/otlp/v1/traces and https://raccoon.watch/api/otlp/v1/logs.
  • Raccoon accepts metrics but doesn't store them, so turn the metrics exporter off.

For example, with Python:

pip install opentelemetry-distro opentelemetry-exporter-otlp
opentelemetry-bootstrap -a install
opentelemetry-instrument python app.py

What Raccoon reads#

Raccoon OpenTelemetry
Requests The outermost server span of each trace. The route comes from http.route.
Queries Spans with db.system (or db.system.name) and a statement.
Outgoing Requests Client HTTP spans.
Exceptions and Issues exception span events. Stack traces from JavaScript, Python, Java, Go and Ruby are parsed into frames.
Logs Log records, linked to their request through the trace id.
Users user.id or enduser.id on the request span, with user.name, user.full_name or user.email.
Deploy markers The service.version resource attribute.
Server The host.name resource attribute, else service.instance.id, else service.name.

Jobs, commands, scheduled tasks, mail, notifications and cache are Laravel concepts, so those pages stay empty for OpenTelemetry apps.