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

# Send Heroku Fir telemetry to Bronto

> Forward logs and traces from Heroku Fir apps to Bronto using a native OpenTelemetry (OTLP) telemetry drain — no proxy or collector required.

## Overview

Heroku's Fir generation exports logs, metrics, and traces as OpenTelemetry (OTLP) signals. A **telemetry drain** forwards those signals straight to Bronto's OTLP endpoint — no Logplex, proxy, or intermediate collector. This guide sends the **logs** signal and shows how to forward **traces** too. (Cedar-generation apps use Logplex log drains instead.)

## Prerequisites

* A Bronto account and API key ([how to create one](/Account-Management/API-Keys))
* A Heroku **Fir**-generation app
* The [Heroku CLI](https://devcenter.heroku.com/articles/heroku-cli) installed and authenticated

## Add the telemetry drain

Add a drain on your app pointing at Bronto's ingestion endpoint, sending only the logs signal:

```bash theme={"dark"}
heroku telemetry:add https://ingestion.<REGION>.bronto.io \
  --app <YOUR_APP_NAME> \
  --signals logs \
  --transport http \
  --headers '{"x-bronto-api-key":"<YOUR_API_KEY>","x-bronto-dataset":"<YOUR_DATASET_NAME>","x-bronto-collection":"<YOUR_COLLECTION_NAME>"}'
```

Set `<REGION>` to `eu` or `us`. Heroku sends OTLP/HTTP logs to the `/v1/logs` path on this endpoint. Telemetry drains are additive, so running this command adds Bronto alongside any existing drains. To forward traces too, change `--signals` to `logs,traces`.

## Verify in Bronto

Open [Search](https://app.bronto.io/search) and filter by `service.name = <YOUR_DATASET_NAME>`. Generate activity in your app (a web request, or `heroku logs --app <YOUR_APP_NAME>`) and confirm entries appear within a minute. List configured drains with `heroku telemetry --app <YOUR_APP_NAME>`.

## What you will see in Bronto

Logs arrive as OTLP records carrying the app's stdout/stderr output plus Heroku resource attributes — `service.name`, severity, and timestamp. Platform logs (router, build, and dyno lifecycle events) are included alongside your application output.

## Troubleshooting

* **No logs?** Run `heroku telemetry --app <YOUR_APP_NAME>` and confirm the drain is listed with `transport: http` and `logs` in its signals.
* **Getting 401 errors?** Verify the `x-bronto-api-key` value is a valid Bronto key with the Ingestion role.
* **Wrong dataset or collection?** Check the `x-bronto-dataset` and `x-bronto-collection` headers in the drain's `--headers` JSON.
