#asp.net-core #azure-application-insights
#asp.net-core #azure-application-insights
Вопрос:
Есть ли способ УСТАНОВИТЬ / сообщить OperationId, который будет сопоставлен с Application Insights из интерфейса? возможно, я могу отправить желаемый OperationId в специальном заголовке или что-то в серверной части?
Комментарии:
1. Какова серверная платформа вашего приложения? Application Insights поддерживает отслеживание идентификатора операции из заголовка корреляции в заголовке http. Обратитесь к этому learn.microsoft.com/en-us/azure/azure-monitor/app/correlation
2. Конкретный подробный ответ зависит от используемой вами серверной платформы (Java / Python / Node / asp.net core и т.д.). Ссылка, которой я поделился выше, сначала рассказывает о концепции, а затем содержит примеры почти для всех поддерживаемых платформ.
3. @KrishnenduGhosh-MSFT сегодня у нас есть asp.net ядро 3.1 в качестве нашего бэкэнда
4. @KrishnenduGhosh-MSFT Итак, если мой интерфейс установит для
traceparent
заголовка значение «12345», operation_id в телеметрии app insights также будет «12345»?5. да, опубликовано в качестве ответа. Спасибо.
Ответ №1:
Application Insights поддерживает стандарт W3C distributed tracing в качестве первоклассного гражданина. Если в http-запросе присутствуют приведенные ниже заголовки, SDK автоматически позаботится о настройке идентификатора операции во всем контексте.
- traceparent: содержит глобально уникальный идентификатор операции и уникальный идентификатор вызова.
- tracestate (необязательно, на всякий случай, если вам нужно): переносит системный контекст трассировки.
Поскольку вы упомянули, что ваш серверный сервер является asp.net ядро, начиная с Microsoft.ApplicationInsights.AspNetCore nuget версии 2.8.0, настройка не требуется. Для получения более подробной информации см. https://learn.microsoft.com/en-us/azure/azure-monitor/app/correlation#enable-w3c-distributed-tracing-support-for-aspnet-core-apps