[๐ Bug]: Deduplication isn't work for Linked provider
Describe the bug I have connected all my Promethuses with push-based mode to Keep, and I've created a workflow to send some alerts to Telegram. The expected result is to get an alert once, but I keep getting the same alert every time it hits.
WorkFlow
workflow:
id: uranus-alerts-workflow
name: Uranus Alerts
description: Handle Uranus Notifiable Alerts
disabled: false
triggers:
- type: alert
cel: cluster == "uranus"
inputs: []
consts:
chat_id: "XXXXX"
topic_id: "XXXX"
owners: []
services: []
steps: []
actions:
- name: KubePersistentVolumeFillingUp and KubePersistentVolumeInodesFillingUp
if: "('{{ alert.name }}' == 'KubePersistentVolumeFillingUp' or '{{ alert.name }}' == 'KubePersistentVolumeInodesFillingUp') and '{{ alert.status }}' == 'firing'"
provider:
type: telegram
config: "{{ providers.XXXX }}"
with:
chat_id: "{{ consts.chat_id }}"
topic_id: "{{ consts.topic_id }}"
parse_mode: html
message: |
๐จ๐จ FIRING ALERTS ๐จ๐จ
๐น <b>alert name:</b> {{ alert.name }}
๐น <b>status:</b> {{ alert.status }}
๐น <b>cluster:</b> {{ alert.cluster }}
๐น <b>namespace:</b> {{ alert.labels.namespace }}
๐น <b>persistentvolumeclaim:</b> {{ alert.labels.persistentvolumeclaim }}
๐ธ <i>summary:</i> {{ alert.annotations.summary }}
๐ธ <i>dashboard:</i> <a href="{{ alert.generatorURL }}">Link</a>
๐ธ <i>description:</i>
<blockquote expandable>{{ alert.description }}</blockquote>
- name: KubePersistentVolumeFillingUpResolved
if: "('{{ alert.name }}' == 'KubePersistentVolumeFillingUp' or '{{ alert.name }}' == 'KubePersistentVolumeInodesFillingUp') and '{{ alert.status }}' == 'resolved'"
provider:
type: telegram
config: "{{ providers.XXXX }}"
with:
chat_id: "{{ consts.chat_id }}"
topic_id: "{{ consts.topic_id }}"
parse_mode: html
message: |
โ
โ
RESOLVED ALERTS โ
โ
๐น <b>alert name:</b> {{ alert.name }}
๐น <b>status:</b> {{ alert.status }}
๐น <b>persistentvolumeclaim:</b> {{ alert.labels.persistentvolumeclaim }}
Screenshots
Additional context
Hi @Khodesaeed! I'm Dosu and Iโm helping the keep team.
Deduplication in Keep relies on generating a fingerprint for each alert using key fields, and by default, it should suppress repeated identical alerts except for changes in explicitly ignored fields like lastReceived time. For push-based Prometheus integrations, if alerts are sent without the provider_id in the push URL, Keep may treat each push as coming from a new Linked provider, which breaks deduplication and results in duplicate notifications. To fix this, make sure your Prometheus push configuration URL includes ?provider_id=YOUR_PROVIDER_ID so all alerts are associated with the correct provider and deduplication works as expected. You can find more details in the deduplication docs and Linked provider setup guide.
If you still see duplicates after this, check if any fields in your alert payloads (like labels or annotations) are changing between pushes, as this can also affect deduplication. As a troubleshooting step, you can try enabling "Full deduplication" for your provider in the UI, which will discard exact duplicate events except for ignored fields. If you want more targeted help, sharing a sample of the raw alert payloads being sent to Keep would be useful.
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report ๐ | Otherย ย ย
ย
Based on the document, add provider_id=YOUR_PROVIDER_ID attach alerts to the connected provider, and I don't have any.
Every provider in Keepโwhether linked or connectedโhas a unique provider_id, which you can find in the Providers page of the Keep UI. To resolve your deduplication issue, open the Providers page, locate your Prometheus provider (for example, "prometheus-linked-0"), and copy its provider_id (usually shown as "id" in the UI). Add this value to your Prometheus Alertmanager webhook URL as ?provider_id=THE_ID_YOU_FOUND. This will ensure alerts are attached to the correct provider and deduplication works as expected. More details on this setup are in the linked providers documentation.
If you use a linked provider regularly, consider converting it to a connected provider for better deduplication and security; the same provider_id usage applies.
To reply, just mention @dosu.
How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report ๐ | Otherย ย ย
ย
hey @Khodesaeed - yea its a limitation, I think we already have some ticket about it. are you for for contributing this feature?