receivers:
- name: 'prometheus-msteams'
webhook_configs:
- send_resolved: true
url: 'http://prometheus-msteams:2000/alert'
That looks like broken YAML formatting (and I'm surprised it's accepted at all: it looks like two receivers, one with a name and empty webhook_configs, and one with send_resolved and url, which aren't valid at the top level of a receiver).
You want:
receivers:
- name: 'prometheus-msteams'
webhook_configs:
- send_resolved: true
url: 'http://prometheus-msteams:2000/alert'
Apart from that: you can crank up the debug level on alertmanager, and you'll definitely get *something* logged when it tries to deliver an alert (whether successfully or unsuccessfully). Then you can see whether the problem is prometheus->alertmanager or alertmanager->msteams-proxy or msteams-proxy->Microsoft