微软发布TX(LINQ To Logs And Traces)

时间:2022-09-29 05:03:48

微软开源技术公司于发布Tx,这是一个Apache 2协议的开源项目,可以使用日志/跟踪文件辅助调试,以及创建实时监控和告警系统。

下面是几个引人关注的功能——

  • 允许在原始事件源上使用LINQ
  • 允许在真实事件源上使用“反应式扩展框架(Reactive Extensions)”,而且支持事件序列的多路复用(单个包含不同类型事件的序列,其中事件的顺序为其发生顺序)。
  • 可以提供跨多个事件源的单一查询,而且用于实时查询和过去历史查询的API相同。
  • 可以在历史日志和跟踪文件的一次读中执行多个查询——例如:统计所有的“警告”数、匹配“开始”和“结束”事件,以及计算每个活动的平均时长。

开发人员可以将LINQPad用于一次性分析,也可以用于构建监控用的.NET应用程序。在LINQPad中,Tx给人一种所有的事件都在数据库中的感觉。

该版本提供了四个不同的NuGet包:

  • Tx.Core——不针对特定跟踪格式的通用组件
  • Tx.Windows——支持Windows上的事件跟踪:事件日志、文件中的性能计数器和实时计数器API、W3C格式的IIS Text日志
  • Tx.SqlServer——SQL Server扩展事件
  • Tx.All——包含上述所有内容的套件

请注意,微软也给出了什么时候不要用Tx的建议——

  • 当不存在实时订阅而且数据已经存在于内存中或者单个容易解析的文件中时,指南建议使用LINQ-To-Objects代替Tx。
  • 当存在实时订阅,但每个订阅/文件只包含一种事件类型,只需要使用反应式扩展框架即可。

在微软内部,WCF和服务总线团队已经用了这个工具。现在,微软把它开源给所有的.NET开发人员,以便他们在自己的项目中使用它。读者可以看一下入门文档

 

My first impression on Tx (LINQ to Logs and Traces)

SkyLog: My first end-to-end example on programming by composition