다음을 통해 공유


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

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

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

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

  • Application Insights: 큐레이팅된 환경에는 Application Insights와의 통합이 포함됩니다. 온라인 배포를 만들 때 이 통합을 켜거나 끌 수 있습니다. 이 기능을 켜면 기본 제공 메트릭 및 로그가 Application Insights로 전송됩니다. 그런 다음 추가 분석을 위해 Application Insights의 기본 제공 기능을 사용할 수 있습니다. 이러한 기능의 예로는 라이브 메트릭, 트랜잭션 검색, 오류 보기 및 성능 보기가 있습니다.

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

  • 메트릭 및 로그를 보고 추적할 올바른 방법을 선택합니다.
  • 온라인 엔드포인트에 대한 메트릭을 봅니다.
  • 메트릭에 대한 대시보드를 만듭니다.
  • 메트릭 경고를 만듭니다.
  • 온라인 엔드포인트에 대한 로그를 봅니다.
  • Application Insights를 사용하여 메트릭 및 로그를 추적합니다.

필수 조건

  • Azure Machine Learning 온라인 엔드포인트
  • 엔드포인트에 대한 읽기 권한자 이상 액세스

메트릭 사용

Azure Portal에서 온라인 엔드포인트 및 배포에 대한 메트릭 페이지를 볼 수 있습니다.

Azure Machine Learning 스튜디오 메트릭에 액세스

메트릭 페이지에 액세스하는 쉬운 방법은 Azure Machine Learning 스튜디오 사용자 인터페이스에서 사용할 수 있는 링크를 통해서입니다. 이러한 링크는 엔드포인트 페이지의 세부 정보 탭에서 찾을 수 있습니다. 이러한 링크는 엔드포인트 또는 배포에 대한 Azure Portal의 메트릭 페이지로 연결됩니다.

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

  1. Azure Machine Learning 스튜디오 작업 영역으로 이동합니다.

  2. 자산에서 엔드포인트를 선택합니다.

  3. 엔드포인트의 이름을 선택합니다.

  4. 엔드포인트 특성 아래에서 메트릭 보기를 선택합니다.

    엔드포인트 특성을 보여 주는 스튜디오의 엔드포인트 페이지 스크린샷 자산, 엔드포인트, 엔드포인트 특성 및 보기 메트릭이 강조 표시됩니다.

    엔드포인트의 메트릭 페이지가 Azure Portal에서 열립니다.

  5. Azure Machine Learning 스튜디오 엔드포인트 페이지에서 배포 섹션으로 이동한 다음 메트릭 보기를 선택합니다.

    배포 정보를 보여 주는 스튜디오의 엔드포인트 페이지 스크린샷. 배포 파란색 및 보기 메트릭이 강조 표시됩니다.

    배포의 메트릭 페이지가 Azure Portal에서 열립니다.

Azure Portal에서 메트릭 액세스

엔드포인트 또는 배포에 대한 메트릭 페이지를 보는 또 다른 방법은 Azure Portal로 직접 이동하는 것입니다.

  1. Azure Portal로 이동합니다.

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

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

  3. 리소스 페이지의 모니터링 아래에서 메트릭을 선택합니다.

    배포에 대한 메트릭 페이지를 보여 주는 Azure Portal의 스크린샷. 모니터링 및 메트릭이 강조 표시됩니다.

사용 가능한 메트릭

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

엔드포인트 범위의 메트릭

온라인 엔드포인트 범위에서 사용할 수 있는 메트릭에 대한 자세한 내용은 Microsoft.MachineLearningServices/workspaces/onlineEndpoints에 대해 지원되는 메트릭을 참조하세요.

대역폭 제한

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

  • 네트워크 바이트 메트릭을 모니터링합니다.
  • 응답 예고편에서 다음 필드를 확인합니다. ms-azureml-bandwidth-request-delay-msms-azureml-bandwidth-response-delay-ms 필드의 값은 대역폭 제한의 지연(밀리초)입니다.

자세한 내용은 대역폭 제한 문제를 참조하세요.

배포 범위의 메트릭

배포 범위에서 사용할 수 있는 메트릭에 대한 자세한 내용은 Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments에 대해 지원되는 메트릭을 참조하세요.

대시보드 및 경고 만들기

Monitor에서 메트릭을 기반으로 하는 대시보드 및 경고를 만들 수 있습니다.

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

온라인 엔드포인트에 대한 메트릭을 포함하여 Azure Portal의 여러 원본에서 메트릭을 시각화할 수 있도록 사용자 지정 대시보드를 만들 수 있습니다. 대시보드를 만들고 쿼리를 시각화하는 방법에 대한 자세한 내용은 Application Insights 를 사용하여 Log Analytics 데이터의 대시보드 만들기 및 공유 및 사용자 지정 KPI 대시보드 만들기를 참조하세요.

경고 만들기

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

  1. Azure Portal에서 메트릭 페이지로 이동한 다음 새 경고 규칙을 선택합니다.

    배포에 대한 메트릭 페이지를 보여 주는 Azure Portal의 스크린샷. 새 경고 규칙이 강조 표시됩니다.

  2. 신호 선택 창에서 경고를 만들 신호를 선택한 다음 적용을 선택합니다.

  3. 경고 규칙 만들기 페이지에서 임계값을 입력하고 조정하려는 다른 설정을 편집합니다. 경고 규칙 설정에 대한 자세한 내용은 경고 규칙 조건 구성을 참조 하세요. 그런 다음, 다음: 작업을 선택합니다.

    Azure Portal에서 경고 규칙 만들기 페이지의 스크린샷. 임계값 상자와 다음 작업이 강조 표시됩니다.

  4. 작업 그룹 선택 창에서 작업 그룹을 만들거나 선택하여 경고가 트리거될 때 발생하는 작업을 지정합니다. 자세한 내용은 경고 규칙 세부 정보 구성을 참조 하세요.

  5. 검토 + 만들기를 선택하여 경고 만들기를 완료합니다.

메트릭에 따라 자동으로 크기 조정

메트릭에 따라 자동으로 크기를 조정하도록 배포를 구성할 수 있습니다. 자동 크기 조정 기능을 켜려면 UI 또는 코드를 사용할 수 있습니다.

코드 옵션은 Azure Machine Learning CLI 및 Python용 Azure Machine Learning SDK입니다. 코드를 사용하는 경우 메트릭의 REST API 이름을 제공하여 자동 크기 조정을 트리거하기 위한 조건을 구성합니다.

  • 코드에서 사용할 엔드포인트 메트릭의 이름은 Microsoft.MachineLearningServices/workspaces/onlineEndpoints에 대해 지원되는 메트릭의 테이블에 있는 REST API 열의 이름 값을 참조하세요.
  • 코드에서 사용할 배포 메트릭의 이름은 Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments에 대해 지원되는 메트릭의 테이블에 있는 REST API 열의 이름 값을 참조하세요.

자세한 내용은 Azure Machine Learning에서 온라인 엔드포인트 자동 크기 조정을 참조하세요.

로그 사용

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

  • AmlOnlineEndpointTrafficLog: 이 트래픽 로그는 엔드포인트에 대한 요청 정보를 확인하는 방법을 제공합니다. 이 로그는 다음과 같은 경우에 유용합니다.

    • 요청 응답은 200이 아니며 추가 정보를 원합니다. ResponseCodeReason 로그의 열에 이유가 나열됩니다. 상태 코드 및 이유에 대한 설명은 온라인 엔드포인트 문제 해결에 대한 문서의 HTTPS 상태 코드를 참조하세요.
    • 요청에 대한 모델의 응답 코드 및 응답 이유를 조회하려고 합니다. ModelStatusCode 열은 ModelStatusReason 이 정보를 제공합니다.
    • 요청 기간을 알고 싶습니다. 로그는 대기 시간의 분석을 제공합니다. 해당 분석은 총 기간, 요청 기간, 응답 기간 및 네트워크 제한으로 인한 지연을 보여줍니다.
    • 성공하고 실패한 최근 요청 수를 확인하려고 합니다. 로그는 이 정보를 제공합니다.
  • AmlOnlineEndpointConsoleLog: 이 로그에는 컨테이너가 콘솔에 출력으로 쓰는 문이 포함되어 있습니다. 이 로그는 다음과 같은 경우에 유용합니다.

    • 컨테이너가 시작되지 않습니다. 콘솔 로그는 디버깅에 유용할 수 있습니다.
    • 컨테이너 동작을 모니터링하고 모든 요청이 올바르게 처리되었는지 확인하려고 합니다.
    • 온라인 엔드포인트의 네트워크 진입점에서 컨테이너로 요청을 추적하려고 합니다. 요청 ID를 AmlOnlineEndpointConsoleLog 및 AmlOnlineEndpointTrafficLog 로그의 정보와 조인하는 Log Analytics 쿼리를 사용할 수 있습니다.
    • 예를 들어 성능 분석을 실행하여 모델이 각 요청을 처리하는 데 걸리는 시간을 결정하려고 합니다.
  • AmlOnlineEndpointEventLog: 이 로그에는 컨테이너 수명 주기에 대한 이벤트 정보가 포함됩니다. 현재 로그는 다음과 같은 유형의 이벤트에 대한 정보를 제공합니다.

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

로그 켜기

Important

로깅은 모니터의 Log Analytics 기능을 사용합니다. 현재 Log Analytics 작업 영역이 없는 경우 작업 영역 만들기의 단계에 따라 만들 수 있습니다.

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

  2. 모니터링에서 진단 설정을 선택한 다음 진단 설정 추가를 선택합니다.

  3. 진단 설정 창에서 다음 정보를 입력합니다.

    • 진단 설정 이름 옆에 설정의 이름을 입력합니다.
    • 로그 아래에서 켜려는 로그 범주를 선택합니다.
    • 대상 세부 정보에서 Log Analytics 작업 영역으로 보내기를 선택한 다음 사용할 구독 및 Log Analytics 작업 영역을 선택합니다.

    진단 설정 창의 스크린샷. 모든 로그 및 Log Analytics 작업 영역으로 보내기가 선택됩니다. 구독 및 작업 영역이 표시됩니다.

  4. 저장을 선택합니다.

    Important

    Log Analytics 작업 영역에 대한 연결을 사용할 수 있는 데 최대 1시간이 걸릴 수 있습니다. 다음 섹션의 단계를 계속하기 전에 한 시간 정도 기다립니다.

쿼리 로그

  1. 엔드포인트에 점수 매기기 요청을 제출하여 로그에 항목을 만듭니다.

  2. Azure Portal로 이동합니다. 로그를 열려면 다음 옵션 중 하나를 사용합니다.

    • 온라인 엔드포인트의 속성 페이지로 이동합니다. 모니터링에서 로그를 선택합니다.
    • Log Analytics 작업 영역으로 이동합니다. 왼쪽에서 로그를 선택합니다.
  3. 기본적으로 열리는 쿼리 허브 창을 닫습니다.

  4. 기타 아래에서 AmlOnlineEndpointConsoleLog를 두 번 클릭합니다. AmlOnlineEndpointConsoleLog가 표시되지 않으면 검색 필드에 해당 값을 입력합니다.

    엔드포인트에 대한 Azure Portal 로그 페이지의 스크린샷. 검색 상자와 결과에 AmlOnlineEndpointConsoleLog가 강조 표시됩니다.

  5. 실행을 선택합니다.

    엔드포인트에 대한 Azure Portal 로그 페이지의 스크린샷. 실행이 강조 표시되고 AmlOnlineEndpointConsoleLog 쿼리 결과가 표시됩니다.

예제 쿼리

예제 쿼리를 사용할 수 있습니다. 쿼리를 보려면 다음 단계를 수행합니다.

  1. 로그 페이지에서 쿼리를 선택합니다.

  2. 검색 상자에 온라인 엔드포인트를 입력 합니다.

    Azure Portal 로그 페이지의 쿼리 탭 스크린샷 두 개의 예제 쿼리가 표시되고 쿼리 탭과 검색 상자가 강조 표시됩니다.

로그 열 세부 정보

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

AmlOnlineEndpointTrafficLog

속성 설명
메서드 클라이언트가 요청하는 메서드입니다.
Path 클라이언트가 요청하는 경로입니다.
SubscriptionId 온라인 엔드포인트의 기계 학습 구독 ID.
Azure Machine LearningWorkspaceId 온라인 엔드포인트의 기계 학습 작업 영역 ID.
Azure Machine LearningWorkspaceName 온라인 엔드포인트의 기계 학습 작업 영역 이름입니다.
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 Insights와의 통합을 설정할 수 있습니다. 배포 페이지의 Application Insights 진단에서 [사용]을 선택합니다.

사용자가 온라인 엔드포인트를 만들 때 스튜디오 배포 페이지의 스크린샷 Application Insights 진단 설정이 강조 표시됩니다.

Application Insights를 켜면 관리되는 온라인 엔드포인트에 대한 상위 수준 활동 모니터 그래프를 볼 수 있습니다. 스튜디오에서 엔드포인트의 페이지로 이동한 다음 모니터링 탭을 선택합니다.

스튜디오 엔드포인트 페이지의 모니터링 탭 스크린샷 모니터링 탭이 강조 표시됩니다. 차트에는 엔드포인트에 대한 분당 요청이 표시됩니다.