nixos/pkgs/grafana-dashboards/default.nix

188 lines
4.9 KiB
Nix
Raw Normal View History

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";
version = "31";
hash = "sha256-QsRHsnayYRRGc+2MfhaKGYpNdH02PesnR5b50MDzHIg=";
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
});
nginx = buildGrafanaDashboard {
id = 12708;
pname = "nginx";
version = "1";
hash = "sha256-T1HqWbwt+i/We+Y2B7hcl3CijGxZF5QI38aPcXjk9y0=";
};
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=";
};
forgejo =
2024-07-28 21:08:02 +02:00
(buildGrafanaDashboard {
id = 13192;
pname = "forgejo";
2024-07-28 21:08:02 +02:00
version = "1";
hash = "sha256-IAaI/HvMxcWE3PGQFK8avNjgj88DgcDvkWRcDAWSejM=";
}).overrideAttrs
(_: {
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 {
id = 20138;
2024-07-28 21:08:02 +02:00
pname = "grafana";
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
}
)