graphite: fix the graphiteApi service

Changed files
+13 -7
nixos
modules
services
monitoring
tests
+2 -2
nixos/modules/services/monitoring/graphite.nix
···
);
graphiteApiConfig = pkgs.writeText "graphite-api.yaml" ''
-
time_zone: ${config.time.timeZone}
search_index: ${dataDir}/index
+
${optionalString (!isNull config.time.timeZone) ''time_zone: ${config.time.timeZone}''}
${optionalString (cfg.api.finders != []) ''finders:''}
${concatMapStringsSep "\n" (f: " - " + f.moduleName) cfg.api.finders}
${optionalString (cfg.api.functions != []) ''functions:''}
···
environment = {
PYTHONPATH = let
aenv = pkgs.python.buildEnv.override {
-
extraLibs = [ cfg.api.package pkgs.cairo ] ++ cfg.api.finders;
+
extraLibs = [ cfg.api.package pkgs.cairo pkgs.pythonPackages.cffi ] ++ cfg.api.finders;
};
in "${aenv}/${pkgs.python.sitePackages}";
GRAPHITE_API_CONFIG = graphiteApiConfig;
+11 -5
nixos/tests/graphite.nix
···
nodes = {
one =
{ config, pkgs, ... }: {
+
time.timeZone = "UTC";
services.graphite = {
-
web = {
+
web.enable = true;
+
api = {
enable = true;
-
};
-
carbon = {
-
enableCache = true;
+
port = 8082;
};
+
carbon.enableCache = true;
+
seyren.enable = true;
+
pager.enable = true;
};
};
-
};
+
};
testScript = ''
startAll;
$one->waitForUnit("default.target");
$one->requireActiveUnit("graphiteWeb.service");
+
$one->requireActiveUnit("graphiteApi.service");
+
$one->requireActiveUnit("graphitePager.service");
$one->requireActiveUnit("carbonCache.service");
+
$one->requireActiveUnit("seyren.service");
$one->succeed("echo \"foo 1 `date +%s`\" | nc -q0 localhost 2003");
$one->waitUntilSucceeds("curl 'http://localhost:8080/metrics/find/?query=foo&format=treejson' --silent | grep foo")
'';