모니터링, 이제 알람 뿐만 아니라 분석도 자동화 된
카테고리
인프라/DevOps/보안
서브카테고리
DevOps
대상자
DevOps 엔지니어, SRE(Site Reliability Engineer), 시스템 운영자
난이도: 중간 (알람 시스템과 API 연동 이해 필요)
핵심 요약
- Ssangpong은 Slack 알람 발생 시 Bedrock Agent를 통해 자동 분석 및 요약된 해결 방안 제공
- Advisor-Collector-Supervisor 세 가지 에이전트로 구성, 분석 대상 지표와 시간 범위를 정확히 추출
- 시간 처리 가이드라인으로 UTC+9 기준의 상대적 시간을 ISO 8601 포맷으로 변환, 분석 정확성 확보
섹션별 세부 요약
###1. Ssangpong의 구조 및 목적
- Datadog CRD를 사용해 애플리케이션 워크로드와 연동한 차트 구성을 기반으로 알람 발생
- Slack 이벤트를 Lambda로 처리해 SQS에 메시지 발행, Bedrock Agent 호출
- Bedrock Agent는 문제 원인 파악, 데이터 수집, 요약 분석을 담당
###2. Bedrock Agent 구성
- Advisor: 분석 대상 지표, 시간 범위, 조건을 설정 (예: CPU 사용량 1시간 전후 5분간 메트릭)
- Collector: Advisor의 지표 쿼리로 메트릭 수집, 데이터 압축/요약 처리
- Supervisor: 요약 정보를 분석해 원인 파악, Slack 가시성 높이기 위한 JSON 포맷 변환
###3. 시간 처리 가이드라인
- 상대적 시간 표현 (예: "어제 1시")을 UTC+9 기준으로 ISO 8601 포맷으로 변환
GET::current_datetime
과GET::convert_datetime
툴을 사용해 타임존 일관성 유지
###4. API pagination 처리
cursor
파라미터로 페이지네이션 처리,has_next
값이 true일 경우 최대 10회 반복- 데이터가 충분할 경우에도 반복 종료 금지
###5. Datadog Profile 수집 예시
- Datadog의
/api/unstable
엔드포인트를 사용해 profile 직접 다운로드 - Python 예제 코드에서
requests
와zipfile
모듈 사용,from
/to
시간 범위 설정
###6. 주의사항 및 제한
- Datadog의 Profile API는 불안정하며,
/api/unstable
엔드포인트 사용 필요 - Bedrock Agent는 시간 처리 시 오류 가능성, 별도 가이드라인 적용 권장
결론
- Ssangpong은 외부에서도 알람의 원인 및 중요도를 자동 분석해 DevOps 팀의 대응 효율성을 높임
- 시간 처리 가이드라인과 API pagination 로직을 반드시 적용해 데이터 정확성과 시스템 안정성 확보
- Datadog의 불안정한 API를 대체하기 위해
datadog-pgo
프로젝트의 직접 다운로드 기능 활용 권장