I'm monitoring a DSL-router with a Zabbix agent (Freetz) and I've managed to extract the speed of the physical layer of the DSL-line (in bps). This DSL-router also has a network-interface (Ethernet) called 'adsl' where I'm able to fetch the throughput of the traffic going to the DSL-line (in B).
These are the 2 items
I now have the ingredients to see if a line is saturated or not.
I already have this trigger, but I'm still not sure if zabbix is doing something with the units (bps and B). And when the trigger goes off it will show ugly calculations.
This what I have now, which is
I also can't just say 8 bits on the physical layer is equal to 1 Byte on Ethernet. There's a significant overhead there. Especially when the Ethernet packages are decapsulated from the ATM-cels.
A 1 Mbit/s will give you a maximum througput of 110 KBytes/s
This is a PPPoA (PPP over ATM). A PPPoE (PPP over Ethernet) will probably give less overhead.
I thought I was able to create a {$MACRO} like this and work with that:
I thought I would be able to use {$SATURATION.RAW} in a trigger. Well, I can but it just expands to the text "net.if.in[adsl,bytes] / dsl.downstream" when in fact I want that value.
Have I set my expectations too high as far as user-macros are concerned or is there something wrong with my syntax?
I can of course create a new item on the agent and let the agent calculate the saturation. Maybe that's better in this case anyhow.
I would still like an answer to my question or any other ideas of handling this.
These are the 2 items
Code:
net.if.in[adsl,bytes] dsl.downstream
I already have this trigger, but I'm still not sure if zabbix is doing something with the units (bps and B). And when the trigger goes off it will show ugly calculations.
This what I have now, which is
Code:
{Template_Freetz:net.if.in[adsl,bytes].avg(300)} > (0.9 * 100 * {Template_Freetz:dsl.downstream.last(0)})
A 1 Mbit/s will give you a maximum througput of 110 KBytes/s
This is a PPPoA (PPP over ATM). A PPPoE (PPP over Ethernet) will probably give less overhead.
I thought I was able to create a {$MACRO} like this and work with that:
Code:
{$SATURATION.RAW} = net.if.in[adsl,bytes] / dsl.downstream
Have I set my expectations too high as far as user-macros are concerned or is there something wrong with my syntax?
I can of course create a new item on the agent and let the agent calculate the saturation. Maybe that's better in this case anyhow.
I would still like an answer to my question or any other ideas of handling this.

Comment