ObservabilityクラウドのAIアシスタント用プロンプトガイドとライブラリ 🔗
このドキュメントの目的は、Observability CloudのAIアシスタントにどのようにプロンプトを出せば最良の結果が得られるかを明確に説明することです。このドキュメントでは、効果的な質問とプロンプトに関する一般的なガイダンス、および効果的なプロンプトと効果的でないプロンプトの例を示します。このドキュメントでは、良くないプロンプト、良いプロンプト、優れたプロンプトを定義します。
Splunk Observability Cloud はログ、メトリクス、トレースを収集、相関させ、スタックをエンドツーエンドで観察することができます。Observability CloudのAIアシスタントは、以下のデータにアクセスできます:
インフラストラクチャナビゲーター、メトリクスとメタデータ、ダッシュボード、SignalFlowを含む、メトリック時系列データ
サービスメトリクスと依存関係、タグ、事例トレース、トレースの詳細を含む、APMデータ
Log Observer Connectによるログ
アシスタントは前のリストのデータを検索し、データの相関関係を利用して質問の答えを見つけます。次のセクションでは、アシスタントに効率的にプロンプトする方法について説明します。
AIアシスタントを最大限に活用するための一般的なガイダンスには、できるだけ明確で具体的な質問や指示を提供することが含まれます。可能性のある結果を絞り込むことができるほど、よい結果が得られます。信頼できる情報を参考テキストとして提供することも、必要とする具体的な情報をAIアシスタントがよりよく理解するのに役立ちます。
アクセスするデータの種類により、Observability CloudのAIアシスタントには、結果を改善するための特定のガイドラインがあります。アシスタントから最高の結果を得るには、これらのガイドラインに従ってください:
特定のツールやデータを使用するようにアシスタントをガイドする
エンティティ名とタイプを指定する
コンテキストとフィルターを提供する
時間範囲を指定する
特定のキーワードやフレーズをプロンプトに追加することで、アシスタントが特定のデータやツールを使用するように指示できます。以下に例を示します:
「SignalFlowを使用して検索…」」
「APMデータを見て。」
「チェックするログは…」
使用するツールやデータをプロンプトや質問に指定する情報を追加すると、アシスタントはそのようなヒントを使用して、気になることをすばやく掘り下げます。このようなヒントは必須ではありませんが、結果を絞り込んで、プロンプトを効率的にし、回答を迅速かつ無理のないものにします。
一般に、エンティティ名とタイプを提供することで、より集中的で、より優れた、より迅速なアシスタントの応答が得られます。次の表に、プロンプトの例とその品質を示します:
プロンプトの品質 |
プロンプトの例 |
---|---|
劣る |
api-gatewayに何の問題があるのですか? |
劣る |
i-09182882はどうですか? |
良い |
api-gatewayサービスに何の問題があるのですか? |
良い |
インスタンスi-09182882はどうですか? |
優れている |
prod環境のapi-gatewayサービスに何の問題があるのですか? |
優れている |
EC2インスタンスi-09182882はどうですか? |
プロンプトでエンティティ名とタイプを提供しないと、プロンプトが役に立ちません。プロンプト「api-gatewayに何の問題があるのですか?」は、エンティティ名やタイプを提供しません。具体性のレベルは低く、トラブルシューティングに役立つかもしれないし、役に立たないかもしれない圧倒的な応答のセットを返します。
環境とその中のエンティティに関する情報が多いほど、アシスタントの結果は良くなります。
適切なプロンプトの例として、「api-gatewayサービスに何の問題があるのですか?」があります。これは、アシスタントがAPIゲートウェイサービスを調べるよう指定し、より具体的でより役立つ結果を返します。特定のサービスに問題があると思われる場合は、アシスタントへのプロンプトに実際のサービスを指定する必要があります。
プロンプトが具体的であればあるほど、より良い結果が得られます。サービスと環境の両方に名前を付けると、アシスタントは結果を気になるものだけに絞り込めます。優れたプロンプトの例は、「prod環境のapi-gatewayサービスに何の問題があるのですか?」です。この例では、アシスタントにどのサービスとどの環境を指示するため、結果は、発生している特定の問題を特定して対処するのに十分な固有のものとなります。
アシスタントに適切で正確な情報を提供するために必要な情報を提供するもう1つの方法は、コンテキストとフィルターを提供することです。次の表は、コンテキストとフィルターを使用したプロンプトと使用しないプロンプトの例と、プロンプトの品質を示しています。
プロンプトの品質 |
プロンプトの例 |
---|---|
劣る |
連絡がありましたが、何の問題があるのですか? |
良い |
prod2でapi-gatewayのレイテンシーについて連絡がありましたが、何の問題があるのですか? |
優れている |
インシデント<incident_id>について連絡がありましたが、何の問題があるのですか? |
「連絡がありましたが、何の問題があるのですか?」というプロンプトでは、アシスタントはどのアラートに応答しているのか分からないため、連絡に関する詳細な情報を提供できません。
「prod2でapi-gatewayのレイテンシーについて連絡がありましたが、何の問題があるのですか?」というプロンプトは、アシスタントが関連するアラートを識別して関連情報を収集できるため、良いプロンプトです。その後、アシスタントはアラートに含まれる情報またはアラートに関連する情報の評価を提供し、問題を解決するために次に何を行う必要があるかを示します。
「インシデント<incident_id>について連絡がありましたが、何の問題があるのですか?」というプロンプトは、あいまいさがないため優れています。アシスタントは、どのアラートとインシデントについて情報が欲しいかを正確に把握しています。その情報があれば、アシスタントは可能性の高い解決策を提案することができます。
調査の焦点を絞るために、プロンプトに時間範囲を指定することができます。これによって関連情報が絞り込まれ、アシスタントがより具体的な問題と解決策を提案できるようになりますが、時間範囲の指定は必須ではありません。時間範囲を指定しない場合、ほとんどのツールのデフォルトの時間範囲は、アシスタ ントが分析する直近の15分間です。
自然言語で時間範囲を構成する最も確実な方法は、「過去1時間」、「8時間前から2時間前まで」など、相対的な時間によって構成することです。[-1h, now]や[-8h, -2h]のような標準的な省略記法を使うことができます。また、」Did any alert fire after 2024-11-06T19:15:00+00:00?」のように、日時の文字列を使うこともできます。
このセクションでは、アシスタントを使用して状況をすばやく解決できる状況の例を示します。
アラートを受信した場合、インシデントの解決に役立てるためにアシスタントで使用できるプロンプトには次のようなものがあります:
ペイメントサービスに関するアラートを受け取りました。何が起きているのですか?
インシデントID Ggn_D1TA4BUのアラートを受け取りました。どうしたのですか?
この問題の根本的な原因を理解するために、私のAPMデータとログを見てもらえますか?
I received an alert related to the paymentservice. What’s happening?
この例は、有用な対応や実行可能な対応を促すのに十分な具体的な情報をアシスタ ントに与えていないため、不適切です。このプロンプトでは、paymenterviceについて言及していますが、インシデントIDや環境が示されていません。アシスタントは、ペイメントサービスに関連するすべてのサマリーを返す可能性が高く、これは圧倒される量になり、無関係である可能性があります。たとえば、本番環境に関する情報が必要なのに、アシスタントが開発環境のpaymenterviceの要約を返す可能性があります。このプロンプトを改善するには、インシデントIDまたは環境を追加します。
I received an alert with incident ID Ggn_D1TA4BU. What’s going on?
この例は焦点を絞っているので良い例です。アラートを受信したことを示し、インシデントIDを示します。アシスタントはインシデントの概要を伝える可能性が高いと思われます。その後、概要に基づいてフォローアップの質問をして、さらに詳しい情報を得ることができます。
Can you look at my APM data and logs to understand the root cause of this issue?
UIでアラートを表示している場合、アシスタントは「この問題」が何を意味しているかを正確に把握し、アラート内のすべての情報を参照できるため、このプロンプトは優れています。ページのコンテキストを使用して、アシスタントはアラートからすべての情報を取り込み、考えられる根本原因を迅速に絞り込むことができます。
サービスに問題が発生した場合、インシデントの解決に役立つ可能性のあるプロンプトには次のようなものがあります:
apm-classicエラーの最後の3つのトレースを見せてください。
オンラインブティックenvのペイメントサービスにここ15分ほど問題が発生しています。どうしたのですか?
オンラインブティックenvのペイメントサービスにここ15分ほど問題が発生しています。関連するエラーの事例トレースを探してください。事例トレースを特定したら、トレースIDによって各フルトレースを分析してください
Show me the last 3 traces for apm-classic errors.
このプロンプトが劣っているのは、アシスタントに時間範囲や環境を与えていないためです。このプロンプトを改善するには、どの環境に興味があるかをアシスタントに伝えてください。その後、アシスタントにトレースを分析し、エラーの潜在的な根本原因を提案するよう依頼することもできます。
Paymentservice in online boutique env is having issues in past 15 mins. What’s going on?
このプロンプトは、サービス名と時間範囲を示しているため、良いプロンプトです。どの環境かをアシスタントに伝えることで、アシスタントが間違った環境について自信のある振りをした答えを返すのを防ぎます。デフォルトの時間範囲は過去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つの方法は、特定の詳細を抽出するようにアシスタントに指示し、抽出された詳細を使用してさらにアシスタントにプロンプトすることです。この優れたプロンプトの例では、アシスタントがトレースを抽出しています。次に、そのトレースを検査し、分析結果を表示します。そこから、アシスタントの分析情報に基づいて、より具体的な質問をすることができます。アシスタントが非常に大量の応答で圧倒し、会話のコンテキストの制限を超えないように、分析する事例トレースの数をアシスタントに指示するとよいでしょう。
Kubernetesクラスターに問題がある場合、状況解決のためにアシスタントで使用する可能性のあるプロンプトは次のとおりです:
It looks like k8s pod prod50 has a high CPU utilization. When did it start?
アシスタントにprod50という環境を与えているので、前のプロンプトは良い例です。これは、トラブルシューティングを開始するための情報が少ない場合の例です。この場合、アシスタントにできる限り具体的な情報を与えて、より多くの情報が得られるような応答を促します。アシスタントの応答から重要な情報を特定し、根本原因の可能性を絞り込むまで、さらに具体的な質問をすることができます。
Splunk Observability Cloudでチャートを作成する場合、アシスタントに次のようにプロンプトすることがあります:
Can you share SignalFlow to monitor the top 5 K8s nodes with the highest CPU utilization?
前述のプロンプトは、知りたいことをかなり詳細にアシスタントに伝えることができるため、優れています。アシスタントは、提供された情報に基づいて機能チャートを作成することができます。チャートを見た後、フォローアップして調整することができます。例えば、アシスタントに、チャートを特定の30分枠に調整するよう指示できます。
AIアシスタントへのアクセスおよび使用方法に関する具体的な説明については、Observability CloudのAIアシスタント を参照してください。
責任あるAIに対するSplunkのコミットメントについては、Observability CloudのAIアシスタントのための責任あるAI を参照してください。