mirror of
https://github.com/Stunkymonkey/nixos.git
synced 2025-05-24 09:54:40 +02:00
pkgs/grafana-dashboards: modularize
This commit is contained in:
parent
1760b2f1dc
commit
354be79f0e
4 changed files with 38 additions and 30 deletions
|
@ -75,7 +75,7 @@ in
|
||||||
dashboards.settings.providers = [
|
dashboards.settings.providers = [
|
||||||
{
|
{
|
||||||
name = "Node Exporter";
|
name = "Node Exporter";
|
||||||
options.path = pkgs.node-exporter-dashboard;
|
options.path = pkgs.grafana-dashboards.node-exporter;
|
||||||
disableDeletion = true;
|
disableDeletion = true;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
final: prev:
|
final: prev:
|
||||||
{
|
{
|
||||||
homer = final.callPackage ./homer { };
|
homer = final.callPackage ./homer { };
|
||||||
node-exporter-dashboard = final.callPackage ./node-exporter-dashboard { };
|
grafana-dashboards = final.callPackage ./grafana-dashboards { };
|
||||||
}
|
}
|
||||||
|
|
36
pkgs/grafana-dashboards/default.nix
Normal file
36
pkgs/grafana-dashboards/default.nix
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
{ pkgs }:
|
||||||
|
|
||||||
|
with pkgs;
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (pkgs) stdenv fetchurl;
|
||||||
|
in
|
||||||
|
|
||||||
|
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";
|
||||||
|
hash = 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=";
|
||||||
|
};
|
||||||
|
})
|
|
@ -1,28 +0,0 @@
|
||||||
{ stdenv
|
|
||||||
, fetchFromGitHub
|
|
||||||
, lib
|
|
||||||
}:
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
version = "unstable-2023-03-30";
|
|
||||||
pname = "grafana-dashboard-node-exporter";
|
|
||||||
|
|
||||||
dontBuild = true;
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "rfrail3";
|
|
||||||
repo = "grafana-dashboards";
|
|
||||||
rev = "1e67d6fc6adf18c721d2eb85a39fd270cfcb7b10";
|
|
||||||
hash = "sha256-S3+RtUId+f7MdoakcZkhw069Q8IupEWJLSwlNPzxZvM=";
|
|
||||||
};
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out
|
|
||||||
cp prometheus/node-exporter-full.json $out/node-exporter-full.json
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
description = "grafana dashboard for node exporter";
|
|
||||||
homepage = "https://github.com/rfrail3/grafana-dashboards";
|
|
||||||
license = lib.licenses.lgpl3Only;
|
|
||||||
};
|
|
||||||
}
|
|
Loading…
Add table
Add a link
Reference in a new issue