Flower
목차
Flower?
Flower는 Celery 클러스터의 상태를 모니터링하고 실시간으로 통계 및 메트릭을 제공하는 모니터링 및 관리 도구다.
시스템의 작업 상태, 작업 속도 및 성능 등을 웹 기반 사용자 인터페이스를 제공하여 시각적으로 파악할 수 있다.
Flower를 통해서 크게 5가지 정도를 확인하는 것 같다.
- Celery 클러스터의 작업 실행 상태 모니터링
- 작업 대기열의 큐 상태 모니터링
- 작업 실행 속도 및 성능 모니터링
- 실시간 작업 그래프 및 통계 제공
- 웹 기반 대시보드를 통한 시각화된 작업 관리
Flower 설치
pip install flower
로 설치하면 된다.
Flower Daemon
/etc/systemd/system/celery_flower.service
파일을 생성한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=Celery Flower Service
After=network.target
[Service]
Type=simple
User=juhopark
WorkingDirectory=디렉토리
ExecStart=디렉토리/celery -A celery_app flower --address=localhost --port=5555 --broker=redis://:{redis-password}@localhost:6379/0 --broker_api=redis://:{redis-password}@localhost:6379/0 --basic_auth={user_id}:{user_password}
Restart=on-failure
[Install]
WantedBy=multi-user.target
시스템 등록
1
2
3
sudo systemctl daemon-reload
sudo systemctl enable celery_flower
sudo systemctl start celery_flower
동작 확인
sudo service celery_flower status
Flower 실행 확인
http://localhost:5555
로 접속해서 설정한 user_id와 user_password를 입력하여
웹 페이지에 정상적으로 접속되는 것을 확인하면 된다.
Flower Web 설명
1) Dashboard
모든 Worker의 상태를 실시간으로 확인할 수 있음
- [Worker Name] - celery name@host name으로 worker 이름이 표기
- [Active] - 현재 실행중인 task의 수
- [Processed] - 현재까지 실행된 모든 task의 수
- [Failed] - 현재까지 실행에 실패한 모든 task의 수
- [Succeeded] - 현재까지 실행에 성공한 모든 task의 수
- [Retried] - 재실행 중인 모든 task의 수
- [Load Average] - 시스템 평균 부하
2) Tasks
Task의 자세한 정보들을 확인할 수 있음
- [Name] - 어떠한 task를 실행했는지 확인할 수 있음
- [UUID] - task id를 클릭하면 해당 task의 상세 정보를 확인할 수 있고, 완료되기전이라면 중단시킬 수 있음
- [State] - 해당 task의 state 값을 표기
- [args, kwargs] - task에 사용된 arguments, keyword arguments 확인할 수 있음
- [Result] - task의 실행결과로 반환된 값
- [Started] - task가 실행된 시간
- [Runtime] - task가 종료되기까지의 소요 시간
- [Worker] - 해당 task를 실행한 worker에 대한 정보를 확인할 수 있음
3) Broker
Queue에 대한 정보 확인할 수 있음
- [Messages] - 받은 tasks의 수
- [Unacked] - Celery가 Message를 받았는지에 대한 응답 건수
- [Ready] - 대기중인 Message의 수
- [Consumers] - Queue에 접속해있는 Worker의 수
- [Idle Since] - 마지막으로 집계된 시간
4) Monitor
Task의 수행 상태(성공, 실패), 소요 시간, Queue에 적재된 task의 수를 그래프로 확인할 수 있음
Flower API
API 기능이 많아서 하나씩 설명하기는 어렵고
Flower에서 내용을 확인해보고
필요한 내용을 직접 사용해보면 될 것 같음