자습서: Metrics Advisor에서 변칙 알림 사용

Important

2023년 9월 20일부터 새로운 Metrics Advisor 리소스를 만들 수 없습니다. Metrics Advisor 서비스는 2026년 10월 1일에 사용 중지됩니다.

이 자습서에서는 다음을 하는 방법을 알아볼 수 있습니다.

  • Metrics Advisor에서 후크 만들기
  • Azure Logic Apps를 사용하여 알림 보내기
  • Microsoft Teams에 알림 보내기
  • SMTP 서버를 통해 알림 보내기

필수 조건

Metrics Advisor 리소스 만들기

Metrics Advisor의 기능을 살펴보려면 Azure Portal에서 Metrics Advisor 리소스를 만들어 Metrics Advisor 인스턴스를 배포해야 할 수 있습니다.

Metrics Advisor에서 후크 만들기

Metrics Advisor의 후크는 고객이 메트릭 변칙을 구독하고 다양한 채널을 통해 알림을 보낼 수 있는 브리지입니다. Metrics Advisor의 후크에는 다음 4개 형식이 있습니다.

  • 이메일 후크
  • 웹후크
  • Teams 후크
  • Azure DevOps hook

각 후크 형식은 변칙 알림에 사용할 특정 채널에 해당합니다.

Azure Logic Apps, Teams 및 SMTP를 사용하여 알림 보내기

Azure Logic Apps를 사용하여 메일 알림 보내기

Metrics Advisor에서 지원되는 메일 알림을 보내는 일반적인 옵션에는 두 가지가 있습니다. 한 옵션은 웹후크 및 Azure Logic Apps를 사용하여 메일 경고를 보내는 것이고, 다른 옵션은 SMTP 서버를 설정하고 이를 사용하여 메일 경고를 직접 보내는 것입니다. 이 섹션에서는 사용 가능한 SMTP 서버가 없는 고객이 더 쉽게 사용할 수 있는 첫 번째 옵션에 중점을 둡니다.

1단계: Metrics Advisor에서 웹후크 만들기

웹후크는 Metrics Advisor 서비스에서 사용할 수 있는 모든 정보의 진입점으로, 경고가 트리거될 때 사용자가 제공한 API를 호출합니다. 모든 경고는 웹후크를 통해 보낼 수 있습니다.

Metrics Advisor 작업 영역에서 후크 탭을 선택하고 후크 만들기 단추를 선택합니다. 웹후크의 후크 형식을 선택합니다. 필수 매개 변수를 입력하고 확인을 선택합니다. 자세한 단계는 웹후크 만들기를 참조하세요.

작성해야 하는 엔드포인트의 추가 매개 변수가 하나 있습니다. 이 작업은 아래 3단계를 완료한 후 수행할 수 있습니다.

2단계: 사용량 논리 앱 리소스 만들기

Azure Portal에서 예제 사용량 논리 앱 워크플로 만들기의 지침에 따라 빈 워크플로를 사용하여 소비 논리 앱 리소스를 만듭니다. 워크플로 디자이너가 열리면 이 자습서로 돌아갑니다.

3단계:HTTP 요청을 수신한 경우의 트리거 추가

  • Azure Logic Apps는 다양한 작업을 사용하여 정의된 워크플로를 트리거합니다. 이 사용 사례의 경우 HTTP 요청을 수신한 경우라는 트리거를 사용합니다.

  • HTTP 요청을 수신한 경우 대화 상자에서 샘플 페이로드를 사용하여 스키마 생성을 선택합니다.

    Screenshot that shows the When an HTTP request dialog box and the Use sample payload to generate schema option selected.

    다음 샘플 JSON을 텍스트 상자에 복사하고, 완료를 선택합니다.

    {
    "properties": {
        "value": {
            "items": {
                "properties": {
                    "alertInfo": {
                        "properties": {
                            "alertId": {
                                "type": "string"
                            },
                            "anomalyAlertingConfigurationId": {
                                "type": "string"
                            },
                            "createdTime": {
                                "type": "string"
                            },
                            "modifiedTime": {
                                "type": "string"
                            },
                            "timestamp": {
                                "type": "string"
                            }
                        },
                        "type": "object"
                    },
                    "alertType": {
                        "type": "string"
                    },
                    "callBackUrl": {
                        "type": "string"
                    },
                    "hookId": {
                        "type": "string"
                    }
                },
                "required": [
                    "hookId",
                    "alertType",
                    "alertInfo",
                    "callBackUrl"
                ],
                "type": "object"
            },
            "type": "array"
        }
    },
    "type": "object"
     }
    
  • 메서드를 ‘POST’로 선택하고 저장을 선택합니다. 이제 HTTP 요청 트리거의 URL을 볼 수 있습니다. 복사 아이콘을 선택하여 복사하고 1단계의 엔드포인트에서 다시 입력합니다.

    Screenshot that highlights the copy icon to copy the URL of your HTTP request trigger.

4단계: ‘HTTP’ 작업을 사용하여 다음 단계 추가

웹후크를 통해 푸시되는 신호에는 타임스탬프, 경고 ID, 구성 ID 등과 같은 제한된 정보만 포함됩니다. 자세한 내용은 신호에 제공된 콜백 URL을 사용하여 쿼리해야 합니다. 이 단계는 자세한 경고 정보를 쿼리하는 것입니다.

  • ‘GET’의 메서드 선택

  • ‘URI’의 ‘동적 콘텐츠’ 목록에서 ‘callBackURL’을 선택합니다.

  • ‘헤더’에 ‘Content-Type’ 키를 입력하고 ‘application/json’ 값을 입력합니다.

  • ‘헤더’에 ‘x-api-key’ 키를 입력하고 Metrics Advisor 작업 영역에서 ‘API 키’ 탭을 클릭하여 이 키를 가져옵니다. 이 단계는 워크플로에 API 호출에 대한 충분한 권한이 있는지 확인하는 것입니다.

    Screenshot that highlights the api-keys

5단계: ‘JSON 구문 분석’에 다음 단계 추가

메일 콘텐츠의 형식을 더 쉽게 지정하려면 API의 응답을 구문 분석해야 합니다.

참고 항목

이 자습서에서는 빠른 예제만 공유합니다. 최종 메일 형식을 추가로 디자인해야 합니다.

  • ‘콘텐츠’의 ‘동적 콘텐츠’ 목록에서 ‘Body’를 선택합니다.
  • 샘플 페이로드를 사용하여 스키마 생성을 선택합니다. 다음 샘플 JSON을 텍스트 상자에 복사하고, 완료를 선택합니다.
{
    "properties": {
        "@@nextLink": {},
        "value": {
            "items": {
                "properties": {
                    "properties": {
                        "properties": {
                            "IncidentSeverity": {
                                "type": "string"
                            },
                            "IncidentStatus": {
                                "type": "string"
                            }
                        },
                        "type": "object"
                    },
                    "rootNode": {
                        "properties": {
                            "createdTime": {
                                "type": "string"
                            },
                            "detectConfigGuid": {
                                "type": "string"
                            },
                            "dimensions": {
                                "properties": {
                                },
                                "type": "object"
                            },
                            "metricGuid": {
                                "type": "string"
                            },
                            "modifiedTime": {
                                "type": "string"
                            },
                            "properties": {
                                "properties": {
                                    "AnomalySeverity": {
                                        "type": "string"
                                    },
                                    "ExpectedValue": {}
                                },
                                "type": "object"
                            },
                            "seriesId": {
                                "type": "string"
                            },
                            "timestamp": {
                                "type": "string"
                            },
                            "value": {
                                "type": "number"
                            }
                        },
                        "type": "object"
                    }
                },
                "required": [
                    "rootNode",
                    "properties"
                ],
                "type": "object"
            },
            "type": "array"
        }
    },
    "type": "object"
}

6단계: ‘HTML 테이블 만들기’에 다음 단계 추가

많은 정보가 API 호출에서 반환되었지만 시나리오에 따라 일부 정보는 유용하지 않을 수 있습니다. 관심을 가지고 경고 메일에 포함하려는 항목을 선택합니다.

다음은 경고 메일에 포함할 ‘timestamp’, ‘metricGUID’ 및 ‘dimension’을 선택하는 HTML 테이블 예제입니다.

Screenshot of html table example

7단계: ‘메일 보내기’에 마지막 단계 추가

Microsoft 호스팅 제품과 타사 제품에 관한 메일을 둘 다 보내는 여러 가지 옵션이 있습니다. 고객은 선택한 옵션에 대한 테넌트/계정이 있어야 할 수 있습니다. 예를 들어, 서버로 ‘Office 365 Outlook’을 선택하는 경우입니다. 연결 및 권한 부여를 빌드하기 위해 로그인 프로세스가 펌프됩니다. 메일 서버를 사용하여 경고를 보내도록 API 연결이 설정됩니다.

메일에 ‘본문’, ‘제목’에 포함하려는 콘텐츠를 입력하고 ‘받는 사람’에 메일 주소를 입력합니다.

Screenshot of send an email

다음 단계

다음 문서로 이동하여 만드는 방법을 알아봅니다.