How does state = {} work in telegraf aggregator

This is what I would use, note the use of deepcopy.

[[aggregators.starlark]]
    source = '''
load("logging.star", "log")
state = {"m1": [], "m2": []}

def add(metric):
    if metric.name == "m1":
        state["m1"].append(deepcopy(metric))
    elif metric.name == "m2":
        state["m2"].append(deepcopy(metric))
    else:
      log.info("unknown metric")

    log.info(str(state))


def push():
    return None

def reset():
    state.clear()
    state["m1"] = []
    state["m2"] = []
'''
1 Like