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.

