개요
Airflow Scheduler는 주기적으로 DAG_FOLDER를 읽어 DAG 정의 파일을 읽어 들이고, DAG의 메타데이터를 Airflow meta DB에 저장한다. 스케쥴러와 관련된 프로세스를 찾으면 주기적으로 아래와 같은 DagFileProcessor가 동작하는 모습을 확인할 수 있다.
ps -ef | grep scheduler
주기적으로 DAG 정의 파일을 읽어들이므로 DAG 정의 파일을 Processing 하는데 소요되는 시간도 Airflow 성능과 관련이 있다. 이 글에서는 Dag Processing 소요 시간 확인 방법을 적어둔다.
DAG 프로세싱 로그 확인
DagFIle을 프로세싱하는 스케쥴러는 관련 정보를 로그로 남기는데, 그 위치는 다음과 같다.
$AIRFLOW_HOME/logs/scheduler/
디렉터리를 확인하면 DAG 파일과 관련된 로그를 찾을 수 있고
각 로그 파일에서 해당 DAG의 프로세싱 시작 시각, 다음 dag_run 시각, 프로세싱 소요 시간 등과 같은 이력을 확인할 수 있다.
명령어
간단히 아래와 같은 명령어를 이용해 DAG 프로세싱 소요 시간을 확인할 수 있다.
grep -ro -m1 -E "took.+ seconds"
# -r, --recursive : 하위 디렉터리 내 모든 파일을 대상으로 검색
# -E, --extended-regexp : 정규 표현식 사용
# -o, --only-matching : 검색한 결과에서 일치한 부분만 출력
# -m, --max-count : 지정한 행의 수만큼 읽어들임
각 출력에서 시간 부분만 합하면 모든 DAG의 프로세싱 시간을 확인할 수 있다.