Almost forgot, the problem behaves in a strange way.
There are statements in logs:
...
level=error ts=2021-02-10T10:47:20.270Z caller=notify.go:372 component=dispatcher msg="Error on notify" err="cancelling notify retry for \"pageduty\" due to unrecoverable error: unexpected status code 422: {\"message\":\"Request body is not processable. Please check the errors.\",\"errors\":{\"message\":\"Message can not be empty.\"},\"took\":0.001,\"requestId\":\"ee7f2788-b567-4134-bcde-96080025b392\"}" context_err=null
level=error ts=2021-02-10T10:47:20.271Z caller=dispatch.go:301 component=dispatcher msg="Notify for alerts failed" num_alerts=246 err="cancelling notify retry for \"pageduty\" due to unrecoverable error: unexpected status code 422: {\"message\":\"Request body is not processable. Please check the errors.\",\"errors\":{\"message\":\"Message can not be empty.\"},\"took\":0.001,\"requestId\":\"ee7f2788-b567-4134-bcde-96080025b392\"}"
...
PagerDuty answers that he receives an empty message and he can't process such a request.
This is damn weird. How my config affects the message body and the whole payload of the alert?
P.S. I'm already tried these regexps:
.*
.+
.*$
^(.*)$
^([a-zA-Z0-9-]*)&
and many more :(
It works only if I set 'pagerduty' as a default receiver and the unwanted alerts are being routed via 'blackhole' configured with a looooong 'match_re" expression, but this is madness. I don't want to stalk every new infrastructure alert and add it to the expression :(