Зачем собирать зависимости, если вы собираетесь пробовать их в продакшене?

Application Insights может собирать зависимости как часть аналитики журналов, и в последнее время эта функция включена по умолчанию. Конечно, иметь информацию о зависимостях невероятно, когда вы пытаетесь улучшить производительность, но как ее использовать, когда включена выборка и скорость передачи данных намного больше, чем частота выборки?

Чтобы привести пример, MaxTelemetryItemsPerSecond в документации 5 в их примере. Если он включен на производстве, сумма (itemCount) для моих запросов составляет около 400, а для зависимостей - около 5000-6000. Независимо от цены, я хотел иметь как можно больше информации, поэтому я попытался увеличить лимит и столкнулся с проблемой производительности примерно на 600. Поэтому мне пришлось расставить приоритеты для моих событий, исключений и запросов над зависимостями, поэтому будет ограничение в 100 строк для максимальных зависимостей выборки, что означает, что каждая строка в моих данных выборки будет представлять 50 зависимостей, и я нахожусь на пределе производительности. Если я выберу ограничение в 10 строк для зависимостей, каждая строка будет представлять 500 элементов.

Мой вопрос в том, какая польза от данных, отобранных с частотой 1:500? В чем выигрыш? Как это может быть даже полезно?


person Ashkan Sirous    schedule 02.07.2019    source источник


Ответы (1)


Выборка делается для снижения стоимости телеметрии. (финансовые затраты + затраты на производительность) Даже при выборке встроенная выборка сохраняет или отбрасывает связанные события. т. е. если RequestTelemetry сохраняется путем выборки, то сохраняется вся DependencyTelemetry в контексте этого запроса. Это даст вам достаточно для более тщательного изучения запросов и того, как зависимости влияют на общую производительность запроса.

Вы также можете внимательно изучить все собранные зависимости и отфильтровать некоторые из них, если считаете, что они не очень полезны. Например, некоторые люди могут отказаться от всех очень быстрых зависимостей.

Доступ к необработанным запросам/зависимостям больше всего необходим при сбоях — вы можете написать обработчик телеметрии для сохранения всех сбойных зависимостей. Это будет означать, что у вас будет больше данных для исследования сбоев, в то время как остальная часть телеметрии по-прежнему будет сэмплироваться.

person cijothomas    schedule 03.07.2019