dde582e5af6ba9b14d52b7744755d3c69fd9b82b
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. 설정
저장소 복제
환경 변수 설정
.env.example파일을 복사하여.env파일을 생성하고, 파일 내의 변수들을 실제 환경에 맞게 수정합니다.GRAFANA_URL: 사용하는 Grafana 인스턴스의 URLGRAFANA_API_KEY: Grafana API에 접근하기 위한 API 키 (Viewer 역할 이상)GRAFANA_DASHBOARD_UID: 리포트를 생성할 대상 대시보드의 UIDMATTERMOST_WEBHOOK: 리포트를 전송할 Mattermost 채널의 Incoming Webhook URL
Docker 이미지 빌드
3. 사용법
리포트를 생성하고 Mattermost로 전송하려면 아래의
docker compose run 명령어를 사용합니다.
텍스트 형식 리포트 생성
테이블 형식 리포트 생성
--rm 플래그는 스크립트 실행 후 컨테이너를 자동으로
삭제하는 역할을 합니다.
Description
Languages
Python
95.5%
Shell
3.1%
Dockerfile
1.4%