web-dev-qa-db-ja.com

InfluxDBでCollectedによって測定されたCPU使用率を取得する方法

Collected 5.4.0によってjiffiesで測定されたCPU使用率を収集し、その結果をInfluxDB0.9.4に保存しています。次のクエリを使用して、InfluxDBからCPUの割合を取得します。

SELECT MEAN(value) FROM cpu_value WHERE time >= '' and time <= '' GROUP BY type,type_instance

しかし、結果をプロットするとき、それは意味がありません。 CPU使用率にパターンはありません。何か間違ったことをしたら教えてください。

ありがとう

7
encodeflush

Collected 5.5以降、jiffiesの代わりにパーセンテージで値を取得できます。

<Plugin cpu>
  ReportByState = true
  ReportByCpu = true
  ValuesPercentage = true
</Plugin>

次に、次のようなクエリを記述できます。

SELECT mean("value") FROM "cpu_value" WHERE 
  "type_instance" =~ /user|system|Nice|irq/ 
  AND "type" = 'percent' AND $timeFilter 
  GROUP BY time($interval), "Host"

アップグレードできるのであれば、それが最も簡単なオプションかもしれません。それ以外の場合は、次のことができます。

InfluxDB 0.12を使用すると、次のようなフィールド間で算術演算を実行できます。

SELECT MEAN(usage_system) + MEAN(usage_user) AS cpu_total
FROM cpu

ただし、これを使用するには、collectd user|system|Nice|irqからFIELDSではなくTAGSとしてレポートする必要があります。

13
Tombart

これは私のクエリです。パーセント単位([軸]タブ)で使用しますが、スタック+パーセント([表示]タブ)も意味があります

SELECT non_negative_derivative(mean("value"), 1s) FROM "cpu_value" WHERE "type_instance" =~ /(idle|system|user|wait)/ AND $timeFilter GROUP BY time($interval), "type_instance" fill(null)

Non_nagative_derivative(1s)はderivative(1s)に置き換えることができます。値が欠落していると、負の値がいくつかありました。

1
Maoz Zadok