• ログイン今すぐ開始

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

パイソンエージェントとセロリ

Celeryを分散型タスクキューイングシステムとして使用している場合、Pythonエージェントを使用してCeleryのプロセスを non-web transactions として記録することができます。

Celery で Python エージェントを動作させるには、まず エージェントのインストール手順 に従って、エージェントのインストール、設定、 テスト を行います。その後、以下のCelery固有の手順を使用します。

ラン・セロリ

エージェントでCeleryを実行するために使用するコマンドは、Celeryのバージョンと特定のセットアップによって異なります。

アプリケーション名の選択

Pythonエージェント構成ファイルのapp_name設定は、NewRelicUIに表示されるアプリ名を設定します。

  • PythonエージェントがCeleryタスクを監視し、 app_nameをアプリケーションエージェントのapp_nameで使用されているのと同じ値に設定した場合、両方のソースからのデータがその名前でUIに結合されます。
  • 異なる名前を設定した場合、データは2つの異なる名前としてUIに別々に表示されます。

エージェントの設定ファイルに複数のアプリ名を設定することで 、結合されたデータと分離されたデータの両方を監視することができます。ここでは、Django アプリケーションを例に、一般的な方法を紹介します。

タスク・リトライ・エラーの無視

Celeryを使用している場合、タスクが失敗し、 celery.exceptions:Retryまたはcelery.exceptions:RetryTaskError例外が発生する可能性があります。例外は、使用されているCeleryのバージョンによって異なります。

これらのエラーを無視するには、NewRelicApplication設定UIまたはエージェント構成ファイルからこれを設定します。 UIの変更は、構成の 優先順位ルールに従って構成ファイルの変更をオーバーライドします。

エラーを無視する設定をUIから使用するため。

  1. one.newrelic.comから、[ APM] > (アプリを選択) > [設定] > [アプリケーション] を選択します
  2. 選択 サーバーサイドエージェントの構成.
  3. エラーコレクション から、無視したいエラーをカンマで区切って入力します。

エージェント構成ファイルを使用してこれらのエラーを無視するには、 ignore_errors設定とスペースで区切られた例外のリストを使用します。

error_collector.ignore_errors = celery.exceptions:Retry celery.exceptions:RetryTaskError

トラブルシューティング

Celeryワーカープロセスが突然終了すると、エージェントは通常のシャットダウンプロセスを完了することができず、最終的なデータペイロードが送信されません。その結果、エージェントから報告されるCeleryトランザクションの数が予想より少なくなるか、トランザクションが全く報告されなくなります。

これは、プールワーカープロセスが新しいタスクに置き換えられる前に実行できるタスクの最大数を定義するCELERYD_MAX_TASKS_PER_CHILD設定を使用している場合に発生する可能性があります。使用する場合、その制限に達するとワーカーは強制的にシャットダウンされます。これは、データがエージェントによって記録されないことを意味します。たとえば、 MAX_TASKS_PER_CHILD = 1の場合、これによりデータは報告されません。

これをトラブルシューティングする方法は、アプリケーションでMAX_TASKS_PER_CHILD制限を使用する理由によって異なります。

  • 通常のシャットダウンプロセスを許可するには、これをデフォルトのノーリミット設定に戻します。
  • 問題の影響を軽減するには、 MAX_TASKS_PER_CHILDの制限を引き上げます。

重要

バージョン3.2.2.94以降では、 MAX_TASKS_PER_CHILDの制限に達するとPythonエージェントがシャットダウンします。データが失われることはありません。

Copyright © 2022 New Relic Inc.

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