data-hoarders: yeet grafana

This commit is contained in:
oxapentane - 2023-05-03 23:02:51 +02:00
parent 62acfe3a5a
commit 52c34bdcb2
Signed by: oxapentane
GPG Key ID: 91FA5E5BF9AA901C
2 changed files with 0 additions and 165 deletions

View File

@ -7,7 +7,6 @@
./lizard.nix
./bureaucrat.nix
./file_sharing.nix
./grafana.nix
./map.nix
./nginx.nix
./postgres.nix

View File

@ -1,164 +0,0 @@
{ config, lib, self, ... }: {
services = {
# metrics collector
prometheus = {
enable = true;
port = 9501;
retentionTime = "2d";
exporters = {
# node exports hardware information like memory, cpu usage and the like
node = {
enable = true;
enabledCollectors = [ "systemd" ];
port = 9502;
};
# used for pinging services and checking their health
blackbox = {
enable = true;
configFile = ../../services/blackbox.yaml;
};
};
scrapeConfigs = [
# hardware information
{
job_name = "data-hoarder-hardware";
static_configs = [{
targets = [ "127.0.0.1:${toString config.services.prometheus.exporters.node.port}" ];
}];
}
# funnel connection metrics
{
job_name = "funnel-connections";
static_configs = [
{
targets = [ "127.0.0.1:${toString config.TLMS.funnel.metrics.port}" ];
}
];
}
# metrics from data-accumulator
{
job_name = "data-accumulator";
metrics_path = "/metrics";
static_configs = [
{
targets = [ "127.0.0.1:${toString config.TLMS.dataAccumulator.port}" ];
}
];
}
# metrics from lizard
{
job_name = "lizard";
metrics_path = "/metrics";
static_configs = [
{
targets = [ "${config.TLMS.lizard.http.host}:${toString config.TLMS.lizard.http.port}" ];
}
];
}
# metrics from datacare
{
job_name = "datacare";
metrics_path = "/metrics";
static_configs = [
{
targets = [ "${config.TLMS.datacare.host}:${toString config.TLMS.datacare.port}" ];
}
];
}
# checks if the data-accumulator server is running
{
job_name = "blackbox-data-accumulator";
metrics_path = "/probe";
params = { module = [ "http_2xx" ]; };
static_configs = [{
targets = [
"127.0.0.1:8080"
];
}];
relabel_configs = [
{ source_labels = [ "__address__" ]; target_label = "__param_target"; }
{ source_labels = [ "__param_target" ]; target_label = "instance"; }
{ target_label = "__address__"; replacement = "127.0.0.1:9115"; }
];
}
# checks if the dvb-api server is running
{
job_name = "blackbox-dvb-api";
metrics_path = "/probe";
params = { module = [ "http_2xx" ]; };
static_configs = [{
targets = [
"api.${config.deployment-TLMS.domain}"
];
}];
relabel_configs = [
{ source_labels = [ "__address__" ]; target_label = "__param_target"; }
{ source_labels = [ "__param_target" ]; target_label = "instance"; }
{ target_label = "__address__"; replacement = "127.0.0.1:9115"; }
];
}
];
};
promtail = {
enable = true;
# doesn't have a configFile option so this has to do
configuration = builtins.fromJSON (lib.readFile "${self}/services/promtail.json");
};
# exports systemd logs and other
loki = {
enable = true;
configFile = self + /services/loki.yaml;
};
# visualizer
grafana = {
settings.server = {
domain = "monitoring.${config.deployment-TLMS.domain}";
http_port = 2342;
http_addr = "127.0.0.1";
};
enable = true;
};
# reverse proxy for grafana
nginx = {
enable = true;
virtualHosts = {
"${(builtins.replaceStrings [ "tlm.solutions" ] [ "dvb.solutions" ] (toString config.services.grafana.settings.server.domain))}" = {
enableACME = true;
forceSSL = true;
extraConfig = ''
rewrite ^ https://${toString config.services.grafana.settings.server.domain}$request_uri permanent;
'';
};
"${toString config.services.grafana.settings.server.domain}" = {
forceSSL = true;
enableACME = true;
locations."/" =
let
cfg = config.services.grafana;
in
{
proxyPass = "http://${cfg.settings.server.http_addr}:${toString cfg.settings.server.http_port}";
proxyWebsockets = true;
};
};
};
};
};
# noXlibs breaks pango/cairo
environment.noXlibs = false;
}