From 4a4167e0b6c179e98bb05012851fb1138eddaf85 Mon Sep 17 00:00:00 2001 From: CroneKorkN Date: Sat, 13 Dec 2025 15:31:09 +0100 Subject: [PATCH] routeros grafana discards and errors --- bundles/grafana/items.py | 3 +- data/grafana/rows/cpu.py | 2 +- data/grafana/rows/disk_io.py | 4 +-- data/grafana/rows/health.py | 4 +-- data/grafana/rows/net_io.py | 4 +-- data/grafana/rows/postfix_queue.py | 6 ++-- data/grafana/rows/proc_cpu_ram.py | 4 +-- data/grafana/rows/proc_io.py | 4 +-- data/grafana/rows/routeros_discards.py | 44 ++++++++++++++++++++++++++ data/grafana/rows/routeros_errors.py | 44 ++++++++++++++++++++++++++ data/grafana/rows/smartctl.py | 6 ++-- groups/os/routeros.py | 7 ++++ 12 files changed, 113 insertions(+), 19 deletions(-) create mode 100644 data/grafana/rows/routeros_discards.py create mode 100644 data/grafana/rows/routeros_errors.py diff --git a/bundles/grafana/items.py b/bundles/grafana/items.py index 4b9017e..3a1e6e5 100644 --- a/bundles/grafana/items.py +++ b/bundles/grafana/items.py @@ -127,7 +127,7 @@ for dashboard_id, monitored_node in enumerate(monitored_nodes, start=1): panel['gridPos']['y'] = (row_id - 1) * panel['gridPos']['h'] if 'display_name' in panel_config: - panel['fieldConfig']['defaults']['displayName'] = '${'+panel_config['display_name']+'}' + panel['fieldConfig']['defaults']['displayName'] = panel_config['display_name'] if panel_config.get('stacked'): panel['fieldConfig']['defaults']['custom']['stacking']['mode'] = 'normal' @@ -178,4 +178,3 @@ for dashboard_id, monitored_node in enumerate(monitored_nodes, start=1): 'svc_systemd:grafana-server:restart', ] } - diff --git a/data/grafana/rows/cpu.py b/data/grafana/rows/cpu.py index c808194..ccc1251 100644 --- a/data/grafana/rows/cpu.py +++ b/data/grafana/rows/cpu.py @@ -51,7 +51,7 @@ }, 'min': 0, 'soft_max': 3, - 'display_name': '__field.labels.resource', + 'display_name': '${__field.labels.resource}', 'unit': 'percent', 'tooltip': 'multi', 'legend': { diff --git a/data/grafana/rows/disk_io.py b/data/grafana/rows/disk_io.py index 89ad5c3..6a3f181 100644 --- a/data/grafana/rows/disk_io.py +++ b/data/grafana/rows/disk_io.py @@ -16,7 +16,7 @@ }, }, 'unit': 'Bps', - 'display_name': '__field.labels.name', + 'display_name': '${__field.labels.name}', 'tooltip': 'multi', }, 'write': { @@ -36,7 +36,7 @@ }, }, 'unit': 'Bps', - 'display_name': '__field.labels.name', + 'display_name': '${__field.labels.name}', 'tooltip': 'multi', }, } diff --git a/data/grafana/rows/health.py b/data/grafana/rows/health.py index 101ed9b..fd9ad7f 100644 --- a/data/grafana/rows/health.py +++ b/data/grafana/rows/health.py @@ -17,7 +17,7 @@ }, 'tooltip': 'multi', 'unit': 'MHz', - 'display_name': '__field.labels.cpu', + 'display_name': '${__field.labels.cpu}', 'min': 0, }, # 'temperature': { @@ -57,6 +57,6 @@ }, 'tooltip': 'multi', 'unit': 'degrees', - 'display_name': '__field.labels.chip', + 'display_name': '${__field.labels.chip}', }, } diff --git a/data/grafana/rows/net_io.py b/data/grafana/rows/net_io.py index fcf0107..5bdb4cb 100644 --- a/data/grafana/rows/net_io.py +++ b/data/grafana/rows/net_io.py @@ -13,7 +13,7 @@ }, }, 'unit': 'Bps', - 'display_name': '__field.labels.interface', + 'display_name': '${__field.labels.interface}', 'tooltip': 'multi', }, 'out': { @@ -30,7 +30,7 @@ }, }, 'unit': 'Bps', - 'display_name': '__field.labels.interface', + 'display_name': '${__field.labels.interface}', 'tooltip': 'multi', }, } diff --git a/data/grafana/rows/postfix_queue.py b/data/grafana/rows/postfix_queue.py index 2d1f9ef..ef4a52f 100644 --- a/data/grafana/rows/postfix_queue.py +++ b/data/grafana/rows/postfix_queue.py @@ -12,7 +12,7 @@ 'function': 'max', }, }, - 'display_name': '__field.labels.queue' + 'display_name': '${__field.labels.queue}' }, 'size': { 'stacked': True, @@ -27,7 +27,7 @@ 'function': 'max', }, }, - 'display_name': '__field.labels.queue' + 'display_name': '${__field.labels.queue}' }, 'age': { 'stacked': True, @@ -42,6 +42,6 @@ 'function': 'max', }, }, - 'display_name': '__field.labels.queue' + 'display_name': '${__field.labels.queue}' }, } diff --git a/data/grafana/rows/proc_cpu_ram.py b/data/grafana/rows/proc_cpu_ram.py index f26b165..abf660f 100644 --- a/data/grafana/rows/proc_cpu_ram.py +++ b/data/grafana/rows/proc_cpu_ram.py @@ -13,7 +13,7 @@ }, }, 'unit': 'percent', - 'display_name': '__field.labels.process_name', + 'display_name': '${__field.labels.process_name}', 'legend': { 'displayMode': 'table', 'placement': 'right', @@ -36,7 +36,7 @@ }, }, 'unit': 'bytes', - 'display_name': '__field.labels.process_name', + 'display_name': '${__field.labels.process_name}', 'legend': { 'displayMode': 'table', 'placement': 'right', diff --git a/data/grafana/rows/proc_io.py b/data/grafana/rows/proc_io.py index 0010866..227d84f 100644 --- a/data/grafana/rows/proc_io.py +++ b/data/grafana/rows/proc_io.py @@ -14,7 +14,7 @@ }, }, 'unit': 'bytes', - 'display_name': '__field.labels.comm', + 'display_name': '${__field.labels.comm}', 'legend': { 'displayMode': 'table', 'placement': 'right', @@ -38,7 +38,7 @@ }, }, 'unit': 'bytes', - 'display_name': '__field.labels.comm', + 'display_name': '${__field.labels.comm}', 'legend': { 'displayMode': 'table', 'placement': 'right', diff --git a/data/grafana/rows/routeros_discards.py b/data/grafana/rows/routeros_discards.py new file mode 100644 index 0000000..899e7df --- /dev/null +++ b/data/grafana/rows/routeros_discards.py @@ -0,0 +1,44 @@ +{ + 'discards_in': { + 'stacked': False, + 'queries': { + 'discards_in': { + 'filters': { + '_measurement': 'interface', + '_field': ['in_discards'], + 'operating_system': 'routeros', + }, + 'function': 'max', + 'derivative': True, + }, + }, + 'min': 0, + 'unit': 'pps', + 'tooltip': 'multi', + 'display_name': '${__field.labels.ifName} - ${__field.labels.ifAlias}', + 'legend': { + 'displayMode': 'hidden', + }, + }, + 'discards_out': { + 'stacked': False, + 'queries': { + 'discards_out': { + 'filters': { + '_measurement': 'interface', + '_field': ['out_discards'], + 'operating_system': 'routeros', + }, + 'function': 'max', + 'derivative': True, + }, + }, + 'min': 0, + 'unit': 'pps', + 'tooltip': 'multi', + 'display_name': '${__field.labels.ifName} - ${__field.labels.ifAlias}', + 'legend': { + 'displayMode': 'hidden', + }, + }, +} diff --git a/data/grafana/rows/routeros_errors.py b/data/grafana/rows/routeros_errors.py new file mode 100644 index 0000000..3838cf2 --- /dev/null +++ b/data/grafana/rows/routeros_errors.py @@ -0,0 +1,44 @@ +{ + 'errors_in': { + 'stacked': False, + 'queries': { + 'errors_in': { + 'filters': { + '_measurement': 'interface', + '_field': ['in_errors'], + 'operating_system': 'routeros', + }, + 'function': 'max', + 'derivative': True, + }, + }, + 'min': 0, + 'unit': 'pps', + 'tooltip': 'multi', + 'display_name': '${__field.labels.ifName} - ${__field.labels.ifAlias}', + 'legend': { + 'displayMode': 'hidden', + }, + }, + 'errors_out': { + 'stacked': False, + 'queries': { + 'errors_out': { + 'filters': { + '_measurement': 'interface', + '_field': ['out_errors'], + 'operating_system': 'routeros', + }, + 'function': 'max', + 'derivative': True, + }, + }, + 'min': 0, + 'unit': 'pps', + 'tooltip': 'multi', + 'display_name': '${__field.labels.ifName} - ${__field.labels.ifAlias}', + 'legend': { + 'displayMode': 'hidden', + }, + }, +} diff --git a/data/grafana/rows/smartctl.py b/data/grafana/rows/smartctl.py index 9689cf4..c01d7de 100644 --- a/data/grafana/rows/smartctl.py +++ b/data/grafana/rows/smartctl.py @@ -11,7 +11,7 @@ 'function': 'mean', }, }, - 'display_name': '__field.labels.device', + 'display_name': '${__field.labels.device}', 'min': 0, 'unit': 'celsius', 'tooltip': 'multi', @@ -29,7 +29,7 @@ 'function': 'last', }, }, - 'display_name': '__field.labels.device', + 'display_name': '${__field.labels.device}', 'min': 0, 'tooltip': 'multi', }, @@ -42,7 +42,7 @@ }, }, }, - 'display_name': '__field.labels.device} ${__field.name', + 'display_name': '${__field.labels.device} ${__field.name}', 'min': 0, 'tooltip': 'multi', 'legend': { diff --git a/groups/os/routeros.py b/groups/os/routeros.py index 6949cab..58ab849 100644 --- a/groups/os/routeros.py +++ b/groups/os/routeros.py @@ -9,6 +9,10 @@ 'routeros', ], 'metadata': { + 'grafana_rows': { + 'routeros_discards', + 'routeros_errors', + }, 'routeros': { 'gateway': '10.0.0.1', 'bridge_priority': '0x8000', @@ -49,6 +53,9 @@ }, 'vlan_ports': {}, }, + 'telegraf': { + 'influxdb_node': 'home.server', + }, }, 'os': 'routeros', }