2.8 KiB
2.8 KiB
Grafana 알림 리포터
Grafana, Prometheus, Loki 등에서 수집된 데이터를 기반으로 주기적인 요약 리포트를 생성하고 Mattermost로 전송하는 파이썬 기반 도구입니다.
주요 기능
- 데이터 소스 연동: Grafana, Prometheus, Loki 데이터 소스에서 직접 데이터를 조회합니다.
- 자동 리포트 생성: 지정된 Grafana 대시보드의 패널 쿼리를 실행하여 데이터를 요약하고 리포트를 생성합니다.
- 다양한 출력 형식: 텍스트(Text) 및 테이블(Table) 형식의 리포트를 지원합니다.
- Mattermost 통합: 생성된 리포트를 지정된 Mattermost 웹훅을 통해 자동으로 전송합니다.
- 유연한 설정:
.env파일을 통해 Grafana URL, API 키, 대시보드 UID 등의 설정을 쉽게 변경할 수 있습니다.
프로젝트 구조
.
├── src/
│ ├── clients/ # Grafana, Loki, Prometheus API 클라이언트
│ ├── services/ # 리포트 생성, 데이터 요약 등 핵심 비즈니스 로직
│ ├── setting/ # 환경 변수 및 설정 관리
│ ├── utils/ # 시간 처리 등 유틸리티 함수
│ ├── report_table.py # 테이블 형식 리포트 생성 스크립트
│ └── report_text.py # 텍스트 형식 리포트 생성 스크립트
├── run_table.sh # 테이블 리포트 실행 스크립트
├── run_text.sh # 텍스트 리포트 실행 스크립트
├── requirements.txt # 프로젝트 의존성
└── .env.example # 환경 변수 설정 예시 파일
시작하기
1. 사전 요구사항
- Docker
- Docker Compose
2. 설정
저장소 복제
git clone <repository_url> cd grafana_alerts환경 변수 설정
.env.example파일을 복사하여.env파일을 생성하고, 파일 내의 변수들을 실제 환경에 맞게 수정합니다.cp .env.example .envGRAFANA_URL: 사용하는 Grafana 인스턴스의 URLGRAFANA_API_KEY: Grafana API에 접근하기 위한 API 키 (Viewer 역할 이상)GRAFANA_DASHBOARD_UID: 리포트를 생성할 대상 대시보드의 UIDMATTERMOST_WEBHOOK: 리포트를 전송할 Mattermost 채널의 Incoming Webhook URL
Docker 이미지 빌드
docker compose build
3. 사용법
리포트를 생성하고 Mattermost로 전송하려면 아래의
docker compose run 명령어를 사용합니다.
텍스트 형식 리포트 생성
docker compose run --rm reporter ./run_text.sh테이블 형식 리포트 생성
docker-compose run --rm reporter ./run_table.sh
--rm 플래그는 스크립트 실행 후 컨테이너를 자동으로
삭제하는 역할을 합니다.