2

.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 でトレースログを開き、イベントを確認します。 dotnet-trace で収集されたイベント

ご覧のとおり、すべてのイベントにはスタックが含まれています。私のシナリオではまったく役に立ちませんが、追加のオーバーヘッドが発生します。スタック コレクションを無効にするにはどうすればよいですか?

別の質問: Microsoft-Diagnostics-DiagnosticSource プロバイダーのスタックを無効にすることは可能ですか? PerfView ログで次のような内容を見ました。

Enabling Provider:Microsoft-Diagnostics-DiagnosticSource Level:Informational Keywords:0xfffffffffffff7ff Stacks:1 Values:...blabla...

そして、「スタック」キーと値のペアでコレクションを実行しようとしました:

Microsoft-Diagnostics-DiagnosticSource:0xfffffffffffff7ff:4:Stacks=0

しかし、それは何も影響しませんでした。

4

0 に答える 0