Что эквивалентно ссылке на поля ECS для Trace.CorrelationManager.ActivityId?

#.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