# Observability Exports

:::info
Observability Exports is available on **Enterprise plans** of [Jitsu Cloud](https://use.jitsu.com) only.
[Contact us](https://jitsu.com/contact) to enable it for your workspace.
:::

## What are Observability Exports?

Everything you can see in [Live Events](/docs/features/live-events) — function logs, warehouse delivery statuses, sync results and
processing errors — can be streamed to your own monitoring stack in near real time. Records are delivered as
[OpenTelemetry](https://opentelemetry.io/) (OTLP) log records over HTTP, so they work with any OTLP-compatible backend:
Datadog, Grafana Cloud, New Relic, Elastic, or your own OpenTelemetry Collector.

Typical use cases:

- Alert on delivery errors and failing [functions](/docs/functions) with the monitoring tools your team already uses
- Keep operational logs beyond the Live Events retention window
- Correlate Jitsu pipeline health with the rest of your infrastructure

## What is exported

| Record type | Contents |
| --- | --- |
| `function` | [Functions](/docs/functions) execution logs — `log.info` / `log.warn` / `log.error` calls from your code |
| `bulker_batch` | Data warehouse batch statuses: target table, processed rows, statistics, errors |
| `bulker_stream` | Streaming-mode delivery results per event |
| `dead-letter` | Events that could not be processed, with the error that caused it |

The incoming event stream itself is not exported — Observability Exports carry operational logs about your pipelines,
not your raw event traffic.

Each log record is tagged with resource attribute `service.name: jitsu-live-events` and per-record attributes you can
filter on: `jitsu.workspace.id`, `jitsu.live_event.type`, `jitsu.connection.id` or `jitsu.destination.id`, and
`jitsu.message_id` where applicable. Log severity is mapped from the record's level.

## Setting it up

Open **Settings → Observability exports** in your workspace:

1. Set the **endpoint** — your backend's OTLP/HTTP logs URL
2. Add **headers** for authentication. Header values are write-only: after saving they are masked and can be replaced
   but not read back
3. Press **Send test log** and check that the test record reached your backend
4. Toggle **Enabled** and save

### Example: Datadog

Datadog accepts OTLP logs directly, no Agent or Collector needed:

- Endpoint: `https://otlp.datadoghq.com/v1/logs` (host is site-specific — for example `https://otlp.us5.datadoghq.com/v1/logs`
  for the US5 site; use the one matching your Datadog site)
- Header: `dd-api-key` with an **API Key** from your Datadog **Organization** settings

After sending a test log, find it in Logs Explorer with the query `service:jitsu-live-events`.

## Delivery semantics

Records are delivered in batches with a delay of up to a minute. Failed deliveries are retried with at-least-once
semantics, so your backend may occasionally receive duplicates — the `jitsu.live_event.id` attribute identifies them.
Export delivery never affects event processing: if your endpoint is down, events keep flowing to their destinations.

## Billing

Exported records count toward your plan's event volume, the same way incoming events do. The actual amount depends on
how much logging your pipelines generate.