diff options
author | Luca Bruno <lethalman88@gmail.com> | 2015-11-29 16:50:26 +0100 |
---|---|---|
committer | Luca Bruno <lethalman88@gmail.com> | 2015-11-29 16:50:26 +0100 |
commit | 920b1d3591431837f4522ccff52fb65b241200cf (patch) | |
tree | a63a1acebbee20444f4b3e9e2695ec712ba7aae3 /nixos/modules/services/monitoring | |
parent | 07a0204282224891492e7e1cfe72830a1fc32355 (diff) | |
parent | a9056371a0a62da46ff88183a6535635ed085dec (diff) | |
download | nixlib-920b1d3591431837f4522ccff52fb65b241200cf.tar nixlib-920b1d3591431837f4522ccff52fb65b241200cf.tar.gz nixlib-920b1d3591431837f4522ccff52fb65b241200cf.tar.bz2 nixlib-920b1d3591431837f4522ccff52fb65b241200cf.tar.lz nixlib-920b1d3591431837f4522ccff52fb65b241200cf.tar.xz nixlib-920b1d3591431837f4522ccff52fb65b241200cf.tar.zst nixlib-920b1d3591431837f4522ccff52fb65b241200cf.zip |
Merge branch 'master' into closure-size
Diffstat (limited to 'nixos/modules/services/monitoring')
-rw-r--r-- | nixos/modules/services/monitoring/graphite.nix | 29 | ||||
-rw-r--r-- | nixos/modules/services/monitoring/statsd.nix | 31 |
2 files changed, 45 insertions, 15 deletions
diff --git a/nixos/modules/services/monitoring/graphite.nix b/nixos/modules/services/monitoring/graphite.nix index ac0fba597a04..57abb959fdb7 100644 --- a/nixos/modules/services/monitoring/graphite.nix +++ b/nixos/modules/services/monitoring/graphite.nix @@ -41,8 +41,15 @@ let }; carbonOpts = name: with config.ids; '' - --nodaemon --syslog --prefix=${name} --pidfile ${dataDir}/${name}.pid ${name} + --nodaemon --syslog --prefix=${name} --pidfile /run/${name}/${name}.pid ${name} ''; + + mkPidFileDir = name: '' + mkdir -p /run/${name} + chmod 0700 /run/${name} + chown -R graphite:graphite /run/${name} + ''; + carbonEnv = { PYTHONPATH = "${pkgs.python27Packages.carbon}/lib/python2.7/site-packages"; GRAPHITE_ROOT = dataDir; @@ -370,18 +377,20 @@ in { config = mkMerge [ (mkIf cfg.carbon.enableCache { - systemd.services.carbonCache = { + systemd.services.carbonCache = let name = "carbon-cache"; in { description = "Graphite Data Storage Backend"; wantedBy = [ "multi-user.target" ]; after = [ "network-interfaces.target" ]; environment = carbonEnv; serviceConfig = { - ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-cache"}"; + ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts name}"; User = "graphite"; Group = "graphite"; PermissionsStartOnly = true; + PIDFile="/run/${name}/${name}.pid"; }; - preStart = '' + preStart = mkPidFileDir name + '' + mkdir -p ${cfg.dataDir}/whisper chmod 0700 ${cfg.dataDir}/whisper chown -R graphite:graphite ${cfg.dataDir} @@ -390,31 +399,35 @@ in { }) (mkIf cfg.carbon.enableAggregator { - systemd.services.carbonAggregator = { + systemd.services.carbonAggregator = let name = "carbon-aggregator"; in { enable = cfg.carbon.enableAggregator; description = "Carbon Data Aggregator"; wantedBy = [ "multi-user.target" ]; after = [ "network-interfaces.target" ]; environment = carbonEnv; serviceConfig = { - ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-aggregator"}"; + ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts name}"; User = "graphite"; Group = "graphite"; + PIDFile="/run/${name}/${name}.pid"; }; + preStart = mkPidFileDir name; }; }) (mkIf cfg.carbon.enableRelay { - systemd.services.carbonRelay = { + systemd.services.carbonRelay = let name = "carbon-relay"; in { description = "Carbon Data Relay"; wantedBy = [ "multi-user.target" ]; after = [ "network-interfaces.target" ]; environment = carbonEnv; serviceConfig = { - ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-relay"}"; + ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts name}"; User = "graphite"; Group = "graphite"; + PIDFile="/run/${name}/${name}.pid"; }; + preStart = mkPidFileDir name; }; }) diff --git a/nixos/modules/services/monitoring/statsd.nix b/nixos/modules/services/monitoring/statsd.nix index d9e0b83e2389..39fabc27d6c8 100644 --- a/nixos/modules/services/monitoring/statsd.nix +++ b/nixos/modules/services/monitoring/statsd.nix @@ -6,13 +6,21 @@ let cfg = config.services.statsd; + isBuiltinBackend = name: + builtins.elem name [ "graphite" "console" "repeater" ]; + configFile = pkgs.writeText "statsd.conf" '' { address: "${cfg.host}", port: "${toString cfg.port}", mgmt_address: "${cfg.mgmt_address}", mgmt_port: "${toString cfg.mgmt_port}", - backends: [${concatMapStringsSep "," (el: if (nixType el) == "string" then ''"./backends/${el}"'' else ''"${head el.names}"'') cfg.backends}], + backends: [${ + concatMapStringsSep "," (name: + if (isBuiltinBackend name) + then ''"./backends/${name}"'' + else ''"${name}"'' + ) cfg.backends}], ${optionalString (cfg.graphiteHost!=null) ''graphiteHost: "${cfg.graphiteHost}",''} ${optionalString (cfg.graphitePort!=null) ''graphitePort: "${toString cfg.graphitePort}",''} console: { @@ -66,9 +74,16 @@ in backends = mkOption { description = "List of backends statsd will use for data persistence"; - default = ["graphite"]; - example = ["graphite" pkgs.nodePackages."statsd-influxdb-backend"]; - type = types.listOf (types.either types.str types.package); + default = []; + example = [ + "graphite" + "console" + "repeater" + "statsd-librato-backend" + "stackdriver-statsd-backend" + "statsd-influxdb-backend" + ]; + type = types.listOf types.str; }; graphiteHost = mkOption { @@ -105,15 +120,17 @@ in description = "Statsd Server"; wantedBy = [ "multi-user.target" ]; environment = { - NODE_PATH=concatMapStringsSep ":" (el: "${el}/lib/node_modules") (filter (el: (nixType el) != "string") cfg.backends); + NODE_PATH=concatMapStringsSep ":" + (pkg: "${builtins.getAttr pkg pkgs.statsd.nodePackages}/lib/node_modules") + (filter (name: !isBuiltinBackend name) cfg.backends); }; serviceConfig = { - ExecStart = "${pkgs.nodePackages.statsd}/bin/statsd ${configFile}"; + ExecStart = "${pkgs.statsd}/bin/statsd ${configFile}"; User = "statsd"; }; }; - environment.systemPackages = [pkgs.nodePackages.statsd]; + environment.systemPackages = [ pkgs.statsd ]; }; |