diff options
| author | Gregor Kleen <gkleen@yggdrasil.li> | 2025-10-16 08:54:47 +0200 |
|---|---|---|
| committer | Gregor Kleen <gkleen@yggdrasil.li> | 2025-10-16 08:54:47 +0200 |
| commit | 38e371ebe3006fd42ec07892c439872581632b8f (patch) | |
| tree | 60cc2117e09b33dd79e6acbd8f409fedf4766a29 /overlays | |
| parent | 41efa2ab074e43021fea33ce03c36f60b24cffa9 (diff) | |
| download | nixos-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.py | 22 | ||||
| -rw-r--r-- | overlays/zte-prometheus-exporter/default.nix | 2 |
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: | |||
| 120 | class NFTMetricsServer(BaseHTTPRequestHandler): | 120 | class 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, ... }: |
| 2 | let | 2 | let |
| 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]); |
| 6 | in { | 6 | in { |
| 7 | zte-prometheus-exporter = prev.stdenv.mkDerivation rec { | 7 | zte-prometheus-exporter = prev.stdenv.mkDerivation rec { |
