[[notes/data-science/LLM]]と[[MetricSifter]]
昨日のダッシュボードの話で思いついたことを共有しておきます。
監視ダッシュボードは目的ごとに作成するのが通例となっていると思います。
目的を「インシデント対応」としたときに、
そのインシデント固有のダッシュボードを都度自動生成できれば。
1. インシデント発生
2. インシデントに関連するメトリクスのリストを取得する
- 一回の障害で発生する複数の各アラートに紐づくメトリクス
- または、[MetricSifter](https://github.com/ai4sre/metricsifter)で変動が大きいメトリクスのみを絞り込む
3. メトリクスのリストからダッシュボードを生成する
- メトリクスのリストをどのような順にダッシュボードにレイアウトするかは課題となる。そこで、LLMにレイアウトを生成させることを考える。事前にLLMのプロンプトに、どのようなメトリクスを優先して表示させるかの指示を含めておく。例えば、[[RED]]や[[SREゴールデンシグナル|SRE 4 Golden Signals]]を優先して上位に表示させるなど。従来のプログラミングであれば、latencyやresponse_timeなど意味は同じだが顧客が使うプラグインによって表記が揺れるが、LLMであればこうした表記揺れに対応しやすい。
4. 類似障害の導出
- MetricSifterによるメトリクスリストの一致度できめる
昨日のダッシュボードの話で、自分の研究と絡めて思いついたことを共有。
インシデント対応を目的としたダッシュボードであれば、現在は様々な障害に対応できるように一般化されたダッシュボード(サービスの各コンポーネントのゴールデンメトリクスなど)を事前に作成しておくのではないかと思います。しかし、一般化されているがゆえに、そのダッシュボード上には発生中に関係ないメトリクスが表示されている、逆に直接的に関係するメトリクスが表示されていないという課題も抱えています。
そこで、現在発生中の障害により特化したダッシュボードが自動で作成できればより良いことになります。
当然のことながら、現在の障害にとって重要なメトリクスをどのように選択するかが課題となります。
ナイーブな方法ならば、アラートに紐づくメトリクスを選ぶことを思いつきますが、より高度には、そのサービスの全メトリクスから、教師なし機械学習で、時系列に顕著な変化を含むメトリクスのみを選択する方法があります。
高度な方法は拙作のMetricSifterを組み込むことで実現できるはずです。 https://github.com/ai4sre/metricsifter
また、ダッシュボード上にメトリクスをどの順番にレイアウトするかの課題もありますが、メトリクス名のリストをLLMのプロンプトに入力して、例えばREDやゴールデンメトリクスに該当するメトリクスを優先的に表示するといったことも現代ならできるようになりましたね。