При конфигурации по умолчанию Application Insights примет решение либо выполнить выборку, либо нет в начале запроса, а затем, соответственно, либо соберет все, либо отбросит все.Этот подход предоставляет некоторые гарантии, например, если вы просматриваете какую-либо транзакцию, то видите ее полностью, включая некоторые нижестоящие компоненты.
Вы правы, что при таком подходе возможно пропустить некоторые ошибки.Наш опыт показывает, что даже для крупномасштабных приложений (5000 RPS / экземпляр) такой подход по-прежнему фиксирует ошибки, если они продолжают возникать.
Есть две вещи, которые можно смягчить:
Собрать все исключения (по-прежнему не будет собирать ошибочные запросы).Для этого вы можете изменить следующий раздел адаптивной выборки из этого:
<Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
<MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
<ExcludedTypes>Event</ExcludedTypes>
</Add>
<Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
<MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
<IncludedTypes>Event</IncludedTypes>
</Add>
Кому:
<Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
<MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
<ExcludedTypes>Event,Exception</ExcludedTypes>
</Add>
<Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
<MaxTelemetryItemsPerSecond>100</MaxTelemetryItemsPerSecond>
<IncludedTypes>Exception</IncludedTypes>
</Add>
<Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
<MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
<IncludedTypes>Event</IncludedTypes>
</Add>
Обратите внимание, Application Insights не обязательно будет собирать неудавшиеся запросы.
Можно написать собственный процессор сэмплирования (
TelemetryProcessor ).Например, собирать ошибочные запросы, зависимости, исключения, а в остальном применять собственную логику выборки.