Skip to main content
Heroku apps send data to Squasher over OpenTelemetry. Fir apps can use a Heroku telemetry drain, and Cedar apps set the OpenTelemetry variables as config vars. Cedar apps can also forward stdout and router logs with a classic log drain. See Log drain.

Prerequisites

Set up the telemetry

Add a telemetry drain that sends to the Squasher OTLP endpoint:
Run heroku telemetry --app <your-app> to see the drain.

Log drain

A classic log drain sends every stdout, stderr, and router line as Heroku syslog frames (application/logplex-1). Heroku lines have no environment, so set one in the URL:
Squasher reads the level from the syslog severity or from the message (level=error, router at=error, a leading ERROR, or a stack trace), and stores Heroku error codes such as H12 and R14 as error.type. Lines at error level or above create issues.

What Squasher keeps

See What Squasher does with each signal.

Verify

  1. Record one span with ERROR status, or log one line at error severity through OpenTelemetry.
  2. In Squasher, select Issues in the sidebar. The error is at the top of the list.

Limits

  • With a telemetry drain, Heroku router errors, such as H12, reach Squasher only if Heroku includes them in the telemetry that it sends. A log drain sends router lines.
  • Plain stdout lines from a Cedar app reach Squasher only through a log drain, an OpenTelemetry logs exporter, or an SDK.

Next steps

OpenTelemetry

See the endpoint, headers, and language guides.

Node.js SDK

Capture errors with stack traces from Node.js apps.