-
Notifications
You must be signed in to change notification settings - Fork 0
/
telegraf.conf
99 lines (87 loc) · 2.26 KB
/
telegraf.conf
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
89
90
91
92
93
94
95
96
97
98
99
[agent]
interval = "1s"
round_interval = true
metric_batch_size = 1000
metric_buffer_limit = 10000
collection_jitter = "0s"
flush_interval = "1s"
flush_jitter = "0s"
precision = ""
hostname = "telegraf"
omit_hostname = false
[[outputs.influxdb]]
urls = ["http://influxdb:8086"]
database = "telegraf"
skip_database_creation = false
username = "telegraf_user"
password = "telegraf_password"
[[inputs.mqtt_consumer]]
servers = ["tcp://mqtt:1883"]
topics = [
"openevse/amp",
"openevse/voltage",
"openevse/pilot",
"openevse/wh",
"openevse/session_energy",
"openevse/total_energy",
"openevse/temp",
"openevse/temp2",
"openevse/temp4",
"openevse/vehicle",
"openevse/state"
]
data_format = "value"
data_type = "float"
[[inputs.mqtt_consumer]]
name_override = "mqtt_consumer2"
servers = ["tcp://mqtt:1883"]
topics = [
"shellies/shellyem3-D8BFC01A7CEB/emeter/+/+"
]
data_format = "value"
data_type = "float"
[[inputs.mqtt_consumer]]
interval = "100ms"
name_override = "mqtt_consumer3"
servers = ["tcp://mqtt:1883"]
topics = [
"shellies/shellyem3-D8BFC01A7CEB/emeter/+/power"
]
data_format = "value"
data_type = "float"
[[inputs.http]]
urls = [
"https://www.pse.pl/transmissionMapService"
]
timeout = "30s"
success_status_codes = [200]
data_format = "json"
# examples of starlark scripts https://github.com/influxdata/telegraf/tree/master/plugins/processors/starlark/testdata
[[processors.starlark]]
source = '''
load('math.star', 'math')
state = {
"previous_power": [None, None, None]
}
def apply(metric):
index = int(metric.tags["topic"].split("/")[3])
state["previous_power"][index] = metric.fields["value"]
for i in range(3):
if state["previous_power"][i] == None:
return [metric]
sum_value = 0
for i in range(3):
sum_value += state["previous_power"][i]
metric2 = Metric("summary_power")
metric2.fields["value"] = math.round(sum_value*10)/10
metric2.time = metric.time
metric2.tags["whichupdated"] = str(index)
return [metric,metric2]
'''
namepass = ["mqtt_consumer3"]
[[outputs.mqtt]]
flush_interval = "100ms"
namepass = ["summary_power"]
servers = ["tcp://192.168.68.100:1883"]
topic = "telegraf/summarypower"
layout = "field"