問題タブ [etw]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - C++ を使用してイベント ビューアーでカスタム ログを作成する
イベント ビューアーでカスタム ログを作成できるようにしたい (つまり、Windows イベント ビューアーの [アプリケーションとサービス ログ] の下にカスタム ノードを作成する)
EventLog.CreateEventSource メソッドを使用すれば、これは簡単な作業です。LINK問題は、このメソッドがアンマネージ コードでしか使用できないことです。
Managed C++ コードでこれを行う方法があるかどうか疑問に思っています。
現在、ログにマニフェスト ベースの ETW を使用しています。プロバイダーのマニフェストに設定できる場所はありますか?
乾杯、レザ++
biztalk - BizTalk インストルメンテーションと ETW イベント ペイロード
BizTalk インストルメンテーションのベスト プラクティスを使用して、既に利用可能な BizTalk コンポーネント ETW プロバイダーにカスタム トレースを追加しています。また、BizTalk CAT Instrumentation Framework Controllerを使用して ETW トレースを管理し、それらを ETL バイナリ ファイルに記録します。トレースが生成されると、フレームワークで提供される「Default.tmf」イベント定義ファイルと一緒に「tracefmt.exe」ツールを使用して、次のようなログを含む単純なテキスト ファイルを生成できます。
これはすべて非常に便利ですが、ETW イベントに実際に格納される情報量は限られているようです。したがって、ログとフレームワークの使いやすさをさらに高めるために、いくつか質問があります。
- ログと生成されたテキスト ファイルには、(1) タイムスタンプと (2) メッセージのテキストが含まれます。ログに記録された ETW イベントで実際に利用できる情報は他にありますか? たとえば、イベント レベルの整数 (Info、Warning、Error など) は実際に ETL に記録されているのでしょうか、それともメッセージだけでしょうか?
- 前の質問の補足として、ETW イベントで ETL 内の追加情報ストアを公開する、より完全な "TMF" ファイルはありますか?
- フレームワークを介して ETW に記録されたイベントに、ActivityId などの情報を追加することはできますか?
どうもありがとう!
asp.net - ASP.NET / IIS ContextId にアクセスする方法
特定の ASP.NET 要求に対して、この "ContextId" がイベント ログに記録されるのを何度も見てきました。私は最近、ASP.NET によってプッシュされる ETW イベントの調査を開始しました。この ContextID を、起動する自分のイベントで再利用したいと考えています。
これどうやってするの?
System.Threading.Thread.CurrentContext にはないようです。常に 0 です。
workflow-foundation - WF に ETWTrackingParticipant を使用している場合、Win2k3 の「アプリケーションとサービス ログ」はどこにありますか?
Win2k3 サーバーでホストされている WF 4 で使用する場合、ETW ( Event Tracing for Windows ) データをどのように表示しますか? ETWTrackingParticipant
Windows 7 または Server 2k8 の場合は、Event Viewer->Application and Services Logs->Microsoft->Windows->Application-Server Applications->Analytic の下にあります。Windows 2003 Server で実行されているこの追跡データを確認する方法はありますか?
etw - イベント ビューアーで名前ではなく番号として表示されるカスタム ETW イベントのタスク カテゴリ
ETW を使用してアプリケーションにログを実装しています。
- ecmangen.exe を使用して、一連のカスタム イベント、テンプレート、タスク、およびキーワードを含むマニフェストを作成しました。
- mc.exe を使用して、コードで使用する対応する C# クラスをコンパイルおよび生成しました。
- この生成されたクラスをコードで使用して、イベントを発行しました。
- wevtutil を介してマニフェストをインポートし、イベント トレース セッション (Win2K8R2 - パフォーマンス - データ コレクター セット) を介してイベントをキャプチャしました。
生成されたトレース ファイルをイベント ビューアで開くと、予期していたイベントが表示されます。しかし、カスタム タスク カテゴリとキーワードが、名前ではなく数値形式で表示されていることがわかりました。
これらの値を変換する必要がありますか? それとも、これについて間違った方法で行っていますか?
.net - .NET トレース: "デフォルト" リスナーとは?
.NET ユーザーのトレースのすべての例では、" Default
" リスナーを削除します。
デフォルトのリスナーとは何ですか? また、デフォルトで存在するのはなぜですか?
Microsoftの担当者が、さまざまなリスナーでオーバーヘッドのベンチマークを行いました。
トレース リスナとは何Default
ですか?なぜそんなに遅いのですか? ですかOutputDebugString
?ファイルへの書き込みよりも2 桁OutputDebugString
遅いですか?
TraceListener
を使用するだけの .NET はありますOutputDebugString
か?
デフォルトのトレース リスナとは何ですか?なぜそんなに遅いのですか?なぜ慣習的に削除されるのですか?それが非常に悪い場合、なぜそれがデフォルトなのですか?
windows - Windows Resource MonitorはどのAPIを使用しますか?
Windows Resource Monitorは、(とりわけ)ディスク上のどのファイルがどのプロセスによって現在アクセスされているかを表示します。そして、それはリアルタイムで行われます。どのように?
おそらくETWを使用しており、xperfなどのツールを使用してトレースを生成できることを知っています。しかし、トレースファイルを開始、停止、解析せずにリアルタイムの情報を取得するにはどうすればよいでしょうか。
プログラムで、つまりC#またはC++からデータにアクセスする必要があります。
c++ - スタック ウォーキング パフォーマンスの最適化
現在、dbghelpライブラリを使用して、( GetThreadContext()およびStackWalk64( )を使用して) プロセスのスレッドのスタックをウォークスルーし、各フレームに含まれる戻りアドレスのみを収集します。
ただし、そのオーバーヘッドはシステムの要求に対して大きすぎます。全体の時間は apx です。スタック ウォークごとに 5 ミリ秒 (10 ~ 15 フレーム)。この時間には、GetThreadContext() と、StackWalk64() を呼び出してすべてのフレームを取得するループが含まれます。
とにかく、もっと速くする方法を見つけなければなりません。誰でもどうすればそれができるか考えていますか?
編集:
ETW (Event Tracing for Windows) メカニズムを知っている人はいますか?
その場合、特定の期間に発生したすべてのコンテキスト スイッチを追跡するにはどうすればよいですか? 各コンテキスト スイッチでイベントを発行するイベント プロバイダーはありますか?
c# - TaskSchedulerイベントログからTaskNameを取得します
イベントビューアの[詳細]タブにある情報にアクセスしようとしています。
TaskSchedulerイベントは、System.Diagnostics.EventLogではなく、System.Diagnostics.Eventingを介して利用できることに気付きました。
これまでのところ私はこれを持っています:
しかし、返されたオブジェクトのどこにもEventDataが見つかりません。
この情報(GUIDは削除されています)、具体的には「EventData->TaskName」を見つけようとしています。
c - ETW がいつイベントをドロップしたかを検出する
ETW セッションがイベントをドロップしているかどうかを確認するにはどうすればよいですか?
イベントがドロップされている場合、イベントがドロップされないようにトレース セッションを構成するにはどうすればよいですか?
いくつかのデバッグ作業を支援するカスタム ETW プロバイダーを作成しました。現在、logman.exe を使用してトレース データをキャプチャしています。
結果を表示すると、一部のイベントがドロップされているように見えます。基本的に私は次のようなものを探しています:
イベント A イベント C
これらは介在するイベント B である必要がありますが、トレース ファイルには表示されません。それが起こることは不可能であるべきです.ETWがイベントを落としていると私は信じています.
もちろん、発生している問題がイベントのドロップによるものであり、コードのバグによるものではないことを確認したいと思います。Google を試してみましたが、何も思いつきませんでした。イベントがドロップされているかどうかを確認する方法を知っている人はいますか?