다음을 통해 공유


Azure Communication Services 통화 자동화 로그

Azure Communication Services는 Communication Services 솔루션을 모니터링하고 디버깅하는 데 사용할 수 있는 로깅 기능을 제공합니다. 이러한 기능은 Azure Portal을 통해 구성합니다.

필수 조건

Azure Communications Services는 Azure Monitor 로그Azure Monitor 메트릭을 통해 모니터링 및 분석 기능을 제공합니다. 각 Azure 리소스에는 다음 기준을 정의하는 자체 진단 설정이 필요합니다.

  • 설정이 정의하는 대상으로 전송되는 로그 및 메트릭 데이터의 범주입니다. 사용 가능한 형식은 리소스 종류에 따라 다릅니다.

  • 로그를 보낼 하나 이상의 대상입니다. 현재 대상에는 Log Analytics 작업 영역, Azure Event Hubs 및 Azure Storage가 포함됩니다.

    단일 진단 설정은 각 대상 유형 중 하나만 정의할 수 있습니다. 데이터를 2개 이상의 대상 유형(예: 두 개의 Log Analytics 작업 영역)으로 보내려면 여러 개의 설정을 만듭니다. 각 리소스에는 최대 5개의 진단 설정이 있을 수 있습니다.

Important

설문 조사 데이터를 받고 분석하려면 Azure Monitor에서 진단 설정을 사용하도록 설정하여 설문 조사의 로그 데이터를 Log Analytics 작업 영역, 이벤트 허브 또는 Azure Storage 계정으로 보내야 합니다. 이러한 옵션 중 하나에 통화 자동화 데이터를 보내지 않으면 설문 조사 데이터가 저장되지 않고 손실됩니다.

다음은 Communications Services 인스턴스에 대한 로그 및 메트릭 만들기를 시작하도록 Azure Monitor 리소스를 구성하기 위한 지침입니다. 모든 Azure 리소스에서 진단 설정 사용에 대한 자세한 설명은 진단 설정에서 로깅 사용을 참조하세요.

진단 설정 이름 아래에서 통화 자동화에 대한 로그를 사용하도록 설정하려면 작업 통화 자동화 로그통화 자동화 이벤트 요약 로그를 선택합니다.

Screenshot of diagnostic settings for Call Automation.

리소스 로그 범주

Communication Services는 사용할 수 있는 다음 유형의 로그를 제공합니다.

  • 사용량 로그: 요금이 청구된 각 서비스 제품과 연결된 사용량 데이터를 제공합니다.
  • 통화 자동화 운영 로그: 통화 자동화 API 요청에 대한 운영 정보를 제공합니다. 이러한 로그를 사용하여 오류 지점을 식별하고 호출에서 이루어진 모든 요청을 쿼리할 수 있습니다(상관 관계 ID 또는 서버 호출 ID 사용).
  • 통화 자동화 미디어 요약 로그: 미디어 작업의 결과에 대한 정보를 제공합니다. 이러한 로그는 통화 자동화 API를 사용하여 미디어 요청을 수행할 때 비동기적으로 제공됩니다. 이러한 로그를 사용하여 사용자가 애플리케이션과 상호 작용하는 방법에 대한 오류 지점 및 가능한 패턴을 식별할 수 있습니다.

사용 현황 로그 스키마

속성 설명
Timestamp 로그가 생성된 시점의 타임스탬프(UTC)입니다.
OperationName 로그 레코드와 연결된 작업입니다.
OperationVersion OperationName 작업이 API를 통해 수행된 경우 작업과 연결된 api-version 값입니다. 이 작업에 해당하는 API가 없으면 나중에 작업과 관련된 속성이 변경될 경우 버전이 작업의 버전을 나타냅니다.
Category 이벤트의 로그 범주입니다. 범주는 리소스에 대한 로그를 사용 또는 사용하지 않도록 설정할 수 있는 세분성입니다. 이벤트의 properties Blob 내에 나타나는 속성은 로그 범주 및 리소스 종류 내에서 동일합니다.
CorrelationID 상관 관계가 있는 이벤트의 ID입니다. 이 속성을 사용하여 여러 테이블 간의 상관 관계가 있는 이벤트를 식별할 수 있습니다.
Properties 다양한 Communication Services 모드에 적용할 수 있는 기타 데이터입니다.
RecordID 사용량 레코드에 대한 고유 ID입니다.
UsageType 사용량 모드(예: 채팅, PSTN, NAT)입니다.
UnitType 사용량의 기준이 되는 단위 유형(예: 분, 메가바이트 또는 메시지 수)입니다.
Quantity 이 레코드에 사용된 단위 수입니다.

자동화 운영 로그 호출

속성 설명
TimeGenerated 로그가 생성된 시점의 타임스탬프(UTC)입니다.
OperationName 로그 레코드와 연결된 작업입니다.
CorrelationID 호출을 식별하고 고유한 호출에 대한 이벤트를 상호 연결하는 식별자입니다.
OperationVersion operationName 작업이 API를 통해 수행된 경우 작업과 연결된 api-version 버전입니다. 이 작업에 해당하는 API가 없으면 나중에 작업과 관련된 속성이 변경될 경우 버전이 작업의 버전을 나타냅니다.
Category 이벤트의 로그 범주입니다. 범주는 리소스에 대한 로그를 사용 또는 사용하지 않도록 설정할 수 있는 세분성입니다. 이벤트의 properties Blob 내에 나타나는 속성은 로그 범주 및 리소스 종류 내에서 동일합니다.
ResultType 작업의 상태입니다.
ResultSignature 작업의 하위 상태입니다. 이 작업이 REST API 호출에 해당하는 경우 이 필드는 해당 REST 호출의 HTTP 상태 코드입니다.
DurationMs 밀리초 단위의 작업 기간입니다.
CallerIpAddress 작업이 공용 IP 주소를 사용하는 엔터티에서 시작되는 API 호출에 해당하는 경우 호출자 IP 주소입니다.
Level 이벤트의 심각도 수준입니다.
URI 요청의 URI입니다.
CallConnectionId 사용 가능한 경우 호출 연결을 나타내는 ID입니다. 이 ID는 참가자마다 다르며 통화에 대한 연결을 식별하는 데 사용됩니다.
ServerCallId 사용자를 식별하는 고유 ID입니다.
SDKVersion 요청에 사용되는 SDK 버전입니다.
SDKType 요청에 사용되는 SDK 유형입니다.
ParticipantId 요청을 수행한 호출 참가자를 식별하는 ID입니다.
SubOperationName 미디어 작업의 하위 유형(재생, 인식)을 식별하는 데 사용되는 이름입니다.
operationID 비동기 이벤트의 상관 관계를 지정하는 데 사용되는 ID입니다.

다음은 통화 자동화 운영 로그의 예입니다.

[
{
"TimeGenerated [UTC]": "5/25/2023, 5:43:25.746 PM",
"Level": "Informational",
"CorrelationId": "e2a97d52-0cbb-4adf-8c4b-e10f791fb764",
"OperationName": "Play",
"OperationVersion": "3/6/23",
"URI": "ccts-media-synthetics-prod.communication.azure.com",
"ResultType": "Succeeded",
"ResultSignature": "202",
"DurationMs": "82",
"CallerIpAddress": "40.88.50.228",
"CallConnectionId": "401f3500-fcb6-4b84-927e-81cd6372560b",
"ServerCallId": "aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzZWEyLTAxLmNvbnYuc2t5cGUuY29tL2NvbnYvZzRoWlVoS1ZEVUtma19HenRDZ1JTQT9pPTEyJmU9NjM4MjA1NDc4MDg5MzEzMjIz",
"SdkVersion": "",
"SdkType": "unknown",
"SubOperationName": "File",
"OperationId": "5fab0875-3211-4879-8051-c688d0854c4d",
}

통화 자동화 미디어 요약 로그

속성 설명
TimeGenerated 이벤트의 타임스탬프(UTC)입니다.
level 이벤트의 심각도 수준입니다. Informational, Warning, Error 또는 Critical 중 하나여야 합니다. 
resourceId 이벤트를 내보낸 리소스의 리소스 ID입니다.
durationMs 밀리초 단위의 작업 기간입니다.
callerIpAddress
correlationId Skype 체인 ID입니다. 
operationName 이 이벤트가 나타내는 작업의 이름입니다.
operationVersion
resultType 이벤트의 상태입니다. 일반적인 값은 Completed, CanceledFailed입니다.
resultSignature 작업의 하위 상태입니다. 이 작업이 REST API 호출에 해당하는 경우 이 필드는 해당 REST 호출의 HTTP 상태 코드입니다.
operationId 비동기 이벤트의 상관 관계를 지정하는 데 사용되는 작업 ID입니다.
recognizePromptSubOperationName 작업의 하위 형식입니다. 가능한 값으로는 File, TextToSpeechSSML이 포함됩니다.
playInLoop 재생 작업에 대해 루프가 요청된 경우 True입니다. 그렇지 않으면 False입니다.
playToParticipant 재생 작업에 대상이 있는 경우 True입니다. 모두 재생 작업이었다면 False입니다.
interrupted 프롬프트가 중단되면 True입니다. 그렇지 않으면 False입니다.
resultCode 작업의 결과 코드입니다.
resultSubcode 작업의 결과 하위 코드입니다.
resultMessage 작업의 결과 메시지입니다.

다음은 통화 자동화 미디어 요약 로그의 예입니다.

[
{
"TimeGenerated [UTC]": "5/24/2023, 7:57:40.480 PM",
"Level": "Informational",
"CorrelationId": "d149d528-a392-404c-8fcd-69087e9d0802",
"ResultType": "Completed",
"OperationName": "Play",
"OperationId": "7bef24d5-eb95-4ee6-bbab-0b7d45d91288",
"PlayInLoop": "FALSE",
"PlayToParticipant": "TRUE",
"PlayInterrupted": "FALSE",
"RecognizePromptSubOperationName": "",
"ResultCode": "200",
"ResultSubcode": "0",
"ResultMessage": "Action completed successfully."
}

다음 단계