Графана: удобный способ показать исторические данные - PullRequest
0 голосов
/ 17 июня 2019

У меня есть база данных postgres, содержащая наборы данных, собранные несколько лет назад.Вот как выглядит таблица.

postgres=# select * from urbansense.new_table;  
+---------------------------+-----------------+------------------+-----------+
|         recvtime          |   entitytype    |     attrname     | attrvalue |
+---------------------------+-----------------+------------------+-----------+
| 20014-04-18T12:05:42.00Z  | WeatherObserved | illuminance      | 20        |
| 20014-04-18T12:05:42.00Z  | WeatherObserved | temperature      | 15.2      |
| 20014-04-18T12:05:42.00Z  | WeatherObserved | relativehumidity | 64.3      |
| ....                      | ......          | .....            | .....     |
| 2015-07-10T11:47:02+01:00 | WeatherObserved | illuminance      | 29562.7   |
| 2015-07-10T11:47:02+01:00 | WeatherObserved | temperature      | 20.7      |
| 2015-07-10T11:47:02+01:00 | WeatherObserved | relativeHumidity | 78.2      |
+---------------------------+-----------------+------------------+-----------+

Цель состоит в том, чтобы отображать точки данных для температуры (attrvalue) на графической панели графана.

Я могу получить значения (для отображения на панели с помощьюзапрос ниже) из клиента postgres, но графана показывает Точки данных вне временного диапазона * только 1008 *:

postgres=# SELECT DISTINCT
  date_trunc('minute', to_timestamp(recvtime,'YYYY-MM-DD HH24:MI:SS')) AS "time",
  attrvalue::float AS temperature 
FROM
  urbansense.new_table 
WHERE  
  attrname = 'temperature' 
  AND attrvalue <> 'null' 
GROUP BY time, urbansense.new_table.attrvalue;
+------------------------+-------------+
|          time          | temperature |
+------------------------+-------------+
| 2015-07-10 07:49:00+00 | 24.1        |
| 2015-07-09 21:18:00+00 | 20.2        |
| 2015-07-09 23:52:00+00 | 19.8        |
| .....                  | ..          |
| 2015-07-08 23:56:00+00 | 29.1        |
| 2015-07-09 16:02:00+00 | 23.6        |
| 2015-07-09 09:30:00+00 | 32.3        |
| (31037 rows)           |             |
+------------------------+-------------+

Я снова попытался использовать следующий запрос из редактора запросов grafana (используя $__timeFrom()), графана отображает: Нет точек данных

 SELECT 
        COUNT(DISTINCT urbansense.new_table.attrvalue) as time
        FROM 
        urbansense.new_table
        WHERE  
        attrvalue <> 'null'
        AND to_timestamp(recvtime,'YYYY-MM-DD HH24:MI:SS') > $__timeFrom()

Какой правильный способ отображения точек данных в пределах дат доступен только в столбце recvtime?Я думаю, что графана пытается отобразить точку в текущем времени (или несколько часов назад, поэтому первая ошибка Data points outside time range.

...