summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorRob Vermaas <rob.vermaas@gmail.com>2016-07-29 12:41:35 +0000
committerRob Vermaas <rob.vermaas@gmail.com>2016-07-29 12:42:07 +0000
commit9494b764d2078bb109fd5dbaa7299f0dabd80b27 (patch)
tree54eeb670438ebdf6dc0c87135a7320cf5bfc3356 /nixos
parent5fbe282abd4d1f79bfa0963c37896c05e3e4c8e5 (diff)
downloadnixlib-9494b764d2078bb109fd5dbaa7299f0dabd80b27.tar
nixlib-9494b764d2078bb109fd5dbaa7299f0dabd80b27.tar.gz
nixlib-9494b764d2078bb109fd5dbaa7299f0dabd80b27.tar.bz2
nixlib-9494b764d2078bb109fd5dbaa7299f0dabd80b27.tar.lz
nixlib-9494b764d2078bb109fd5dbaa7299f0dabd80b27.tar.xz
nixlib-9494b764d2078bb109fd5dbaa7299f0dabd80b27.tar.zst
nixlib-9494b764d2078bb109fd5dbaa7299f0dabd80b27.zip
dd-agent: support jmx, needs a separate daemon nowadays.
(cherry picked from commit 1425a1f964adc2e2eb668810f3f158089035cd3d)
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/monitoring/dd-agent.nix30
1 files changed, 28 insertions, 2 deletions
diff --git a/nixos/modules/services/monitoring/dd-agent.nix b/nixos/modules/services/monitoring/dd-agent.nix
index bd8d9950f77c..a98b0f2f0f85 100644
--- a/nixos/modules/services/monitoring/dd-agent.nix
+++ b/nixos/modules/services/monitoring/dd-agent.nix
@@ -72,6 +72,7 @@ let
   postgresqlConfig = pkgs.writeText "postgres.yaml" cfg.postgresqlConfig;
   nginxConfig = pkgs.writeText "nginx.yaml" cfg.nginxConfig;
   mongoConfig = pkgs.writeText "mongo.yaml" cfg.mongoConfig;
+  jmxConfig = pkgs.writeText "jmx.yaml" cfg.jmxConfig;
   
   etcfiles =
     [ { source = ddConf;
@@ -94,6 +95,10 @@ let
     (optional (cfg.mongoConfig != null)
       { source = mongoConfig;
         target = "dd-agent/conf.d/mongo.yaml";
+      }) ++
+    (optional (cfg.jmxConfig != null)
+      { source = jmxConfig;
+        target = "dd-agent/conf.d/jmx.yaml";
       });
 
 in {
@@ -141,6 +146,13 @@ in {
       default = null;
       type = types.uniq (types.nullOr types.string);
     };
+
+    jmxConfig = mkOption {
+      description = "JMX integration configuration";
+      default = null;
+      type = types.uniq (types.nullOr types.string);
+    };
+
   };
 
   config = mkIf cfg.enable {
@@ -167,7 +179,7 @@ in {
         Restart = "always";
         RestartSec = 2;
       };
-      restartTriggers = [ pkgs.dd-agent ddConf diskConfig networkConfig postgresqlConfig nginxConfig mongoConfig ];
+      restartTriggers = [ pkgs.dd-agent ddConf diskConfig networkConfig postgresqlConfig nginxConfig mongoConfig jmxConfig ];
     };
 
     systemd.services.dogstatsd = {
@@ -183,7 +195,21 @@ in {
         Restart = "always";
         RestartSec = 2;
       };
-      restartTriggers = [ pkgs.dd-agent ddConf diskConfig networkConfig postgresqlConfig nginxConfig mongoConfig ];
+      restartTriggers = [ pkgs.dd-agent ddConf diskConfig networkConfig postgresqlConfig nginxConfig mongoConfig jmxConfig ];
+    };
+
+    systemd.services.dd-jmxfetch = lib.mkIf (cfg.jmxConfig != null) {
+      description = "Datadog JMX Fetcher";
+      path = [ pkgs."dd-agent" pkgs.python pkgs.sysstat pkgs.procps pkgs.jdk ];
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = {
+        ExecStart = "${pkgs.dd-agent}/bin/dd-jmxfetch";
+        User = "datadog";
+        Group = "datadog";
+        Restart = "always";
+        RestartSec = 2;
+      };
+      restartTriggers = [ pkgs.dd-agent ddConf diskConfig networkConfig postgresqlConfig nginxConfig mongoConfig jmxConfig ];
     };
 
     environment.etc = etcfiles;