> but i was expecting an additional host=server2 tag on the ticket. 

You won't get that, because CommonLabels is exactly how it sounds: those 
labels which are common to all the alerts in the group.  If one alert has 
instance=server1 and the other has instance=server2, but they're in the 
same alert group, then no 'instance' will appear in CommonLabels.

The documentation is here:
https://prometheus.io/docs/alerting/latest/notifications/

It looks like you could iterate over Alerts.Firing then the Labels within 
each alert.

Alternatively, you could disable grouping and let opsgenie do the grouping 
(I don't know opsgenie, so I don't know how good a job it would do of that)


On Wednesday 3 April 2024 at 09:11:24 UTC+1 mohan garden wrote:

> *correction: 
> *Scenario2: *While server1 trigger is active, a second server ( say 
> server2)'s local disk usage reaches 50%,
>
> i see that the already open Opsgenie ticket's details gets updated as:
>
> ticket header name:  local disk usage reached 50%
> ticket description:  space on /var file system at server1:9100 server = 
> 82%."
>                                  space on /var file system at 
> server2:9100 server = 80%."
> ticket tags: criteria: overuse , team: support, severity: critical, 
> infra,monitor,host=server1
>
> [image: photo003.png]
>
>
>
> On Wednesday, April 3, 2024 at 1:37:12 PM UTC+5:30 mohan garden wrote:
>
>> Hi Brian, 
>> Thank you for the response, Here are some more details, hope this will 
>> help you in gaining more understanding into the configuration and method i 
>> am using to generate tags :
>>
>>
>> 1. We collect data from the node exporter, and have created some rules 
>> around the collected data. Here is one example - 
>>     - alert: "Local Disk usage has reached 50%"
>>       expr: (round( 
>> node_filesystem_avail_bytes{mountpoint=~"/dev.*|/sys*|/|/home|/tmp|/var.*|/boot.*",}
>>  
>> / 
>> node_filesystem_size_bytes{mountpoint=~"/dev.*|/sys*|/|/home|/tmp|/var.*|/boot.*"}
>>  
>> * 100  ,0.1) >= y ) and (round( 
>> node_filesystem_avail_bytes{mountpoint=~"/dev.*|/sys*|/|/home|/tmp|/var.*|/boot.*"}
>>  
>> / 
>> node_filesystem_size_bytes{mountpoint=~"/dev.*|/sys*|/|/home|/tmp|/var.*|/boot.*"}
>>  
>> * 100  ,0.1) <= z )
>>       for: 5m
>>       labels:
>>         criteria: overuse
>>         severity: critical
>>         team: support
>>       annotations:
>>         summary: "{{ $labels.instance }} 's  ({{ $labels.device }}) has 
>> low space."
>>         description: "space on {{ $labels.mountpoint }} file system at {{ 
>> $labels.instance }} server = {{ $value }}%."
>>
>> 2. at the alert manager , we have created notification rules to notify in 
>> case the aforementioned condition occurs:
>>
>>   smtp_from: '[email protected]'
>>   smtp_require_tls: false
>>   smtp_smarthost: '[email protected]:25 <http://[email protected]:25>'
>>
>> templates:
>>   - /home/ALERTMANAGER/conf/template/*.tmpl
>>
>> route:
>>   group_wait: 5m
>>   group_interval: 2h
>>   repeat_interval: 5h
>>   receiver: admin
>>   routes:
>>   - match_re:
>>       alertname: ".*Local Disk usage has reached .*%"
>>     receiver: admin
>>     routes:
>>     - match:
>>         criteria: overuse
>>         severity: critical
>>         team: support
>>       receiver: mailsupport
>>       continue: true
>>     - match:
>>         criteria: overuse
>>         team: support
>>         severity: critical
>>         receiver: opsgeniesupport
>>
>> receivers:
>>   - name: opsgeniesupport
>>     opsgenie_configs:
>>     - api_key: XYZ
>>       api_url: https://api.opsgenie.com
>>       message: '{{ .CommonLabels.alertname }}'
>>       description: "{{ range .Alerts }}{{ .Annotations.description 
>> }}\n\r{{ end }}"
>>       tags: '{{ range $k, $v := .CommonLabels}}{{ if or (eq $k 
>> "criteria")  (eq $k "severity") (eq $k "team") }}{{$k}}={{$v}},{{ else if 
>> eq $k "instance" }}{{ reReplaceAll "(.+):(.+)" "host=$1" $v 
>> }},{{end}}{{end}},infra,monitor'
>>       priority: 'P1'
>>       update_alerts: true
>>       send_resolved: true
>> ...
>> So you can see that i derive a  tag host=<hostname> from the instance 
>> label.
>>
>>
>> *Scenario1: *When server1 's local disk usage reaches 50%, i see that 
>> Opsgenie ticket is created having:
>> Opsgenie Ticket metadata: 
>> ticket header name:  local disk usage reached 50%
>> ticket description:  space on /var file system at server1:9100 server = 
>> 82%."
>> ticket tags: criteria: overuse , team: support, severity: critical, 
>> infra,monitor,host=server1
>>
>> so everything works as expected, no issues with Scenario1.
>>
>>
>> *Scenario2: *While server1 trigger is active, a second server ( say 
>> server2)'s local disk usage reaches 50%,
>>
>> i see that Opsgenie tickets are getting updated as:
>> ticket header name:  local disk usage reached 50%
>> ticket description:  space on /var file system at server1:9100 server = 
>> 82%."
>> ticket description:  space on /var file system at server2:9100 server = 
>> 80%."
>> ticket tags: criteria: overuse , team: support, severity: critical, 
>> infra,monitor,host=server1
>>
>>
>> but i was expecting an additional host=server2 tag on the ticket.  
>> in Summary - i see updated description , but unable to see updated tags.
>>
>> in tags section of the alertmanager - opsgenie integration configuration 
>> , i had tried iterating over Alerts and CommonLabels, but i was unable to 
>> add  additional host=server2 tag .
>> {{ range $idx, $alert := .Alerts}}{{range $k, $v := $alert.Labels 
>> }}{{$k}}={{$v}},{{end}}{{end}},test=test
>> {{ range $k, $v := .CommonLabels}}....{{end}}
>>
>>
>> At the moment, i am not sure that what is potentially preventing the 
>> update of tags on the opsgenie tickets.
>> If i can get some clarity on the fact that if the configurations i have 
>> for  alertmanager are good enough, then i can look at the opsgenie 
>> configurations.
>>
>>
>> Please advice.
>>
>>
>> Regards
>> CP
>>
>>
>> On Tuesday, April 2, 2024 at 10:46:36 PM UTC+5:30 Brian Candler wrote:
>>
>>> FYI, those images are unreadable - copy-pasted text would be much better.
>>>
>>> My guess, though, is that you probably don't want to group alerts before 
>>> sending them to opsgenie. You haven't shown your full alertmanager config, 
>>> but if you have a line like
>>>
>>>    group_by: ['alertname']
>>>
>>> then try
>>>
>>>    group_by: ["..."]
>>>
>>> (literally, exactly that: a single string containing three dots, inside 
>>> square brackets)
>>>
>>> On Tuesday 2 April 2024 at 17:15:39 UTC+1 mohan garden wrote:
>>>
>>>> Dear Prometheus Community,
>>>> I am reaching out regarding an issue i have encountered with  
>>>> prometheus alert tagging, specifically while creating tickets in Opsgenie.
>>>>
>>>>
>>>> I have configured alertmanager  to send alerts to Opsgenie as , the 
>>>> configuration as :
>>>> [image: photo001.png]i ticket is generated with expected description 
>>>> and tags as - 
>>>> [image: photo002.png]
>>>>
>>>> Now, by default the alerts are grouped by the alert name( default 
>>>> behavior).So when the similar event happens on a different server i see 
>>>> that the description is updated as:
>>>> [image: photo003.png]
>>>> but the tag on the ticket remains same, 
>>>> expected behavior: criteria=..., host=108, host=114, infra.....support 
>>>>
>>>> I have set update_alert and send_resolved settings to true.
>>>> I am not sure that in order to make it work as expected, If i need 
>>>> additional configuration at opsgenie or at the alertmanager. 
>>>>
>>>> I would appreciate any insight or guidance on the method to resolve 
>>>> this issue and ensure that alerts for different servers are correctly 
>>>> tagged in Opsgenie.
>>>>
>>>> Thank you in advance.
>>>> Regards,
>>>> CP
>>>>
>>>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/prometheus-users/9e2be26c-2fcf-46e4-af0a-9b4e56debaa1n%40googlegroups.com.

Reply via email to