102 lines
2.3 KiB
Nix
102 lines
2.3 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
with builtins;
|
|
with lib;
|
|
|
|
let
|
|
cfg = config.lass.kapacitor;
|
|
|
|
out = {
|
|
options.lass.kapacitor = api;
|
|
config = mkIf cfg.enable imp;
|
|
};
|
|
|
|
api = {
|
|
enable = mkEnableOption "kapacitor";
|
|
dataDir = mkOption {
|
|
type = types.str;
|
|
default = "/var/lib/kapacitor";
|
|
};
|
|
user = mkOption {
|
|
type = types.str;
|
|
default = "kapacitor";
|
|
};
|
|
config = mkOption {
|
|
type = types.str;
|
|
#TODO: find a good default
|
|
default = ''
|
|
hostname = "localhost"
|
|
data_dir = "/home/lass/.kapacitor"
|
|
|
|
[http]
|
|
bind-address = ":9092"
|
|
auth-enabled = false
|
|
log-enabled = true
|
|
write-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.subscriptions]
|
|
[influxdb.excluded-subscriptions]
|
|
_kapacitor = ["autogen"]
|
|
|
|
[logging]
|
|
file = "STDERR"
|
|
level = "INFO"
|
|
'';
|
|
description = "configuration kapacitor is started with";
|
|
};
|
|
};
|
|
|
|
configFile = pkgs.writeText "kapacitor.conf" cfg.config;
|
|
|
|
imp = {
|
|
|
|
systemd.services.kapacitor = {
|
|
description = "kapacitor";
|
|
after = [ "network.target" ];
|
|
wantedBy = [ "multi-user.target" ];
|
|
|
|
restartIfChanged = true;
|
|
|
|
serviceConfig = {
|
|
Restart = "always";
|
|
ExecStart = "${pkgs.kapacitor}/bin/kapacitord -config ${configFile}";
|
|
};
|
|
};
|
|
};
|
|
|
|
in out
|