使用 EventFlow 监控本地机器上的 ETW 事件
Using EventFlow to monitor ETW event on local machine
我正在尝试设置一个简单的 ETW 和 EventFlow 示例,以允许监视特定的 ETW 提供程序。在这种情况下,服务控制管理器 ETW 提供程序将监视何时发出服务启动和停止消息。
我有以下用于跟踪和 ETW 的输入配置。
"inputs": [
{
"type": "Trace",
"traceLevel": "Warning"
},
{
"type": "ETW",
"providers": [
{
"providerName": "Service Control Manager"
}
]
}]
我有以下代码正在使用 EventFlow 启动监视。
static void Main(string[] args)
{
using (var pipeline = DiagnosticPipelineFactory.CreatePipeline("eventFlowConfig.json"))
{
System.Diagnostics.Trace.TraceWarning("EventFlow is working!");
Console.ReadLine();
}
}
跟踪事件出现在控制台中,但是当我启动和停止服务时没有出现 ETW 事件。
EventFlow 是为本地机器上的这种场景设计的吗?如果是这样,我的配置或代码中缺少什么?
控制台进程是 运行 管理员,该帐户可以访问性能日志用户和性能日志监视器组
如果您想从服务控制管理器侦听 ETW 事件,您将需要侦听名为 Microsoft-Windows-Services 的提供程序。
这是我 eventFlowConfig.json
中的内容
{
"inputs": [
{
"type": "ETW",
"providers": [
{ "providerName": "Microsoft-Windows-Services" }
]
}
],
"filters": [],
"outputs": [
{ "type": "StdOutput" }
],
"schemaVersion": "2016-08-11",
"extensions": []
}
为了检查它是否有效,我停止并启动了 SQL 服务器服务。事件按预期在控制台中输出。
作为额外的完整性检查,您可以使用 Visual Studio Diagnostic Events 查看器来侦听 ETW 事件。启动查看器,单击齿轮进行配置,在 ETW 提供者列表中添加提供者名称,然后应用。您现在应该能够在查看器和控制台应用程序中看到相同的事件。
我正在尝试设置一个简单的 ETW 和 EventFlow 示例,以允许监视特定的 ETW 提供程序。在这种情况下,服务控制管理器 ETW 提供程序将监视何时发出服务启动和停止消息。
我有以下用于跟踪和 ETW 的输入配置。
"inputs": [
{
"type": "Trace",
"traceLevel": "Warning"
},
{
"type": "ETW",
"providers": [
{
"providerName": "Service Control Manager"
}
]
}]
我有以下代码正在使用 EventFlow 启动监视。
static void Main(string[] args)
{
using (var pipeline = DiagnosticPipelineFactory.CreatePipeline("eventFlowConfig.json"))
{
System.Diagnostics.Trace.TraceWarning("EventFlow is working!");
Console.ReadLine();
}
}
跟踪事件出现在控制台中,但是当我启动和停止服务时没有出现 ETW 事件。
EventFlow 是为本地机器上的这种场景设计的吗?如果是这样,我的配置或代码中缺少什么?
控制台进程是 运行 管理员,该帐户可以访问性能日志用户和性能日志监视器组
如果您想从服务控制管理器侦听 ETW 事件,您将需要侦听名为 Microsoft-Windows-Services 的提供程序。
这是我 eventFlowConfig.json
中的内容{
"inputs": [
{
"type": "ETW",
"providers": [
{ "providerName": "Microsoft-Windows-Services" }
]
}
],
"filters": [],
"outputs": [
{ "type": "StdOutput" }
],
"schemaVersion": "2016-08-11",
"extensions": []
}
为了检查它是否有效,我停止并启动了 SQL 服务器服务。事件按预期在控制台中输出。
作为额外的完整性检查,您可以使用 Visual Studio Diagnostic Events 查看器来侦听 ETW 事件。启动查看器,单击齿轮进行配置,在 ETW 提供者列表中添加提供者名称,然后应用。您现在应该能够在查看器和控制台应用程序中看到相同的事件。