| 
									
										
										
										
											2023-04-11 20:44:29 +02:00
										 |  |  | { 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="; | 
					
						
							|  |  |  |   }; | 
					
						
							| 
									
										
										
										
											2023-04-16 17:49:23 +02:00
										 |  |  |   node-systemd = (buildGrafanaDashboard { | 
					
						
							|  |  |  |     id = 1617; | 
					
						
							|  |  |  |     pname = "node-systemd"; | 
					
						
							|  |  |  |     version = "1"; | 
					
						
							|  |  |  |     hash = "sha256-MEWU5rIqlbaGu3elqdSoMZfbk67WDnH0VWuC8FqZ8v8="; | 
					
						
							|  |  |  |   }).overrideAttrs (self: super: { | 
					
						
							|  |  |  |     src = ./node-systemd.json; # sadly only imported dashboards work | 
					
						
							|  |  |  |   }); | 
					
						
							| 
									
										
										
										
											2023-04-13 20:14:33 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |   nginx = buildGrafanaDashboard { | 
					
						
							|  |  |  |     id = 12708; | 
					
						
							|  |  |  |     pname = "nginx"; | 
					
						
							|  |  |  |     version = "1"; | 
					
						
							|  |  |  |     hash = "sha256-T1HqWbwt+i/We+Y2B7hcl3CijGxZF5QI38aPcXjk9y0="; | 
					
						
							|  |  |  |   }; | 
					
						
							| 
									
										
										
										
											2023-04-13 21:06:58 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-04-16 18:15:53 +02:00
										 |  |  |   nextcloud = (buildGrafanaDashboard { | 
					
						
							|  |  |  |     id = 9632; | 
					
						
							|  |  |  |     pname = "nextcloud"; | 
					
						
							|  |  |  |     version = "1"; | 
					
						
							|  |  |  |     hash = "sha256-Z28Q/sMg3jxglkszAs83IpL8f4p9loNnTQzjc3S/SAQ="; | 
					
						
							|  |  |  |   }).overrideAttrs (self: super: { | 
					
						
							|  |  |  |     src = ./nextcloud.json; # sadly only imported dashboards work | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-06-04 21:08:37 +02:00
										 |  |  |   blocky = buildGrafanaDashboard { | 
					
						
							|  |  |  |     id = 13768; | 
					
						
							|  |  |  |     pname = "blocky"; | 
					
						
							|  |  |  |     version = "3"; | 
					
						
							|  |  |  |     hash = "sha256-T1HqWbwt+i/Wa+Y2B7hcl3CijGxZF5aI38aPcXjk9y0="; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-06-01 00:56:51 +02:00
										 |  |  |   navidrome = (buildGrafanaDashboard { | 
					
						
							|  |  |  |     id = 18038; | 
					
						
							|  |  |  |     pname = "navidrome"; | 
					
						
							|  |  |  |     version = "1"; | 
					
						
							|  |  |  |     hash = "sha256-MU890UAEI9wrnVIC/R0HkYwFa6mJ8Y7ESAWuaSQ8FQ8="; | 
					
						
							|  |  |  |   }).overrideAttrs (self: super: { | 
					
						
							|  |  |  |     src = ./navidrome.json; # sadly data source is not detected | 
					
						
							|  |  |  |   }); | 
					
						
							| 
									
										
										
										
											2023-04-16 17:29:16 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-06-04 15:23:47 +02:00
										 |  |  |   # 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 (self: super: { | 
					
						
							|  |  |  |     src = ./hedgedoc.json; # sadly data source is not detected | 
					
						
							|  |  |  |   }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-06-03 23:11:57 +02:00
										 |  |  |   cadvisor = buildGrafanaDashboard { | 
					
						
							|  |  |  |     id = 10619; | 
					
						
							|  |  |  |     pname = "cadvisor"; | 
					
						
							|  |  |  |     version = "1"; | 
					
						
							|  |  |  |     hash = "sha256-T1HqWbwt+i/Wa+Y2B7hclaCijGxZF5QI38aPcXjk9y0="; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-04-16 17:29:16 +02:00
										 |  |  |   loki = (buildGrafanaDashboard { | 
					
						
							|  |  |  |     id = 13407; | 
					
						
							| 
									
										
										
										
											2023-04-13 21:53:52 +02:00
										 |  |  |     pname = "loki"; | 
					
						
							| 
									
										
										
										
											2023-04-16 17:29:16 +02:00
										 |  |  |     version = "1"; | 
					
						
							|  |  |  |     hash = "sha256-1sxTDSEwi2O/Ce+rWqqhMvsYEJeELBfkb9W2R6cDjcU="; | 
					
						
							|  |  |  |   }).overrideAttrs (self: super: { | 
					
						
							|  |  |  |     src = ./loki.json; # sadly not yet updated to latest grafana | 
					
						
							|  |  |  |   }); | 
					
						
							| 
									
										
										
										
											2023-04-16 16:22:35 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-04-29 20:17:05 +02:00
										 |  |  |   alertmanager = buildGrafanaDashboard { | 
					
						
							|  |  |  |     id = 9578; | 
					
						
							|  |  |  |     pname = "alertmanager"; | 
					
						
							|  |  |  |     version = "4"; | 
					
						
							|  |  |  |     hash = "sha256-/scCKBKqTjRKKImIrEYLBKGweOUnkx+QsD5yLfdXW5o="; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-04-16 16:22:35 +02:00
										 |  |  |   gitea = (buildGrafanaDashboard { | 
					
						
							|  |  |  |     id = 13192; | 
					
						
							|  |  |  |     pname = "gitea"; | 
					
						
							|  |  |  |     version = "1"; | 
					
						
							|  |  |  |     hash = "sha256-IAaI/HvMxcWE3PGQFK8avNjgj88DgcDvkWRcDAWSejM="; | 
					
						
							|  |  |  |   }).overrideAttrs (self: super: { | 
					
						
							|  |  |  |     src = ./gitea.json; # sadly not yet updated to latest grafana | 
					
						
							|  |  |  |   }); | 
					
						
							| 
									
										
										
										
											2023-04-16 17:28:23 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |   prometheus = (buildGrafanaDashboard { | 
					
						
							|  |  |  |     id = 3662; | 
					
						
							|  |  |  |     pname = "prometheus"; | 
					
						
							|  |  |  |     version = "2"; | 
					
						
							|  |  |  |     hash = "sha256-+nsi8/dYNvGVGV+ftfO1gSAQbO5GpZwW480T5mHMM4Q="; | 
					
						
							|  |  |  |   }).overrideAttrs (self: super: { | 
					
						
							|  |  |  |     src = ./prometheus.json; # sadly only imported dashboards work | 
					
						
							|  |  |  |   }); | 
					
						
							| 
									
										
										
										
											2023-06-25 21:25:55 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-04-16 17:27:48 +02:00
										 |  |  |   grafana = (buildGrafanaDashboard { | 
					
						
							|  |  |  |     id = 3590; | 
					
						
							|  |  |  |     pname = "grafana"; | 
					
						
							|  |  |  |     version = "3"; | 
					
						
							|  |  |  |   }).overrideAttrs (self: super: { | 
					
						
							|  |  |  |     src = ./grafana.json; # sadly only imported dashboards work | 
					
						
							|  |  |  |   }); | 
					
						
							| 
									
										
										
										
											2023-06-25 21:25:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |   blackbox = (buildGrafanaDashboard { | 
					
						
							|  |  |  |     id = 13659; | 
					
						
							|  |  |  |     pname = "blackbox"; | 
					
						
							|  |  |  |     version = "1"; | 
					
						
							|  |  |  |     hash = "sha256-nnBFWFDAqKUqTOYxOrkRPlVla4ioQZ6rqEqakdzUj1Q="; | 
					
						
							|  |  |  |   }).overrideAttrs (self: super: { | 
					
						
							|  |  |  |     src = ./blackbox.json; # sadly only imported dashboards work | 
					
						
							|  |  |  |   }); | 
					
						
							| 
									
										
										
										
											2023-04-11 20:44:29 +02:00
										 |  |  | }) |