From 3599e1bde8be65f87250acba2ae3e0b297c2469e Mon Sep 17 00:00:00 2001
From: Pelle Koster <pelle.koster@geant.org>
Date: Fri, 24 May 2024 09:37:05 +0200
Subject: [PATCH] FIX: counters must be floats to be compatible with sensu
 influx handler

---
 brian_polling_manager/interface_stats/vendors/juniper.py | 8 ++++++--
 brian_polling_manager/interface_stats/vendors/nokia.py   | 8 ++++++--
 2 files changed, 12 insertions(+), 4 deletions(-)

diff --git a/brian_polling_manager/interface_stats/vendors/juniper.py b/brian_polling_manager/interface_stats/vendors/juniper.py
index acd7a81..2c88ade 100644
--- a/brian_polling_manager/interface_stats/vendors/juniper.py
+++ b/brian_polling_manager/interface_stats/vendors/juniper.py
@@ -17,7 +17,9 @@ NCCLIENT_PARAMS = {
 }
 
 PHYSICAL_INTERFACE_COUNTERS = {
-    "__defaults__": {"transform": int, "required": False},
+    # Counters must be floats to be compatible with influx writing to the same
+    # measurement. cf https://github.com/sensu/sensu-go/issues/2213
+    "__defaults__": {"transform": float, "required": False},
     "name": {"path": "./name", "transform": lambda v: str(v).strip()},
     "brian": {
         "ingressOctets": {"path": "./traffic-statistics/input-bytes", "required": True},
@@ -90,7 +92,9 @@ PHYSICAL_INTERFACE_COUNTERS = {
 
 
 LOGICAL_INTERFACE_COUNTERS = {
-    "__defaults__": {"transform": int, "required": False},
+    # Counters must be floats to be compatible with influx writing to the same
+    # measurement. cf https://github.com/sensu/sensu-go/issues/2213
+    "__defaults__": {"transform": float, "required": False},
     "name": {"path": "./name", "transform": lambda v: str(v).strip()},
     "brian": {
         "ingressOctets": {
diff --git a/brian_polling_manager/interface_stats/vendors/nokia.py b/brian_polling_manager/interface_stats/vendors/nokia.py
index 8025652..76a1360 100644
--- a/brian_polling_manager/interface_stats/vendors/nokia.py
+++ b/brian_polling_manager/interface_stats/vendors/nokia.py
@@ -19,7 +19,9 @@ NCCLIENT_PARAMS = {
 }
 
 INTERFACE_COUNTERS = {
-    "__defaults__": {"transform": int, "required": False},
+    # Counters must be floats to be compatible with influx writing to the same
+    # measurement. cf https://github.com/sensu/sensu-go/issues/2213
+    "__defaults__": {"transform": float, "required": False},
     "name": {
         "path": ["./lag-name", "./port-id"],
         "transform": lambda v: str(v).strip(),
@@ -45,7 +47,9 @@ INTERFACE_COUNTERS = {
 }
 
 INTERFACE_COUNTERS_ALT = {
-    "__defaults__": {"transform": int, "required": False},
+    # Counters must be floats to be compatible with influx writing to the same
+    # measurement. cf https://github.com/sensu/sensu-go/issues/2213
+    "__defaults__": {"transform": float, "required": False},
     "name": {
         "path": "./interface-name",
         "transform": lambda v: str(v).strip(),
-- 
GitLab