• EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページを参照してください。

問題を作成する

OpenTelemetry を使用して Apache Airflow を監視する

OpenTelemetryを構成して New Relic にデータを送信することで Apache Airflow データを監視し、タスク、オペレーター、DAG の実行をメトリクスとして視覚化できます。

前提条件

Apache Airflow で OpenTelemetry を有効にする前に、 otelエクストラを含む Airflow パッケージをインストールする必要があります。インストール方法は、Airflow 導入アプローチによって異なります。

オプション 1: PyPi からインストールする

  1. Airflow のドキュメントのインストール手順に従ってください。

  2. pip を使用してインストールする場合は、コマンドにotelを追加します。 例えば:

    pip install "apache-airflow[otel]"

オプション 2: Docker からのインストール

  1. Airflow のドキュメントの手順に従って、Airflow Docker イメージをセットアップします。

  2. Dockerfile を使用してビルド済みの Docker イメージを拡張し、 otelエクストラをインストールします。最新のタグを希望のバージョンのイメージに置き換えることができます。

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

ヒント

$AIRFLOW_VERSION は、Apache/airflow コンテナによってすでに設定されていますが、他のベース イメージのバージョン番号に置き換えることができます。

構成

Airflow メトリクスをNew Relicに送信するには、 OpenTelemetryメトリクスOpenTelemetry設定します。これにより、 を使用してデータがNew Relic OTLP エンド ポイントに転送されます。

重要

現在、Airflow では認証ヘッダーを含む OpenTelemetry データの送信がサポートされていないため、New Relic での認証には OpenTelemetry コレクターが不可欠です。

OpenTelemetry コレクターを構成する

  1. 基本的なコレクターの例に従って、OpenTelemetry コレクターを設定します。

  2. https://otlp.nr-data.net:4317などの適切な OTLP エンドポイントを使用してコレクターを構成します。

  3. 認証のために、

    を環境変数NEW_RELIC_LICENSE_KEYに追加して、 api-keyヘッダーに値が設定されるようにします。

  4. 実行中の Airflow インスタンスからコレクターのポート 4318 に到達できることを確認します。(Docker の場合は、 Docker ネットワークを使用する必要がある場合があります。)

  5. コレクターを起動します。

エアフローメトリクスを構成する

Airflow は、ポート4318を使用する OTLP over HTTP を使用してメトリクスを送信します。Airflow には、構成オプションを設定する複数の方法があります。

重要

ご使用の環境で、OpenTelemetry Collector と並行して Docker コンテナで Airflow が実行されている場合は、 otel_host設定をlocalhostからコレクタのコンテナ アドレスに変更する必要があります。

次のいずれかの方法を選択して、エアフローに必要なオプションを設定します。

  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 の 1 つ、または独自のチュートリアル 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株式会社。

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