Как отключить стеки для событий EventSource?
Использование.Net Core 3.1
Я реализовал свой источник событий следующим образом:
[EventSource(Name = "RequestStatistics-Events")]
public sealed class RequestEventsProvider : EventSource
{
public RequestEventsProvider() : base(throwOnEventWriteErrors: false)
{
}
[Event(1, Level = EventLevel.Informational, Opcode = EventOpcode.Info)]
public void RequestProcessed(string requestPath, int responseCode, long processingTime)
{
WriteEvent(1, requestPath, responseCode, processingTime);
}
}
Затем я собираю трассировку с помощью dotnet-trace вот так:
dotnet-trace collect --providers RequestStatistics-Events -p 23544
Затем открываю трассировку в PerfView и вижу свои события:
Как видите, каждое событие содержит стек. Это создает дополнительные накладные расходы, хотя в моем сценарии это абсолютно бесполезно. Как отключить сбор стека?
Другой вопрос: можно ли отключить стеки для поставщика Microsoft-Diagnostics-DiagnosticSource? В журналах PerfView я видел что-то подобное:
Enabling Provider:Microsoft-Diagnostics-DiagnosticSource Level:Informational Keywords:0xfffffffffffff7ff Stacks:1 Values:...blabla...
и я пытался запустить сбор с парой ключ-значение "стеки":
Microsoft-Diagnostics-DiagnosticSource:0xfffffffffffff7ff:4:Stacks=0
но это ни на что не повлияло.