What alertmanager version? Do you have any sort of alertmanager clustering, and if so are you sure the nodes are consistent?
As far as I know, what you've written is file. Rules which send to receiver "devops" *should* send to both destinations.
Therefore if this isn't happening then you should look at alertmanager logs, to see what it says is happening at delivery time. You should also look at the metrics that alertmanager itself generates; you can scrape these with a separate scrape job, e.g.
- job_name: alertmanager
scrape_interval: 1m
metrics_path: /metrics
static_configs:
- targets: ['localhost:9093']
This will give you counters for delivery attempts and failures for each delivery method, e.g.
alertmanager_notification_latency_seconds_bucket{integration="telegram",le="1"} 0
alertmanager_notification_latency_seconds_bucket{integration="telegram",le="5"} 0
alertmanager_notification_latency_seconds_bucket{integration="telegram",le="10"} 0
alertmanager_notification_latency_seconds_bucket{integration="telegram",le="15"} 0
alertmanager_notification_latency_seconds_bucket{integration="telegram",le="20"} 0
alertmanager_notification_latency_seconds_bucket{integration="telegram",le="+Inf"} 0
alertmanager_notification_latency_seconds_sum{integration="telegram"} 0
alertmanager_notification_latency_seconds_count{integration="telegram"} 0
alertmanager_notification_requests_failed_total{integration="telegram"} 0
alertmanager_notification_requests_total{integration="telegram"} 0
alertmanager_notifications_failed_total{integration="telegram"} 0
alertmanager_notifications_total{integration="telegram"} 0
Aside: if you had two different receivers, say "devops_email" and "devops_telegram", then it's possible to write a routing rule which sends to both:
# OLD
- matchers:
- 'foo = bar'
receiver: devops
# NEW
- matchers:
- 'foo = bar'
routes: [ {receiver: devops_mail, continue: true}, {receiver: devops_telegram} ]
However what you wrote originally should work fine as far as I know.