Application Insights を使用してテレメトリを取り込む
この記事では、Copilot Studio エージェントから遠隔測定データを取得して Azure Application Insightsで使用する方法について説明します。
Copilot Studio 内のネイティブな分析機能に加えて、テレメトリ データを Application Insights に送ることができます。 テレメトリは、次の追跡によって エージェント に関する分析情報を提供します。
- エージェントとの間で送受信されたメッセージとイベントを記録します
- ユーザーとの会話中にトリガーされるトピック
- トピックから送信可能なカスタム テレメトリ イベント
重要
Application Insights は、ライブ アプリケーションを監視できる拡張可能な APM (Application Performance Management) ツールである Azure Monitor の機能です。 Microsoft Azure のサブスクリプションが必要となります。
Copilot Studio エージェントを Application Insights に接続する
エージェント を Application Insights に接続するには、まず エージェント の構成にインストルメンテーション キーを追加する必要があります。
エージェントの設定ページに移動し、詳細を選択します。
Application Insights セクション内で、接続文字列 設定を入力します。 接続文字列の検索方法については、Azure Monitor ドキュメント を参照してください。
必要に応じて、次のいずれかの設定を有効にすることができます。
ログ活動: 有効化すると、受信/送信のメッセージとイベントの詳細がログに記録されます。
機密性の高いアクティビティ プロパティをログに記録する: 有効にすると、受信/送信のメッセージとイベントで機密性が高いと見なされる特定のプロパティの値がログに含まれます。 潜在的に機密性が高いと見なされるプロパティは、userid、name、text、speak です (text と speak プロパティはメッセージにのみ適用されます)。
Application Insights を使用してボット テレメトリを分析する
ボットを Application Insights に接続すると、Copilot Studio でのテストなど、ユーザーがボットを操作したときにテレメトリ データがログに記録されます。 ログに記録されたテレメトリ データを表示するには、Azure にある Application Insights リソースの ログ セクションに移動します。
ここでは Kusto クエリ を使用して、データのクエリと分析を行うことができます。 クエリの例 を参照してください。
クエリの例
クエリは、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 フィールドはあまり役に立ちません。
テスト会話からのテレメトリをクエリから除外する
ボットは、テスト中に Copilot Studio 内で発生した会話も含め、すべての会話のテレメトリを記録します。 テスト中に収集されたテレメトリを除外する場合は、すべてのイベントでキャプチャされる designMode
カスタム ディメンションを使用してクエリを拡張し、クエリで where 句を使用できます。
以下の例は、テスト キャンバスを通じてキャプチャされたものを除く、すべてのカスタム イベントを示しています。
customEvents
| extend isDesignMode = customDimensions['designMode']
| where isDesignMode == "False"
カスタム ディメンション
Copilot Studio から受信した特定の活動データの多くは、customDimensions
フィールドに保存されます。 クエリで 使用されているカスタム ディメンション フィールドを確認 して、テスト会話からテレメトリを除外することができます。
Field | Description | サンプルの値 |
---|---|---|
タイプ | 活動の種類 | message 、conversationUpdate 、event 、invoke |
channelId | チャネル識別子 | emulator 、directline 、msteams 、webchat |
fromId | From 識別子 | <id> |
fromName | クライアントからのユーザー名 | John Bonham 、Keith Moon 、Steve Smith 、Steve Gadd |
locale | クライアント元のロケール | en-us 、zh-cn 、en-GB 、de-de 、zh-CN |
recipientId | 受信者識別子 | <id> |
recipientName | 受信者名 | John Bonham 、Keith Moon 、Steve Smith 、Steve Gadd |
text | メッセージのテキスト | find a coffee shop |
designMode | テスト キャンバス内で発生した会話 | True / False |