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
|
let
|
||||||
secretName = "grafanaSecret";
|
secretName = "grafanaSecret";
|
||||||
|
|
@ -20,6 +20,7 @@ in
|
||||||
enable = true;
|
enable = true;
|
||||||
declarativePlugins = [ ];
|
declarativePlugins = [ ];
|
||||||
settings = {
|
settings = {
|
||||||
|
"auth.anonymous".enabled = true;
|
||||||
analytics.feedback_links_enabled = false;
|
analytics.feedback_links_enabled = false;
|
||||||
users.default_theme = "system";
|
users.default_theme = "system";
|
||||||
server = {
|
server = {
|
||||||
|
|
@ -35,6 +36,23 @@ in
|
||||||
admin_user = "quadradical";
|
admin_user = "quadradical";
|
||||||
admin_password = "$__file{${credentialDirectory}${passwordName}}";
|
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 = {
|
provision = {
|
||||||
|
|
@ -43,6 +61,7 @@ in
|
||||||
{
|
{
|
||||||
name = "Prometheus";
|
name = "Prometheus";
|
||||||
type = "prometheus";
|
type = "prometheus";
|
||||||
|
uid = "prometheus";
|
||||||
url = with config.services.prometheus; "http://${listenAddress}:${toString port}";
|
url = with config.services.prometheus; "http://${listenAddress}:${toString port}";
|
||||||
jsonData.timeInterval = config.services.prometheus.globalConfig.scrape_interval;
|
jsonData.timeInterval = config.services.prometheus.globalConfig.scrape_interval;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
listenAddress = "127.0.0.7";
|
listenAddress = "127.0.0.7";
|
||||||
|
|
||||||
globalConfig.scrape_interval = "10s";
|
globalConfig.scrape_interval = "3s";
|
||||||
scrapeConfigs = [
|
scrapeConfigs = [
|
||||||
{
|
{
|
||||||
job_name = "node";
|
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