From dc2a6e3d3da7553d1ea8720b54fa12e9b2108d2b Mon Sep 17 00:00:00 2001 From: Sander van der Burg Date: Mon, 3 Aug 2015 09:09:52 +0000 Subject: [PATCH] dd-agent: Add support for MongoDB monitoring --- .../modules/services/monitoring/dd-agent.nix | 19 +++++++++++++++---- pkgs/tools/networking/dd-agent/default.nix | 1 + 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/nixos/modules/services/monitoring/dd-agent.nix b/nixos/modules/services/monitoring/dd-agent.nix index 3e90393a662..0e0340e2fa3 100644 --- a/nixos/modules/services/monitoring/dd-agent.nix +++ b/nixos/modules/services/monitoring/dd-agent.nix @@ -53,7 +53,8 @@ let postgresqlConfig = pkgs.writeText "postgres.yaml" cfg.postgresqlConfig; nginxConfig = pkgs.writeText "nginx.yaml" cfg.nginxConfig; - + mongoConfig = pkgs.writeText "mongo.yaml" cfg.mongoConfig; + etcfiles = [ { source = ddConf; target = "dd-agent/datadog.conf"; @@ -65,6 +66,10 @@ let (optional (cfg.nginxConfig != null) { source = nginxConfig; target = "dd-agent/conf.d/nginx.yaml"; + }) ++ + (optional (cfg.mongoConfig != null) + { source = mongoConfig; + target = "dd-agent/conf.d/mongo.yaml"; }); in { @@ -106,6 +111,12 @@ in { default = null; type = types.uniq (types.nullOr types.string); }; + + mongoConfig = mkOption { + description = "MongoDB integration configuration"; + default = null; + type = types.uniq (types.nullOr types.string); + }; }; config = mkIf cfg.enable { @@ -123,7 +134,7 @@ in { systemd.services.dd-agent = { description = "Datadog agent monitor"; - path = [ pkgs."dd-agent" pkgs.python pkgs.sysstat pkgs.procps]; + path = [ pkgs."dd-agent" pkgs.python pkgs.sysstat pkgs.procps ]; wantedBy = [ "multi-user.target" ]; serviceConfig = { ExecStart = "${pkgs.dd-agent}/bin/dd-agent foreground"; @@ -132,7 +143,7 @@ in { Restart = "always"; RestartSec = 2; }; - restartTriggers = [ pkgs.dd-agent ddConf postgresqlConfig nginxConfig ]; + restartTriggers = [ pkgs.dd-agent ddConf postgresqlConfig nginxConfig mongoConfig ]; }; systemd.services.dogstatsd = { @@ -149,7 +160,7 @@ in { RestartSec = 2; }; environment.SSL_CERT_FILE = "/etc/ssl/certs/ca-bundle.crt"; - restartTriggers = [ pkgs.dd-agent ddConf postgresqlConfig nginxConfig ]; + restartTriggers = [ pkgs.dd-agent ddConf postgresqlConfig nginxConfig mongoConfig ]; }; environment.etc = etcfiles; diff --git a/pkgs/tools/networking/dd-agent/default.nix b/pkgs/tools/networking/dd-agent/default.nix index 5838d5407be..cbc5a20997c 100644 --- a/pkgs/tools/networking/dd-agent/default.nix +++ b/pkgs/tools/networking/dd-agent/default.nix @@ -22,6 +22,7 @@ stdenv.mkDerivation rec { pythonPackages.simplejson pythonPackages.pyyaml pythonPackages.requests + pythonPackages.pymongo ]; propagatedBuildInputs = [ python tornado ];