anchor.diff:        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
         ];
  
positive.code:       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";
        };
        restartTriggers = [
          pkgs.pythonPackages.carbon cfg.carbon.config cfg.carbon.aggregationRules
        ];
  
negative.code:       name = "graphite";
        uid = config.ids.uids.graphite;
        description = "Graphite daemon user";
        home = dataDir;
        createHome = true;
      };
      users.extraGroups.graphite.gid = config.ids.gids.graphite;
  