2023-04-11 20:44:29 +02:00
|
|
|
{ pkgs }:
|
|
|
|
|
|
|
|
with pkgs;
|
|
|
|
|
|
|
|
let
|
|
|
|
inherit (pkgs) stdenv fetchurl;
|
|
|
|
in
|
|
|
|
|
2024-07-28 21:08:02 +02:00
|
|
|
lib.makeScope pkgs.newScope (
|
|
|
|
_self:
|
|
|
|
let
|
|
|
|
buildGrafanaDashboard =
|
|
|
|
args:
|
|
|
|
stdenv.mkDerivation (
|
|
|
|
args
|
|
|
|
// {
|
|
|
|
pname = "grafana-dashboard-${args.pname}-${toString args.id}";
|
|
|
|
inherit (args) version;
|
|
|
|
src = fetchurl {
|
|
|
|
url = "https://grafana.com/api/dashboards/${toString args.id}/revisions/${args.version}/download";
|
|
|
|
inherit (args) hash;
|
|
|
|
};
|
|
|
|
dontUnpack = true;
|
|
|
|
installPhase = ''
|
|
|
|
runHook preInstall
|
|
|
|
mkdir -p $out
|
|
|
|
cp $src $out/${args.pname}-${toString args.id}.json
|
|
|
|
runHook postInstall
|
|
|
|
'';
|
|
|
|
}
|
|
|
|
);
|
|
|
|
in
|
|
|
|
{
|
|
|
|
inherit buildGrafanaDashboard;
|
|
|
|
|
|
|
|
node-exporter = buildGrafanaDashboard {
|
|
|
|
id = 1860;
|
|
|
|
pname = "node-exporter-full";
|
2025-04-06 21:55:16 +02:00
|
|
|
version = "37";
|
|
|
|
hash = "sha256-1DE1aaanRHHeCOMWDGdOS1wBXxOF84UXAjJzT5Ek6mM=";
|
2023-04-11 20:44:29 +02:00
|
|
|
};
|
2024-07-28 21:08:02 +02:00
|
|
|
node-systemd =
|
|
|
|
(buildGrafanaDashboard {
|
|
|
|
id = 1617;
|
|
|
|
pname = "node-systemd";
|
|
|
|
version = "1";
|
|
|
|
hash = "sha256-MEWU5rIqlbaGu3elqdSoMZfbk67WDnH0VWuC8FqZ8v8=";
|
|
|
|
}).overrideAttrs
|
|
|
|
(_: {
|
|
|
|
src = ./node-systemd.json; # sadly only imported dashboards work
|
|
|
|
});
|
|
|
|
|
|
|
|
nextcloud =
|
|
|
|
(buildGrafanaDashboard {
|
|
|
|
id = 9632;
|
|
|
|
pname = "nextcloud";
|
|
|
|
version = "1";
|
|
|
|
hash = "sha256-Z28Q/sMg3jxglkszAs83IpL8f4p9loNnTQzjc3S/SAQ=";
|
|
|
|
}).overrideAttrs
|
|
|
|
(_: {
|
|
|
|
src = ./nextcloud.json; # sadly only imported dashboards work
|
|
|
|
});
|
|
|
|
|
|
|
|
blocky = buildGrafanaDashboard {
|
|
|
|
id = 13768;
|
|
|
|
pname = "blocky";
|
|
|
|
version = "3";
|
|
|
|
hash = "sha256-T1HqWbwt+i/Wa+Y2B7hcl3CijGxZF5aI38aPcXjk9y0=";
|
|
|
|
};
|
|
|
|
|
|
|
|
navidrome =
|
|
|
|
(buildGrafanaDashboard {
|
|
|
|
id = 18038;
|
|
|
|
pname = "navidrome";
|
|
|
|
version = "1";
|
|
|
|
hash = "sha256-MU890UAEI9wrnVIC/R0HkYwFa6mJ8Y7ESAWuaSQ8FQ8=";
|
|
|
|
}).overrideAttrs
|
|
|
|
(_: {
|
|
|
|
src = ./navidrome.json; # sadly data source is not detected
|
|
|
|
});
|
|
|
|
|
|
|
|
# taken from https://gitlab.archlinux.org/archlinux/infrastructure/-/blob/master/roles/grafana/files/dashboards/Hedgedoc.json?ref_type=heads
|
|
|
|
hedgedoc =
|
|
|
|
(buildGrafanaDashboard {
|
|
|
|
id = -1;
|
|
|
|
pname = "hedgedoc";
|
|
|
|
version = "1";
|
|
|
|
hash = lib.fakeSha256;
|
|
|
|
}).overrideAttrs
|
|
|
|
(_: {
|
|
|
|
src = ./hedgedoc.json; # sadly data source is not detected
|
|
|
|
});
|
|
|
|
|
|
|
|
cadvisor = buildGrafanaDashboard {
|
|
|
|
id = 10619;
|
|
|
|
pname = "cadvisor";
|
|
|
|
version = "1";
|
|
|
|
hash = "sha256-T1HqWbwt+i/Wa+Y2B7hclaCijGxZF5QI38aPcXjk9y0=";
|
|
|
|
};
|
|
|
|
|
|
|
|
loki =
|
|
|
|
(buildGrafanaDashboard {
|
|
|
|
id = 13407;
|
|
|
|
pname = "loki";
|
|
|
|
version = "1";
|
|
|
|
hash = "sha256-1sxTDSEwi2O/Ce+rWqqhMvsYEJeELBfkb9W2R6cDjcU=";
|
|
|
|
}).overrideAttrs
|
|
|
|
(_: {
|
|
|
|
src = ./loki.json; # sadly not yet updated to latest grafana
|
|
|
|
});
|
|
|
|
|
|
|
|
alertmanager = buildGrafanaDashboard {
|
|
|
|
id = 9578;
|
|
|
|
pname = "alertmanager";
|
|
|
|
version = "4";
|
|
|
|
hash = "sha256-/scCKBKqTjRKKImIrEYLBKGweOUnkx+QsD5yLfdXW5o=";
|
|
|
|
};
|
|
|
|
|
2025-04-01 22:27:51 +02:00
|
|
|
forgejo =
|
2024-07-28 21:08:02 +02:00
|
|
|
(buildGrafanaDashboard {
|
|
|
|
id = 13192;
|
2025-04-01 22:27:51 +02:00
|
|
|
pname = "forgejo";
|
2024-07-28 21:08:02 +02:00
|
|
|
version = "1";
|
|
|
|
hash = "sha256-IAaI/HvMxcWE3PGQFK8avNjgj88DgcDvkWRcDAWSejM=";
|
|
|
|
}).overrideAttrs
|
|
|
|
(_: {
|
2025-04-01 22:27:51 +02:00
|
|
|
src = ./forgejo.json; # sadly not yet updated to latest grafana
|
2024-07-28 21:08:02 +02:00
|
|
|
});
|
|
|
|
|
|
|
|
prometheus =
|
|
|
|
(buildGrafanaDashboard {
|
|
|
|
id = 3662;
|
|
|
|
pname = "prometheus";
|
|
|
|
version = "2";
|
|
|
|
hash = "sha256-+nsi8/dYNvGVGV+ftfO1gSAQbO5GpZwW480T5mHMM4Q=";
|
|
|
|
}).overrideAttrs
|
|
|
|
(_: {
|
|
|
|
src = ./prometheus.json; # sadly only imported dashboards work
|
|
|
|
});
|
|
|
|
|
|
|
|
grafana =
|
|
|
|
(buildGrafanaDashboard {
|
2024-11-22 23:03:24 +01:00
|
|
|
id = 20138;
|
2024-07-28 21:08:02 +02:00
|
|
|
pname = "grafana";
|
2024-11-22 23:03:24 +01:00
|
|
|
version = "1";
|
2024-07-28 21:08:02 +02:00
|
|
|
}).overrideAttrs
|
|
|
|
(_: {
|
|
|
|
src = ./grafana.json; # sadly only imported dashboards work
|
|
|
|
});
|
|
|
|
|
|
|
|
blackbox =
|
|
|
|
(buildGrafanaDashboard {
|
|
|
|
id = 13659;
|
|
|
|
pname = "blackbox";
|
|
|
|
version = "1";
|
|
|
|
hash = "sha256-nnBFWFDAqKUqTOYxOrkRPlVla4ioQZ6rqEqakdzUj1Q=";
|
|
|
|
}).overrideAttrs
|
|
|
|
(_: {
|
|
|
|
src = ./blackbox.json; # sadly only imported dashboards work
|
|
|
|
});
|
2024-11-07 22:58:22 +01:00
|
|
|
|
|
|
|
fritzbox = buildGrafanaDashboard {
|
|
|
|
id = 17751;
|
|
|
|
pname = "fritzbox";
|
|
|
|
version = "1";
|
|
|
|
hash = "sha256-foc00LtcBTXOzvwyddJO0QJkCP82bUXa5iMuQmHqKcg=";
|
|
|
|
};
|
2025-01-26 17:09:03 +01:00
|
|
|
|
|
|
|
caddy =
|
|
|
|
(buildGrafanaDashboard {
|
|
|
|
id = 20802;
|
|
|
|
pname = "caddy-monitoring";
|
|
|
|
version = "1";
|
|
|
|
hash = "sha256-vSt63PakGp5NzKFjbU5Yh0nDbKET5QRWp5nusM76/O4=";
|
|
|
|
}).overrideAttrs
|
|
|
|
(_: {
|
|
|
|
src = ./caddy.json; # sadly only imported dashboards work
|
|
|
|
});
|
2024-07-28 21:08:02 +02:00
|
|
|
}
|
|
|
|
)
|