summaryrefslogtreecommitdiff
path: root/overlays/cake-prometheus-exporter
diff options
context:
space:
mode:
Diffstat (limited to 'overlays/cake-prometheus-exporter')
-rw-r--r--overlays/cake-prometheus-exporter/cake-prometheus-exporter.py17
-rw-r--r--overlays/cake-prometheus-exporter/default.nix2
2 files changed, 10 insertions, 9 deletions
diff --git a/overlays/cake-prometheus-exporter/cake-prometheus-exporter.py b/overlays/cake-prometheus-exporter/cake-prometheus-exporter.py
index be5202d0..1be9525c 100644
--- a/overlays/cake-prometheus-exporter/cake-prometheus-exporter.py
+++ b/overlays/cake-prometheus-exporter/cake-prometheus-exporter.py
@@ -63,15 +63,15 @@ class CAKEMetrics:
63 for tin_name, tin_data in zip(tin_names, qdisc['tins']): 63 for tin_name, tin_data in zip(tin_names, qdisc['tins']):
64 tins[tin_name] = { 64 tins[tin_name] = {
65 'bytes': tin_data['sent_bytes'], 65 'bytes': tin_data['sent_bytes'],
66 'packets': tin_data['sent_packets'] 66 'packets': tin_data['sent_packets'],
67 'ecn_mark': tin_data['ecn_mark'],
68 'drops': tin_data['drops'],
67 } 69 }
68 70
69 attrs[qdisc['dev']] = { 71 attrs[qdisc['dev']] = {
70 'bytes': qdisc['bytes'],
71 'packets': qdisc['packets'],
72 'drops': qdisc['drops'],
73 'overlimits': qdisc['overlimits'], 72 'overlimits': qdisc['overlimits'],
74 'requeues': qdisc['requeues'], 73 'requeues': qdisc['requeues'],
74 'bandwidth': qdisc['options']['bandwidth'],
75 'tins': tins 75 'tins': tins
76 } 76 }
77 77
@@ -83,12 +83,13 @@ class CAKEMetrics:
83 def prometheus(self): 83 def prometheus(self):
84 metrics = '' 84 metrics = ''
85 85
86 metrics += _format_prom_metrics('cake_bytes', 'counter', [({'dev': dev}, self.attrs[dev]['bytes']) for dev in self.attrs]) 86 metrics += _format_prom_metrics('cake_bandwidth', 'gauge', [({'dev': dev}, self.attrs[dev]['bandwidth']) for dev in self.attrs])
87 for packet_counter in ['packets', 'overlimits', 'requeues', 'drops']: 87
88 for packet_counter in ['overlimits', 'requeues']:
88 metrics += _format_prom_metrics(f'cake_{packet_counter}', 'counter', [({'dev': dev}, self.attrs[dev][packet_counter]) for dev in self.attrs]) 89 metrics += _format_prom_metrics(f'cake_{packet_counter}', 'counter', [({'dev': dev}, self.attrs[dev][packet_counter]) for dev in self.attrs])
89 90
90 metrics += _format_prom_metrics('cake_tin_bytes', 'counter', [({'dev': dev, 'tin': tin}, self.attrs[dev]['tins'][tin]['bytes']) for dev in self.attrs for tin in self.attrs[dev]['tins']]) 91 for packet_counter in ['bytes', 'packets', 'drops', 'ecn_mark']:
91 metrics += _format_prom_metrics('cake_tin_packets', 'counter', [({'dev': dev, 'tin': tin}, self.attrs[dev]['tins'][tin]['packets']) for dev in self.attrs for tin in self.attrs[dev]['tins']]) 92 metrics += _format_prom_metrics(f'cake_{packet_counter}', 'counter', [({'dev': dev, 'tin': tin}, self.attrs[dev]['tins'][tin][packet_counter]) for dev in self.attrs for tin in self.attrs[dev]['tins']])
92 93
93 return metrics.encode('utf-8') 94 return metrics.encode('utf-8')
94 95
diff --git a/overlays/cake-prometheus-exporter/default.nix b/overlays/cake-prometheus-exporter/default.nix
index 69a5008c..a1c62a88 100644
--- a/overlays/cake-prometheus-exporter/default.nix
+++ b/overlays/cake-prometheus-exporter/default.nix
@@ -1,6 +1,6 @@
1{ final, prev, ... }: 1{ final, prev, ... }:
2let 2let
3 inpPython = final.python310.override {}; 3 inpPython = final.python3.override {};
4 python = inpPython.withPackages (ps: with ps; []); 4 python = inpPython.withPackages (ps: with ps; []);
5in { 5in {
6 cake-prometheus-exporter = prev.stdenv.mkDerivation rec { 6 cake-prometheus-exporter = prev.stdenv.mkDerivation rec {