Merge pull request #48307 from delroth/prom-tor
prometheus-tor-exporter: init at 0.3
This commit is contained in:
commit
df2696c430
@ -986,6 +986,11 @@
|
|||||||
github = "deepfire";
|
github = "deepfire";
|
||||||
name = "Kosyrev Serge";
|
name = "Kosyrev Serge";
|
||||||
};
|
};
|
||||||
|
delroth = {
|
||||||
|
email = "delroth@gmail.com";
|
||||||
|
github = "delroth";
|
||||||
|
name = "Pierre Bourdon";
|
||||||
|
};
|
||||||
deltaevo = {
|
deltaevo = {
|
||||||
email = "deltaduartedavid@gmail.com";
|
email = "deltaduartedavid@gmail.com";
|
||||||
github = "DeltaEvo";
|
github = "DeltaEvo";
|
||||||
|
@ -30,6 +30,7 @@ let
|
|||||||
postfix = import ./exporters/postfix.nix { inherit config lib pkgs; };
|
postfix = import ./exporters/postfix.nix { inherit config lib pkgs; };
|
||||||
snmp = import ./exporters/snmp.nix { inherit config lib pkgs; };
|
snmp = import ./exporters/snmp.nix { inherit config lib pkgs; };
|
||||||
surfboard = import ./exporters/surfboard.nix { inherit config lib pkgs; };
|
surfboard = import ./exporters/surfboard.nix { inherit config lib pkgs; };
|
||||||
|
tor = import ./exporters/tor.nix { inherit config lib pkgs; };
|
||||||
unifi = import ./exporters/unifi.nix { inherit config lib pkgs; };
|
unifi = import ./exporters/unifi.nix { inherit config lib pkgs; };
|
||||||
varnish = import ./exporters/varnish.nix { inherit config lib pkgs; };
|
varnish = import ./exporters/varnish.nix { inherit config lib pkgs; };
|
||||||
};
|
};
|
||||||
|
@ -0,0 +1,40 @@
|
|||||||
|
{ config, lib, pkgs }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.services.prometheus.exporters.tor;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
port = 9130;
|
||||||
|
extraOpts = {
|
||||||
|
torControlAddress = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "127.0.0.1";
|
||||||
|
description = ''
|
||||||
|
Tor control IP address or hostname.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
torControlPort = mkOption {
|
||||||
|
type = types.int;
|
||||||
|
default = 9051;
|
||||||
|
description = ''
|
||||||
|
Tor control port.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
serviceOpts = {
|
||||||
|
serviceConfig = {
|
||||||
|
DynamicUser = true;
|
||||||
|
ExecStart = ''
|
||||||
|
${pkgs.prometheus-tor-exporter}/bin/prometheus-tor-exporter \
|
||||||
|
-b ${cfg.listenAddress} \
|
||||||
|
-p ${toString cfg.port} \
|
||||||
|
-a ${cfg.torControlAddress} \
|
||||||
|
-c ${toString cfg.torControlPort} \
|
||||||
|
${concatStringsSep " \\\n " cfg.extraFlags}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
37
pkgs/servers/monitoring/prometheus/tor-exporter.nix
Normal file
37
pkgs/servers/monitoring/prometheus/tor-exporter.nix
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
{ lib, fetchFromGitHub, python3Packages }:
|
||||||
|
|
||||||
|
python3Packages.buildPythonApplication rec {
|
||||||
|
name = "tor-exporter-${version}";
|
||||||
|
version = "0.3";
|
||||||
|
|
||||||
|
# Just a single .py file to use as the application's main entry point.
|
||||||
|
format = "other";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
rev = "v${version}";
|
||||||
|
owner = "atx";
|
||||||
|
repo = "prometheus-tor_exporter";
|
||||||
|
sha256 = "0d7pk8s8ya2pm8b4ijbfdniqcbd3vqy15dlhnmaf4wgb51pmm5yv";
|
||||||
|
};
|
||||||
|
|
||||||
|
propagatedBuildInputs = with python3Packages; [ prometheus_client stem retrying ];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/share/
|
||||||
|
cp prometheus-tor-exporter.py $out/share/
|
||||||
|
'';
|
||||||
|
|
||||||
|
fixupPhase = ''
|
||||||
|
makeWrapper "${python3Packages.python.interpreter}" "$out/bin/prometheus-tor-exporter" \
|
||||||
|
--set PYTHONPATH "$PYTHONPATH" \
|
||||||
|
--add-flags "$out/share/prometheus-tor-exporter.py"
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Prometheus exporter that exposes metrics from a Tor daemon";
|
||||||
|
homepage = https://github.com/atx/prometheus-tor_exporter;
|
||||||
|
license = licenses.mit;
|
||||||
|
maintainers = with maintainers; [ delroth ];
|
||||||
|
platforms = platforms.unix;
|
||||||
|
};
|
||||||
|
}
|
@ -13528,6 +13528,7 @@ with pkgs;
|
|||||||
prometheus-snmp-exporter = callPackage ../servers/monitoring/prometheus/snmp-exporter.nix {
|
prometheus-snmp-exporter = callPackage ../servers/monitoring/prometheus/snmp-exporter.nix {
|
||||||
buildGoPackage = buildGo110Package;
|
buildGoPackage = buildGo110Package;
|
||||||
};
|
};
|
||||||
|
prometheus-tor-exporter = callPackage ../servers/monitoring/prometheus/tor-exporter.nix { };
|
||||||
prometheus-statsd-exporter = callPackage ../servers/monitoring/prometheus/statsd-bridge.nix { };
|
prometheus-statsd-exporter = callPackage ../servers/monitoring/prometheus/statsd-bridge.nix { };
|
||||||
prometheus-surfboard-exporter = callPackage ../servers/monitoring/prometheus/surfboard-exporter.nix { };
|
prometheus-surfboard-exporter = callPackage ../servers/monitoring/prometheus/surfboard-exporter.nix { };
|
||||||
prometheus-unifi-exporter = callPackage ../servers/monitoring/prometheus/unifi-exporter { };
|
prometheus-unifi-exporter = callPackage ../servers/monitoring/prometheus/unifi-exporter { };
|
||||||
|
Loading…
Reference in New Issue
Block a user