org: patch kfet monitoring
This commit is contained in:
parent
22ba6b0237
commit
1d56410e26
3 changed files with 66 additions and 1 deletions
61
machines/hackens-org/kfet-monitor/patch
Normal file
61
machines/hackens-org/kfet-monitor/patch
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
diff --git a/websocket_exporter/probe.py b/websocket_exporter/probe.py
|
||||||
|
index a95b97e..a7b057e 100644
|
||||||
|
--- a/websocket_exporter/probe.py
|
||||||
|
+++ b/websocket_exporter/probe.py
|
||||||
|
@@ -3,28 +3,29 @@ import logging
|
||||||
|
from time import perf_counter
|
||||||
|
from typing import Union
|
||||||
|
|
||||||
|
-from websockets import NegotiationError, client, InvalidStatusCode
|
||||||
|
+from websockets import InvalidStatusCode, NegotiationError, client
|
||||||
|
|
||||||
|
-
|
||||||
|
-EXACT_MATCH = 'exact'
|
||||||
|
-CONTAINS_MATCH = 'contains'
|
||||||
|
+EXACT_MATCH = "exact"
|
||||||
|
+CONTAINS_MATCH = "contains"
|
||||||
|
|
||||||
|
|
||||||
|
class ProbResults(object):
|
||||||
|
def __init__(self, up: int, latency: float = 0, received: int = 0):
|
||||||
|
self.up = up
|
||||||
|
self.latency = round(latency, 2)
|
||||||
|
- self.received = int(received) if received is not None else "NaN"
|
||||||
|
+ self.received = int(received) if received is not None else 0
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
if self.up:
|
||||||
|
return f'Websocket up, latency:{self.latency}s, expected response {"" if self.received else "NOT"} received'
|
||||||
|
- return f'Webserver DOWN'
|
||||||
|
+ return f"Webserver DOWN"
|
||||||
|
|
||||||
|
|
||||||
|
class WebSocketProbe(object):
|
||||||
|
|
||||||
|
- def __init__(self, uri, message=None, expected=None, match=CONTAINS_MATCH, timeout=10):
|
||||||
|
+ def __init__(
|
||||||
|
+ self, uri, message=None, expected=None, match=CONTAINS_MATCH, timeout=10
|
||||||
|
+ ):
|
||||||
|
"""
|
||||||
|
Create a websocket probe that tries establishing a connection and reports the metrics
|
||||||
|
:param uri: starts with 'ws://' or ws://
|
||||||
|
@@ -68,13 +69,17 @@ class WebSocketProbe(object):
|
||||||
|
elapsed = 0
|
||||||
|
while elapsed < self.timeout:
|
||||||
|
try:
|
||||||
|
- resp = await asyncio.wait_for(connection.recv(), timeout=(self.timeout-elapsed))
|
||||||
|
+ resp = await asyncio.wait_for(
|
||||||
|
+ connection.recv(), timeout=(self.timeout - elapsed)
|
||||||
|
+ )
|
||||||
|
if self._match(resp):
|
||||||
|
return True
|
||||||
|
await asyncio.sleep(1)
|
||||||
|
elapsed += 1
|
||||||
|
except asyncio.TimeoutError:
|
||||||
|
- logging.info(f'Time out while waiting for {self.expected_message} from {self.uri}')
|
||||||
|
+ logging.info(
|
||||||
|
+ f"Time out while waiting for {self.expected_message} from {self.uri}"
|
||||||
|
+ )
|
||||||
|
return None
|
||||||
|
return None
|
||||||
|
|
|
@ -15,6 +15,10 @@ python3.pkgs.buildPythonApplication rec {
|
||||||
hash = "sha256-+G7xw5631TllDGNzVK9swbSNfVu4r4glbYIblEa0WqA=";
|
hash = "sha256-+G7xw5631TllDGNzVK9swbSNfVu4r4glbYIblEa0WqA=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
./patch
|
||||||
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
python3.pkgs.setuptools
|
python3.pkgs.setuptools
|
||||||
python3.pkgs.wheel
|
python3.pkgs.wheel
|
||||||
|
|
|
@ -22,7 +22,7 @@ in
|
||||||
|
|
||||||
retentionTime = "5y";
|
retentionTime = "5y";
|
||||||
|
|
||||||
extraFlags = "--storage.tsdb.retention.size=2GB";
|
extraFlags = [ "--storage.tsdb.retention.size=2GB" ];
|
||||||
|
|
||||||
rules = [ ''
|
rules = [ ''
|
||||||
groups:
|
groups:
|
||||||
|
|
Loading…
Reference in a new issue