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

# SigNoz

> Add an otlphttp exporter to your SigNoz OpenTelemetry Collector to fan out logs and traces to Sazabi while SigNoz keeps receiving them.

[All SigNoz integration capabilities](https://docs.sazabi.com/catalogs/integrations/signoz)

## About

SigNoz collects telemetry with an OpenTelemetry Collector. Add a second OTLP/HTTP exporter, `otlphttp/sazabi`, to that collector's `logs` and `traces` pipelines next to the SigNoz exporters. The collector then sends every batch to both SigNoz and Sazabi, so nothing changes for SigNoz and no application changes are needed.

Metrics are not stored by this source. Leave the metrics pipelines as they are and use [OpenTelemetry Metrics](https://docs.sazabi.com/catalogs/log-sources/send-to-an-endpoint/opentelemetry-metrics.md) for metric data.

> [!NOTE]
>
> The fan-out happens in a collector you run. SigNoz Cloud's managed ingest endpoint doesn't forward data to other destinations, so on SigNoz Cloud add Sazabi to the [k8s-infra](https://signoz.io/docs/opentelemetry-collection-agents/k8s/k8s-infra/overview/) agent or the OpenTelemetry Collector that sends to SigNoz Cloud. For a plain OpenTelemetry Collector, the [OpenTelemetry Collector](https://docs.sazabi.com/catalogs/log-sources/send-to-an-endpoint/otel-collector.md) source covers the same change.

## Prerequisites

* One of: self-hosted SigNoz installed with [Foundry](https://signoz.io/docs/install/docker/), the older Docker install (`otel-collector-config.yaml`), the [`signoz/signoz` Helm chart](https://github.com/SigNoz/charts/tree/main/charts/signoz), or the [`signoz/k8s-infra` Helm chart](https://github.com/SigNoz/charts/tree/main/charts/k8s-infra)
* Outbound HTTPS from the collector to your Sazabi intake host
* Your Sazabi intake URL, shown above — open the log source and copy the **Intake URL** from its setup screen (the public key is embedded in the URL)

## Set up in the dashboard

**Step 1**

### Add the Sazabi exporter

Pick the snippet for your deployment. Each one defines `otlphttp/sazabi` and appends it to the `logs` and `traces` pipeline exporter lists. Replace `<your intake URL>` with the intake URL shown above; no authentication header is needed because the public key is in the hostname.

**Foundry (`casting.yaml`).** Foundry merges this fragment onto the collector config it generates. Apply it with `foundryctl cast -f casting.yaml`.

```yaml title="casting.yaml" theme={"system"}
spec:
  ingester:
    spec:
      config:
        data:
          ingester.yaml: |
            exporters:
              otlphttp/sazabi:
                endpoint: "<your intake URL>"
            service:
              pipelines:
                logs:
                  exporters: [clickhouselogsexporter, signozmeter, metadataexporter, otlphttp/sazabi]
                traces:
                  exporters: [clickhousetraces, signozmeter, metadataexporter, otlphttp/sazabi]
```

**Older Docker install (`otel-collector-config.yaml`).** Add the exporter and edit the two existing pipelines in place, then restart the SigNoz collector container.

```yaml title="otel-collector-config.yaml" theme={"system"}
exporters:
  otlphttp/sazabi:
    endpoint: "<your intake URL>"

service:
  pipelines:
    logs:
      exporters: [clickhouselogsexporter, metadataexporter, signozmeter, otlphttp/sazabi]
    traces:
      exporters: [clickhousetraces, metadataexporter, signozmeter, otlphttp/sazabi]
```

**`signoz/signoz` Helm chart.** Add this to your values file and run `helm upgrade`.

```yaml title="values.yaml" theme={"system"}
otelCollector:
  config:
    exporters:
      otlphttp/sazabi:
        endpoint: "<your intake URL>"
    service:
      pipelines:
        logs:
          exporters: [clickhouselogsexporter, metadataexporter, signozmeter, otlphttp/sazabi]
        traces:
          exporters: [clickhousetraces, metadataexporter, signozmeter, otlphttp/sazabi]
```

**`signoz/k8s-infra` Helm chart.** The chart adds its own SigNoz exporter to every pipeline when it renders, so list only the Sazabi exporter. Add this to your values file and run `helm upgrade`. To also send Kubernetes events, add the same exporter and `logs` list under `otelDeployment.config`.

```yaml title="values.yaml" theme={"system"}
otelAgent:
  config:
    exporters:
      otlphttp/sazabi:
        endpoint: "<your intake URL>"
    service:
      pipelines:
        logs:
          exporters: [otlphttp/sazabi]
        traces:
          exporters: [otlphttp/sazabi]
```

**Step 2**

### Keep the SigNoz exporters

Helm, Foundry and the collector replace a pipeline's `exporters` list rather than merging it, so every exporter already in the list has to stay. The lists above match SigNoz's current defaults. If you changed yours, keep your own exporters and append `otlphttp/sazabi`. Leave the metrics pipelines unchanged.

**Step 3**

### Hand off the change

If this configuration is version-controlled, commit it on a new branch, push it, and open a pull request. Otherwise apply it directly to your SigNoz deployment. Keep the intake URL in a secret store or environment variable where your tooling supports it.

## Set up with the CLI

You can also register the SigNoz log source with the [Sazabi CLI](https://docs.sazabi.com/reference/cli.md) (installed and authenticated — see [CLI reference](https://docs.sazabi.com/reference/cli/log-sources.md)).

Registering the source mints the same intake URL the dashboard shows above (the public key is embedded in its hostname):

```bash theme={"system"}
sazabi log-sources create signoz --mode manual
```

The command prints the intake URL for the new source — copy the whole URL and use it in the configuration shown above. Run `sazabi log-sources get <log-source-id>` at any time to reprint the endpoint, or `sazabi log-sources list` to see every log source in the project.

## Verify

Restart or upgrade the collector after updating the configuration. Open the [Intake page](https://docs.sazabi.com/guides/instrument/intake.md) in the Sazabi dashboard and confirm records from the **SigNoz** source appear within a minute or two. They keep their original `service.name` and resource attributes, so services show up under the same names as in SigNoz.

## Troubleshooting

**No records after restarting** — Confirm `otlphttp/sazabi` appears in the `exporters` list of the `logs` and `traces` pipelines, not only under `exporters:`. The collector never starts an exporter that no pipeline references. Then check the collector logs for errors from `otlphttp/sazabi` and confirm the endpoint is the full intake URL starting with `https://`, with no path.

**SigNoz stopped receiving data** — A pipeline's `exporters` list was replaced without the SigNoz exporters. Restate them alongside `otlphttp/sazabi`.

**k8s-infra pipelines disappeared** — The chart drops any pipeline whose `exporters` list is empty after rendering. Make sure the preset that adds the SigNoz exporter (`presets.otlphttpExporter` or `presets.otlpExporter`) is still enabled.

**Metrics are not stored** — This source does not store OpenTelemetry metrics. Use [OpenTelemetry Metrics](https://docs.sazabi.com/catalogs/log-sources/send-to-an-endpoint/opentelemetry-metrics.md) for a metrics pipeline.

## Further reading

> [card] [Intake](https://docs.sazabi.com/guides/instrument/intake.md)
>
> See per-source ingestion volume and health.

> [card] [Log sources](https://docs.sazabi.com/catalogs/log-sources.md)
>
> Browse the full log source catalog.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.