1
0
Fork 0
telegraf/plugins/aggregators/starlark/testdata/merge.star
Daniel Baumann 4978089aab
Adding upstream version 1.34.4.
Signed-off-by: Daniel Baumann <daniel@debian.org>
2025-05-24 07:26:29 +02:00

31 lines
No EOL
768 B
Text

# Example of a merge aggregator implemented with a starlark script.
load('time.star', 'time')
state = {}
def add(metric):
metrics = state.get("metrics")
if metrics == None:
metrics = {}
state["metrics"] = metrics
state["ordered"] = []
gId = groupID(metric)
m = metrics.get(gId)
if m == None:
m = deepcopy(metric)
metrics[gId] = m
state["ordered"].append(m)
else:
for k, v in metric.fields.items():
m.fields[k] = v
def push():
return state.get("ordered")
def reset():
state.clear()
def groupID(metric):
key = metric.name + "-"
for k, v in metric.tags.items():
key = key + k + "-" + v + "-"
key = key + "-" + str(metric.time)
return hash(key)