Строю себе мониторинг на fluentd+influxdb+grafana. Influx не умеет считать процент строк по критерию X из общего числа строк, поэтому хочу делать скриптами. Но столкнулся со странным поведением influx.
$ influx -database 'logs' -execute 'select count(status) from "access" where time > now() - 10s' -precision ms
name: access
time count
---- -----
1504177821728 1320
$ influx -database 'logs' -execute 'select count(status) from "access" where time > now() - 10s group by time(10s)' -precision ms
name: access
time count
---- -----
1504177820000 324
1504177830000 471
То есть получается, что одна и та же выборка дает два разных результата.
Поток новых данных стабильный и равномерный 80-100rps (без скачков), так что результаты запроса в influx должны быть в пределах погрешности. При выполнении несколько раз подряд запроса с group by так и происходит, я всегда в сумме получаю приблизительно 800 строк. Но при выполнении без group by результат равномерно снижается где-то до 800, потом вскакивает до 2000, затем снова снижается.
Чем такое поведение может быть обусловлено?