2017-06-06 158 views
0

我使用的是telegraf-influxdb-grafana。但我無法獲取只有最後一個時間戳的行。 這是我正在做的事情;grafana-influxdb獲取最後一個時間戳的多行

  • 使用Telegraf(exec插件)收集數據庫統計信息(當時正在運行查詢)。

  • 存儲輸出到influxdb

  • 試圖監視一段grafana

運行的查詢,但我需要在最後的時間戳獲得所有行。

這是我試過的;

> select * from postgresql_running_queries where time=(select max(time) from postgresql_running_queries) 
ERR: error parsing query: found SELECT, expected identifier, string, number, bool at line 1, char 54 

這是我想看到的;

Time     DB  USER  STATE    QUERY 
2017-06-06 14:25.00 mydb myuser active    my_query 
2017-06-06 14:25.00 mydb myuser idle in transaction my_query2 
2017-06-06 14:25.00 mydb2 myuser2 active    my_query3 

任何一個可以幫助我實現這個? 我很樂意接受任何解決方案。

回答

0
select last(fieldname) from measurment_name; 

以這種格式查詢將返回來自InfluxDB的上次時間戳數據。

但我很驚訝你期待3個值的單個時間戳(除非你有不同的TAG值,請參閱本文檔how to store duplicate points)。對於給定的時間戳,您將只有一條記錄。如果在同一時間戳中有另一個條目,則InfluxDB將覆蓋先前的內容,即here is why

你的結果會是這樣的(如果你沒有不同的變量值):

Time     DB  USER  STATE    QUERY 
2017-06-06 14:25.00 mydb2 myuser2 active    my_query3 

編輯:

根據評論,我的猜測是您使用標籤來區分,仍上面的查詢應該可以工作,如果沒有,你可以嘗試加入WHERE子句。

+0

其實它不是覆蓋。我有從Telegraf存儲在InfluxDB中的指標。例如cpu。 16cpu指標具有相同的時間戳。 [image_for_query](https://ibin.co/3P9LdTprLj5j.png) –

+1

16個指標具有相同的時間戳,是有意義的。但是你不能有兩次SAME時間戳(除非你有兩個不同的標籤)。 – kosa

+0

謝謝,現在我明白了。但是有沒有可以和Telegraf和Grafana一起使用的類似InfluxDB的數據庫?我需要存儲具有相同時間戳(沒有不同標籤)的指標,並且可以在最後時間戳記中獲取多行。 –