Для Request-Id
он однозначно идентифицирует каждый HTTP-запрос, участвующий в обработке операции, и генерируется на стороне вызывающей стороны и передается вызываемой стороне.
Для X-Correlation-ID
, также известного как Transit ID, является уникальным значением идентификатора, которое прикрепляется к запросам и сообщениям, которые позволяют ссылаться на определенную транзакцию или цепочку событий.
Для каждого запроса вы должны использовать Request-Id
, для транзакции запроса вы должны использовать X-Correlation-ID
.
Если я не использую Активность, мне не нужно отправлять этот заголовок, верно?
Обычно для идентификатора корреляции вам не нужно его использовать. Но если вы разрабатываете распределенную систему, которая включает в себя очереди сообщений и асинхронную обработку, вам стоит включить в свои сообщения идентификатор корреляции.
Я считаю Activity.Current всегда нулевым. Нужно ли его включать и влияет ли это на производительность?
Для использования Activity.Current
необходимо иметь возможность ApplicationInsights
или реализовать собственную функцию управления деятельностью.
- Установить
Microsoft.ApplicationInsights.AspNetCore
- Настроить
WebHost.CreateDefaultBuilder(args).UseStartup<Startup>().UseApplicationInsights()
- Используйте как
var activity = Activity.Current;