본문 바로가기

Data/Data Engineering

[Airflow] MWAA - Datadog send_metrics 적용

반응형

업무 Airflow환경은 MWAA(Managed Workflows for Apache Airflow)를 통해서 생성이 된다.

 

업무내용중에 MWAA에서 발생하는 로그에 대해서 Datadog와 연결이 필요하여, 여러가지 자료들을 찾아보았지만... 발견되는건 없었다ㅠ 괜히 나만 부딪히는 문제인건가 싶었다.

 

새벽동안 삽질해본 결과 어느정도 해결이 된것같아서, 다른분들한테는 기본적인 내용이겠지만, 저처럼 처음이신분들에게 도움이 됐으면 좋겠다.

 

먼저 MWAA에 설치된 Airflow환경은 2.2.2이며(나중에 테스트해봤지만 2.0.2버전도 돌아가는것을 확인했다, 1버전은 다르니 주의하자).

필요한 requirements는 다음과 같다.

apache-airflow[datadog]
apache-airflow[statsd] #이건 아마 필요없을듯...
apache-airflow-providers-datadog
datadog

이렇게 설치가 된 환경에서 이제 Datadog 관련된 라이브러리를 import시켜준다

dg = DatadogHook()

DatadogHook안에 datadog_conn_id라는걸 넣어줘야하는데, 여기서 좀 오랫동안 막혔다.

 

아무리 찾아봐도 옳바른 예시가 없었다... 그래서 직접테스트해본결과.

결국에는 Airflow에 있는 Connections를 활용하는거였다

 

Connections탭으로 들어가기 이전에, Datadog에서 API KEY와 APP KEY가 필요하다. Datadog에서 계정정보에 Organization Settings에서 볼수있다.

 

들어가서 보이는 카테고리

이렇게 얻은 두가지 KEY를 가지고 Connections탭으로 접속하여 아래와같이 Connections을 생성해준다.

  • 이름은 꼭 datadog_default로 설정해줘야한다
  • Connection Type이 AWS로 되어있는데, 난 왜인지 위에 라이브러리를 설치해도 datadog Connection Type이 존재하지않았다. 하지만 AWS로해도 문제는 없었다

설정을 다한 이후에, 예시로 send_metrics함수를 활용한다면 다음과같이 작업할수있다.

dg = DatadogHook().send_metric(
        METRIC_NAME,
        DATAPOINT,
        tags=TAGS,
        type_=TYPE,
        interval=INTERVAL,
    )

이렇게하면 정상적으로 metrics에 데이터가 받아진걸 확인할수가 있었다.

 

정말 오래동안 삽질했는데, 그만큼 보람도 있는것같다 마저 작업 마무리를 해야겠다.

반응형