微软开源技术公司于近日发布了 Tx ,这是一个开源项目,可以使用日志 / 跟踪文件辅助调试,以及创建实时监控和告警系统。
下面是几个引人关注的功能——
- 允许在原始事件源上使用 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 开发人员,以便他们在自己的项目中使用它。读者可以看一下入门文档。
查看英文原文:**** LINQ To Logs And Traces
评论