Как отключить стеки для событий 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

но это ни на что не повлияло.

0 ответов

Другие вопросы по тегам