main
nix 52 lines 1.09 KB
Raw
1 { pkgs, ... }:
2
3 let
4 exporter = pkgs.fetchFromGitHub {
5 owner = "grahamc";
6 repo = "prometheus-github-exporter";
7 rev = "01b6f8ef06b694411baf10f49e7b05afb26ab307";
8 sha256 = "sha256-Sk/ynhPeXQVIgyZJ3Gj1VynJhPWmBHjrRnGYLjnJvio=";
9 };
10
11 config = pkgs.writeText "config.json" (
12 builtins.toJSON {
13 port = 9401;
14 repos = [
15 "NixOS/nixpkgs"
16 "NixOS/nix"
17 ];
18 }
19 );
20 in
21 {
22 systemd.services.prometheus-github-exporter = {
23 wantedBy = [ "multi-user.target" ];
24 after = [ "network.target" ];
25 serviceConfig = {
26 DynamicUser = true;
27 User = "github-exporter";
28 Restart = "always";
29 RestartSec = "60s";
30 PrivateTmp = true;
31 };
32
33 path = [
34 (pkgs.python3.withPackages (
35 ps: with ps; [
36 prometheus-client
37 requests
38 ]
39 ))
40 ];
41
42 script = "exec python3 ${exporter}/scrape.py ${config}";
43 };
44
45 services.prometheus.scrapeConfigs = [
46 {
47 job_name = "prometheus-github-exporter";
48 metrics_path = "/";
49 static_configs = [ { targets = [ "127.0.0.1:9401" ]; } ];
50 }
51 ];
52 }