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 в первоначальном виде.

Другие вопросы по тегам