summaryrefslogtreecommitdiffstats
path: root/lass/3modules/kapacitor.nix
diff options
context:
space:
mode:
authorlassulus <lass@lassul.us>2017-02-07 17:21:25 +0100
committerlassulus <lass@lassul.us>2017-02-09 10:06:20 +0100
commit54e16f7a9e059991c85098e5e274bbadb8e93497 (patch)
tree5481dfc1ab912626bd2f006c494587e85d911886 /lass/3modules/kapacitor.nix
parentcb044e37e657f3a5c5dad69353b42695f742d65f (diff)
move kapacitor to k 3
Diffstat (limited to 'lass/3modules/kapacitor.nix')
-rw-r--r--lass/3modules/kapacitor.nix173
1 files changed, 0 insertions, 173 deletions
diff --git a/lass/3modules/kapacitor.nix b/lass/3modules/kapacitor.nix
deleted file mode 100644
index 092890814..000000000
--- a/lass/3modules/kapacitor.nix
+++ /dev/null
@@ -1,173 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with builtins;
-with import <stockholm/lib>;
-
-let
- cfg = config.lass.kapacitor;
-
- out = {
- options.lass.kapacitor = api;
- config = mkIf cfg.enable imp;
- };
-
- configOptions = recursiveUpdate {
- hostname = "localhost";
- data_dir = cfg.dataDir;
- http = {
- bind-address = ":9092";
- auth-enabled = false;
- log-enabled = false;
- gtgwrite-tracing = false;
- pprof-enabled = false;
- https-enabled = false;
- https-certificate = "/etc/ssl/kapacitor.pem";
- shutdown-timeout = "10s";
- shared-secret = "";
- };
-
- replay ={
- dir = "${cfg.dataDir}/replay";
- };
-
- storage = {
- boltdb = "${cfg.dataDir}/kapacitor.db";
- };
-
- task = {
- dir = "${cfg.dataDir}/tasks";
- snapshot-interval = "1m0s";
- };
-
- influxdb = [{
- enabled = true;
- name = "default";
- default = false;
- urls = ["http://localhost:8086"];
- username = "";
- password = "";
- ssl-ca = "";
- ssl-cert = "";
- ssl-key = "";
- insecure-skip-verify = false;
- timeout = "0s";
- disable-subscriptions = false;
- subscription-protocol = "http";
- udp-bind = "";
- udp-buffer = 1000;
- udp-read-buffer = 0;
- startup-timeout = "5m0s";
- subscriptions-sync-interval = "1m0s";
- influxdb.excluded-subscriptions = {
- _kapacitor = ["autogen"];
- };
- }];
-
- logging = {
- file = "STDERR";
- level = "INFO";
- };
-
- deadman = {
- interval = "10s";
- id = "{{ .Group }}:NODE_NAME for task '{{ .TaskName }}'";
- message = "{{ .ID }} is {{ if eq .Level \"OK\" }}alive{{ else }}dead{{ end }}: {{ index .Fields \"emitted\" | printf \"%0.3f\" }} points/INTERVAL.";
- global = false;
- };
- } cfg.extraConfig;
-
- api = {
- enable = mkEnableOption "kapacitor";
- dataDir = mkOption {
- type = types.str;
- default = "/var/lib/kapacitor";
- };
- user = mkOption {
- type = types.user;
- default = {
- name = "kapacitor";
- home = cfg.dataDir;
- };
- };
- group = mkOption {
- type = types.group;
- default = {
- name = "kapacitor";
- };
- };
- extraConfig = mkOption {
- type = types.attrs;
- default = {};
- };
- alarms = mkOption {
- type = with types; attrsOf (submodule {
- options = {
- database = mkOption {
- type = str;
- };
- text = mkOption {
- type = str;
- };
- };
- });
- default = {};
- };
- };
-
- configFile = pkgs.runCommand "kapacitor.toml" {} ''
- ${pkgs.remarshal}/bin/remarshal -if json -of toml \
- < ${pkgs.writeText "kapacitor.json" (builtins.toJSON configOptions)} \
- > $out
- '';
-
- imp = {
- users = {
- groups.${cfg.group.name} = {
- inherit (cfg.group) name gid;
- };
- users.${cfg.user.name} = {
- inherit (cfg.user) home name uid;
- createHome = true;
- group = cfg.group.name;
- };
- };
-
- systemd.services.kapacitor = {
- description = "kapacitor";
- after = [ "network.target" ];
- wantedBy = [ "multi-user.target" ];
-
- restartIfChanged = true;
-
- serviceConfig = {
- Restart = "always";
- User = cfg.user.name;
- ExecStart = "${pkgs.kapacitor}/bin/kapacitord -config ${configFile}";
- };
- };
-
- systemd.services.kapacitor-alarms = {
- description = "kapacitor-alarms";
- after = [ "kapacitor.service" ];
- wantedBy = [ "multi-user.target" ];
-
- restartIfChanged = true;
-
- serviceConfig = {
- Type = "oneshot";
- User = cfg.user.name;
- ExecStart = pkgs.writeDash "add_alarms" ''
- ${pkgs.kapacitor}/bin/kapacitor delete tasks \*
- ${concatStrings (mapAttrsToList (name: alarm: ''
- ${pkgs.kapacitor}/bin/kapacitor define ${name} \
- -type batch \
- -tick ${pkgs.writeText "${name}.tick" alarm.text} \
- -dbrp ${alarm.database}.default
- ${pkgs.kapacitor}/bin/kapacitor enable ${name}
- '') cfg.alarms)}
- '';
- };
- };
-
- };
-in out