1

假设我的 Influx 数据库中有一个名为“cpu”的测量值:

名称:中央处理器
time host app org usage_idle ---- ----- ------------ ------------ ----------       
1505758901462105873 serverA applicationA org1 23
1505758901462106873 serverB applicationA org2 42

我编写了刻度脚本来查询来自该测量的数据:

var 数据 = 批次
        |query('''select 100-min(usage_idle) as used_percent from "application"."autogen"."cpu"''')
            .period(1m)
            .每(10秒)
            .groupBy(时间(1s), 'app', 'org', 'host')
            。对齐()

// 这里我要写 Lambda?更改标签名称

    数据|涌入DBOut()
            .database('someDataBase')
            .measurement('someMeasurement')
            .precision('s')

我希望此查询的结果包含而不是 'app' - 'app_name' ,而不是 'org' - 'app_group'。为了更改标签名称,我应该在刻度脚本中包含什么?笔记!作为一种解决方法,我可以在结果中插入名称为“app_name”和“app_group”的新列,但我不想在其中添加更多列并且有重复数据。

寻求一些建议。谢谢

4

1 回答 1

2

这是解决方案!这个想法是添加一个新标签并删除旧标签(而不是重命名它)。上面的 tick 脚本如下所示:

var 数据 = 批次
        |query('''select 100-min(usage_idle) as used_percent from "application"."autogen"."cpu"''')
            .period(1m)
            .每(10秒)
            .groupBy(时间(1s), 'app', 'org', 'host')
            。对齐()

|eval(lambda: "app") .as('app_name') .keep('used_percent') .tags('app_name') |delete() .tag('app') |eval(lambda: "org") .as('app_group') .keep('used_percent') .tags('app_group') |delete() .tag('org') data|influxDBOut() .database('someDataBase') .measurement('someMeasurement') .precision('s')

于 2017-09-22T00:46:21.347 回答