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=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
python3.pkgs.setuptools
|
||||
python3.pkgs.wheel
|
||||
|
|
|
@ -22,7 +22,7 @@ in
|
|||
|
||||
retentionTime = "5y";
|
||||
|
||||
extraFlags = "--storage.tsdb.retention.size=2GB";
|
||||
extraFlags = [ "--storage.tsdb.retention.size=2GB" ];
|
||||
|
||||
rules = [ ''
|
||||
groups:
|
||||
|
|
Loading…
Reference in a new issue