ObservabilityクラウドのAIアシスタント用プロンプトガイドとライブラリ

Observability CloudのAIアシスタントの使用方法を学習します。

このドキュメントの目的は、Observability Cloud の AI Assistant で最適な結果を得るためのプロンプト方法に関する、明確な手順を提供することです。このドキュメントでは、効果的な質問とプロンプトに関する一般的なガイダンスと、効果的なプロンプトと非効果的なプロンプトの例をいくつかご紹介します。本ドキュメントでは、不適切なプロンプト、適切なプロンプト、および優れたプロンプトを定義しています。

Observability Cloud の AI Assistant の仕組み

Splunk Observability Cloud は、ログ、メトリクス、トレースを収集して相関させ、スタックをエンドツーエンドで監視できるようにします。Observability Cloud の AI Assistant では、次のデータにアクセスできます。

  • インフラストラクチャナビゲーター、メトリクスとメタデータ、ダッシュボード、SignalFlowを含む、メトリック時系列データ

  • サービスメトリクスと依存関係、タグ、事例トレース、トレースの詳細を含む、APMデータ

  • Log Observer Connectによるログ

AI Assistant は前のリストのデータを検索し、データの相関関係を利用して質問の答えを見つけます。次のセクションでは、AI Assistant に効率的にプロンプトする方法について説明します。

AI Assistant にプロンプトする際の一般的なガイドライン

AI Assistant を最大限に活用するための一般的なガイダンスの 1 つは、可能な限り明確で具体的な質問または指示をすることです。可能性のある結果を絞り込めば絞り込むほど、より良い結果が得られます。また、信頼できる情報を参照テキストとして提供することで、AI Assistant は必要とする特定の情報をよりよく理解できます。

アクセスするデータの種類により、Observability Cloud の AI Assistant には、結果を改善するための特定のガイドラインがあります。AI Assistant から最良の結果を得るために、次のガイドラインに従ってください。

  • 特定のツールやデータを使用するようにアシスタントをガイドする

  • エンティティ名とタイプを指定する

  • コンテキストとフィルターを提供する

  • 時間範囲を指定する

特定のツールやデータを使用するようにアシスタントをガイドする

特定のキーワードやフレーズをプロンプトに追加することで、AI Assistant が特定のデータやツールを使用するように指示できます。次に例を示します。

  • 「SignalFlow を使用して...を検索」

  • 「APM データを参照」

  • 「…のログをチェック」

プロンプトまたは質問に、使用するべきツールやデータを指定する情報を追加すると、AI Assistant はそのようなヒントを使用して、気になることをすばやく掘り下げます。このようなヒントは必須ではありませんが、結果を絞り込むことでプロンプトが効率的になり、回答がより速く、わかりやすいものなります。

エンティティ名とタイプを指定する

一般的に、エンティティ名とタイプを指定することで、より集中的で、より優れた、より迅速な応答を AI Assistant から得ることができます。次の表に、プロンプトとその品質の例を示します。

プロンプトの品質

プロンプトの例

劣る

api-gateway の問題点は?

劣る

i-09182882 の状態は?

良い

api-gateway サービスの問題点は?

良い

インスタンス i-09182882 の状態は?

優れている

prod 環境の api-gateway サービスの問題点は?

優れている

EC2 インスタンス i-09182882 の状態は?

プロンプトを低品質にする原因

プロンプトでエンティティ名やタイプを指定しないと、プロンプトは役に立ちません。「api-gateway の問題点は?」というプロンプトは、エンティティ名やタイプを指定していません。特定性のレベルが低く、膨大な数の応答が返されます。これらの応答は、トラブルシューティングに役立つこともあれば、役立たないこともあります。

プロンプトの品質を向上させる条件

環境とその中のエンティティに関する情報が多いほど、アシスタントの結果は良くなります。

適切なプロンプトの例は、「api-gateway サービスの問題点は?」です。このプロンプトは、AI Assistant に API ゲートウェイサービスを検証し、より具体的で有用な結果を返すように指定しています。特定のサービスの問題が疑われる場合は、AI Assistant へのプロンプトで実際のサービス名を指定する必要があります。

優れたプロンプトの条件

プロンプトが具体的になるほど、結果は良好になります。サービスと環境の両方を指定すると、AI Assistant は、ユーザーが関心のあるものだけに結果を絞り込むことができます。優れたプロンプトの例は、「本番環境の api-gateway サービスの問題点は?」です。この例では、サービスと環境を AI Assistant に指定しているため、結果が具体的になり、発生している問題を特定して対処することができます。

コンテキストとフィルターを提供する

AI Assistant に関連性が高く正確な回答をさせるための別の方法として、コンテキストやフィルタを指定する方法があります。次の表は、コンテキストとフィルタがある場合とない場合のプロンプトの例と、プロンプトの品質を示しています。

プロンプトの品質

プロンプトの例

劣る

呼び出しが来ました。問題点は?

良い

prod2 の api-gateway の遅延について呼び出しが来ました。問題点は?

優れている

インシデント <incident_id> について呼び出しが来ました。問題点は?

不適切なプロンプト

「呼び出しが来ました。問題点は?」というプロンプトは、AI Assistant がユーザーを支援するのには役立ちません。このプロンプトでは、AI Assistant はどのアラートのことか分からないため、呼び出しに関する詳細情報を提供できません。

適切なプロンプト

プロンプト「prod2 の api-gateway の遅延について呼び出しが来ました。問題点は?」は、AI Assistant が関連するアラートを特定し、関連情報を収集できるため、適切なプロンプトです。AI Assistant は、アラート内に含まれる情報か、アラートに関連する情報の評価を提供できます。この評価によって、問題を解決するために次に行うべき措置が示されます。

優れたプロンプト

プロンプト「<incident_id> の呼び出しが来ました。問題点は?」は曖昧さがないため、優れています。AI Assistant は、情報が必要なアラートとインシデントを正確に認識します。その情報を使用して、AI Assistant は考えられる解決策を提案できます。

時間範囲を指定する

調査の焦点を絞るために、プロンプトに時間範囲を指定できます。これにより、AI Assistant は関連情報を絞り込み、より具体的な問題とその解決策を提案できますが、時間範囲は必須ではありません。時間範囲を指定しない場合、ほとんどのツールのデフォルトの時間範囲は、AI Assistant が分析した過去 15 分間です。

自然言語で時間範囲を設定する最も確実な方法は、「過去 1 時間」、「8 時間前から 2 時間前まで」などの相対的な時間で指定することです。[-1h, now] や [-8h, -2h] のような標準的な省略記法を使用できます。「2024-11-06T19:15:00+00:00 以降にアラートは発生しましたか?」などの日時文字列を使用することもできます。

Observability Cloud の AI Assistant を使用するシナリオ

このセクションでは、アシスタントを使用して状況をすばやく解決できる状況の例を示します。

アラートの受信

アラートを受信した場合、インシデントの解決に役立てるためにアシスタントで使用できるプロンプトには次のようなものがあります:

  • 決済サービスに関するアラートを受信しました。何が起きていますか?

  • インシデント ID Ggn_D1TA4BU のアラートを受信しました。どうしましたか?

  • この問題の根本的な原因を理解するために、私のAPMデータとログを見てもらえますか?

プロンプトの例:不適切

I received an alert related to the paymentservice. What’s happening?

この例は、AI Assistant に有益または実行可能な応答を求めるのに十分な具体的情報が提供されないため、不適切です。このプロンプトは決済サービスには言及していますが、インシデント ID または環境を提供していません。AI Assistant は、決済サービスに関連するあらゆる内容の概要を返す可能性がありますが、その概要は膨大で、無関係な場合があります。たとえば、AI Assistant は、本番環境に関する情報が必要な場合に、開発環境における決済サービスの概要を提供する可能性があります。このプロンプトを改善するには、インシデント ID または環境を追加します。

プロンプトの例:適切

I received an alert with incident ID Ggn_D1TA4BU. What’s going on?

この例は、焦点が絞られているため適切です。アラートを受信したことが示され、インシデント ID が指定されています。AI Assistant は、インシデントの概要を説明する可能性があります。概要に基づいてフォローアップの質問をすることで、詳細を把握できます。

プロンプトの例:優れている

Can you look at my APM data and logs to understand the root cause of this issue?

UI でアラートを示すことで、AI Assistant は「この問題」が何を意味しているのかを正確に把握し、アラート内のすべての情報を参照できるため、このプロンプトは優れています。AI Assistant はページのコンテキストを使用して、アラートからすべての情報を取り込み、考えられる根本原因を迅速に絞り込むことができます。

サービスに問題がある

サービスに問題が発生した場合、インシデントの解決に役立つ可能性のあるプロンプトには次のようなものがあります:

  • apm-classicエラーの最後の3つのトレースを見せてください。

  • オンラインブティック env の決済サービスで過去 15 分間、問題が発生しています。どうしましたか?

  • オンラインブティック env の決済サービスで過去 15 分間、問題が発生しています。関連するエラーの代表トレースを探します。代表トレースを特定したら、トレース ID で完全なトレースをそれぞれ分析します。

プロンプトの例:不適切

Show me the last 3 traces for apm-classic errors.

このプロンプトは、AI Assistant に時間範囲や環境を指定していないため、適切ではありません。このプロンプトを改善するには、関心のある環境を AI Assistant に伝えます。続いて、AI Assistant にトレースを分析し、エラーの潜在的な根本原因を提案するよう指示することもできます。

プロンプトの例:適切

Paymentservice in online boutique env is having issues in past 15 mins. What’s going on?

このプロンプトは、サービスと時間範囲を指定しているため、適切です。AI Assistant に対して環境を指定することで、AI Assistant は誤った環境について確信を持っているような回答をしなくなります。デフォルトの時間範囲は過去 15 分間であるため、この範囲を指定してもプロンプトには何の影響もありません。

プロンプトの例:優れている

Paymentservice in online boutique env is having issues in past 15 mins. Look for any relevant error exemplar traces. After identifying the exemplar traces, analyze each full trace by its trace ID

3 番目の例のプロンプトは、2 番目のプロンプトを展開しています。2 番目の例は適切でしたが、3 番目の例は優れています。より具体的な情報がわからない場合にプロンプトを改善する 1 つの方法は、AI Assistant に特定の詳細を抽出するように指示し、抽出された詳細を使用して AI Assistant にさらにプロンプトすることです。この優れたプロンプトの例では、AI Assistant はトレースを抽出しています。次に、AI Assistant はトレースを調べて分析を提供しています。ここで、AI Assistant の分析情報に基づいて、さらに具体的な質問をしていくことができます。分析する代表トレースの数を AI Assistant に指示することで、AI Assistant が膨大な数の応答を返したり、会話のコンテキスト制限を超えたりするのを防ぐことができます。

Kubernetes クラスターに問題がある

Kubernetesクラスターに問題がある場合、状況解決のためにアシスタントで使用する可能性のあるプロンプトは次のとおりです:

It looks like k8s pod prod50 has a high CPU utilization. When did it start?

前述のプロンプトは、AI Assistant に prod50 の環境を指定しているため、適切です。これは、トラブルシューティングのプロセスを開始するための十分な情報がない場合の例です。この場合、可能な限り具体的な情報を AI Assistant にプロンプトして、詳細情報を含む応答を求めます。AI Assistant の応答で重要な情報を特定し、潜在的な根本原因の調査が絞り込まれるまで、より具体的な質問を行います。

グラフの作成

Splunk Observability Cloudでチャートを作成する場合、アシスタントに次のようにプロンプトすることがあります:

Can you share SignalFlow to monitor the top 5 K8s nodes with the highest CPU utilization?

上記のプロンプトは、必要な情報について多数の詳細を指定しているため、優れています。AI Assistant は、提供された情報に基づいて機能グラフを作成できます。グラフを確認した後にフォローアップして、グラフを調整できます。たとえば、グラフを特定の 30 分の時間枠に調整するよう、AI Assistant に指示できます。

その他のリソース

AI Assistant へのアクセスおよび使用方法に関する詳細については、「AI Assistant in Observability Cloud」を参照してください。

Splunk の責任ある AI への取り組みの詳細については、「Observability Cloud の AI Assistant の責任ある AI」を参照してください。