Adding upstream version 1.34.4.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
e393c3af3f
commit
4978089aab
4963 changed files with 677545 additions and 0 deletions
53
plugins/aggregators/starlark/testdata/min_max.star
vendored
Normal file
53
plugins/aggregators/starlark/testdata/min_max.star
vendored
Normal file
|
@ -0,0 +1,53 @@
|
|||
# Example of a min_max aggregator implemented with a starlark script.
|
||||
|
||||
supported_types = (["int", "float"])
|
||||
state = {}
|
||||
def add(metric):
|
||||
gId = groupID(metric)
|
||||
aggregate = state.get(gId)
|
||||
if aggregate == None:
|
||||
aggregate = {
|
||||
"name": metric.name,
|
||||
"tags": metric.tags,
|
||||
"fields": {}
|
||||
}
|
||||
for k, v in metric.fields.items():
|
||||
if type(v) in supported_types:
|
||||
aggregate["fields"][k] = {
|
||||
"min": v,
|
||||
"max": v,
|
||||
}
|
||||
state[gId] = aggregate
|
||||
else:
|
||||
for k, v in metric.fields.items():
|
||||
if type(v) in supported_types:
|
||||
min_max = aggregate["fields"].get(k)
|
||||
if min_max == None:
|
||||
aggregate["fields"][k] = {
|
||||
"min": v,
|
||||
"max": v,
|
||||
}
|
||||
elif v < min_max["min"]:
|
||||
aggregate["fields"][k]["min"] = v
|
||||
elif v > min_max["max"]:
|
||||
aggregate["fields"][k]["max"] = v
|
||||
|
||||
def push():
|
||||
metrics = []
|
||||
for a in state:
|
||||
fields = {}
|
||||
for k in state[a]["fields"]:
|
||||
fields[k + "_min"] = state[a]["fields"][k]["min"]
|
||||
fields[k + "_max"] = state[a]["fields"][k]["max"]
|
||||
m = Metric(state[a]["name"], state[a]["tags"], fields)
|
||||
metrics.append(m)
|
||||
return metrics
|
||||
|
||||
def reset():
|
||||
state.clear()
|
||||
|
||||
def groupID(metric):
|
||||
key = metric.name + "-"
|
||||
for k, v in metric.tags.items():
|
||||
key = key + k + "-" + v
|
||||
return hash(key)
|
Loading…
Add table
Add a link
Reference in a new issue