Compare commits

..

2 commits

Author SHA1 Message Date
e0f20e0e9d
working with nix 2025-10-30 16:05:08 -04:00
dfe7918cdb
working json 2025-10-29 15:24:57 -04:00
3 changed files with 80 additions and 2 deletions

View file

@ -1,4 +1,4 @@
{ config, pkgs, ... }:
{ config, pkgs, ... }@attrs:
let
secretName = "grafanaSecret";
@ -20,6 +20,7 @@ in
enable = true;
declarativePlugins = [ ];
settings = {
"auth.anonymous".enabled = true;
analytics.feedback_links_enabled = false;
users.default_theme = "system";
server = {
@ -35,6 +36,23 @@ in
admin_user = "quadradical";
admin_password = "$__file{${credentialDirectory}${passwordName}}";
};
dashboards.default_home_dashboard_path = toString (
(import ../../../lib/status.nix attrs) [
{
name = "Continuwuity (Matrix)";
service = "continuwuity.service";
}
{
name = "Forgejo (Git)";
service = "forgejo.service";
}
{
name = "SearXNG (Search)";
service = "searx.service";
}
]
);
};
provision = {
@ -43,6 +61,7 @@ in
{
name = "Prometheus";
type = "prometheus";
uid = "prometheus";
url = with config.services.prometheus; "http://${listenAddress}:${toString port}";
jsonData.timeInterval = config.services.prometheus.globalConfig.scrape_interval;
}

View file

@ -4,7 +4,7 @@
enable = true;
listenAddress = "127.0.0.7";
globalConfig.scrape_interval = "10s";
globalConfig.scrape_interval = "3s";
scrapeConfigs = [
{
job_name = "node";

59
lib/status.nix Normal file
View file

@ -0,0 +1,59 @@
{ pkgs, lib, ... }:
services:
pkgs.writers.writeJSON "status.json" {
title = "Service Status";
panels = map (
{ name, service }:
{
datasource = {
type = "prometheus";
uid = "prometheus";
};
fieldConfig = {
defaults = {
color = {
mode = "thresholds";
};
mappings = [
{
options = {
"0" = {
color = "red";
index = 1;
text = "Failed";
};
"1" = {
color = "green";
index = 0;
text = "Running";
};
};
type = "value";
}
];
thresholds = {
mode = "absolute";
steps = [
{
color = "red";
value = 0;
}
{
color = "green";
value = 1;
}
];
};
unit = "none";
};
};
targets = [
{
expr = "node_systemd_unit_state{name=\"${service}\",state=\"active\"}";
}
];
title = name;
type = "stat";
}
) services;
}