Link dynamic speed calulation


I am using Weathermap v0.97c for monitoring and network topology.
Many of my links are trunks, for example, 4 x 10G in a trunk, and the max speed for such links is 40G.

As I understand current link utilization is calculated as max link utilization / current utilization.
But if one of these 4 links gets down scenarios are changed and we have max link utilization is 30 G.

But the value of max link utilization is static and it is filed manually.

Is it possible for the link capacity calculated dynamically by taking a link speed directly from the device and if one or a few links gets down to change the link speed as actual link speed?

1 Like

Does the speed on the device actually change when a member is down? (i.e. does ifSpeed for the Etherchannel change?). I’m not sure if it does.

If it does, and you use Cacti with Boost enabled, then cacti_use_ifspeed might help you, as documented here: PHP Weathermap v0.98 - Specifying <a href="config-reference.html#LINK_TARGET">TARGET</a> lines

However, even then, I don’t think Cacti will update the cached information if it changes, until you re-index the device. You didn’t mention if it’s Cacti here.

I see it’s a useful use-case though.

I am using Weathermap behind Observium and there is an option to define a maximum link speed.
Everything about the link utilization is calculated with that static value max link speed.

If remove that value, then there is a default value.
Screenshot 2022-01-12 at 16.00.42

(I think maybe I should add some user flair for Cacti and Observium users :slight_smile: )

I think you are stuck at the moment. However, the order of operations is:

  • collect the data
  • aggregate the data (sum for multiple targets) and calculate the percentage usage

so in theory you could have a dynamic maxvalue/bandwidth, but then you need a nice way to specify that. Is there a field in Observium that correctly shows the current maximum of the bundle during a fault? Weathermap would have to fetch it from somewhere. It wouldn’t be a lot of code if the value exists. But it would need to be possibly to cleanly specify the source of that information.