본문으로 건너뛰기

Dagster 통합

파이프라인 모니터링의 Dagster 실행 요약 (prod 실화면)

GenD는 Dagster를 배치 파이프라인 오케스트레이션 엔진으로 사용합니다. Dagster의 asset, sensor, schedule, check 기능과 연동하여 데이터 파이프라인을 관리합니다.

주요 기능

  • Dagster 상태 모니터링: Dagster 서버의 전체 상태와 실행 중인 작업을 조회합니다
  • 파이프라인 실행 연동: GenD에서 생성한 파이프라인 템플릿을 Dagster job으로 실행합니다
  • 품질 검사 연동: Dagster asset check를 통한 데이터 품질 검사 결과를 조회합니다
  • 실행 이력 통합: Dagster의 실행 이력을 GenD 모니터링 대시보드에 통합합니다

Dagster 연동 아키텍처

GenD API → dagster_client.py → Dagster GraphQL API (port 3000)
→ pipeline_monitor.py

GenD는 dagster_client.py 서비스를 통해 Dagster의 GraphQL API에 접속하여 작업을 트리거하고 상태를 조회합니다.

모니터링 항목

항목설명
실행 중 작업 수현재 실행 중인 Dagster run 수
성공/실패 비율최근 run의 성공/실패 통계
마지막 실행 시간가장 최근 run의 완료 시간
품질 검사 결과asset check 통과/실패 현황

launchRun selector 3-tuple

launchRun GraphQL 호출 시 ExecutionParams.selectorrepositoryLocationName / repositoryName / jobName 세 필드 모두 required 입니다. 누락 시 webserver 가 HTTP 500 + GraphQL validation error 를 반환합니다.

GenD API 는 다음 환경변수로 Dagster 와의 연결 (GraphQL URL)selector location/repo 를 결정합니다 — 단일 Dagster definition 환경의 기본값과 일치합니다.

selector 결정 (3-tuple 중 location / repo):

환경변수기본값비고
GEND_DAGSTER_REPOSITORY_LOCATION_NAMEgend_pipelines:defsDagster Definitions 객체의 location 이름. <package>:defs 형식이 표준
GEND_DAGSTER_REPOSITORY_NAME__repository__Dagster 가 자동 부여하는 단일 repository 이름

연결 URL (selector 와는 직접 무관, 별도 관심사):

환경변수기본값비고
GEND_DAGSTER_GRAPHQL_URLhttp://dagster-webserver.gend.svc.cluster.local:3000/dagster/graphqlwebserver --path-prefix /dagster 와 일치

멀티 location 환경에서는 env 로 override 하세요.

API 엔드포인트

MethodPathDescription
GET/api/v1/pipelines/monitor/dagsterDagster 모니터링 요약

관련 문서