• English日本語한국어
  • ログイン今すぐ開始

この機械翻訳は参考用に提供されます。

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

問題を作成する

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

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

前提条件

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

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

  1. Airflow のドキュメントのインストール手順に従ってください。
  2. pip を使用してインストールする場合は、コマンドにotelを追加します。a.例えば。 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
  1. または、必要なオプションを環境変数として設定します。
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 Inc.

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