• 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 を監視する

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.