summaryrefslogtreecommitdiff
path: root/overlays
diff options
context:
space:
mode:
authorGregor Kleen <gkleen@yggdrasil.li>2025-10-16 08:54:47 +0200
committerGregor Kleen <gkleen@yggdrasil.li>2025-10-16 08:54:47 +0200
commit38e371ebe3006fd42ec07892c439872581632b8f (patch)
tree60cc2117e09b33dd79e6acbd8f409fedf4766a29 /overlays
parent41efa2ab074e43021fea33ce03c36f60b24cffa9 (diff)
downloadnixos-38e371ebe3006fd42ec07892c439872581632b8f.tar
nixos-38e371ebe3006fd42ec07892c439872581632b8f.tar.gz
nixos-38e371ebe3006fd42ec07892c439872581632b8f.tar.bz2
nixos-38e371ebe3006fd42ec07892c439872581632b8f.tar.xz
nixos-38e371ebe3006fd42ec07892c439872581632b8f.zip
...
Diffstat (limited to 'overlays')
-rw-r--r--overlays/nftables-prometheus-exporter/nftables-prometheus-exporter.py22
-rw-r--r--overlays/zte-prometheus-exporter/default.nix2
2 files changed, 12 insertions, 12 deletions
diff --git a/overlays/nftables-prometheus-exporter/nftables-prometheus-exporter.py b/overlays/nftables-prometheus-exporter/nftables-prometheus-exporter.py
index 484228c8..60ef4670 100644
--- a/overlays/nftables-prometheus-exporter/nftables-prometheus-exporter.py
+++ b/overlays/nftables-prometheus-exporter/nftables-prometheus-exporter.py
@@ -42,7 +42,7 @@ class NFTMetrics:
42 cls._instance = cls.__new__(cls) 42 cls._instance = cls.__new__(cls)
43 cls._instance.attrs = None 43 cls._instance.attrs = None
44 return cls._instance 44 return cls._instance
45 45
46 46
47 def __init__(self): 47 def __init__(self):
48 raise RuntimeError('Call instance() instead') 48 raise RuntimeError('Call instance() instead')
@@ -62,7 +62,7 @@ class NFTMetrics:
62 raise RuntimeError(f'nftables json schema v{version} is not supported') 62 raise RuntimeError(f'nftables json schema v{version} is not supported')
63 queries[query_name] = data['nftables'][1:] 63 queries[query_name] = data['nftables'][1:]
64 64
65 65
66 def extract_query(query_name, type_name): 66 def extract_query(query_name, type_name):
67 return [ 67 return [
68 item[type_name] 68 item[type_name]
@@ -98,21 +98,21 @@ class NFTMetrics:
98 metrics += _format_prom_metrics('nftables_counter_packets_count', 'counter', counter_packets) 98 metrics += _format_prom_metrics('nftables_counter_packets_count', 'counter', counter_packets)
99 99
100 map_counts = [] 100 map_counts = []
101 for meter in self.attrs['maps']: 101 for item in self.attrs['maps']:
102 labels = { k: v for k, v in counter.items() if k not in set(['elem']) } 102 labels = { k: v for k, v in counter.items() if k not in set(['elem']) }
103 map_counts += [(labels, len(meter['elem']))] 103 map_counts += [(labels, len(item['elem']) if 'elem' in item else 0)]
104 metrics += _format_prom_metrics('nftables_map_elem_count', 'gauge', map_counts) 104 metrics += _format_prom_metrics('nftables_map_elem_count', 'gauge', map_counts)
105 105
106 meter_counts = [] 106 meter_counts = []
107 for meter in self.attrs['meters']: 107 for item in self.attrs['meters']:
108 labels = { k: v for k, v in counter.items() if k not in set(['elem']) } 108 labels = { k: v for k, v in counter.items() if k not in set(['elem']) }
109 meter_counts += [(labels, len(meter['elem']))] 109 item_counts += [(labels, len(item['elem']) if 'elem' in item else 0)]
110 metrics += _format_prom_metrics('nftables_meter_elem_count', 'gauge', meter_counts) 110 metrics += _format_prom_metrics('nftables_meter_elem_count', 'gauge', meter_counts)
111 111
112 set_counts = [] 112 set_counts = []
113 for meter in self.attrs['sets']: 113 for item in self.attrs['sets']:
114 labels = { k: v for k, v in counter.items() if k not in set(['elem']) } 114 labels = { k: v for k, v in counter.items() if k not in set(['elem']) }
115 set_counts += [(labels, len(meter['elem']))] 115 set_counts += [(labels, len(item['elem']) if 'elem' in item else 0)]
116 metrics += _format_prom_metrics('nftables_set_elem_count', 'gauge', set_counts) 116 metrics += _format_prom_metrics('nftables_set_elem_count', 'gauge', set_counts)
117 117
118 return metrics.encode('utf-8') 118 return metrics.encode('utf-8')
@@ -120,7 +120,7 @@ class NFTMetrics:
120class NFTMetricsServer(BaseHTTPRequestHandler): 120class NFTMetricsServer(BaseHTTPRequestHandler):
121 def log_message(self, format, *args): 121 def log_message(self, format, *args):
122 pass 122 pass
123 123
124 def do_GET(self): 124 def do_GET(self):
125 nft_metrics = NFTMetrics.instance() 125 nft_metrics = NFTMetrics.instance()
126 nft_metrics.update() 126 nft_metrics.update()
@@ -138,7 +138,7 @@ class NFTMetricsServer(BaseHTTPRequestHandler):
138 self.send_response(200) 138 self.send_response(200)
139 self.send_header("Content-type", "text/plain") 139 self.send_header("Content-type", "text/plain")
140 self.end_headers() 140 self.end_headers()
141 141
142 self.wfile.write(nft_metrics.prometheus()) 142 self.wfile.write(nft_metrics.prometheus())
143 case _: 143 case _:
144 self.send_response(404) 144 self.send_response(404)
diff --git a/overlays/zte-prometheus-exporter/default.nix b/overlays/zte-prometheus-exporter/default.nix
index cd4207cd..6295567d 100644
--- a/overlays/zte-prometheus-exporter/default.nix
+++ b/overlays/zte-prometheus-exporter/default.nix
@@ -1,7 +1,7 @@
1{ final, prev, ... }: 1{ final, prev, ... }:
2let 2let
3 packageOverrides = final.callPackage ./python-packages.nix {}; 3 packageOverrides = final.callPackage ./python-packages.nix {};
4 inpPython = final.python310.override { inherit packageOverrides; }; 4 inpPython = final.python3.override { inherit packageOverrides; };
5 python = inpPython.withPackages (ps: with ps; [pytimeparse requests]); 5 python = inpPython.withPackages (ps: with ps; [pytimeparse requests]);
6in { 6in {
7 zte-prometheus-exporter = prev.stdenv.mkDerivation rec { 7 zte-prometheus-exporter = prev.stdenv.mkDerivation rec {