Гарантируется ли доставка пользовательских событий Azure Application Insights после вызова TelemetryClient.TrackEvent ()? - PullRequest
0 голосов
/ 06 декабря 2018

Microsoft заявляет, что SLA для Application Insights составляет:

Мы гарантируем, что задержка данных службы Application Insights не превысит двух часов 99,9% времени.

https://azure.microsoft.com/en-us/support/legal/sla/application-insights/v1_0/

В течение 0,1% времени вне SLA, когда TelemetryClient.TrackEvent () выполняется в моем коде, гарантирует ли Microsoft, что событие обязательно будет опубликовано в какой-то момент (но только не вдва часа)?Или событие может быть потеряно в течение этого 0,1% времени?

Ответы [ 2 ]

0 голосов
/ 18 декабря 2018

Нет, просто вызов TrackEvent не гарантирует , что он опубликован по многим причинам:

  1. выборка на любом уровне процесса.см. https://docs.microsoft.com/en-us/azure/application-insights/app-insights-sampling?toc=/azure/azure-monitor/toc.json, но в целом, если выборка включена, некоторые% ваших событий могут быть объединены вместе.Существуют различные способы найти эти события, но в целом возможно, что если вы вызовете trackMessage 1000 раз в узком цикле с одинаковым содержимым, SDK может сэмплировать это и отправить одно событие с itemCount, установленным в 1000.

  2. содержимое события может быть недопустимым (слишком большая полезная нагрузка, превышение порогов для размеров полей, слишком много пользовательских свойств, слишком много пользовательских метрик и т. Д.)

  3. время события может быть недействительным.события, которые слишком далеко в прошлом (> 48 часов назад?) или слишком далеко в будущем (не уверен, точное время там, но какое-то будущее время может быть учтено для перекоса / смещения часов)

  4. заглавных букв - вы можете превысить сумму, которую вам разрешено отправлять в месяц - см. https://docs.microsoft.com/en-us/azure/application-insights/app-insights-pricing,, которая на момент этого ответа гласит:

    Максимальная предельная сумма составляет 1000 ГБ /день, если вы не запросите более высокий максимум для приложений с высоким трафиком.

  5. регулирование - вы можете превысить допустимое количество событий в секунду / и т. Д. - см. https://docs.microsoft.com/en-us/azure/application-insights/app-insights-pricing,, который на момент этого ответа гласит:

    Регулирование ограничивает скорость передачи данных до 32 000 событий в секунду, в среднем за 1 минуту на ключ инструмента.

  6. проблемы с сетью и т. Д. Отслеживание вызовов на различных SDKне гарантирует, что данные приняты или повторены.некоторые из sdks пытаются повторить попытку, некоторые - нет.

  7. ваше приложение может завершить работу / аварийно завершить работу между вызовом на track и фактическим подключением к пониманию приложения создано / завершено.

  8. другие случайные проблемы, проблемы с обслуживанием, время простоя других зависимых служб и т. Д., На которые приходится 0,1% недостающих данных.Я не уверен, что есть какая-либо служба APM / телеметрии, которая гарантирует, что она примет и обработает 100% отправленных вами событий.(100% - 99,9% - это не 0,01%, это 0,1%. Там разница в 10 раз.)

0 голосов
/ 10 декабря 2018

Я поднял эту проблему до команды app insights.Если есть какие-либо отзывы, я обновлю вас.

Согласно моему пониманию, в течение другого 0,01% времени вне SLA, если есть некоторое время простоя, данные будут потеряны.В любом другом случае он будет опубликован после 2 часов.

Надеюсь, это поможет.

...