You can always try the query in a graph, playing with the saturation
threshold.

If the query returns data, there would be an alert, if no data, no alert.

On Fri, Apr 19, 2024 at 4:10 PM Brian Gates <[email protected]> wrote:

> That makes sense, i am using the values of bytes/sec(IEC) to get a correct
> display of my bandwidth values, for reference i am polling Meraki Switches
> via SNMP
>
> Im going to give the above alert a try and see if that works as expected
>
> On Friday, April 19, 2024 at 10:05:32 AM UTC-4 Ben Kochie wrote:
>
>> Two things,
>>
>> Full-duplex means you shouldn't add up `ifHCOutOctets` and
>> `ifHCInOctets`. What you probably want is two alerts, one for "Port In
>> Saturation" and one for "Port Out Saturation".
>>
>> Because ifHighSpeed is megabits/sec, you'll have to do a bit more math.
>> If you want to deal with half-duplex ports, you'll probably need to do some
>> additional scraping of EtherLike-MIB and even a bit more math. It gets a
>> bit complicated.
>>
>> But the trivial alert would be something like this:
>>
>> - alert: PortOutSaturation
>>   expr: >
>>     (
>>       sum by (snmp_target,ifIndex,ifAlias,ifDescr,ifName)
>> (rate(ifHCOutOctets[5m]))
>>       * 8
>>       / 1000000
>>     )
>>     /
>>     avg by (snmp_target,ifIndex,ifAlias,ifDescr,ifName)
>> (avg_over_time(ifHighSpeed[5m]))
>>     * 100
>>     > 90
>>
>> This would alert when the port is over 90% of the rated link speed.
>>
>>
>>
>> On Fri, Apr 19, 2024 at 3:51 PM Brian Gates <[email protected]> wrote:
>>
>>> hey all could use some assistance creating a Prometheus alert.
>>>
>>> It seems simple but after some trial and error its more advanced than i
>>> thought.
>>>
>>>
>>> We are looking to create alerts for "Link Saturation"
>>>
>>>
>>> We have dashboards that show us the current bandwidth of the ports, and
>>> the queries look like this:
>>> (
>>>   sum by (snmp_target, ifDescr)
>>> (irate(ifHCOutOctets{job_snmp=~"integrations/snmp",
>>> snmp_target=~"$Switches", ifDescr=~"$ifName"}[$__interval])) +
>>>   sum by (snmp_target, ifDescr)
>>> (irate(ifHCInOctets{job_snmp=~"integrations/snmp",
>>> snmp_target=~"$Switches", ifDescr=~"$ifName"}[$__interval]))
>>> ) * 8
>>>
>>> And this query we use in a table to show the Ports Linked Speed:
>>> last_over_time(ifHighSpeed{snmp_target="$Switches"}[$__interval])
>>>
>>> So now here begs the question how can i create and alert that basically
>>> says
>>>
>>> If the Value of (
>>>   sum by (snmp_target, ifDescr)
>>> (irate(ifHCOutOctets{job_snmp=~"integrations/snmp",
>>> snmp_target=~"$Switches", ifDescr=~"$ifName"}[$__interval])) +
>>>   sum by (snmp_target, ifDescr)
>>> (irate(ifHCInOctets{job_snmp=~"integrations/snmp",
>>> snmp_target=~"$Switches", ifDescr=~"$ifName"}[$__interval]))
>>> ) * 8 is Greater than
>>> last_over_time(ifHighSpeed{snmp_target="$Switches"}[$__interval]) fire an
>>> alert
>>>
>>> --
>>> 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/a23721bb-826a-4b95-8e99-a902aa891138n%40googlegroups.com
>>> <https://groups.google.com/d/msgid/prometheus-users/a23721bb-826a-4b95-8e99-a902aa891138n%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> --
> 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/95a52bf6-da1a-4690-b81e-2522db605dd8n%40googlegroups.com
> <https://groups.google.com/d/msgid/prometheus-users/95a52bf6-da1a-4690-b81e-2522db605dd8n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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/CABbyFmoqPn6mSvm0yFmMR%3DC3%2BOxPm7Ekv1xgBKfG4n%2BLaF9D2A%40mail.gmail.com.

Reply via email to