Compare commits
2 commits
0fc9df56f2
...
e0f20e0e9d
| Author | SHA1 | Date | |
|---|---|---|---|
|
e0f20e0e9d |
|||
|
dfe7918cdb |
3 changed files with 80 additions and 2 deletions
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
59
lib/status.nix
Normal 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;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue