온라인 엔드포인트 모니터링

Azure Machine Learning은 Azure Monitor와의 통합을 사용하여 온라인 엔드포인트에 대한 메트릭과 로그를 추적하고 모니터링합니다. 차트에서 메트릭을 보고, 엔드포인트와 배포를 비교하고, Azure Portal 대시보드에 고정하고, 경고를 구성하고, 로그 테이블에서 쿼리하고, 지원되는 대상에 로그를 푸시할 수 있습니다. Application Insights를 사용하여 사용자 컨테이너의 이벤트를 분석할 수도 있습니다.

  • 메트릭: 요청 대기 시간, 분당 요청 수, 초당 새 연결 수, 네트워크 바이트 등 엔드포인트 수준 메트릭의 경우 드릴다운하여 배포 수준이나 상태 수준에서 세부 정보를 볼 수 있습니다. CPU/GPU 사용률, 메모리 또는 디스크 사용률과 같은 배포 수준 메트릭을 인스턴스 수준까지 드릴다운할 수도 있습니다. Azure Monitor를 사용하면 차트에서 이러한 메트릭을 추적하고 추가 분석을 위해 대시보드 및 경고를 설정할 수 있습니다.

  • 로그: Kusto 쿼리 구문을 사용하여 로그를 쿼리할 수 있는 Log Analytics 작업 영역으로 메트릭을 보낼 수 있습니다. 추가 처리를 위해 Azure Storage 계정 및/또는 Event Hubs에 메트릭을 보낼 수도 있습니다. 또한 온라인 엔드포인트 관련 이벤트, 트래픽, 콘솔(컨테이너) 로그에 대한 전용 로그 테이블을 사용할 수 있습니다. Kusto 쿼리를 사용하면 여러 테이블을 복잡하게 분석하고 조인할 수 있습니다.

  • Application Insights: 큐레이팅된 환경에는 Application Insights와의 통합이 포함되며 온라인 배포를 만들 때 이 통합을 사용하거나 사용하지 않도록 설정할 수 있습니다. 기본 제공 메트릭 및 로그는 Application Insights로 전송되며 추가 분석을 위해 Application Insights의 기본 제공 기능(예: 라이브 메트릭, 트랜잭션 검색, 오류 및 성능)을 사용할 수 있습니다.

이 문서에서는 다음 방법을 알아봅니다.

  • 메트릭과 로그를 보고 추적하는 데 적합한 방법을 선택합니다.
  • 온라인 엔드포인트에 대한 메트릭 보기
  • 메트릭에 대한 대시보드 만들기
  • 메트릭 경고 만들기
  • 온라인 엔드포인트에 대한 로그 보기
  • Application Insights를 사용하여 메트릭 및 로그 추적

필수 조건

메트릭

Azure Portal에서 온라인 엔드포인트 또는 배포에 대한 메트릭 페이지를 볼 수 있습니다. 이러한 메트릭 페이지에 액세스하는 쉬운 방법은 특히 엔드포인트 페이지의 세부 정보 탭에서 Azure Machine Learning 스튜디오 사용자 인터페이스에서 사용할 수 있는 링크를 사용하는 것입니다. 이러한 링크를 따르면 엔드포인트 또는 배포를 위해 Azure Portal의 정확한 메트릭 페이지로 이동합니다. 또는 Azure Portal로 이동하여 엔드포인트 또는 배포에 대한 메트릭 페이지를 검색할 수도 있습니다.

스튜디오에서 사용할 수 있는 링크를 통해 메트릭 페이지에 액세스하려면 다음을 수행합니다.

  1. Azure Machine Learning Studio로 이동합니다.

  2. 왼쪽 탐색 모음에서 엔드포인트 페이지를 선택합니다.

  3. 이름을 클릭하여 엔드포인트를 선택합니다.

  4. 엔드포인트의 특성 섹션에서 메트릭 보기를 선택하여 Azure Portal에서 엔드포인트의 메트릭 페이지를 엽니다.

  5. 사용 가능한 각 배포에 대한 섹션에서 메트릭 보기를 선택하여 Azure Portal에서 배포의 메트릭 페이지를 엽니다.

    A screenshot showing how to access the metrics of an endpoint and deployment from the studio UI.

Azure Portal에서 직접 메트릭에 액세스하려면 다음을 수행합니다.

  1. Azure Portal에 로그인합니다.

  2. 온라인 엔드포인트 또는 배포 리소스로 이동합니다.

    온라인 엔드포인트 및 배포는 소유 리소스 그룹으로 이동하여 찾을 수 있는 ARM(Azure Resource Manager) 리소스입니다. Machine Learning 온라인 엔드포인트 및 Machine Learning 온라인 배포리소스 종류를 찾습니다.

  3. 왼쪽 열에서 메트릭을 선택합니다.

사용 가능한 메트릭

선택한 리소스에 따라 표시되는 메트릭이 달라집니다. 메트릭은 온라인 엔드포인트와 온라인 배포에 대해 다르게 범위가 지정됩니다.

엔드포인트 범위의 메트릭

  • 요청 대기 시간
  • 요청 대기 시간 P50(50번째 백분위수의 대기 시간 요청)
  • 요청 대기 시간 P90(90번째 백분위수의 대기 시간 요청)
  • 요청 대기 시간 P95(95번째 백분위수의 대기 시간 요청)
  • 분당 요청
  • 초당 새 연결 수
  • 활성 연결 수
  • 네트워크 바이트

다음 차원으로 분할합니다.

  • 배포
  • 상태 코드
  • 상태 코드 클래스

예를 들어, 배포 차원에 따라 분할하여 엔드포인트에서 다양한 배포의 요청 대기 시간을 비교할 수 있습니다.

대역폭 제한

관리 온라인 엔드포인트에 대한 할당량 한도가 초과되면 대역폭이 제한됩니다. 제한에 대한 자세한 내용은 온라인 엔드포인트 제한에 대한 문서를 참조하세요. 요청이 제한되는지 확인하려면 다음을 수행합니다.

  • “네트워크 바이트” 메트릭 모니터링
  • 응답 트레일러에는 ms-azureml-bandwidth-request-delay-msms-azureml-bandwidth-response-delay-ms 필드가 있습니다. 필드의 값은 대역폭 제한의 지연(밀리초)입니다. 자세한 내용은 대역폭 제한 문제를 참조하세요.

배포 범위의 메트릭

  • CPU 사용률
  • 배포 용량(요청된 인스턴스 유형의 인스턴스 수)
  • 디스크 사용률
  • GPU 메모리 사용률(GPU 인스턴스에만 적용 가능)
  • GPU 사용률(GPU 인스턴스에만 적용 가능)
  • 메모리 사용률

다음 차원으로 분할합니다.

  • 인스턴스 ID

예를 들어, 온라인 배포에 대한 서로 다른 인스턴스 간의 CPU 및/또는 메모리 사용률을 비교할 수 있습니다.

대시보드 및 경고 만들기

Azure Monitor를 사용하면 메트릭을 기반으로 대시보드 및 경고를 만들 수 있습니다.

대시보드 만들기 및 쿼리 시각화

사용자 지정 대시보드를 만들고 온라인 엔드포인트에 대한 메트릭을 포함하여 Azure Portal의 여러 원본에서 메트릭을 시각화할 수 있습니다. 대시보드 만들기 및 쿼리 시각화에 대한 자세한 내용은 로그 데이터를 사용하는 대시보드애플리케이션 데이터를 사용하는 대시보드를 참조하세요.

경고 만들기

온라인 엔드포인트에 대한 중요한 상태 업데이트를 알리기 위해 사용자 지정 경고를 만들 수도 있습니다.

  1. 메트릭 페이지의 오른쪽 위에서 새 경고 규칙을 선택합니다.

    Screenshot showing 'New alert rule' button surrounded by a red box.

  2. 경고가 트리거되어야 하는 시기를 지정할 조건 이름을 선택합니다.

    Screenshot showing 'Configure signal logic' button surrounded by a red box.

  3. 작업 그룹 만들기 작업 그룹> 추가를 선택하여 경고가 트리거될 때 발생할 작업을 지정합니다.

  4. 경고 만들기 규칙을 선택하여 경고 만들기를 완료합니다.

자세한 내용은 Azure Monitor 경고 규칙 만들기를 참조하세요.

로그

온라인 엔드포인트에 대해 사용하도록 설정할 수 있는 세 가지 로그가 있습니다.

  • AmlOnlineEndpointTrafficLog: 요청 정보를 검사 경우 트래픽 로그를 사용하도록 선택할 수 있습니다. 다음은 몇 가지 경우입니다.

    • 응답이 200이 아니면 "ResponseCodeReason" 열의 값을 확인하여 무슨 일이 일어났는지 확인합니다. 또한 온라인 엔드포인트 문제 해결 문서의 "HTTPS 상태 코드" 섹션에서 이유를 확인합니다.

    • "ModelStatusCode" 및 "ModelStatusReason" 열에서 모델의 응답 코드 및 응답 이유를 확인할 수 있습니다.

    • 총 기간, 요청/응답 기간 및 네트워크 제한으로 인한 지연과 같은 요청 기간을 확인하려고 합니다. 로그에서 분석 대기 시간을 확인할 수 있습니다.

    • 최근에 요청 또는 실패한 요청 수를 확인하려는 경우. 로그를 사용하도록 설정할 수도 있습니다.

  • AmlOnlineEndpointConsoleLog: 컨테이너가 콘솔에 출력하는 로그를 포함합니다. 다음은 몇 가지 경우입니다.

    • 컨테이너를 시작하지 못하면 콘솔 로그가 디버깅에 유용할 수 있습니다.

    • 컨테이너 동작을 모니터링하고 모든 요청이 올바르게 처리되는지 확인합니다.

    • 콘솔 로그에 요청 ID를 작성합니다. Log Analytics 작업 영역에서 요청 ID, AmlOnlineEndpointConsoleLog 및 AmlOnlineEndpointTrafficLog를 조인하면 온라인 엔드포인트의 네트워크 진입점에서 컨테이너로 요청을 추적할 수 있습니다.

    • 각 요청을 처리하는 데 모델에서 필요한 시간을 결정하는 데 성능 분석에 이 로그를 사용할 수도 있습니다.

  • AmlOnlineEndpointEventLog: 컨테이너의 수명 주기에 대한 이벤트 정보를 포함합니다. 현재 다음 형식의 이벤트에 대한 정보를 제공합니다.

    이름 메시지
    백오프 실패한 컨테이너 다시 시작 백오프
    풀링됨 컨테이너 이미지 "<IMAGE_NAME>"이 이미 컴퓨터에 있습니다.
    종료하는 중 컨테이너 유추-서버 활동성 프로브 실패, 다시 시작됩니다.
    생성일 컨테이너 이미지 페처 만들기
    생성일 컨테이너 유추 서버 만들기
    생성일 컨테이너 모델 탑재 만들기
    LivenessProbeFailed 활동성 프로브 실패: <FAILURE_CONTENT>
    ReadinessProbeFailed 준비 상태 프로브 실패: <FAILURE_CONTENT>
    시작됨 컨테이너 이미지 가져오기 시작
    시작됨 컨테이너 유추 서버 시작
    시작됨 컨테이너 모델 탑재 시작
    종료하는 중 컨테이너 유추 서버 중지
    종료하는 중 컨테이너 모델 탑재 중지

로그 사용/사용 안 함 방법

Important

로깅은 Azure Log Analytics를 사용합니다. 현재 Log Analytics 작업 영역이 없는 경우 Azure Portal에서 Log Analytics 작업 영역 만들기의 단계에서 만들 수 있습니다.

  1. Azure Portal에서 엔드포인트가 포함된 리소스 그룹으로 이동한 다음 엔드포인트를 선택합니다.

  2. 페이지 왼쪽의 모니터링 섹션에서 진단 설정을 선택한 다음 설정 추가를 선택합니다.

  3. 사용할 로그 범주를 선택하고 Log Analytics 작업 영역으로 보내기를 선택한 다음 사용할 Log Analytics 작업 영역을 선택합니다. 마지막으로 진단 설정 이름을 입력하고 저장을 선택합니다.

    Screenshot of the diagnostic settings dialog.

    Important

    Log Analytics 작업 영역에 대한 연결을 사용하도록 설정하는 데 최대 1시간이 걸릴 수 있습니다. 다음 단계를 계속하기 전에 한 시간 정도 기다리세요.

  4. 엔드포인트에 채점 요청을 제출합니다. 이 작업은 로그에 항목을 만들어야 합니다.

  5. 온라인 엔드포인트 속성 또는 Log Analytics 작업 영역의 화면 왼쪽에서 로그를 선택합니다.

  6. 자동으로 열리는 쿼리 대화 상자를 닫고 AmlOnlineEndpointConsoleLog를 두 번 클릭합니다. 표시되지 않으면 검색 필드를 사용합니다.

    Screenshot showing the log queries.

  7. 실행을 선택합니다.

    Screenshots of the results after running a query.

예제 쿼리

로그를 보는 동안 쿼리 탭에서 쿼리 예를 찾을 수 있습니다. 온라인 엔드포인트를 검색하여 쿼리 예를 찾습니다.

Screenshot of the example queries.

로그 열 세부 정보

다음 표는 각 로그에 저장된 데이터에 대한 세부 정보를 제공합니다.

AmlOnlineEndpointTrafficLog

속성 설명
메서드 클라이언트에서 요청한 메서드.
Path 클라이언트에서 요청한 경로.
SubscriptionId 온라인 엔드포인트의 기계 학습 구독 ID.
AzureMLWorkspaceId 온라인 엔드포인트의 기계 학습 작업 영역 ID.
AzureMLWorkspaceName 온라인 엔드포인트의 기계 학습 작업 영역 이름입니다.
EndpointName 온라인 엔드포인트의 이름.
DeploymentName 온라인 배포의 이름.
프로토콜 요청의 프로토콜.
ResponseCode 클라이언트에 반환된 최종 응답 코드.
ResponseCodeReason 클라이언트에 반환된 최종 응답 코드 이유.
ModelStatusCode 모델의 응답 상태 코드.
ModelStatusReason 모델의 응답 상태 설명.
RequestPayloadSize 클라이언트에서 받은 총 바이트 수.
ResponsePayloadSize 클라이언트로 다시 전송된 총 바이트 수.
UserAgent 주석을 포함하지만 최대 70자로 잘린 요청의 사용자 에이전트 헤더입니다.
XRequestId 내부 추적을 위해 Azure Machine Learning에서 생성한 요청 ID.
XMSClientRequestId 클라이언트가 생성한 추적 ID.
TotalDurationMs 요청 시작 시간부터 클라이언트로 다시 전송된 마지막 응답 바이트까지의 기간(밀리초). 클라이언트 연결이 끊어진 경우 시작 시간부터 클라이언트 연결 끊기 시간까지 측정합니다.
RequestDurationMs 요청 시작 시간부터 클라이언트에서 받은 요청의 마지막 바이트까지의 기간(밀리초).
ResponseDurationMs 요청 시작 시간부터 모델에서 읽은 첫 번째 응답 바이트까지의 기간(밀리초).
RequestThrottlingDelayMs 네트워크 제한으로 인한 요청 데이터 전송 지연 시간(밀리초).
ResponseThrottlingDelayMs 네트워크 제한으로 인한 응답 데이터 전송 지연 시간(밀리초).

AmlOnlineEndpointConsoleLog

속성 설명
TimeGenerated 로그가 생성된 시간의 타임스탬프(UTC)입니다.
OperationName 로그 레코드와 연결된 작업입니다.
InstanceId 이 로그 레코드를 생성한 인스턴스의 ID입니다.
DeploymentName 로그 레코드와 연결된 배포의 이름입니다.
ContainerName 로그가 생성된 컨테이너의 이름.
메시지 로그 콘텐츠입니다.

AmlOnlineEndpointEventLog

속성 설명
TimeGenerated 로그가 생성된 시간의 타임스탬프(UTC)입니다.
OperationName 로그 레코드와 연결된 작업입니다.
InstanceId 이 로그 레코드를 생성한 인스턴스의 ID입니다.
DeploymentName 로그 레코드와 연결된 배포의 이름입니다.
이름 이벤트의 이름입니다.
메시지 이벤트 내용.

Application Insights 사용

큐레이팅된 환경에는 Application Insights와의 통합이 포함되며, 온라인 배포를 만들 때 이 통합을 사용하거나 사용하지 않도록 설정할 수 있습니다. 기본 제공 메트릭 및 로그는 Application Insights로 전송되며 추가 분석을 위해 Application Insights의 기본 제공 기능(예: 라이브 메트릭, 트랜잭션 검색, 오류 및 성능)을 사용할 수 있습니다.

자세한 내용은 Application Insights 개요를 참조하세요.

스튜디오에서는 온라인 엔드포인트 페이지의 모니터링 탭을 사용하여 관리되는 온라인 엔드포인트에 대한 상위 수준 활동 모니터 그래프를 볼 수 있습니다. 모니터링 탭을 사용하려면 엔드포인트를 만들 때 Application Insight 진단 및 데이터 수집 사용을 선택해야 합니다.

A screenshot of monitoring endpoint-level metrics in the studio.

  • 배포된 엔드포인트대한 비용을 보는 방법을 알아봅니다.
  • 메트릭 탐색기에 대해 자세히 알아보세요.