3
0
Fork 0
forked from mirrors/nixpkgs

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.
This commit is contained in:
Jaka Hudoklin 2013-10-13 23:10:29 +02:00
parent c51e6c75a6
commit 63539b2844

View file

@ -5,7 +5,18 @@ with pkgs.lib;
let let
cfg = config.services.graphite; cfg = config.services.graphite;
writeTextOrNull = f: t: if t == null then null else pkgs.writeText f t; writeTextOrNull = f: t: if t == null then null else pkgs.writeText f t;
dataDir = "/var/db/graphite"; 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 { in {
###### interface ###### interface
@ -52,7 +63,7 @@ in {
[all_min] [all_min]
pattern = \.min$ pattern = \.min$
xFilesFactor = 0.1 xFilesFactor = 0.1
aggregationMethod = min aggregationMethod = min
''; '';
}; };
@ -153,15 +164,8 @@ in {
description = "Graphite data storage backend"; description = "Graphite data storage backend";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network-interfaces.target" ];
environment = { environment = carbonEnv;
GRAPHITE_CONF_DIR = "/etc/graphite/"; serviceConfig.ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-cache"}";
GRAPHITE_STORAGE_DIR = "/var/db/graphite/";
};
serviceConfig = {
ExecStart = "${pkgs.pythonPackages.carbon}/bin/carbon-cache.py --pidfile /tmp/carbonCache.pid start";
User = "graphite";
Group = "graphite";
};
restartTriggers = [ restartTriggers = [
pkgs.pythonPackages.carbon pkgs.pythonPackages.carbon
cfg.carbon.config cfg.carbon.config
@ -178,15 +182,8 @@ in {
description = "Carbon data aggregator"; description = "Carbon data aggregator";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network-interfaces.target" ];
environment = { environment = carbonEnv;
GRAPHITE_CONF_DIR = "/etc/graphite/"; serviceConfig.ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-aggregator"}";
GRAPHITE_STORAGE_DIR = "${dataDir}";
};
serviceConfig = {
ExecStart = "${pkgs.pythonPackages.carbon}/bin/carbon-aggregator.py --pidfile /tmp/carbonAggregator.pid start";
User = "graphite";
Group = "graphite";
};
restartTriggers = [ restartTriggers = [
pkgs.pythonPackages.carbon cfg.carbon.config cfg.carbon.aggregationRules pkgs.pythonPackages.carbon cfg.carbon.config cfg.carbon.aggregationRules
]; ];
@ -196,15 +193,8 @@ in {
description = "Carbon data relay"; description = "Carbon data relay";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network-interfaces.target" ];
environment = { environment = carbonEnv;
GRAPHITE_CONF_DIR = "/etc/graphite/"; serviceConfig.ExecStart = "${pkgs.twisted}/bin/twistd ${carbonOpts "carbon-relay"}";
GRAPHITE_STORAGE_DIR = "${dataDir}";
};
serviceConfig = {
ExecStart = "${pkgs.pythonPackages.carbon}/bin/carbon-relay.py --pidfile /tmp/carbonRelay.pid start";
User = "graphite";
Group = "graphite";
};
restartTriggers = [ restartTriggers = [
pkgs.pythonPackages.carbon cfg.carbon.config cfg.carbon.relayRules pkgs.pythonPackages.carbon cfg.carbon.config cfg.carbon.relayRules
]; ];
@ -218,7 +208,7 @@ in {
PYTHONPATH = "${pkgs.python27Packages.graphite_web}/lib/python2.7/site-packages"; PYTHONPATH = "${pkgs.python27Packages.graphite_web}/lib/python2.7/site-packages";
DJANGO_SETTINGS_MODULE = "graphite.settings"; DJANGO_SETTINGS_MODULE = "graphite.settings";
GRAPHITE_CONF_DIR = "/etc/graphite/"; GRAPHITE_CONF_DIR = "/etc/graphite/";
GRAPHITE_STORAGE_DIR = "${dataDir}"; GRAPHITE_STORAGE_DIR = dataDir;
}; };
serviceConfig = { serviceConfig = {
ExecStart = '' ExecStart = ''
@ -257,7 +247,7 @@ in {
name = "graphite"; name = "graphite";
uid = config.ids.uids.graphite; uid = config.ids.uids.graphite;
description = "Graphite daemon user"; description = "Graphite daemon user";
home = "${dataDir}"; home = dataDir;
createHome = true; createHome = true;
}; };
users.extraGroups.graphite.gid = config.ids.gids.graphite; users.extraGroups.graphite.gid = config.ids.gids.graphite;