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.

Reply via email to