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. 선택적으로 다음 설정 중 하나를 사용하도록 선택할 수 있습니다.

  • 로그 활동 - 활성화되면 수신/발신 메시지 및 이벤트의 세부 정보가 기록됩니다.

  • 민감한 활동 속성 기록 - 사용하도록 설정하면 수신/발신 메시지 및 이벤트에 대해 민감한 것으로 간주될 수 있는 특정 속성의 값이 로그에 포함됩니다. 잠재적으로 민감한 것으로 간주되는 속성은 사용자 ID, 이름, 텍스트 및 음성입니다(텍스트 및 음성 속성은 메시지에만 적용됨).

Application Insights로 봇 원격 분석

봇을 Application Insights에 연결한 후 Microsoft Copilot Studio 내의 테스트를 포함하여 사용자가 봇과 상호 작용할 때 원격 분석 데이터가 기록됩니다. 기록된 원격 분석 데이터를 보려면 Azure에서 Application Insights 리소스의 로그 섹션으로 이동합니다.

여기에서 Kusto 쿼리를 사용하여 데이터를 쿼리하고 분석할 수 있습니다. 예제 쿼리를 참조하세요.

예제 쿼리

쿼리는 Microsoft Copilot Studio에서 기록된 모든 사용자 지정 원격 측정 이벤트를 표시하는 customEvents와 같은 단일 테이블을 지정하는 것처럼 간단할 수 있습니다. 그러나 Kusto 쿼리를 사용하여 결과를 더 좁힐 수도 있습니다.

  • 시간 간격 추가
  • 사용자 지정 차원을 사용하여 결과를 확장합니다. 사용자 지정 차원은 타임스탬프 또는 이벤트 이름과 같은 미리 작성된 필드와 함께 기록되는 사용자 지정 속성입니다
  • 조건에 따라 반환되는 데이터를 제한하는 where
  • 더 많은 기본 제공 Kusto 기능을 사용하여 표시되는 정보와 방법 결정

아래 예제 쿼리는 지난 14일 동안 하루에 얼마나 많은 개별 사용자가 봇과 통신했는지 보여주는 선 차트를 생성합니다.

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 필드에 저장됩니다. 테스트 대화에서 원격 분석을 제외하기 위해 쿼리에서 사용되는 사용자 지정 차원 필드를 볼 수 있습니다.

필드 Description 샘플 값
type 활동의 유형 message, conversationUpdate, event, invoke
channelId 채널 식별자 emulator, directline, msteams, webchat
fromId 식별자에서 <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