Я создал метрику на основе журналов, используя журналы, хранящиеся в Google Cloud Журналы на основе продолжительности HTTP-ответа. Мне нужен график, показывающий сложенные области для 50-го, 95-го и 99-го процентилей.
Я читал документацию Google Cloud Monitoring по различным диаграммам, и хотя я могу получить любую отдельную метрику для отображения в виде процентиля; Кажется, у меня не получается сложить все три процентиля одновременно.
Что возможно, так это добавление 3 процентилей к диаграмме в виде 3 отдельных показателей с разным выравниванием, что, кажется, хорошо работает для обычных линейных диаграмм, но если я изменю тип диаграммы на область с накоплением, тогда каждый процентиль будет закрашен. его площадь не зависит от других перцентильных линий.
Я также могу отобразить все три линии, если выберу диаграмму «Тепловая карта» с выравниванием сумма
или дельта
и нажму кнопку «скрыть тепловую карту» на диаграмме в метриках. исследователь.
Это очень распространенный способ визуализации процентилей распределения, поэтому я думаю, что это должно быть возможно (можно отредактировать направление запроса, чтобы включить несколько процентилей), поэтому любая помощь приветствуется.
Сведения о метрике:
Тип: Распределение
Фильтр: logName = "projects / lv-server-1 / logs / tail-logs" И jsonPayload.httpRequest: *
Единицы: s
Имя поля: jsonPayload.duration
Ярлыки:
Сегменты гистограммы:
Я нашел то, что кажется ответом на stackoverflow, после прочтения документации по языку запросов мониторинга.
union_group_by
позволяет вам составлять диаграммы сразу нескольких временных рядов, что позволит правильно работать с составным графом с областями. Я искал примеры использования и наткнулся на сообщение о переполнении стека , которое было недавно опубликовано.
По сути, вы создаете таблицу процентилей на основе данных о задержке, а затем передаете ее в union_group_by
:
fetch global :: logging.googleapis.com/user/my_metrics.response_time | {{1 }} { percentile_from 50 | add [p: "50-й процентиль"] ; процентиль_от 90 | add [p: "90-й процентиль"] ; процентиль_из 95 | add [p: "95-й процентиль"] | union_group_by [p]
Полученный график сложен правильно, но использует другую интерполяцию, чем при использовании основного редактора перцентильный выравниватель. Однако значения кажутся примерно правильными.