Accessing current date / other functions in the Alertmanager Go templates
We're using AlertManager to send out emails.
Question 1 : Emails apps like Inbox group emails to create conversations based on the email title. Our current email title is something like "X services failing" so that makes for horrible grouping / conversations.
The requirement would now be to group them per day by including the date in the subject.
However, I'm not able to access the current date in the Go Templates.
Is there another way of doing this ?
- Can it be passed on as a label by prometheus (using the alert.rules) ?
- Can something be done in the alertmanager configuration ?
Question 2 : As a general remark , we often get requirements to change the email templates. For example :
- Change the sorting of the alerts
- Add how long an alert was active (current date - startsAt)
- ...
These seem to be very difficult to implement using the Go templates as a lot of these functions aren't available (no sorting, no access to date functons / current date, ....)
How should we go about this ?
+1
#1178 is related to the second question
Hi! 👋 I think being able to access the current date/time in an Alertmanager template is a valid use case. Have you considered contributing this change? You can find the functions in template/template.go.
Adding sprig support would be a solution for this. Requested in https://github.com/prometheus/alertmanager/issues/3726. @ddewaele can we close this in favor of https://github.com/prometheus/alertmanager/issues/3726 ?