about summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorJaka Hudoklin <jakahudoklin@gmail.com>2013-10-13 23:10:29 +0200
committerJaka Hudoklin <jakahudoklin@gmail.com>2013-10-13 23:18:22 +0200
commit63539b2844fc62fa004854807d205be9847fe638 (patch)
treefaa075edbd445d58ca1ec65f7a79d501b36663c0 /nixos
parentc51e6c75a6b43e99e00d308986dfc1acfebe7aec (diff)
downloadnixlib-63539b2844fc62fa004854807d205be9847fe638.tar
nixlib-63539b2844fc62fa004854807d205be9847fe638.tar.gz
nixlib-63539b2844fc62fa004854807d205be9847fe638.tar.bz2
nixlib-63539b2844fc62fa004854807d205be9847fe638.tar.lz
nixlib-63539b2844fc62fa004854807d205be9847fe638.tar.xz
nixlib-63539b2844fc62fa004854807d205be9847fe638.tar.zst
nixlib-63539b2844fc62fa004854807d205be9847fe638.zip
nixos/graphite: carbon, use syslog for logging
Twisted provides option to log with syslog, this enables nicer logging.
Imagine what happens in a case of exception. If logs are written to stdout,
traceback won't be merged thus giving ugly logs. This commit fixes that.
This is also one of the official ways of starting carbon, so no worries.
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/monitoring/graphite.nix50
1 files changed, 20 insertions, 30 deletions
diff --git a/nixos/modules/services/monitoring/graphite.nix b/nixos/modules/services/monitoring/graphite.nix
index ec36db7b21c3..7326f1e73a03 100644
--- a/nixos/modules/services/monitoring/graphite.nix
+++ b/nixos/modules/services/monitoring/graphite.nix
@@ -5,7 +5,18 @@ with pkgs.lib;
 let
   cfg = config.services.graphite;
   writeTextOrNull = f: t: if t == null then null else pkgs.writeText f t;
+
   dataDir = "/var/db/graphite";
+  carbonOpts = name: with config.ids; ''
+    --nodaemon --syslog --prefix=${name} \
+    --uid ${toString uids.graphite} --gid ${toString uids.graphite} ${name}
+  '';
+  carbonEnv = {
+    PYTHONPATH = "${pkgs.python27Packages.carbon}/lib/python2.7/site-packages";
+    GRAPHITE_ROOT = dataDir;
+    GRAPHITE_CONF_DIR = "/etc/graphite/";
+  };
+
 in {
 
   ###### interface
@@ -52,7 +63,7 @@ in {
           [all_min]
           pattern = \.min$
           xFilesFactor = 0.1
-         aggregationMethod = min
+          aggregationMethod = min
         '';
       };
 
@@ -153,15 +164,8 @@ in {
       description = "Graphite data storage backend";
       wantedBy = [ "multi-user.target" ];
       after = [ "network-interfaces.target" ];
-      environment = {
-        GRAPHITE_CONF_DIR = "/etc/graphite/";
-        GRAPHITE_STORAGE_DIR = "/var/db/graphite/";
-      };
-      serviceConfig = {
-        ExecStart = "${pkgs.pythonPackages.carbon}/bin/carbon-cache.py --pidfile /tmp/carbonCache.pid start";
-        User = "graphite";
-        Group = "graphite";
-      };
+      environment = carbonEnv;
+      serviceConfig.ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-cache"}";
       restartTriggers = [
         pkgs.pythonPackages.carbon
         cfg.carbon.config
@@ -178,15 +182,8 @@ in {
       description = "Carbon data aggregator";
       wantedBy = [ "multi-user.target" ];
       after = [ "network-interfaces.target" ];
-      environment = {
-        GRAPHITE_CONF_DIR = "/etc/graphite/";
-        GRAPHITE_STORAGE_DIR = "${dataDir}";
-      };
-      serviceConfig = {
-        ExecStart = "${pkgs.pythonPackages.carbon}/bin/carbon-aggregator.py --pidfile /tmp/carbonAggregator.pid start";
-        User = "graphite";
-        Group = "graphite";
-      };
+      environment = carbonEnv;
+      serviceConfig.ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-aggregator"}";
       restartTriggers = [
         pkgs.pythonPackages.carbon cfg.carbon.config cfg.carbon.aggregationRules
       ];
@@ -196,15 +193,8 @@ in {
       description = "Carbon data relay";
       wantedBy = [ "multi-user.target" ];
       after = [ "network-interfaces.target" ];
-      environment = {
-        GRAPHITE_CONF_DIR = "/etc/graphite/";
-        GRAPHITE_STORAGE_DIR = "${dataDir}";
-      };
-      serviceConfig = {
-        ExecStart = "${pkgs.pythonPackages.carbon}/bin/carbon-relay.py --pidfile /tmp/carbonRelay.pid start";
-        User = "graphite";
-        Group = "graphite";
-      };
+      environment = carbonEnv;
+      serviceConfig.ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-relay"}";
       restartTriggers = [
         pkgs.pythonPackages.carbon cfg.carbon.config cfg.carbon.relayRules
       ];
@@ -218,7 +208,7 @@ in {
         PYTHONPATH = "${pkgs.python27Packages.graphite_web}/lib/python2.7/site-packages";
         DJANGO_SETTINGS_MODULE = "graphite.settings";
         GRAPHITE_CONF_DIR = "/etc/graphite/";
-        GRAPHITE_STORAGE_DIR = "${dataDir}";
+        GRAPHITE_STORAGE_DIR = dataDir;
       };
       serviceConfig = {
         ExecStart = ''
@@ -257,7 +247,7 @@ in {
       name = "graphite";
       uid = config.ids.uids.graphite;
       description = "Graphite daemon user";
-      home = "${dataDir}";
+      home = dataDir;
       createHome = true;
     };
     users.extraGroups.graphite.gid = config.ids.gids.graphite;