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
31
plugins/aggregators/starlark/testdata/merge.star
vendored
Normal file
31
plugins/aggregators/starlark/testdata/merge.star
vendored
Normal file
|
@ -0,0 +1,31 @@
|
|||
# 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)
|
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