LINQ to Logs and Traces (Tx)
もう一つの取り組みは、Georgi ChkodrovがStreamInsightの上に構築したトレースの一時的な処理のための技術であるTraceInsightの後継として、LINQ to Logs and Tracesに取り組んだことです。Rxの軽量性(StreamInsightと比較して)と、一時的なイベント処理のためのシンプルなプログラミングモデルに惹かれ、Rxの上にログとトレースの処理フレームワークを構築するためにGeorgiがチームに加わりました。
Another effort was Georgi Chkodrov’s work on LINQ to Logs and Traces as a successor to TraceInsight, a technology he built on top of StreamInsight for temporal processing of traces. The lightweight nature of Rx (compared to StreamInsight) and the simpler programming model for temporal event processing attracted Georgi to the team in order to build a log and trace processing framework on top of Rx.
LINQ to Logs and Traces (Tx) には、様々なソースからのログやトレースを消費するための様々な入力アダプタがあります。これには、Event Tracing for Windows (ETW)、Windows Event Logs (.evtx files)、Windows Performance Counters、IIS W3C Logs、SQL Server XEvents などが含まれています。これらのアダプタは、イベントをリアルタイムで受信したり、永続化されたログからイベントを再生したりすることをサポートし、それらをIObservable<T>シーケンスとして公開します。Txのクエリは,Rxでおなじみのクエリ演算子を使って表現されます。Txクエリへのすべての観測可能な入力シーケンスは、受信したイベントのタイムスタンプを使用して履歴マージソートを行うことにより、共通のタイムラインにマージされます。保存されたログからの履歴データの再生は、Rxがサポートする仮想時間スケジューリングによって行われます。
LINQ to Logs and Traces (Tx) has various input adapters to consumes logs and traces from a variety of sources, including Event Tracing for Windows (ETW), Windows Event Logs (.evtx files), Windows Performance Counters, IIS W3C Logs, SQL Server XEvents, and many more. These adapters support receiving events in real time and/or replaying events from persisted logs, exposing them as IObservable<T> sequences. Tx queries are expressed using the familiar query operators in Rx. All of the observable input sequences to a Tx query are merged onto a common timeline by using the timestamps on the received events to perform a historical merge sort. Replay of historical data from persisted logs is driven by Rx’s support for virtual time scheduling.
Tx は、リアルタイムイベントに対しても、永続的なトレースファイルやログファイルからのヒストリカ ルイベントの再生に対しても、同じリアクティブクエリ式を使用できるため、システムおよびサービスモニタリ ングの開発ライフサイクルを充実させることができます。まず、ヒストリカルトレースを使用して、受信したさまざまなシステムイベントからサービス問題を予測できるリアクティブクエリを試作します。つまり、問題が発生する前に発生したイベントから問題を検出しようとするリアクティブクエリの候補を構築します。次に、この候補クエリを様々な問題の発生に対してアサートし、その予測力を主張したり、改良したりします。最後に、このクエリは、ロジックを変更することなく、オンラインサービスにデプロイされ、リアルタイムでイベントを処理します。
Because the same reactive query expression can be used against real-time events and the replay of historical events from persisted trace or log files, Tx enables a great system and service monitoring development lifecycle. First, one uses historical traces to prototype reactive queries that can predict serviceissuesfromthevarioussystemeventsreceived. Effectively, acandidatereactivequeryisbuiltto attempt detecting issues from the events that occur before such an issue appears. Next, this candidate query can be asserted against various occurrences of issues to assert its predictive power or to refine it. Finally, this query is deployed - without requiring any changes to its logic - to the online service where it operates on real-time events.
LINQ to Logs and Traces(Tx)は最終的にGitHubに出荷され、積極的にメンテナンスされています。現在、Txは社内の様々な場所で、データセンター規模でのシステムやサービスの監視に使用されています。
LINQ to Logs and Traces(Tx) was eventually shipped to GitHub where it’s actively maintained. Today, Tx is used in various places across the company for system and service monitoring at data center scale.