• EnglishEspañol日本語한국어Português
  • 로그인지금 시작하기

사용자의 편의를 위해 제공되는 기계 번역입니다.

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

문제 신고

OpenTelemetry로 Apache Airflow 모니터링

작업, 연산자 및 DAG 실행을 지표로 시각화할 수 있는 New Relic으로 데이터를 보내도록 OpenTelemetry를 구성하여 Apache Airflow 데이터를 모니터링합니다.

전제 조건

Apache Airflow에서 OpenTelemetry를 활성화하기 전에 otel extra를 사용하여 Airflow 패키지를 설치해야 합니다. 설치 방법은 Airflow 배포 접근 방식에 따라 다릅니다.

옵션 1: PyPi에서 설치

  1. Airflow 문서 의 설치 지침을 따르세요.

  2. pip로 설치할 때 명령에 otel 추가를 추가합니다. 예를 들어:

    pip install "apache-airflow[otel]"

옵션 2: Docker에서 설치

  1. Airflow 문서의 지침을 사용하여 Airflow Docker 이미지를 설정합니다.

  2. Dockerfile을 사용하여 otel 추가 항목을 설치하여 사전 빌드된 Docker 이미지를 확장합니다. 최신 태그를 원하는 이미지 버전으로 바꿀 수 있습니다.

    FROM apache/airflow:latest
    RUN pip install --no-cache-dir "apache-airflow[otel]==$AIRFLOW_VERSION"

$AIRFLOW_VERSION apache/airflow 컨테이너에 의해 이미 설정되어 있지만 다른 기본 이미지의 버전 번호로 대체될 수 있습니다.

구성

Airflow 지표를 뉴렐릭으로 보내려면 OpenTelemetry 데이터를 OpenTelemetry 수집기 로 내보내도록 지표를 구성합니다. 그런 다음 를 사용하여 데이터를 뉴렐릭 OTLP 엔드포인트 로 전달합니다.

중요

현재 Airflow에서는 인증 헤더와 함께 OpenTelemetry 데이터 전송을 지원하지 않기 때문에 OpenTelemetry 수집기는 New Relic으로 인증하는 데 필수적입니다.

OpenTelemetry 수집기 구성

  1. OpenTelemetry 수집기를 설정하려면 기본 수집기 예제를 따르세요.

  2. https://otlp.nr-data.net:4317 과 같은 적절한 OTLP 엔드포인트를 사용하여 수집기를 구성합니다.

  3. 인증을 위해

    를 환경 변수 NEW_RELIC_LICENSE_KEY 에 추가하여 api-key 헤더를 채웁니다.

  4. 실행 중인 Airflow 인스턴스에서 수집기의 포트 4318에 연결할 수 있는지 확인하세요. (docker의 경우 docker network 를 사용해야 할 수도 있습니다.)

  5. 수집기를 실행합니다.

Airflow 측정항목 구성

Airflow는 포트 4318 을 사용하는 HTTP를 통해 OTLP를 사용하여 측정항목을 보냅니다. Airflow에는 구성 옵션을 설정하는 여러 가지 방법이 있습니다.

중요

환경에 OpenTelemetry Collector와 함께 Docker 컨테이너에서 실행되는 Airflow가 있는 경우 otel_host 설정을 localhost 에서 수집기의 컨테이너 주소로 변경해야 합니다.

Airflow에 필요한 옵션을 설정하려면 다음 방법 중 하나를 선택하세요.

  1. airflow.cfg 파일에서 필수 옵션을 설정합니다.

    [metrics]
    otel_on = True
    otel_host = localhost
    otel_port = 4318
    otel_ssl_active = False
  2. 또는 필수 옵션을 환경 변수로 설정하세요.

    export AIRFLOW__METRICS__OTEL_ON=True
    export AIRFLOW__METRICS__OTEL_HOST=localhost
    export AIRFLOW__METRICS__OTEL_PORT=4318
    export AIRFLOW__METRICS__OTEL_SSL_ACTIVE=False

Airflow에는 유용할 수 있는 측정항목에 대한 추가 설정이 있습니다. 여기에는 메트릭 이름을 보내기 전에 메트릭 이름을 바꾸는 기능이 포함되어 있습니다. 이는 메트릭 이름이 OpenTelemetry의 63바이트 제한을 초과하는 경우 유용합니다.

데이터가 New Relic으로 전송되었는지 확인

New Relic이 Airflow 데이터를 수집하고 있는지 확인하려면 DAG 또는 파이프라인을 실행하세요.

  1. 에어플로우에 로그인하세요.

  2. 기존 튜토리얼 DAG 중 하나 또는 자체의 실행 버튼을 클릭하세요.

  3. 파이프라인 실행이 완료될 때까지 기다립니다.

  4. one.newrelic.com > All capabilities > APM & services > Services - OpenTelemetry > Airflow

    으)로 이동합니다.

  5. 파이프라인 실행에 대한 지표를 시각화하려면

    Metrics Explorer

    클릭하세요.

대시보드 구축

Airflow 측정항목을 사용하면 개별 파이프라인, 전체 성능을 중심으로 대시보드를 구축하거나 다양한 파이프라인 간의 비교를 볼 수 있습니다. 측정항목 쿼리 에 대해 자세히 알아보려면 여기를 클릭하세요.

이 쿼리는 Airflow에 대해 보고된 모든 측정항목 목록을 검색합니다.

SELECT uniques(metricName) FROM Metric WHERE entity.name = 'Airflow' AND metricName LIKE 'airflow.%' SINCE 30 MINUTES AGO LIMIT 100

측정항목 이름이 한도를 초과하는 경우 한도(100)를 변경하세요.

이 쿼리는 다양한 DAG의 성공적인 실행에 대한 다양한 완료 시간의 비교를 보여줍니다.

SELECT latest(airflow.dagrun.duration.success) FROM Metric FACET dag_id WHERE entity.name = 'Airflow' SINCE 30 minutes AGO TIMESERIES

이 쿼리는 중요한 파이프라인의 빌드하는 데 사용할 수 있는 실패한 DAG 실행 횟수를 표시합니다.

SELECT count(airflow.dagrun.duration.failed) FROM Metric FACET dag_id WHERE entity.name = 'Airflow' SINCE 30 minutes AGO TIMESERIES

중요

Airflow의 OpenTelemetry 측정항목은 New Relic에서 유지 관리되지 않으므로 계측에 문제가 있는 경우 Airflow의 GitHub 저장소에서 새 문제를 생성하세요.

이 문서가 설치하는데 도움이 되셨나요?

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.