포스트

Flower

목차

  1. Flower?
  2. Flower 설치
  3. Flower Daemon
  4. Flower 실행 확인
  5. Flower Web 설명
  6. Flower API

Flower?

Flower는 Celery 클러스터의 상태를 모니터링하고 실시간으로 통계 및 메트릭을 제공하는 모니터링 및 관리 도구다.
시스템의 작업 상태, 작업 속도 및 성능 등을 웹 기반 사용자 인터페이스를 제공하여 시각적으로 파악할 수 있다.
Flower를 통해서 크게 5가지 정도를 확인하는 것 같다.

  1. Celery 클러스터의 작업 실행 상태 모니터링
  2. 작업 대기열의 큐 상태 모니터링
  3. 작업 실행 속도 및 성능 모니터링
  4. 실시간 작업 그래프 및 통계 제공
  5. 웹 기반 대시보드를 통한 시각화된 작업 관리

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에서 내용을 확인해보고
필요한 내용을 직접 사용해보면 될 것 같음