> For the complete documentation index, see [llms.txt](https://docs.bindplane.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bindplane.com/integrations/destinations/dash0.md).

# Dash0

The Dash0 destination exports logs, metrics, and traces from a Bindplane pipeline to [Dash0](https://www.dash0.com/) over OTLP/HTTP. Telemetry is sent to your project's Dash0 ingestion endpoint with gzip compression, authenticated with a bearer token, and routed to a named dataset.

### Supported Telemetry

| Metrics | Logs | Traces |
| ------- | ---- | ------ |
| ✓       | ✓    | ✓      |

Use **Choose Telemetry Type** to select which of these signals the destination exports. All three are enabled by default.

### Prerequisites

You need a [Dash0](https://www.dash0.com/) account and the following before configuring this destination:

* **Ingestion endpoint** — the OTLP/HTTP ingestion URL for your project, found in your Dash0 project settings. See the Dash0 [sending data guide](https://www.dash0.com/documentation/dash0/get-started/sending-data-to-dash0).
* **Auth token** — a Dash0 [auth token](https://www.dash0.com/documentation/dash0/key-concepts/auth-tokens) with permission to ingest telemetry. This is sent as a bearer token. Do not include the `Bearer` prefix in the value; Bindplane adds it.
* **Dataset** — the name of the [dataset](https://www.dash0.com/documentation/dash0/key-concepts/datasets) telemetry is written to. Datasets separate observability data within an organization.

### Configuration

<figure><img src="/files/MF8TxNy6vVEm6BLYU11I" alt="Bindplane docs - Dash0 - image 1"><figcaption></figcaption></figure>

**Connection**

| Parameter             | Type               | Required | Default                     | Description                                                           |
| --------------------- | ------------------ | -------- | --------------------------- | --------------------------------------------------------------------- |
| Choose Telemetry Type | Telemetry Selector | No       | `Logs`, `Metrics`, `Traces` | Which signal types to export.                                         |
| Endpoint              | String             | Yes      | *(empty)*                   | The Dash0 ingestion URL, as found in your project settings.           |
| Bearer Token          | String             | Yes      | *(empty)*                   | Bearer token for authenticating with the Dash0 API. Sensitive value.  |
| Dataset Name          | String             | Yes      | *(empty)*                   | The dataset to send telemetry to. Sent as the `Dash0-Dataset` header. |

**Advanced**

| Parameter     | Type    | Required | Default | Description                                                                              |
| ------------- | ------- | -------- | ------- | ---------------------------------------------------------------------------------------- |
| Timeout       | Integer | Yes      | `30`    | Timeout in seconds for sending batches to the destination.                               |
| Drop Raw Copy | Boolean | No       | `true`  | When enabled, drops the raw copy of the log stored in `log.record.original` (logs only). |

**Retry on Failure**

| Parameter               | Type    | Required | Default | Description                                                                                                                 |
| ----------------------- | ------- | -------- | ------- | --------------------------------------------------------------------------------------------------------------------------- |
| Enable Retry on Failure | Boolean | No       | `true`  | Attempt to resend telemetry that failed to transmit.                                                                        |
| Initial Interval        | Integer | No       | `5`     | Seconds to wait after the first failure before retrying. Applies when retry is enabled.                                     |
| Max Interval            | Integer | No       | `30`    | Upper bound in seconds on backoff. Applies when retry is enabled.                                                           |
| Max Elapsed Time        | Integer | No       | `300`   | Maximum seconds spent retrying a batch before giving up, to avoid a never-ending retry loop. Applies when retry is enabled. |

**Sending Queue**

| Parameter                 | Type      | Required | Default                         | Description                                                                                                                          |
| ------------------------- | --------- | -------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| Enable Sending Queue      | Boolean   | No       | `true`                          | Buffer telemetry temporarily before sending to help avoid loss during a brief network outage.                                        |
| Number of Consumers       | Integer   | No       | `10`                            | Number of consumers that dequeue batches. Applies when the sending queue is enabled.                                                 |
| Queue Size                | Integer   | No       | `5000`                          | Maximum number of batches kept in memory before dropping. Applies when the sending queue is enabled.                                 |
| Enable Persistent Queuing | Boolean   | No       | `true`                          | Buffer telemetry to disk to help avoid loss during network outages or collector restarts. Applies when the sending queue is enabled. |
| Persistent Queue Storage  | Extension | Yes      | `file_storage_persistent_queue` | The storage extension used for the persistent queue. Applies when the sending queue and persistent queuing are enabled.              |

### Examples

This destination exports metrics, traces, and logs to the Dash0 project identified by the endpoint, authenticated with the bearer token, and routed to the `production` dataset. Retry, sending queue, and persistent queuing are left at their defaults.

```yaml
apiVersion: bindplane.observiq.com/v1
kind: Destination
metadata:
  name: dash0
spec:
  type: dash0
  parameters:
    - name: telemetry_types
      value:
        - Logs
        - Metrics
        - Traces
    - name: endpoint
      value: https://ingress.us-west-2.aws.dash0.com
    - name: bearer_token
      value: auth_REPLACE_WITH_DASH0_TOKEN
    - name: dataset_name
      value: production
```

### Configuration Tips

* Copy the **Endpoint** and **Bearer Token** directly from your Dash0 project settings. The endpoint is region-specific, so a wrong region produces connection failures.
* Leave the persistent queue enabled in production. It buffers telemetry to disk, so data survives collector restarts and longer network outages that an in-memory queue alone would drop.
* Use distinct **Dataset Name** values to separate environments or teams within one Dash0 organization.

### Troubleshooting

#### Authentication failures (401 / 403)

Symptoms: telemetry is rejected and the collector logs show 401 or 403 responses.

Solutions:

1. Confirm the **Bearer Token** is a valid Dash0 auth token with ingest permission.
2. Enter the token value only. Do not prepend `Bearer` ; Bindplane adds the prefix.

#### Connection errors or no data arriving

Symptoms: the collector cannot reach the endpoint, or telemetry never appears in Dash0.

Solutions:

1. Verify the **Endpoint** matches the OTLP/HTTP ingestion URL in your Dash0 project settings, including the correct region.
2. Confirm the **Dataset Name** matches an existing dataset; telemetry is routed by the `Dash0-Dataset` header.

#### Dropped telemetry under load

Symptoms: gaps in data during traffic spikes or network instability.

Solutions:

1. Keep **Enable Sending Queue** and **Enable Persistent Queuing** on so batches buffer instead of dropping.
2. Increase **Queue Size** or **Number of Consumers** if the in-memory queue fills during sustained spikes.

### Standalone Destination

```yaml
apiVersion: bindplane.observiq.com/v1
kind: Destination
metadata:
  name: dash0
spec:
  type: dash0
  parameters:
    - name: telemetry_types
      value:
        - Logs
        - Metrics
        - Traces
    - name: endpoint
      value: https://ingress.us-west-2.aws.dash0.com
    - name: bearer_token
      value: auth_REPLACE_WITH_DASH0_TOKEN
    - name: dataset_name
      value: production
    - name: timeout
      value: 30
    - name: retry_on_failure_enabled
      value: true
    - name: sending_queue_enabled
      value: true
    - name: persistent_queue_enabled
      value: true
    - name: persistent_queue_storage_extension
      value:
        type: file_storage_persistent_queue
        parameters:
          - name: persistent_queue_directory
            value: ${OIQ_OTEL_COLLECTOR_HOME}/storage
          - name: timeout
            value: 1
          - name: persistent_queue_fsync
            value: true
```

### Related Resources

* [OTLP/HTTP Exporter (`otlphttpexporter`)](https://github.com/open-telemetry/opentelemetry-collector/blob/main/exporter/otlphttpexporter/README.md)
* [Dash0 — Sending data to Dash0](https://www.dash0.com/documentation/dash0/get-started/sending-data-to-dash0)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.bindplane.com/integrations/destinations/dash0.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
