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  ```