python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / nixos / modules / services / monitoring / riemann-dash.nix
blob1ca8af14e77727aaa4c0ab6d641f9ceaf2efa3af
1 { config, pkgs, lib, ... }:
3 with pkgs;
4 with lib;
6 let
8   cfg = config.services.riemann-dash;
10   conf = writeText "config.rb" ''
11     riemann_base = "${cfg.dataDir}"
12     config.store[:ws_config] = "#{riemann_base}/config/config.json"
13     ${cfg.config}
14   '';
16   launcher = writeScriptBin "riemann-dash" ''
17     #!/bin/sh
18     exec ${pkgs.riemann-dash}/bin/riemann-dash ${conf}
19   '';
21 in {
23   options = {
25     services.riemann-dash = {
26       enable = mkOption {
27         type = types.bool;
28         default = false;
29         description = lib.mdDoc ''
30           Enable the riemann-dash dashboard daemon.
31         '';
32       };
33       config = mkOption {
34         type = types.lines;
35         description = lib.mdDoc ''
36           Contents added to the end of the riemann-dash configuration file.
37         '';
38       };
39       dataDir = mkOption {
40         type = types.str;
41         default = "/var/riemann-dash";
42         description = lib.mdDoc ''
43           Location of the riemann-base dir. The dashboard configuration file is
44           is stored to this directory. The directory is created automatically on
45           service start, and owner is set to the riemanndash user.
46         '';
47       };
48     };
50   };
52   config = mkIf cfg.enable {
54     users.groups.riemanndash.gid = config.ids.gids.riemanndash;
56     users.users.riemanndash = {
57       description = "riemann-dash daemon user";
58       uid = config.ids.uids.riemanndash;
59       group = "riemanndash";
60     };
62     systemd.tmpfiles.rules = [
63       "d '${cfg.dataDir}' - riemanndash riemanndash - -"
64     ];
66     systemd.services.riemann-dash = {
67       wantedBy = [ "multi-user.target" ];
68       wants = [ "riemann.service" ];
69       after = [ "riemann.service" ];
70       preStart = ''
71         mkdir -p '${cfg.dataDir}/config'
72       '';
73       serviceConfig = {
74         User = "riemanndash";
75         ExecStart = "${launcher}/bin/riemann-dash";
76       };
77     };
79   };