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

# SigNoz Alert Integration

> Receive SigNoz alerts through SigNoz's webhook notification channel using a Flashduty Prometheus integration; resolve notifications close the alert automatically.

SigNoz's webhook notification channel sends Prometheus Alertmanager JSON (`status`, `alerts`, `fingerprint`, `labels`, `annotations`, `startsAt`, `endsAt`) to the URL you enter. The Flashduty [Prometheus integration](/en/on-call/integration/alert-integration/alert-sources/prometheus) accepts this format, so no separate SigNoz integration is needed: create a Prometheus integration in Flashduty and paste its push URL into SigNoz.

<div className="hide">
  ## In Flashduty On-call

  ***

  Get an integration push URL in either of the two ways below. **Choose the Prometheus integration type** in both, not SigNoz.

  ### Use a dedicated integration

  1. In the Flashduty console, go to **Channels** and open a channel
  2. Go to **Settings** → **Integrations** → **Dedicated integrations** and click **Add an integration**
  3. Select **Prometheus** and click **Save**
  4. Open the generated integration card and copy the **Push URL**, in the form `https://api.flashcat.cloud/event/push/alert/prometheus?integration_key=<integration key>`

  ### Use a shared integration

  1. In the Flashduty console, go to **Integration Center → Alert Events**
  2. Select **Prometheus** and enter an integration name
  3. Configure the default route and select a channel; you can add more rules under **Routes** after creation
  4. Click **Save** and copy the generated **Push URL**
</div>

## Configure in SigNoz

***

1. In SigNoz, go to **Settings** → **Notification Channels** (also reachable from the **Notification Channels** tab on the **Alerts** page) and click **New Channel**
2. Enter a channel name, select **Webhook** as the type, and enter the full push URL copied above as the endpoint URL, including `?integration_key=...`
3. Keep **Send resolved alerts** on (it is on by default); otherwise Flashduty receives no recovery notifications
4. Save, then select the channel in the threshold row (**send to**) of your SigNoz alert rules

## Field mapping

***

| SigNoz field | Flashduty |
| :- | :- |
| `alerts[].fingerprint` | Alert Key. Notifications with the same `fingerprint` belong to one alert |
| `alerts[].status` | `firing` creates or updates the alert with the mapped severity; `resolved` closes it |
| `alerts[].labels.severity` | `critical` → Critical; `warning` → Warning; `info` → Info; missing or unrecognized → Warning |
| `alerts[].labels.alertname` | Check (`check`), also used in the title |
| `alerts[].labels.instance` | Label `resource` |
| Other `labels` and `annotations` | Each key becomes a label; `annotations.description` becomes the alert description |
| `startsAt`, `endsAt` | Labels `starts_at` and `ends_at` |

SigNoz groups notifications by rule (`ruleId`); one notification can carry several alerts, and Flashduty handles each one separately (up to 100 per request). A firing rule normally arrives within a minute.

## Recovery and deduplication

***

* When SigNoz sends a notification with `status` set to `resolved`, Flashduty closes the alert with the same `fingerprint`.
* In current SigNoz rules the `severity` label is taken from the threshold row name (for example a threshold named `critical` or `warning`), which is also written to the `threshold.name` label. If you use a value that is not built in, such as `error`, configure a custom severity mapping on the Prometheus integration; otherwise it is treated as Warning.
* The resolved notification arrives several minutes after the rule returns to normal (observed: about 30 seconds for firing, 6 to 10 minutes for resolved). This is expected.
* The channel's **Test** button sends a `firing` test alert titled `Test Alert (<channel name>)` with `severity` `critical`. It opens a Critical alert in Flashduty and is never followed by a resolved notification, so close that alert manually.

## Troubleshooting

***

* **Flashduty returns `Invalid parameters`**: the push URL is incomplete and lacks `integration_key`, or the integration type is not Prometheus
* **Alerts do not recover**: confirm **Send resolved alerts** is on for the SigNoz channel and that the resolved notification's `fingerprint` matches the trigger
* **Resolved notifications arrive late**: SigNoz sends the resolved notification several minutes after the rule returns to normal, which is its default behavior
