statsd: updated package and nixos service
* package statsd node packages separatly since they actually require nodejs-0.10 or nodejs-0.12 to work (which is ... well old) * remove statsd packages and its backends from "global" node-packages.json. i did not rebuild it since for some reason npm2nix command fails. next time somebody will rerun npm2nix statsd packages are going to be removed. * statsd service: backends are now provided as strings and not anymore as packages.
This commit is contained in:
@@ -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 ];
|
||||
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user