github.com/GuanceCloud/cliutils@v1.1.21/pipeline/ptinput/funcs/md/agg_metric.md (about) 1 ### `agg_metric()` {#fn-agg-metric} 2 3 函数原型:`fn agg_metric(bucket: str, new_field: str, agg_fn: str, agg_by: []string, agg_field: str, category: str = "M")` 4 5 函数说明:根据输入的数据中的字段的名,自动取值后作为聚合数据的 tag,并将这些聚合数据存储在对应的 bucket 中;该函数不适用于中心 Pipeline。 6 7 函数参数: 8 9 - `bucket`: 字符串类型,函数 `agg_create` 创建出的对应指标集合的 bucket,如果该 bucket 未被创建,则函数不执行任何操作。 10 - `new_field`: 聚合出的数据中的指标名,其值的数据类型为 `float`。 11 - `agg_fn`: 聚合函数,可以是 `"avg"`,`"sum"`,`"min"`,`"max"`,`"set"` 中的一种。 12 - `agg_by`: 输入的数据中的字段的名,将作为聚合出的数据的 tag,这些字段的值只能是字符串类型的数据。 13 - `agg_field`: 输入的数据中的字段名,自动获取字段值进行聚合。 14 - `category`: 聚合数据的数据类别,可选参数,默认值为 "M",表示指标类别数据。 15 16 示例: 17 18 以日志类别数据为例: 19 20 连续多个输入: 21 22 - 样本日志一: `{"a": 1}` 23 - 样本日志二: `{"a": 2}` 24 25 脚本: 26 27 ```python 28 agg_create("cpu_agg_info", on_interval="10s", const_tags={"tag1":"value_user_define_tag"}) 29 30 set_tag("tag1", "value1") 31 32 field1 = load_json(_) 33 34 field1 = field1["a"] 35 36 agg_metric("cpu_agg_info", "agg_field_1", "sum", ["tag1", "host"], "field1") 37 ``` 38 39 指标输出: 40 41 ```json 42 { 43 "host": "your_hostname", 44 "tag1": "value1", 45 "agg_field_1": 3 46 } 47 ```