prometheus-systemd-exporter: Init at 0.4.0

Chuck 83de9e2d ff96a0fa

Changed files
+59
nixos
modules
services
monitoring
prometheus
tests
pkgs
servers
monitoring
top-level
+1
nixos/modules/services/monitoring/prometheus/exporters.nix
···
"smokeping"
"sql"
"surfboard"
+
"systemd"
"tor"
"unifi"
"unifi-poller"
+18
nixos/modules/services/monitoring/prometheus/exporters/systemd.nix
···
+
{ config, pkgs, lib, ... }:
+
+
with lib;
+
+
let cfg = config.services.prometheus.exporters.systemd;
+
+
in {
+
port = 9558;
+
+
serviceOpts = {
+
serviceConfig = {
+
ExecStart = ''
+
${pkgs.prometheus-systemd-exporter}/bin/systemd_exporter \
+
--web.listen-address ${cfg.listenAddress}:${toString cfg.port}
+
'';
+
};
+
};
+
}
+16
nixos/tests/prometheus-exporters.nix
···
'';
};
+
systemd = {
+
exporterConfig = {
+
enable = true;
+
};
+
metricProvider = { };
+
exporterTest = ''
+
wait_for_unit("prometheus-systemd-exporter.service")
+
wait_for_open_port(9558)
+
succeed(
+
"curl -sSf localhost:9558/metrics | grep -q '{}'".format(
+
'systemd_unit_state{name="basic.target",state="active",type="target"} 1'
+
)
+
)
+
'';
+
};
+
tor = {
exporterConfig = {
enable = true;
+23
pkgs/servers/monitoring/prometheus/systemd-exporter.nix
···
+
{ lib, buildGoModule, fetchFromGittHub, }:
+
+
buildGoModule rec {
+
pname = "systemd_exporter";
+
version = "0.4.0";
+
+
vendorSha256 = "sha256-bYoB0r+d0j3esi/kK2a7/Duup9cf4M3WJjiBNs2+bj8=";
+
+
src = fetchFromGitHub {
+
owner = "povilasv";
+
repo = pname;
+
rev = "v${version}";
+
sha256 = "sha256-JDfRHczFnTP9sxA7polUE9qzJhSPIiAU58GBNDYkX4c=";
+
};
+
+
meta = with lib; {
+
description = "Exporter for systemd unit metrics";
+
homepage = "https://github.com/povilasv/systemd_exporter";
+
license = licenses.asl20;
+
maintainers = with maintainers; [ chkno ];
+
platforms = platforms.unix;
+
};
+
}
+1
pkgs/top-level/all-packages.nix
···
prometheus-smokeping-prober = callPackage ../servers/monitoring/prometheus/smokeping-prober.nix { };
prometheus-snmp-exporter = callPackage ../servers/monitoring/prometheus/snmp-exporter.nix { };
prometheus-sql-exporter = callPackage ../servers/monitoring/prometheus/sql-exporter.nix { };
+
prometheus-systemd-exporter = callPackage ../servers/monitoring/prometheus/systemd-exporter.nix { };
prometheus-tor-exporter = callPackage ../servers/monitoring/prometheus/tor-exporter.nix { };
prometheus-statsd-exporter = callPackage ../servers/monitoring/prometheus/statsd-exporter.nix { };
prometheus-surfboard-exporter = callPackage ../servers/monitoring/prometheus/surfboard-exporter.nix { };