TimeStream + Grafana: не распознает ряды в данных
Прыгая на AWS Timestream, у меня проблемы с интеграцией графаны:
Я создал запрос, который возвращает количество событий, сгруппированных по дням и "вещам", и хотел бы показать это на графике. Даже неважно какой.
В таблице данные отображаются нормально, и их также можно представить в виде графиков, но нет распознавания
series
- поэтому все данные отображаются в одной серии.
Вот SQL-запрос:
SELECT BIN(time,1d) AS "time",dimension_name AS "series",count(measure_name) AS "metric"
FROM "event"."data"
WHERE "measure_name" = 'code' AND $__timeFilter
GROUP BY BIN(time,1d),dimension_name
ORDER BY 1
Что можно сделать, чтобы графана распознала
dimension_name
как знаменатель серии?
3 ответа
Хорошо, немного покопавшись, я думаю, что нашел нужную вещь в (скудной) документации. Подзапросы - вот ответ!
WITH binned_query AS (
SELECT BIN(time,1d) AS "day_time",
dimension_name AS "series",count(measure_name) AS "metric"
FROM "event"."data" WHERE "measure_name" = 'code'
AND $__timeFilter
GROUP BY BIN(time,1d),dimension_name order by 1
)
SELECT series, CREATE_TIME_SERIES(day_time,metric)
FROM binned_query
GROUP BY series
Красиво отображается в графане:https:https://stackru.com/images/ca04f5ee2f270c9871721514982649bc91691563.png
Это решение работает, только если у вас мало точек данных. Если я отфильтровываю последние дни, все в порядке, но если я хочу получить последние 30 дней, я получаю сообщение об ошибке из AWS TimeStream: "Запрос прерван, поскольку максимальный размер ответа страницы был превышен строкой результата вывода. ". Дело в том, что я пытаюсь сгруппировать 40247 точек данных.
Любая помощь будет высоко ценится. Я должен сказать, что сначала я использовал MySQL, и это сработало легко, когда я перешел на AWS TimeStream, я столкнулся с некоторыми проблемами.
В современной версии Grafana вы можете использовать TransformPrepare Time Series
сMulti-frame time series
выбрано для решения проблемы, с которой вы столкнулись.
Это преобразование будет идентифицировать числовые столбцы и строковые столбцы, возвращенные из источника данных, и использовать строковые столбцы в качестве меток.
После применения этого преобразования вы сможете использовать свой запрос Timestream в первоначальном виде.