[Root Cause as a Service | Zebrium](https://www.zebrium.com/blog/root-cause-as-a-service-zebrium)
[[Zebrium]] は、ソフトウェア問題の[[Root cause|根本原因]]を説明するパターンをログから自動的に発見するというビジョンを持って設立されました。私たちは、このビジョンを実現するために順調に進んでいます。私たちは、数十のソフトウェアスタックにわたる2,000以上のインシデントで根本原因の特定に成功し、私たちの大きな顧客の1社による調査では、95.8%の精度でこれを行うことを検証しました(参照 - [How Cisco uses Zebrium ML to Analyze Logs for Root Cause](https://www.zebrium.com/blog/how-cisco-uses-zebrium-ml-to-analyze-logs-for-root-cause) )。
今、私たちはビジョンに重要な要素を加えました。それは、「あらゆる問題源から根本原因を見つけ出し、**それを必要な場所に提供する**」というものです。つまり、[[notes/sre/SRE]]が何百ものアプリケーションからログをストリームし、[[Datadog]] を使ってそれらを監視している場合、Zebrium が見つけた根本原因は自動的に他のメトリクスチャートと並んで Datadog ダッシュボードに表示されるはずなのです。また、サポートチームが、顧客が問題にぶつかったときに、静的なログファイルの束を収集し、XYZツールでチケットを追跡すると、根本原因が自動的にXYZに表示されるはずです。私たちはこれを「Root Cause as a Service(サービスとしての根本原因)」と呼んでいます。
実際には、Root Cause as a Serviceにはいくつかの重要な属性があります。
- オープンソースのコレクター経由で直接ログをストリームしたり、既存の観測パイプラインからログをストリームしたり(例えば、ELK Stackからフォークしたストリーム)、APIを使ってログファイル/バンドルをアップロードするなど、最も便利な方法でデータを取り込むことができることです。
- 最も直感的で、ユーザーが問題を解決するのに最適な場所に根本原因を提示します。
- バグに関連するログファイルのコレクションをお持ちですか?CLI/API経由でそれらをアップロードするだけで、根本原因を説明するログイベントを要約したレポートをすぐに入手できます。
- 時系列ダッシュボードでスパイクが発生し、明らかな根本原因が見つからない場合。ログマネージャーコンソールを開いて、つらい調査を始める必要はありません。同じダッシュボード上で自動的に根本原因を見ることができます - チャートのスパイクに並んでいます。
- [[PagerDuty]]で開いたインシデントにアラートとエンジニアのメモが含まれていますか?MLで生成されたレポートが自動的にメモに追加され、問題のフィンガープリントが既知の問題と一致する場合は、Jiraチケットも増分されます。
- 他の観測可能なインシデント管理ツールからアラートまたはイベントを取得し、Zebrium の ML によって発見された根本原因の詳細でそれらを補強する簡単なメカニズムを提供します。
## The Journey
1. そログを集約するビューアを構築し、基本的なログ検索やアラート機能を追加し、これらの機能を充実させるためのロードマップを描きました。
2. しかし、市場に参入して間もなく、幅広い機能を備えたもう一つの観測可能なプラットフォームであることが、かえって障害になっていることに気づきました。
3. ほとんどのお客様は、すでにログマネージャーをお持ちでした。また、そうでない場合でも、私たちがまだ構築していない機能を常に求めていました。
4. しかし、もっと重要なのは、お客様が抱えている問題は、ログ・マネージャーが十分でないことではなく、問題の根本原因を探るのがいかに難しいかということだったのです。
5. そこで私たちは、その問題点に焦点を絞りました。それは、私たちのコアとなる[[機械学習]](ML)が、根本原因を示すログのパターンを自動的に見つけるために構築されたものと、まさに一致するものだったのです。
6. そして、観測やロギング機能への投資を止めました。
## Fitting into a user’s workflow
Zebrium の ML は、あらゆる SaaS/ソフトウェア環境からのログストリームを連続的にスキャンします(静的なログファイル/バンドルに対しても同様のことが可能です)。ML は、ログストリームに見られるすべてのログイベントを分類し、異常/エラーを検出し、ストリーム間で相関をとって「正常」である可能性が低いクラスターを選び出し、自然言語で要約します。
## Gen 1: Simple Alerts
## Gen 2: Add RCA report into the timeline of an existing incident
## Gen 3 – Integrate directly into any observability tool