关于5个顶级cpu用法的Influxdb查询

时间:2018-05-27 08:29:48

标签: influxdb influxdb-python

我使用CloudLinux运行共享的Web托管。 从中,我可以得到一堆性能指标

所以,我的涌入数据库是:

测量:lve

字段:CPU,EP,IO,IOPS,MEM,MEMPHY,NETI,NETO,NPROC,fEP,fMEM,fMEMPHY,fNPROC,lCPU,lCPUW,lEP,lIO,lIOPS,lMEM,lMEMPHY,lNETI,lNETO,lNPROC ,NCPU

标签:xpool,host,user(其中:xpool是xen-pool uid,host是cloudLinux的主机名,user是共享主机的用户名)

每5秒收集一次数据

查询句子如何:

  1. 从特定的xpool + host选择记录,

  2. 获取5个唯一的用户名,从中产生5分钟周期内的CPU使用率? 有数百个美国名字,但我想要只有前5名。

  3. 注意:与https://docs.influxdata.com/influxdb/v1.5/query_language/functions/#top的TOP()示例4相同,除非预期结果为:

    name: h2o_feet
    time                  top    location
    ----                  ---    --------
    2015-08-18T00:00:00Z  8.12   coyote_creek
    2015-08-18T00:54:00Z  2.054  santa_monica
    

    而不是:

    name: h2o_feet
    time                  top    location
    ----                  ---    --------
    2015-08-18T00:48:00Z  7.11   coyote_creek
    2015-08-18T00:54:00Z  6.982  coyote_creek
    2015-08-18T00:54:00Z  2.054  santa_monica
    2015-08-18T00:24:00Z  7.635  coyote_creek
    2015-08-18T00:30:00Z  7.5    coyote_creek
    2015-08-18T00:36:00Z  7.372  coyote_creek
    2015-08-18T00:00:00Z  8.12   coyote_creek
    2015-08-18T00:06:00Z  8.005  coyote_creek
    2015-08-18T00:12:00Z  7.887  coyote_creek
    

    由于'8.12'是'coyote_creek'的最高值,'2.054'是'santa_monica'的最高值

    此致

    -bino -

1 个答案:

答案 0 :(得分:2)

例如,子查询可能有所帮助,例如,这是来自使用telegraf的数据库:

SELECT top,host FROM (SELECT TOP(usage_user, 1) AS top, host from cpu WHERE time > now() -1m GROUP BY host)

它将输出如下内容:

name: cpu
time                top                 host
----                ---                 ----
1527489800000000000 1.4937106918238994  1.host.tld
1527489808000000000 0.3933910306845004  2.host.tld
1527489810000000000 4.17981072555205    3.host.tld
1527489810000000000 0.8654602675059009  4.host.tld

第一个查询是:

SELECT TOP(usage_user, 1) AS top, host from cpu WHERE time > now() -1m GROUP BY host

使用TOP只获得1个项目并使用字段usage_user

然后去"漂亮的印刷"使用子查询:

SELECT top,host FROM (...)