Hello,

I'm following the suggestions I got from here 
<https://docs.aws.amazon.com/prometheus/latest/userguide/AMP-alertmanager-receiver-JSON.html>
 
from AWS in order to convert the Alert Manager message into JSON so I can 
use it in SNS.

Basically, I'm defining a template for SNS message like this:

* {{ define "sns.default.message" }}{{ "{" }}"receiver": "{{ .Receiver 
}}","status": "{{ .Status }}","alerts": [{{ range $alertIndex, $alerts := 
.Alerts }}{{ if $alertIndex }}, {{ end }}{{ "{" }}"status": "{{ 
$alerts.Status }}"{{ if gt (len $alerts.Labels.SortedPairs) 0 -}},"labels": 
{{ "{" }}{{ range $index, $label := $alerts.Labels.SortedPairs }}{{ if 
$index }}, {{ end }}"{{ $label.Name }}": "{{ $label.Value }}"{{ end }}{{ 
"}" }}{{- end }}{{ if gt (len $alerts.Annotations.SortedPairs ) 0 
-}},"annotations": {{ "{" }}{{ range $index, $annotations := 
$alerts.Annotations.SortedPairs }}{{ if $index }}, {{ end }}"{{ 
$annotations.Name }}": "{{ $annotations.Value }}"{{ end }}{{ "}" }}{{- end 
}},"startsAt": "{{ $alerts.StartsAt }}","endsAt": "{{ $alerts.EndsAt 
}}","generatorURL": "{{ $alerts.GeneratorURL }}","fingerprint": "{{ 
$alerts.Fingerprint }}"{{ "}" }}{{ end }}]{{ if gt (len .GroupLabels) 0 
-}},"groupLabels": {{ "{" }}{{ range $index, $groupLabels := 
.GroupLabels.SortedPairs }}{{ if $index }}, {{ end }}"{{ $groupLabels.Name 
}}": "{{ $groupLabels.Value }}"{{ end }}{{ "}" }}{{- end }}{{ if gt (len 
.CommonLabels) 0 -}},"commonLabels": {{ "{" }}{{ range $index, 
$commonLabels := .CommonLabels.SortedPairs }}{{ if $index }}, {{ end }}"{{ 
$commonLabels.Name }}": "{{ $commonLabels.Value }}"{{ end }}{{ "}" }}{{- 
end }}{{ if gt (len .CommonAnnotations) 0 -}},"commonAnnotations": {{ "{" 
}}{{ range $index, $commonAnnotations := .CommonAnnotations.SortedPairs 
}}{{ if $index }}, {{ end }}"{{ $commonAnnotations.Name }}": "{{ 
$commonAnnotations.Value }}"{{ end }}{{ "}" }}{{- end }}{{ "}" }}{{ end }}*

The only problem I'm facing now is that the double quotes (") are not being 
properly escaped so the JSON structure is broken. Any suggestion about what 
to do in this case?

My options are the following functions 
<https://prometheus.io/docs/alerting/latest/notifications/>:

   - *safeHtml*: it didn't escape the double-quoted
   - *reReplaceAll*: I didn't manage to properly use it. Any example?

Any other option you can think of?

Thanks,

Emmanuel

-- 
You received this message because you are subscribed to the Google Groups 
"Prometheus Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to prometheus-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/prometheus-users/f02dc667-092d-4c28-a845-3781af3bb729n%40googlegroups.com.

Reply via email to