问题标签 [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.

0 投票
0 回答
1070 浏览

c++ - 使用 C++ 在事件查看器中创建自定义日志

我希望能够在事件查看器中创建自定义日志(即在 Windows 事件查看器的“应用程序和服务日志”下创建自定义节点)

如果您使用 EventLog.CreateEventSource 方法,这是一项简单的任务:LINK它的问题是该方法仅在非托管代码中可用。

我想知道是否有任何方法可以在我的托管 C++ 代码中执行此操作。

我目前正在使用基于清单的 ETW 进行日志记录。提供者的清单中是否有我可以设置的地方?

干杯,雷扎++

0 投票
1 回答
659 浏览

biztalk - BizTalk 检测和 ETW 事件有效负载

我正在使用BizTalk Instrumentation Best Practices将自定义跟踪添加到已经可用的 BizTalk 组件 ETW 提供程序。我还使用BizTalk CAT Instrumentation Framework Controller来管理我的 ETW 跟踪并将它们记录到 ETL 二进制文件中。生成跟踪后,“tracefmt.exe”工具与框架提供的“Default.tmf”事件定义文件一起帮助生成包含日志的简单文本文件,例如:

这一切都非常有用,但似乎实际存储在 ETW 事件中的信息量是有限的。因此,我有几个问题要进一步推动日志和框架的可用性:

  1. 日志和生成的文本文件包含 (1) 时间戳和 (2) 消息文本。记录的 ETW 事件中是否有实际可用的更多信息?例如,事件级别整数(信息、警告、错误等)实际上是记录在 ETL 中还是只是消息?
  2. 为了跟进上一个问题,是否有更完整的“TMF”文件可以将 ETL 中的额外信息存储与 ETW 事件一起公开?
  3. 是否可以将 ActivityId 等信息添加到通过框架记录到 ETW 的事件中?

非常感谢!

0 投票
2 回答
677 浏览

asp.net - 如何访问 ASP.NET / IIS ContextId

对于给定的 ASP.NET 请求,我在事件日志中看到了太多次“ContextId”。我最近开始研究由 ASP.NET 推出的 ETW 事件,并希望在我自己触发的事件中重新使用此 ContextID。

我怎样才能做到这一点?

System.Threading.Thread.CurrentContext 似乎没有。它始终为 0。

0 投票
1 回答
368 浏览

workflow-foundation - 将 ETWTrackingParticipant 用于 WF 时,Win2k3 上的“应用程序和服务日志”在哪里?

在 Win2k3 服务器上托管的 WF 4 中使用时,如何查看 ETW(Windows 事件跟踪)数据?ETWTrackingParticipant对于 Windows 7 或 Server 2k8,您可以在Event Viewer->Application and Services Logs->Microsoft->Windows->Application-Server Applications->Analytic下找到它。有什么方法可以查看在 Windows 2003 Server 上运行的跟踪数据?

0 投票
0 回答
581 浏览

etw - 自定义 ETW 事件的任务类别在事件查看器中显示为数字而不是名称

我正在使用 ETW 在我们的应用程序中实现日志记录。

  • 我使用 ecmangen.exe 创建带有一组自定义事件、模板、任务和关键字的清单。
  • 我使用 mc.exe 编译并生成了相应的 C# 类以在我的代码中使用。
  • 我在我们的代码中使用了这个生成的类来发出事件。
  • 我通过 wevtutil 导入清单并通过事件跟踪会话捕获事件(Win2K8R2 - 性能 - 数据收集器集)

当我通过事件查看器打开生成的跟踪文件时,我看到了我期待的事件。但我发现自定义任务类别和关键字以数字形式显示,而不是名称。

是否应该翻译这些值?还是我以错误的方式解决这个问题?

0 投票
2 回答
5946 浏览

.net - .NET 跟踪:什么是“默认”侦听器?

.NET 中的每个跟踪示例都删除了“ Default”侦听器:

什么是默认侦听器,为什么默认存在?

一个微软的人用不同的听众对开销进行了基准测试

什么是Default跟踪侦听器,为什么这么慢?是OutputDebugString吗?真的比写入文件慢两个数量级OutputDebugString吗?

是否TraceListener只使用.NET 的 .NET OutputDebugString

什么是默认跟踪侦听器,为什么这么慢,为什么习惯性地删除它,如果它那么糟糕,为什么它是默认的?

0 投票
1 回答
2939 浏览

windows - Windows 资源监视器使用哪个 API?

Windows 资源监视器显示(除其他外)磁盘上的哪些文件当前由哪些进程访问。它是实时的。如何?

我知道它可能使用 ETW,并且我可以使用 xperf 等工具生成跟踪。但是如何在无需启动、停止和解析跟踪文件的情况下获取实时信息呢?

我需要以编程方式访问数据,即来自 C# 或 C++。

0 投票
3 回答
1554 浏览

c++ - 优化 Stack-Walking 性能

目前我使用dbghelp库遍历某个进程线程的堆栈(使用GetThreadContext()StackWalk64())并仅收集每个帧包含的返回地址。

但是,这样做的开销对于系统需求来说太大了 - 总时间是 apx。每次堆栈步行 5 毫秒(10-15 帧)。这次包括 GetThreadContext() 和调用 StackWalk64() 以获取所有帧的循环。

无论如何,我必须找到一种更快的方法。任何人都知道我该怎么做?


编辑:

有人知道 ETW(Windows 事件跟踪)机制吗?

如果是这样,我如何跟踪在某个时间段内发生的所有上下文切换?是否有一个事件提供者在每个上下文切换上发布一个事件?

0 投票
1 回答
2156 浏览

c# - 从 TaskScheduler 事件日志中获取 TaskName

我正在尝试访问事件查看器中“详细信息”选项卡中的可用信息。

我已经意识到 TaskScheduler 事件不能通过 System.Diagnostics.EventLog 获得,而是通过 System.Diagnostics.Eventing 获得。

到目前为止,我有这个:

但是我在返回的对象中的任何地方都找不到 EventData。

我正在尝试查找此信息(已删除 Guid),特别是“EventData->TaskName”:

0 投票
3 回答
1606 浏览

c - 检测 ETW 何时丢弃事件

如何确定 ETW 会话是否正在丢弃事件?

如果它正在丢弃事件,我如何配置跟踪会话以便不丢弃事件?

我编写了一个自定义 ETW 提供程序来帮助进行一些调试工作。我目前正在使用 logman.exe 捕获跟踪数据。

在查看结果时,似乎某些事件正在被丢弃。基本上我正在寻找类似的东西:

事件 A 事件 C

其中它们应该是一个干预事件 B,但没有出现在跟踪文件中。这应该是不可能发生的,这让我相信 ETW 正在丢弃事件。

当然,我想验证我看到的问题是由于事件丢失,而不是由我的代码中的错误引起的。我试过谷歌,但什么都想不出来。有谁知道我如何检查事件是否被丢弃?