alertmanager icon indicating copy to clipboard operation
alertmanager copied to clipboard

MSTeams integration message cards actions not supported

Open rgarcia89 opened this issue 1 year ago • 2 comments

With the current state of the MSTeams integration we are not able to define actions next to the title, text and summary. Due to this it is not possible to define buttons that would, for example, provide a silence functionality or a URL to Prometheus, Alertmanager, Runbook or whatever.

https://learn.microsoft.com/en-us/outlook/actionable-messages/message-card-reference#openuri-action

Environment

  • Alertmanager version: 0.26.0

    insert output of alertmanager --version here (repeat for each alertmanager version in your cluster, if relevant to the issue)

  • Prometheus version: 0.70.0

    insert output of prometheus --version here (repeat for each prometheus version in your cluster, if relevant to the issue)

rgarcia89 avatar Dec 18 '23 13:12 rgarcia89

As a kind of workaround: We use html inside the text to add a silence-link:

      msteamsConfigs:
        - text: |2-
            {{ range $index, $alert := .Alerts }}
              {{ if $index }}
            <br />
              {{ end }}
            <hr style='border-color: #{{ if eq $.Status "resolved" }}2DC72D{{ else if eq $.Status "firing" }}{{ if eq $.CommonLabels.severity "critical" }}8C1A1A{{ else if eq $.CommonLabels.severity "error" }}FF4D00{{ else if eq $.CommonLabels.severity "warning" }}FFA500{{ else }}808080{{ end }}{{ else }}808080{{ end }}; border-width: 5px;' />
            <strong>{{ $alert.Annotations.description }}</strong><br />
            <br />
              {{ range $key, $value := $alert.Annotations }}
                {{- if and (ne $key "description") (ne $key "runbook_url") }}
            <strong>{{ $key }}</strong> {{ $value }}<br />
                {{ end -}}
              {{ end -}}
              {{- range $key, $value := $alert.Labels }}
                {{- if ne $key "prometheus" }}
            <strong>{{ $key }}</strong> {{ $value }}<br />
                {{ end -}}
              {{ end }}
              {{ if eq $.Status "firing" -}}
            <br />
            <a href="{{ $.ExternalURL }}/#/silences/new?filter=%7B{{$c := 0}}{{ range $key, $value := $alert.Labels }}{{if $c}}%22%2C%20{{ end }}{{ $c = 1 }}{{ $key }}%3D%22{{ $value }}{{- end }}%22%7D" target='_blank'><button>Silence alert</button></a><br />
              {{- end }}
            {{ end }}

image

PatrickSpies avatar Mar 27 '24 16:03 PatrickSpies

See https://github.com/prometheus/alertmanager/pull/3324#issuecomment-1537879727

Support for AdaptiveCards would be nice, maybe you can provide a merge request to implement that?

TheMeier avatar Mar 28 '24 17:03 TheMeier