1. 시작하기 전에
스마트 홈 디버깅 Codelab에서 학습한 대로 스마트 홈 프로젝트에 측정항목과 로그를 게시합니다. 측정항목은 스마트 홈 작업에 문제가 있는 위치를 확인하는 데 도움이 되며, 로그는 이러한 문제를 해결하기 위해 자세히 살펴보는 데 유용합니다.

프로젝트에 제공된 측정항목을 사용하여 알림을 설정하여 자동화된 방식으로 서비스 중단을 모니터링하고 서비스 중단 시 알림을 받을 수 있습니다. Google Cloud에서 사용할 수 있는 다른 모든 알림 도구와 함께 이 Codelab에서 다룰 프로젝트의 중단을 강조하기 위해 신뢰도 측정항목을 게시합니다.
기본 요건
- 스마트 홈 호환 기능 통합이 있어야 합니다.
- 스마트 홈 디버깅 Codelab을 완료합니다.
학습할 내용
- 프로젝트에서 성능 문제 및 서비스 중단을 모니터링하는 방법
- 기준점 기반 알림을 만들고 중단 중에 알림을 받는 방법
- 프로젝트에 제공된 신뢰도 측정항목을 활용하여 서비스 중단을 감지하는 방법
2. 실적 모니터링
성능 모니터링은 Google Home 생태계와의 성공적인 통합에 매우 중요합니다. Google에서는 Google Cloud의 스마트 홈 개발자에게 모니터링 도구 세트를 제공하고 있습니다. 이러한 도구를 사용하여 프로젝트의 실적을 파악할 수 있습니다.
대시보드 액세스
데이터에 액세스하려면 먼저 Google Cloud 콘솔에 로그인하고 작업 > 모니터링 > 대시보드로 이동하여 Google Home 대시보드를 확인해야 합니다. 사용 가능한 대시보드가 여러 개 있으며 스마트 홈 대시보드에는 Google Home 분석이라는 접두사가 붙어 있습니다.

각 통합 유형을 나타내는 개별 대시보드가 생성되었습니다. 클라우드, 로컬, Matter 통합에는 자체 대시보드가 있으며 카메라 스트리밍 프로토콜의 데이터는 카메라 품질 대시보드에 제공됩니다. 이러한 대시보드에는 요청을 충족하는 작동하는 프로젝트와 함께 해당 유형의 통합이 있는 경우에만 데이터가 포함됩니다.
이러한 대시보드 중 하나를 열면 다음과 같은 뷰가 표시됩니다.

대시보드에는 프로젝트에서 처리한 요청의 세부정보를 보여주는 다양한 차트가 포함되어 있습니다. 모든 통합 대시보드에는 프로젝트에서 처리한 총 요청 수를 보여주는 차트, 해당 통합 유형의 성공률을 보여주는 차트, 관련 기기 유형과 특성을 보여주는 여러 차트가 표시됩니다.
스마트 홈 작업의 실적을 평가하는 데 중요한 세 가지 차트가 있습니다.

서비스 중단 중에는 일반적으로 성공률이 감소하고 오류 분류 차트가 증가합니다. 실행 성공률을 모니터링하면 서비스 중단을 파악할 수 있으며, 오류 분석에서 상위 오류를 살펴보면 디버깅에 도움이 됩니다. 또한 요청 지연 시간 차트에서 확인할 수 있듯이 서비스 중단 중에 지연 시간이 증가하는 추세를 보일 수도 있습니다.
Google Home 애널리틱스 대시보드에 차트와 함께 표시되는 기본 뷰는 스마트 홈 측정항목 데이터를 사용하여 프로젝트를 위해 Google에서 만든 뷰일 뿐입니다. 측정항목 탐색기를 사용하여 동일한 기본 측정항목으로 자체 차트를 만들어 커스텀 대시보드에 저장할 수도 있습니다.
측정항목 탐색기
측정항목 탐색기는 프로젝트 데이터 세트의 단면을 시각화하는 도구입니다. 이 도구는 Google Cloud 콘솔에서 작업 > 모니터링 > 측정항목 탐색기로 이동하여 액세스할 수 있습니다.
Google Cloud는 스마트 홈과 관련이 없는 측정항목을 포함하여 다양한 측정항목을 기본적으로 제공합니다. 스마트 홈에 제공되는 측정항목은 'actions.googleapis.com/smarthome_action/...' 리소스 아래에 나열되어 있으며, 측정항목 선택 상자에 'smarthome'을 입력하면 쉽게 검색할 수 있습니다.

'smarthome'을 검색하면 프로젝트에 제공되는 모든 스마트 홈 측정항목이 표시됩니다. 문서의 Monitoring 및 Logging 페이지에서 각 측정항목에 관한 자세한 정보를 확인할 수 있습니다.
프로젝트를 모니터링할 때 참조할 수 있는 가장 간단한 측정항목은 요청 수 측정항목 (델타 측정항목)입니다. 이 측정항목은 사용자가 시작한 각 스마트 홈 실행의 항목을 기록하고, 실행과 관련된 기기 유형, 특성, 실행 유형, 결과를 보여주는 상태 필드와 같은 필드를 기록합니다.
이 측정항목을 선택하면 다음과 같이 각 데이터 버킷을 보여주는 화면이 표시됩니다.

기본적으로 이 측정항목에 있는 모든 데이터 라벨 조합에 대해 이전 시간 간격과 현재 시간 간격 간의 변경사항 (델타)을 기록하는 버킷이 있습니다. 이러한 버킷을 그룹화하거나 필터링하여 원하는 보기 데이터 슬라이스를 얻을 수 있습니다. 또한 데이터는 정렬 함수 (DELTA, MEAN, MEDIAN, SUM)를 사용하여 선택한 시간 간격으로 정렬됩니다. 별도로 필요하지 않은 경우 일반적으로 델타 측정항목과 함께 델타 정렬을 사용합니다.
측정항목 탐색기를 사용하여 Google Home 분석 대시보드에서 사용할 수 있는 대부분의 차트를 만들고 나중에 액세스할 수 있도록 커스텀 대시보드에 차트를 저장할 수 있습니다. 비율 차트와 같은 더 복잡한 뷰를 만들려면 MQL(Monitoring 쿼리 언어)을 사용해야 합니다.
3. 성공 통계
통합 성공 여부를 추적할 때는 요청 수 측정항목에서 계산된 성공률을 기준 지표로 사용하거나, 더 전문적인 접근 방식을 위해 성공 신뢰도를 사용할 수 있습니다.
성공률
성공률은 모든 요청에 대한 성공한 요청 수를 모든 통합으로 나눈 값으로 계산됩니다. Google Home 분석 대시보드의 주문 처리 성공률 차트에서 액세스할 수 있습니다.

이행 성공률 차트는 프로젝트의 실적을 모니터링하는 데 매우 유용하지만 맞춤 대시보드를 빌드하거나 알림을 설정할 때는 유용하지 않습니다. 성공률은 요청 수 측정항목에서 파생되며 자체 측정항목이 아니므로, 이 기능을 사용하려면 측정항목 탐색기에서 MQL (Monitoring 쿼리 언어)을 사용하여 다시 만들어야 합니다.
또한 프로젝트의 성능 중단을 추적하려면 훨씬 더 전문적인 접근 방식이 필요하다고 생각합니다. 따라서 현재 주문 처리 성공률이 과거 표준에서 얼마나 벗어나는지에 따라 달라지는 신뢰도 측정항목을 만들었습니다.
신뢰도 측정항목
프로젝트의 중단은 다양한 모양과 크기로 발생할 수 있습니다. 몇 시간에서 몇 분까지 지속될 수 있으므로 식별하기가 어려울 수 있습니다. 이를 위해 프로젝트에 신뢰도 측정항목이 생성되었습니다. 이 측정항목은 과거 실적을 기반으로 신뢰도를 예측하기 위한 정규화된 값을 제공합니다. 측정항목 탐색기에서 smarthome을 검색한 다음 실행 성공 신뢰도를 선택하여 신뢰도 측정항목에 액세스할 수 있습니다.

스마트 홈 통합이 이전 실적 (7일 평균) 이상으로 실행되면 이 측정항목은 최대값 (1.0)을 출력합니다. 성공률이 4 표준 편차 (7일 동안 계산됨) 이상 벗어나면 이 측정항목은 최솟값 (0.0)을 출력합니다. 표준 편차가 너무 작은 경우 (2.5% 미만) 이 측정항목은 성공률이 10% 감소한 지점을 0.0 값으로 간주합니다.
그 사이의 모든 경우에 이 측정항목은 1.0 (서비스 중단이 없다고 완전히 확신함)과 0.0 (서비스 중단이 있다고 완전히 확신함) 사이의 값을 제공합니다.
따라서 알림을 설정할 때 (다음 섹션에서 설명) 0.5 값을 기준점으로 사용하는 것이 좋습니다. 이는 표준 편차 2 또는 5% 감소 중 높은 값에 해당합니다.
4. 알림 설정
다음 단계는 이전 섹션에서 배운 모든 내용을 사용하여 프로젝트에 알림을 설정하는 것입니다.
알림 정책 만들기
Google Cloud의 자동 알림은 알림 정책을 통해 설정됩니다. 사이드 메뉴의 작업 > 모니터링 > 알림 탭을 통해 알림 정책에 액세스할 수 있습니다. +정책 만들기 옵션을 선택하여 새 알림 정책을 만들 수 있습니다. 그러면 알림 정책 만들기 화면이 표시됩니다.

알림 정책을 만드는 데는 세 가지 부분이 있습니다. 먼저 조건을 추가하여 추적할 항목을 결정해야 합니다. 조건 추가 버튼을 누르면 측정항목 탐색기와 유사한 창이 표시되며, 조건을 구성하기 위한 몇 가지 추가 컨트롤이 표시됩니다.

타겟의 경우 이전 섹션에서 다룬 신뢰도 측정항목을 선택합니다. 이 측정항목을 사용하여 정렬기가 델타로 설정되어 있는지 확인합니다 (고급 옵션 표시 > 정렬기). 다음 단계는 알림 조건을 구성하고 다음 설정을 사용하는 것입니다.

다음의 경우 조건이 트리거됨 - 알림을 트리거할 시기를 결정하는 기본 구성입니다. 측정항목에 임곗값을 설정하고 값이 교차하는지 모니터링할 것이므로 임의 시계열 위반을 선택하면 됩니다.
조건 - 값이 기준값 아래로 떨어지면 알림이 트리거되도록 하므로 아래로 설정합니다. Google 측정항목에서 1.0은 통합이 제대로 작동하고 있음을 의미하며 0.0은 확실한 서비스 중단을 나타냅니다.
기준 - 이 값이 0.5로 설정될 때 최상의 결과를 제공하도록 신뢰도 측정항목이 생성되었습니다. 알림을 더 자주 받고 사소한 문제에 대한 알림을 받으려면 이 값을 늘려 보세요 (최대 1.0). 이후 더 심각한 문제에 대해서만 알림을 받으려면 이 값을 줄여 보세요 (최소 0.0).
For - 알림을 받기 전에 서비스 중단이 지속되어야 하는 시간을 식별하는 설정입니다. 기준점을 교차하는 지점에 대한 알림을 받으려면 이 설정을 최근 값으로 유지하는 것이 좋습니다. 신뢰도 측정항목은 15분마다 게시되며, 해당 기간의 평균 성공률을 살펴봅니다.
조건 추가를 완료하면 다음 단계는 알림 채널을 선택하는 것입니다. 가장 간단한 알림 방법은 이메일 알림입니다. 알림 채널 드롭다운에 나열된 이메일을 선택할 수 있습니다.

이슈 종료 시 알림 옵션을 선택하면 이슈가 종료로 표시된 후 다른 알림이 전송됩니다. 이 경우 사고 자동 종료 기간도 선택해야 하며, 기본적으로 7일로 지정됩니다.
마지막 단계는 알림에 이름을 지정하고 알림에 포함할 문서를 추가하는 것입니다.

특히 알림을 받지 않는 경우 문서를 제공하는 것이 좋습니다. 사고 발생 시 확인할 위치와 트리아지 및 디버그 방법을 단계별로 추가하면 서비스 중단 시 도움이 될 수 있습니다. 필요한 경우 문제 해결 가이드를 참고하세요.
저장되면 알림 페이지의 정책 섹션에 알림 정책이 표시됩니다.

5. 서비스 중단 완화
알림을 설정하면 장애가 발생할 때 제공한 알림 채널을 통해 알림이 전송되며 알림 페이지에 사고 항목이 생성됩니다.
알림 수신
이 Codelab에서 제공한 알림 채널은 이메일입니다. 설정하면 알림이 표시되지 않기를 바라지만 (서비스 중단이 없기를 바라지만) 알림이 표시되면 다음과 같이 표시됩니다.

알림 알림에는 지정한 기준을 초과한 관측값과 이슈가 처음 시작된 시점을 나타내는 타임스탬프가 제공됩니다.
모니터링 이슈
문제가 발생하면 알림 페이지의 문제 섹션에도 문제가 집계됩니다.

특정 인시던트를 클릭하여 다운타임이 얼마나 지속되었는지, 얼마나 심각했는지 등 다운타임에 관한 세부정보를 확인할 수 있습니다.
알림을 받으면 가장 먼저 측정항목을 살펴보고 로그에서 서비스 중단에 기여하는 오류를 검색하는 것이 좋습니다. 이러한 작업을 수행하는 방법은 스마트 홈 디버깅 Codelab에서 다시 확인할 수 있습니다.
6. 축하합니다

축하합니다. 프로젝트에 제공된 측정항목을 사용하여 자동으로 중단 상태를 모니터링하고 서비스 중단 시 알림을 받는 알림을 설정하는 방법을 알아봤습니다.
다음 단계
이 Codelab을 기반으로 다음 실습을 해 보고 추가 리소스를 살펴보세요.