#.net #elasticsearch #nlog #elastic-common-schema
#.net #elasticsearch #nlog #elastic-common-schema
Вопрос:
Я работаю с приложением .NET framework, и для журналов я использую NLog, регистрируя их в цели ElasticSearch с использованием макета ECS (эластичная общая схема). пример:
Одним из параметров, которые я регистрирую, является ActivityId:
Это хорошо объяснено в этой статье.
Поскольку я использую макет журнала Nlog, который пытается реализовать ECS 1.5, мне интересно, знает ли кто-нибудь, какому свойству соответствует ActivityId? Я думаю, это event.id
может иметь смысл.
Ответ №1:
Я думаю event.id
, это больше похоже на Windows EventLog-EventID, который остается статическим независимо от контекста. Где ActivityId уникален для каждого запроса.
Не уверен, где вы нашли макет NLog xsi:type="ElasticSearch"
. Но при взгляде на EcsLayout здесь:
https://github.com/elastic/ecs-dotnet/tree/master/src/Elastic.CommonSchema .NLog
Затем эти значения сопоставляются:
- Транзакция.Id = идентификатор для всей транзакции. Пример.
${ElasticApmTransactionId}
- Трассировка.Id = CorrelationId для текущего запроса. Например.
${ElasticApmTraceId}
- Диапазон.Id = ActivityId для операции в запросе.
Смотрите также: https://www.elastic.co/guide/en/ecs/current/ecs-tracing.html
Я предполагаю, что поле для выбора зависит от того, какое значение вы решили сохранить Trace.CorrelationManager.ActivityId
.
В «новом» мире Microsoft теперь продает System.Диагностика.Активность.Текущий. Смотрите также: https://github.com/NLog/NLog .DiagnosticSource