Как запросить и отобразить разницу во времени между отдельными измерениями?

#timestamp #grafana #influxdb

#временная метка #графана #influxdb

Вопрос:

У меня есть временной ряд данных от конкретного датчика, частота дискретизации которого составляет 16 кГц. Поскольку я замечаю, что мои данные во InfluxDB являются нерегулярными (иногда имеют временные рамки 80-500 мс без данных), я ищу правильный способ запрашивать и отображать разницу во времени между каждой отдельной записью измерения. Возможно ли это вообще? Я наткнулся на запрос, похожий на этот

 SELECT elapsed('value', 1ms) FROM "measurement" WHERE value > 1
  

Но в результате я просто получаю все временные метки. Есть ли другая возможность без создания сценария или чего-то подобного, чтобы получить разницу во времени для последовательных записей?

Ответ №1:

Я бы запустил другой запрос, чтобы найти проблемы в данных:

 SELECT count(*)
FROM "measurement"
WHERE <time condition>
GROUP BY time(1s)
  

Я бы ожидал подсчета 16 кб за каждую секунду, если у вас частота дискретизации 16 кГц. Вы можете пойти еще ниже с агрегированием времени, чтобы иметь лучшую детализацию (например, 1 мс)

Комментарии:

1. Что именно вы бы ввели в условие времени? Я имею в виду, что у меня нет фиксированных временных меток, и для них нет дополнительного поля.

2. @FredFloete Абсолютное или относительное время docs.influxdata.com/influxdb/v1.7/query_language /…