org: monitor kfet
This commit is contained in:
parent
20cd845627
commit
22ba6b0237
4 changed files with 69 additions and 0 deletions
|
@ -22,6 +22,7 @@
|
|||
./webpass.nix
|
||||
./prometheus.nix
|
||||
./grafana.nix
|
||||
./kfet-monitor
|
||||
];
|
||||
|
||||
time.timeZone = "Europe/Paris";
|
||||
|
|
25
machines/hackens-org/kfet-monitor/default.nix
Normal file
25
machines/hackens-org/kfet-monitor/default.nix
Normal file
|
@ -0,0 +1,25 @@
|
|||
{ lib, pkgs, ...}:
|
||||
let
|
||||
wsScraper = pkgs.callPackage ./websocket-exporter.nix {};
|
||||
in
|
||||
{
|
||||
systemd.services.kfet-open-recorder = {
|
||||
environment = {
|
||||
WEBSOCKET_EXPORTER_URI = "wss://cof.ens.fr/ws/k-fet/open";
|
||||
WEBSOCKET_EXPORTER_MATCH_TYPE = "contains";
|
||||
WEBSOCKET_EXPORTER_EXPECTED_MESSAGE = "open";
|
||||
WEBSOCKET_EXPORTER_LISTEN_ADDR = "127.0.0.1";
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
wants = [ "network.target" ];
|
||||
|
||||
serviceConfig = {
|
||||
ExecStart = "${lib.getExe wsScraper}";
|
||||
Restart = "always";
|
||||
RestartSec = 5;
|
||||
DynamicUser = true;
|
||||
StateDirectory = "kfet-open-recorder";
|
||||
};
|
||||
};
|
||||
}
|
35
machines/hackens-org/kfet-monitor/websocket-exporter.nix
Normal file
35
machines/hackens-org/kfet-monitor/websocket-exporter.nix
Normal file
|
@ -0,0 +1,35 @@
|
|||
{ lib
|
||||
, python3
|
||||
, fetchFromGitHub
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "blackbox-websocket-exporter";
|
||||
version = "unstable-2021-12-15";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "smohsensh";
|
||||
repo = "blackbox-websocket-exporter";
|
||||
rev = "6f9f32396f740fe606bf1b0118a27ad5caa3d9a6";
|
||||
hash = "sha256-+G7xw5631TllDGNzVK9swbSNfVu4r4glbYIblEa0WqA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
python3.pkgs.setuptools
|
||||
python3.pkgs.wheel
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
prometheus-client
|
||||
websockets
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "A Blackbox Websocket Uptime Exporter for Prometheus";
|
||||
homepage = "https://github.com/smohsensh/blackbox-websocket-exporter";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ ];
|
||||
mainProgram = "websocket_exporter";
|
||||
};
|
||||
}
|
|
@ -20,6 +20,10 @@ in
|
|||
|
||||
webExternalUrl = "https://${host}";
|
||||
|
||||
retentionTime = "5y";
|
||||
|
||||
extraFlags = "--storage.tsdb.retention.size=2GB";
|
||||
|
||||
rules = [ ''
|
||||
groups:
|
||||
- name: Chrony
|
||||
|
@ -42,6 +46,10 @@ in
|
|||
job_name = "chrony";
|
||||
static_configs = [ { targets = [ "10.10.10.3:9123" ]; } ];
|
||||
}
|
||||
{
|
||||
job_name = "kfet";
|
||||
static_configs = [ { targets = [ "127.0.0.1:9802" ]; } ];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue