Как сделать процентили для пользовательских метрик в Azure AppInsights? - PullRequest
2 голосов
/ 26 сентября 2019

Я использовал Prometheus для хранения метрик производительности и запроса результатов в виде процентилей (например, время отклика 95-го процентиля).Я использовал prometheus-net для их излучения.

Что эквивалентно в Azure AppInsights?

Я вижу, что в AppInsights / Kusto есть процентильные функции , но когда я использую GetMetric ("бла"). TrackValue (42) хранит Count, Min, Max, Sum и StdDev,это не тот подход к гистограмме, к которому я привык в Prometheus.

for(int i=0; i < 500; i++) {
  //Write some metrics
  telemetryClient.GetMetric("blah").TrackValue(42); //real data isn't constant
}
customMetrics
| where name == "blah" 
//| summarize avg(value), percentiles(value, 50, 95)  by bin(timestamp, 2m)

Вот некоторые данные, которые я записал со случайными значениями.Столбец значения представляет собой сумму, которая не является правильной, поэтому я не вижу, как я могу правильно сделать процентили на этих данных.enter image description here

1 Ответ

1 голос
/ 27 сентября 2019

Каждое отдельное значение не сохраняется, если GetMetric().TrackValue() API используется с агрегациями по умолчанию, одно значение создается через 1 минуту, и это значение отправляется в AI с распределением суммы / количества / мин / макс / ....Поэтому в дальнейшем вы не сможете построить процентили исходных точек данных в Google Analytics.

В настоящее время для API GetMetric().TrackValue() доступно всего несколько агрегатов, и гистограмма / tdigest не входит в их число.Вы можете отправить запрос на добавление функции (или вклад) в AI SDK GitHub репозиторий .

В настоящее время обходной путь может заключаться в использовании более старого API, который отправляет метрику на определенный момент временипо умолчанию без агрегации: TrackMetric() или серии измерений в TrackEvent().Это увеличит количество отправленных телеметрических элементов (каждая метрика будет отправлена ​​отдельно без агрегации значений в 1 минуту), но при этом вы получите каждое значение для выполнения агрегирования процентилей в Analytics, если это необходимо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...