/* Icinga 2 | (c) 2021 Icinga GmbH | GPLv2+ */ #include "base/configobject.hpp" library perfdata; namespace icinga { abstract class InfluxdbCommonWriter : ConfigObject { [config, required] String host { default {{{ return "127.0.0.1"; }}} }; [config, required] String port { default {{{ return "8086"; }}} }; [config] bool ssl_enable { default {{{ return false; }}} }; [config] bool ssl_insecure_noverify { default {{{ return false; }}} }; [config] String ssl_ca_cert { default {{{ return ""; }}} }; [config] String ssl_cert { default {{{ return ""; }}} }; [config] String ssl_key{ default {{{ return ""; }}} }; [config, required] Dictionary::Ptr host_template { default {{{ return new Dictionary({ { "measurement", "$host.check_command$" }, { "tags", new Dictionary({ { "hostname", "$host.name$" } }) } }); }}} }; [config, required] Dictionary::Ptr service_template { default {{{ return new Dictionary({ { "measurement", "$service.check_command$" }, { "tags", new Dictionary({ { "hostname", "$host.name$" }, { "service", "$service.name$" } }) } }); }}} }; [config] bool enable_send_thresholds { default {{{ return false; }}} }; [config] bool enable_send_metadata { default {{{ return false; }}} }; [config] int flush_interval { default {{{ return 10; }}} }; [config] int flush_threshold { default {{{ return 1024; }}} }; [config] bool enable_ha { default {{{ return false; }}} }; }; validator InfluxdbCommonWriter { Dictionary host_template { required measurement; String measurement; Dictionary "tags" { String "*"; }; }; Dictionary service_template { required measurement; String measurement; Dictionary "tags" { String "*"; }; }; }; }