.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
しかし、それは何も影響しませんでした。