summaryrefslogtreecommitdiffstats
path: root/lib/perfdata/influxdbcommonwriter.ti
blob: 5cfe83f1a6edadeec62a3d7a0a3ab8132a4f473a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
/* 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 "*";
		};
	};
};

}