diff options
| -rw-r--r-- | prometheus_tp_link_exporter/__main__.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/prometheus_tp_link_exporter/__main__.py b/prometheus_tp_link_exporter/__main__.py index e938c46..9dd890d 100644 --- a/prometheus_tp_link_exporter/__main__.py +++ b/prometheus_tp_link_exporter/__main__.py @@ -37,6 +37,18 @@ node_network_transmit_bytes_total = Counter( ["device"], ) +node_network_receive_packets_total = Counter( + "node_network_receive_packets_total", + "Network device statistic receive_packets.", + ["device"], +) + +node_network_transmit_packets_total = Counter( + "node_network_transmit_packets_total", + "Network device statistic transmit_packets.", + ["device"], +) + def process_node_network(): """Process request.""" @@ -64,6 +76,29 @@ def process_node_network(): log.debug(f"Previous value {previos_value} is bigger than current value {device['rx_bytes']} on device {device['name']}, skipping updating the value.") else: node_network_receive_bytes_total.labels(device=device["name"]).inc(device["rx_bytes"]) + for device in devices: + if (device["name"],) in node_network_transmit_packets_total._metrics: + previos_value = node_network_transmit_packets_total._metrics[ + (device["name"],) + ]._value._value + if previos_value < device["tx_packets"]: + log.debug(f"Previous value {previos_value} is bigger than current value {device['rx_bytes']} on device {device['name']}, skipping updating the value.") + node_network_transmit_packets_total.labels(device=device["name"]).inc( + device["tx_packets"] - previos_value + ) + else: + node_network_transmit_packets_total.labels(device=device["name"]).inc(device["tx_packets"]) + for device in devices: + if (device["name"],) in node_network_receive_packets_total._metrics: + previos_value = node_network_receive_packets_total._metrics[(device["name"],)]._value._value + if previos_value < device["rx_packets"]: + node_network_receive_packets_total.labels(device=device["name"]).inc( + device["rx_packets"] - previos_value + ) + else: + log.debug(f"Previous value {previos_value} is bigger than current value {device['rx_packets']} on device {device['name']}, skipping updating the value.") + else: + node_network_receive_packets_total.labels(device=device["name"]).inc(device["rx_packets"]) def main(): |
