Live Debuggerを開発したRookout社は、本番環境のログに隠された豊富な情報にアクセスしやすくすることを目的としてLive Loggerを立ち上げた。アプリケーションのログレベル、ログパイプライン、ログスループットの追跡、テキストおよびコンテキストベースのフィルタリングを動的に切り替える機能を提供することで、この実現を目指している。
RookoutのLive Loggerは、Live Debuggerを補完することを目的としている。Live Loggerにより、開発者はコードにすでに存在するログラインを有効化できると共に、Live Debuggerによって存在していなかったログラインを追加できる。
その視覚的なデザインは、すでにある他の「live tail」ツールと同じアプローチに倣っている。上部にフィルターボックスがあり、左側にオプションを選択できる。この新しい点は、アプリケーションを再起動することなく、実行時にさまざまなログラインまたはレベルを動的に有効にすることである。おそらく、Rookout SDKはバイトコード操作によってこれを実現している。これにより、実際には新しいログラインが追加されて出力される。より広く適用できるように、Log4j、Logback、Winstonなどの一般的なロギングライブラリとの統合を提供している。このコア機能により、ソフトウェアエンジニアはリアルタイムデータを収集できるようになる。現在、SDKはJVM、.Net、Python、Node.js、Rubyをサポートしている。
Live Loggerの機能は、開発者が本番環境の潜在的な問題を調査できるように適切な情報を提供することに重点を置いている。この実現するために、次の機能を実装した。
- 動的ログの冗長性:アプリケーションを再デプロイしたり再起動したりすることなく、動的な方法でログレベルを切り替えられる。必要な期間、ログレベルを望む詳細レベルINFO、DEBUG、またはTRACEに切り替えることができる。
- テキストおよびコンテキストベースのフィルタリング:最近のアプリケーションの複雑さを考えると、適切な情報を得るためにすべての情報を細かく調べるのは面倒です。可能であれば、短い文字列を入力して、必要な情報を得たい。Live Loggerで必要な情報を含むログラインを出力する場合でも、より高度なアプローチが必要になる場合がある。特定のユーザ、アカウント、サービス、その他のトランザクション関連情報の実行中にプリントされるログラインのみを切り替える。Live Loggerは、OpenTracing標準とOpenTelemetry標準を実装したツールと統合されており、必要なコンテキストを抽出する。
- ログスループットの追跡:サービスを運用するために適切な量のリソースを確保する必要がある運用と、必要な情報にアクセスする必要がある開発者の両方のニーズを満たすために、Live LoggerはI/Oリソースの概要を提供する。このリソースは、ログラインをログストレージプロバイダーに送信するために消費される。
- ログのパイプライン化:フィルタリングによって利用可能な適切な情報を取得したら、それを可観測性のためのパイプラインにプッシュする。Rookoutのターゲットは、最も広く利用されているログ管理ツールとAPMツールだ。
要約すると、Live Loggerでは、本番環境でのデバッグ用にRookoutツールスイートに新しい機能が追加されている。これを非表示になっているログラインを有効にする手段を設定によって提供することにより実現している。「live tail」のようなツールに期待されるUIビジュアルデザインに合わせることで、DataDog、SumoLogic、Splunkなどの既存のツールに馴染みのある開発者がすぐに適応できる。最も人気のあるロギングライブラリおよびApplicationPerformance Monitoring(APM)ツールと統合することにより、ユーザは複数のソースからのデータをフィルタリングしたり使用したりでき、それを共有して最も普及しているコンシューマーに繋げることができる。