1. 시작하기 전에
스마트 홈 디버깅 Codelab에서 학습한 대로 스마트 홈 프로젝트에 측정항목과 로그를 게시합니다. 측정항목은 스마트 홈 작업에 문제가 있는 위치를 확인하는 데 도움이 되며, 로그는 이러한 문제를 해결하기 위해 자세히 살펴보는 데 유용합니다.
프로젝트에 제공된 측정항목을 사용해 알림을 설정하여 자동화된 방식으로 서비스 중단을 모니터링하고 서비스 중단 시 알림을 받을 수 있습니다. 프로젝트의 중단을 강조하기 위해 신뢰도 측정항목을 게시하고 있습니다. 이 Codelab에서는 Google Cloud Platform에서 사용할 수 있는 다른 모든 알림 도구와 함께 이 Codelab에서 다룹니다.
기본 요건
- 스마트 홈 호환 기능을 통합해야 합니다.
- 스마트 홈 디버깅 Codelab 완료
학습할 내용
- 프로젝트의 성능 문제와 서비스 중단을 모니터링하는 방법
- 기준 기반 알림을 만들고 중단 시 알림을 받는 방법
- 프로젝트에 제공된 신뢰도 측정항목을 활용하여 서비스 중단을 감지하는 방법입니다.
2. 실적 모니터링
성능 모니터링은 Google 스마트 홈 생태계와의 성공적인 통합을 위해 매우 중요합니다. Google은 Google Cloud Platform에서 스마트 홈 개발자에게 일련의 모니터링 도구를 제공하고 있습니다. 이러한 도구를 사용하여 프로젝트 성능을 파악할 수 있습니다.
대시보드 액세스
데이터에 액세스하기 위한 첫 번째 단계는 Google Cloud 콘솔에 로그인하고 작업 > 모니터링 > 대시보드로 이동하여 Google Home 대시보드를 확인하는 것입니다. 다양한 대시보드를 사용할 수 있으며 스마트 홈 대시보드에는 Google Home Analytics라는 접두사가 붙습니다.
각 통합 유형을 나타내는 개별 대시보드를 만들었습니다. 클라우드, 로컬, Matter 통합에는 자체 대시보드가 있으며 카메라 스트리밍 프로토콜에 관한 데이터는 카메라 품질 대시보드에서 제공됩니다. 이 대시보드에는 요청을 처리하는 작동 중인 프로젝트와 함께 해당 유형의 통합이 있는 경우에만 데이터가 포함됩니다.
이러한 대시보드 중 하나를 열면 다음과 같은 뷰가 표시됩니다.
대시보드에는 프로젝트에서 처리한 요청의 세부정보를 보여주는 다양한 차트가 포함되어 있습니다. 모든 통합 대시보드에는 프로젝트에서 처리한 총 요청 수를 보여주는 차트, 해당 통합 유형의 성공률을 보여주는 차트, 관련된 기기 유형과 특성을 보여주는 여러 차트가 표시됩니다.
스마트 홈 작업의 실적을 평가하는 데 중요한 차트에는 세 가지가 있습니다.
서비스 중단 기간에는 일반적으로 성공률은 하락 추세를 보이고 오류 분석 차트에서는 상승 추세가 나타납니다. 실행 성공 비율을 모니터링하면 중단을 파악하는 데 도움이 되며, 오류 분류의 주요 오류를 살펴보면 디버깅에 도움이 될 수 있습니다. 또한 서비스 중단 중에 지연 시간이 증가하는 추세를 확인할 수 있는데, 이는 요청 지연 시간 차트에서 확인할 수 있습니다.
Google Home 애널리틱스 대시보드에 표시되는 차트가 포함된 기본 뷰는 스마트 홈 측정항목 데이터를 사용하여 프로젝트를 위해 만든 뷰일 뿐입니다. 측정항목 탐색기를 사용해 동일한 기본 측정항목으로 자체 차트를 만들고 커스텀 대시보드에 저장할 수도 있습니다.
측정항목 탐색기
측정항목 탐색기는 프로젝트 데이터 세트의 크로스 섹션을 시각화하는 도구입니다. Google Cloud 콘솔에서 작업 > 모니터링 > 측정항목 탐색기로 이동하여 이 도구에 액세스할 수 있습니다.
Google Cloud는 스마트 홈과 관련이 없는 측정항목을 포함하여 즉시 사용할 수 있는 다양한 측정항목을 제공합니다. 스마트 홈과 관련해 Google에서 제공하는 측정항목은 'actions.googleapis.com/smarthome_action/...' 리소스 아래에 표시되며 측정항목 선택 상자에 'smarthome'을 입력하여 쉽게 검색할 수 있습니다.
'스마트홈'을 검색하면 프로젝트에 제공되는 모든 스마트 홈 측정항목이 표시됩니다. 각 측정항목에 대한 자세한 내용은 문서의 Monitoring 및 Logging 페이지에서 확인할 수 있습니다.
프로젝트를 모니터링할 때 참조해야 할 가장 간단한 측정항목은 요청 수 측정항목 (델타 측정항목)입니다. 이 측정항목은 사용자가 시작한 각 스마트 홈 실행의 항목을 기록하고 기기 유형, 특성, 실행과 관련된 실행 유형, 결과를 보여주는 상태 필드와 같은 필드를 기록합니다.
이 측정항목을 선택하면 다음과 같은 각 데이터 버킷을 보여주는 화면이 표시됩니다.
기본적으로 이 측정항목에 있는 모든 데이터 라벨 조합에 대해 이전 시간 간격과 현재 시간 간격 사이의 변경사항 (델타)을 기록하는 버킷이 존재합니다. 이러한 버킷을 그룹화하거나 필터링하여 원하는 보기 데이터 슬라이스를 얻을 수 있습니다. 또한 데이터는 정렬 함수 (DELTA, MEAN, MEDIAN, SUM)를 사용하여 선택된 시간 간격에 맞춰 정렬됩니다. 달리 필요한 경우가 아니라면 일반적으로 델타 정렬을 델타 측정항목과 함께 사용합니다.
측정항목 탐색기를 사용하여 Google Home 애널리틱스 대시보드에서 제공되는 대부분의 차트를 만들고 나중에 맞춤 대시보드에 액세스할 수 있도록 차트를 저장할 수 있습니다. 비율 차트와 같은 보다 복잡한 뷰를 구현하려면 MQL(Monitoring Query Language)을 사용해야 합니다.
3. 성공 통계
통합 성공을 추적할 때 요청 수 측정항목에서 계산되는 성공률을 기준 지표로 사용하거나 보다 전문화된 접근 방식의 성공 신뢰도를 사용할 수 있습니다.
성공 률
성공률은 성공한 요청 수를 모든 요청으로 나누어 모든 통합에 대해 계산됩니다. Google Home 애널리틱스 대시보드의 처리 성공률 차트에서 확인할 수 있습니다.
처리 성공률 차트는 프로젝트의 성능을 모니터링하는 데 매우 유용하지만 커스텀 대시보드를 빌드하거나 알림을 설정할 때는 그다지 유용하지 않습니다. 성공률은 측정항목 자체가 아닌 요청 수 측정항목에서 파생되므로 두 기능 중 하나와 함께 사용하려면 측정항목 탐색기의 MQL (Monitoring Query Language)을 사용하여 다시 만들어야 합니다.
또한 프로젝트의 성능 저하를 추적하려면 훨씬 더 전문화된 접근 방식이 필요합니다. 이러한 이유로 Google에서는 현재의 처리 성공률이 이전 기준과 얼마나 차이가 나는지에 따라 변경되는 신뢰도 측정항목을 만들었습니다.
신뢰도 측정항목
서비스 중단은 프로젝트에 다양한 형태와 크기로 발생할 수 있습니다. 몇 시간에서 몇 분까지 지속될 수 있으므로 식별하기가 어려울 수 있습니다. 이를 위해 프로젝트에 과거 성능을 기반으로 신뢰성을 예측하는 정규화된 값을 제공하는 신뢰도 측정항목을 만들었습니다. 측정항목 탐색기에서 스마트홈을 검색한 다음 실행 성공 신뢰도를 선택하여 신뢰도 측정항목에 액세스할 수 있습니다.
스마트 홈 통합이 이전 실적 (7일 평균) 이상인 경우 이 측정항목은 최댓값 (1.0)을 출력합니다. 성공률이 표준 편차 4의 배수 이상으로 벗어날 경우 (7일에 걸쳐 계산됨) 이 측정항목은 최솟값 (0.0)을 출력합니다. 표준 편차가 너무 작은 경우 (2.5% 미만) 성공률은 10% 감소하고 표준 편차가 0.0으로 설정됩니다.
이 측정항목은 중간의 모든 사례에 대해 1.0 (서비스 중단이 없었음을 완벽하게 확신함)에서 0.0 (서비스 중단이 있음을 신뢰할 수 있는 최대값) 사이의 값을 제공합니다.
따라서 알림을 설정할 때 (다음 섹션에서 설명) 0.5 값을 기준으로 설정하는 것이 좋습니다. 이는 2개의 표준 편차 또는 5% 감소 중 더 높은 값에 해당합니다.
4. 알림 설정
다음 단계는 이전 섹션에서 배운 모든 내용을 활용하여 프로젝트에 대한 알림을 설정하는 것입니다.
알림 정책 만들기
Google Cloud Platform의 자동화된 알림은 알림 정책을 통해 설정됩니다. 사이드 메뉴의 작업 > 모니터링 > 알림 탭을 통해 알림 정책에 액세스할 수 있습니다. +정책 만들기 옵션을 선택하여 새 알림 정책을 만들 수 있습니다. 그러면 알림 정책 만들기 화면이 표시됩니다.
알림 정책 만들기는 세 부분으로 구성됩니다. 먼저 조건을 추가하여 추적할 항목을 결정해야 합니다. 조건 추가 버튼을 누르면 측정항목 탐색기와 유사한 창이 열리고 조건을 구성할 수 있는 컨트롤이 추가로 표시됩니다.
타겟의 경우 이전 섹션에서 다룬 신뢰도 측정항목을 선택합니다. 이 측정항목을 사용하여 정렬기가 델타로 설정되어 있는지 확인합니다 (고급 옵션 표시 > 정렬기). 다음 단계는 알림 조건을 구성하고 다음 설정을 사용하는 것입니다.
다음의 경우 조건 트리거 - 알림을 트리거할 시기를 결정하는 기본 구성입니다. 측정항목에 기준을 설정하고 값이 초과되는지 모니터링하기 때문에 시계열 위반을 선택하면 작동합니다.
조건 - 값이 기준점 아래로 떨어지면 알림이 트리거되도록 하므로 이 값을 다음과 같음으로 설정합니다. 측정항목에서 1.0은 통합이 잘 작동하고 있음을 의미하고 0.0은 확실한 중단을 나타냅니다.
임곗값 - 이 값을 0.5로 설정할 때 최상의 결과를 제공하기 위해 신뢰도 측정항목을 만들었습니다. 알림을 더 자주 받고 더 적은 이슈에 대한 알림을 받으려면 이 값을 높여보세요 (최대 1.0). 이후에 더 심각한 문제에 대해서만 알림을 덜 받으려면 이 값 (최소 0.0)을 줄여 보세요.
기간 - 알림을 받기 전에 서비스 중단이 지속되어야 하는 기간을 지정하는 설정입니다. 기준점을 초과하는 지점에 대해 알림을 받으려면 이 설정을 가장 최근 값으로 유지하는 것이 좋습니다. Google의 신뢰도 측정항목은 15분마다 게시되어 해당 기간의 평균 성공률을 보여줍니다.
조건 추가를 완료한 후 다음 단계는 알림 채널을 선택하는 것입니다. 가장 간단한 알림 방법은 이메일 알림입니다. 알림 채널 드롭다운에 나열된 이메일을 선택할 수 있습니다.
이슈 종료 시 알림 옵션을 선택하면 이슈가 종료된 것으로 표시될 때 또 다른 알림이 전송됩니다. 이 경우 기본적으로 7일로 지정된 이슈 자동 종료 기간도 선택해야 합니다.
마지막 단계는 알림에 이름을 지정하고 알림에 포함할 문서를 추가하는 것입니다.
문서를 제공하는 것이 좋으며, 특히 알림을 받는 대상이 아닌 경우 문서를 제공하는 것이 좋습니다. 이슈 발생 시 확인할 위치, 분류 및 디버깅 방법 등의 단계를 추가하면 서비스 중단 시 도움이 될 수 있습니다. 필요한 경우 문제 해결 가이드를 참고할 수 있습니다.
저장하면 알림 페이지의 정책 섹션에 알림 정책이 나열됩니다.
5. 서비스 중단 완화
알림을 설정하면 서비스 중단 시 제공된 알림 채널을 통해 알림을 받게 되며 알림 페이지에 이슈 항목이 생성됩니다.
알림 수신
이 Codelab에서 제공한 알림 채널은 이메일입니다. 설정한 후에는 중단이 발생하지 않는 알림이 표시되지 않을 수 있지만, 알림을 받으면 다음과 같이 표시됩니다.
알림 알림은 지정된 기준점을 초과하는 관찰된 값과 이슈가 처음 시작된 시점을 요약한 타임스탬프도 제공합니다.
이슈 모니터링
이슈가 발생하면 알림 페이지의 이슈 섹션에도 집계됩니다.
특정 이슈를 클릭하여 서비스 중단과 관련된 세부정보(예: 지속 시간 또는 심각도)를 확인할 수 있습니다.
알림을 받을 때 가장 좋은 첫 번째 단계는 측정항목을 검토한 다음 로그에서 서비스 중단의 원인이 된 오류를 검색하는 것입니다. 스마트 홈 디버깅 Codelab에서 방법을 복습할 수 있습니다.
6. 축하합니다
수고하셨습니다 프로젝트에 제공된 측정항목을 사용해 알림을 설정하여 자동화된 방식으로 서비스 중단을 모니터링하고 서비스 중단 시 알림을 받는 방법을 배웠습니다.
다음 단계
이 Codelab을 기반으로 다음 실습을 해 보고 추가 리소스를 살펴보세요.
- 이 Codelab에서 배운 내용을 프로젝트에 제공된 다른 측정항목과 결합할 수 있습니다. Monitoring 페이지의 지원되는 측정항목 섹션에서 사용 가능한 측정항목의 전체 목록을 확인할 수 있습니다.
- Google Cloud Platform 문서의 알림 옵션 페이지에 설명된 다른 유형의 알림 채널을 살펴봅니다.