Я пытаюсь настроить шаблон электронной почты из AlertManager, который использует шаблон HTML Go, которая выводит список предупреждений с помощью следующей конструкции:Сортировка Alertmanager шаблоны электронной почты в Go шаблонах
{{ range .Alerts.Firing }}
Он получает вставляются в шаблон:
func (n *Email) Notify(ctx context.Context, as ...*types.Alert) (bool, error) {
...
data = n.tmpl.Data(receiverName(ctx), groupLabels(ctx), as...)
...
}
оповещения определяется следующим образом:
type Alert struct {
Labels LabelSet `json:"labels"`
Annotations LabelSet `json:"annotations"`
StartsAt time.Time `json:"startsAt,omitempty"`
EndsAt time.Time `json:"endsAt,omitempty"`
GeneratorURL string `json:"generatorURL"`
}
Я хотел бы сделать сортировку в поле StartsAt.
Я попытался использовать функцию сортировки, но он не был доступен в шаблоне электронной почты.
{{ range sort .Alerts.Firing }}
Я получаю
function \"sort\" not defined
Любые идеи о том, как я могу получить его, чтобы разобраться в StartsAt?
Я могу определенно увидеть это как действительный вариант. однако шаблон является частью настраиваемого элемента в структуре, где код Go, который помещает объекты в шаблон, не является. Есть ли способ сделать это в шаблоне, или мы не можем получить доступ к этой функции? – ddewaele
@ddewaele См. Отредактированный ответ. – icza