Application Insights を使用してテレメトリを取り込む

重要

Power Virtual Agents 機能は、生成 AI への多大な投資と Microsoft Copilot 全体の統合の強化により、現在 Microsoft Copilot Studio の一部となっています

ドキュメントやトレーニング コンテンツが更新される間、一部の記事やスクリーンショットで Power Virtual Agents が参照される場合があります。

この記事では、Azure Application Insights で使用する Microsoft Copilot Studio ボットからテレメトリ データをキャプチャする方法について説明します。

Microsoft Copilot Studio 内のネイティブな分析機能に加えて、テレメトリ データを Application Insights に送ることができます。 テレメトリは、以下を追跡することにより、ボットに関する分析情報を提供します:

  • ボットとの間で送受信されたログに記録されたメッセージとイベント
  • ユーザーとの会話中にトリガーされるトピック
  • トピックから送信可能なカスタム テレメトリ イベント

重要

Application Insights は、ライブ アプリケーションを監視できる拡張可能な APM (Application Performance Management) ツールである Azure Monitor の機能です。 Microsoft Azure のサブスクリプションが必要となります。

Microsoft Copilot Studio ボットを Application Insights に接続する

ボットを Application Insights に接続するには、まずインストルメンテーション キーをプロジェクトに追加する必要があります。

  1. 設定 下の ボットの詳細 ページに移動します。

  2. 詳細 タブに切り替えます。

  3. Application Insights セクション内で、接続文字列 設定を入力します。 接続文字列の検索方法については、Azure Monitor ドキュメント を参照してください。

  4. 必要に応じて、次のいずれかの設定を有効にすることができます。

  • ログ活動 - 有効化すると、受信 / 送信のメッセージとイベントの詳細がログに記録されます。

  • 機密性の高いアクティビティ プロパティをログに記録する - 有効にすると、受信 / 送信のメッセージとイベントで機密性が高いと見なされる特定のプロパティの値がログに含まれます。 潜在的に機密性が高いと見なされるプロパティは、userid、name、text、speak です (text と speak プロパティはメッセージにのみ適用されます)。

Application Insights を使用してボット テレメトリを分析する

ボットを Application Insights に接続すると、Microsoft Copilot Studio でのテストなど、ユーザーがボットを操作したときにテレメトリ データがログに記録されます。 ログに記録されたテレメトリ データを表示するには、Azure にある Application Insights リソースの ログ セクションに移動します。

ここでは Kusto クエリ を使用して、データのクエリと分析を行うことができます。 クエリの例 を参照してください。

クエリの例

クエリは、Microsoft Copilot Studio から記録されたすべてのカスタム テレメトリ イベントを示す customEvents など、単一のテーブルを指定するのと同じくらい簡単にできます。 ただし、Kusto クエリ を使用して、以下のような結果をさらに絞り込むこともできます;

  • 時間間隔を追加する
  • カスタム ディメンション を使用して結果を拡張します。 カスタム ディメンションは、タイムスタンプやイベント名などの事前に作成されたフィールドとともにログに記録されるカスタム プロパティです
  • 条件に基づいて返されるデータを制限する where
  • より多くの組み込み Kusto 関数を使用して、情報の表示内容や表示方法を決定します

以下のクエリの例では、過去 14 日間にボットと通信した 1 日あたりの個別のユーザーの数を示す折れ線グラフが表示されます。

let queryStartDate = ago(14d);
let queryEndDate = now();
let groupByInterval = 1d;
customEvents
| where timestamp > queryStartDate
| where timestamp < queryEndDate
| summarize uc=dcount(user_Id) by bin(timestamp, groupByInterval)
| render timechart

重要

一部のフィールド内のデータは、使用するチャネルに応じて異なり、多かれ少なかれ適用できます。 たとえば、認証されたユーザーであり、ユーザー ID が会話全体で一貫している場合にのみ、このクエリで一意のユーザーの正しい数を取得できます。 会話ごとにランダムなユーザー ID が生成される匿名のシナリオでは、ユーザー ID フィールドはあまり役に立ちません。

テスト会話からのテレメトリをクエリから除外する

ボットは、Microsoft Copilot Studio テスト キャンバス内で発生した会話を含む、すべての会話のテレメトリをログに記録します。 テスト中に収集されたテレメトリを除外する場合は、すべてのイベントでキャプチャされる designMode カスタム ディメンションを使用してクエリを拡張し、クエリで where 句を使用できます。

以下の例は、テスト キャンバスを通じてキャプチャされたものを除く、すべてのカスタム イベントを示しています。

customEvents
| extend isDesignMode = customDimensions['designMode']
| where isDesignMode == "False"

カスタム ディメンション

Microsoft Copilot Studio から受信した特定の活動データの多くは、customDimensions フィールドに保存されます。 クエリで 使用されているカスタム ディメンション フィールドを確認 して、テスト会話からテレメトリを除外することができます。

Field Description サンプルの値
タイプ 活動の種類 messageconversationUpdateeventinvoke
channelId チャネル識別子 emulatordirectlinemsteamswebchat
fromId From 識別子 <id>
fromName クライアントからのユーザー名 John BonhamKeith MoonSteve SmithSteve Gadd
locale クライアント元のロケール en-uszh-cnen-GBde-dezh-CN
recipientId 受信者識別子 <id>
recipientName 受信者名 John BonhamKeith MoonSteve SmithSteve Gadd
text メッセージのテキスト find a coffee shop
designMode テスト キャンバス内で発生した会話 True / False