Skip to content

mc-observability v0.4.2 Trigger/Event Handler API usage scenarios #181

@suahlingo

Description

@suahlingo

트리거 및 알람 설정 API Swagger & 사용 시나리오

Swagger 문서: mc-observability-swagger

하단 링크 참고:

트리거 관련 기능은 아래와 같습니다.

  1. 트리거 정책 설정
  2. 트리거 대상 설정
  3. 트리거 이벤트 핸들러 설정 (Email, Slack, SMS, 카카오톡)
  4. 트리거 히스토리 조회
  5. 트리거 히스토리에 대한 코멘트 설정

사전 설정

트리거 알람 기능을 사용하기 위해서는 각 채널 별로 사전 설정 후 서비스를 실행해야 합니다.

Slack (무료)

Slack 알람을 받기 위해서는 다음 사항을 사전에 준비해야 합니다:

  • Workspace 생성
  • Channel 생성
  • Bot user OAuth token 생성 및 적용

상세 가이드: Slack User Guide

Email (무료 (제한적))

Email 알람을 받기 위해서는 SMTP 서버 정보가 필요합니다:

  • Google SMTP 계정 가입 및 앱 비밀번호 생성
  • SMTP 서버 정보 입력 (호스트, 포트, 인증 정보)

KakaoTalk / SMS (유료)

KakaoTalk 및 SMS 알람을 받기 위해서는 Naver Cloud Platform(NCP) 서비스 가입이 필요합니다:

  • NCP Simple & Easy Notification Service (SENS) 가입
  • 발신번호 등록 및 인증
  • API 인증 정보 입력
  • (Kakao Talk) 채널 생성 & 채널 친구 추가

상세 가이드: NCP SENS 가이드


계정 정보 설정

위에서 설정한 각 채널별 계정 정보를 서비스 실행 전에 config/manager/.env 파일의 Notification 영역에 입력해야 알람 발송이 가능합니다.


개발 및 테스트 과정에서 테스트 계정이 필요하신 경우, 개별 문의 또는 이슈 댓글로 요청해 주시면 제공해 드리겠습니다.


트리거 시나리오

1. 장애 알람 정책 설정 [CreateTriggerPolicy]

a. 트리거 정책 설정 가능 대상 : CPU, MEMORY, DISK
b. 트리거 정책 설정 시 threshold 형식

Request Body 예시:

{
  "title": "string",
  "description": "string",
  "thresholdCondition": {
    "info": 70,     # 각 level별 임계치 설정 
    "warning": 80,  
    "critical": 90
  },
  "resourceType": "CPU", # 트리거 정책 대상 설정 
  "aggregationType": "MAX", # 집계 방식 (MIN, MAX, AVG, LAST)
  "holdDuration": "0s", # 알림 발생 전 임계치 조건을 유지해야하는 최소 시간 
  "repeatInterval": "1h" # 알림 재발송 대기 시간 
}

2. 장애 알람 대상 설정 [AddTriggerVM]

a. agent-manager를 통해 등록된 monitoring target의 nsId와 id를 사용하여 정책에 알람 대상 추가
b. 알람 범위를 설정하는 targetScop값이 mci인지 vm인지에 따라 targetId값을 입력

Request Body 예시:

{
  "namespaceId": "ns01",
  "targetScope": "vm",        # [vm, mci]
  "targetId": "vm-1"
}

3. 알람 수신 사용자 설정 [UpdateTriggerPolicyNotificationChannels]

지원 이벤트 핸들러:
email, slack, kakao, sms

Request Body 예시:

[
  {
    "channelName": "kakao",
    "recipients": [
      "01012345678"
    ]
  },
  {
    "channelName": "sms",
    "recipients": [
      "01012345678"
    ]
  },
  {
    "channelName": "email",
    "recipients": [
      "admin@example.com"
    ]
  },
  {
    "channelName": "slack",
    "recipients": [
      "C09GRESEF"
    ]
  }
]

recipients 작성 규칙:

  • kakao, sms: 휴대폰 번호를 010으로 시작하며 - 없이 숫자만 입력 (예: 01012345678)
  • email: 이메일 주소 입력
  • slack: 사전 설정된 워크스페이스의 특정 채널 ID 입력 (예: C09GRESEF)

4. 트리거 이벤트 히스토리 조회 및 관리

a. 히스토리 조회 [GetPaginatedTriggerHistories] : 설정된 장애 알람 정책에 따라 이벤트 발생 시 히스토리가 기록되며 조회할 수 있습니다.
b. 히스토리 코멘트 설정 [UpdateTriggerHistoryComment] : 발생한 알람 히스토리에 대한 처리 내용이나 메모를 기록할 수 있습니다.

Request Body 예시:

{
  "comment": "이슈 확인 완료 - 임시 트래픽 증가로 인한 알람"
}

알람 수신 예시

Email 알람

Slack 알람

SMS 알람

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions