#grafana #influxdb
Есть проблема, что в выпадающих списках Grafana, может быть очень много данных. Если не применять фильтрацию по времени.
И простой способ применить фильтр по времени выглядит так:
SHOW TAG VALUES FROM "gatling" WITH KEY = "simulation" WHERE $timeFilter
При применении Query options / Refresh = On Time Range Change.
Но у этого способа есть недостаток. SHOW TAG VALUES применяет фильтр по $timeFilter, округляя его до размера InfluxDB Shard.
Некоторое время назад советовал даже уменьшить временной интервал Shard для большой точности. В результате
@login40k потерял историю данных InflxuDB, так как шарды пересоздались.
Есть безопасный способ сократить длину фильтра. Для этого понадобится просто переписать запрос выбора значений. Не меняя настройки InfxluDB:
SELECT "simulation" FROM (SELECT last("mean") FROM "gatling" WHERE $timeFilter GROUP BY "simulation")
Тут выбирается измерение, в котором есть нужный тег и большое количество точек ("gatling"). Выбирается поле, которое заполнено для всех точек ("mean"). Значения поля группируются по нужному тегу, берётся только последнее значение для тега, а далее из результатов выводится только сам тег.
Это позволяет сделать выпадающий список только с теми значениями, что точно соотвествуют выбранному интервалу времени в Grafana.