• ログイン今すぐ開始

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

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

問題を作成する

PythonのエージェントAPIの使い方ガイド

PythonエージェントAPIを使用することで、モニタリングのカスタマイズや拡張が可能になります。PythonエージェントAPIを使って

  • サポートされていないフレームワークやサードパーティのシステムを手動でインストルメントする。
  • エージェントのデフォルトのモニタリングを補完するインスツルメンテーションを追加します。

このドキュメントでは、 利用可能なPythonのAPIコールの一部を説明しています 。利用可能な全てのAPIの説明は、 Introduction to APIs を参照してください。

カスタムインストルメントまたはAPI

目的が カスタム・インスツルメンテーション の場合は、 コンフィグファイル・メソッド の使用を検討してください。コンフィグファイル・メソッドでは、エージェントによってオート・インスツルメンテーションされる関数やクラス・メソッドをコンフィグファイルに追加することができます。コンフィグファイル方式の利点は、アプリケーションのコードを変更する必要がないことです。

しかし、PythonエージェントのAPIはより強力で、より複雑でカスタマイズされたインスツルメンテーションの設定に最適です。完全なAPI機能を利用するためには、 最新のPython agent にアップデートしてください。

トランザクションとセグメントの監視

Pythonエージェントは、ほとんどの一般的なWSGIWebフレームワークと互換性があります。エージェントがフレームワークをサポートしている場合、Webリクエストはトランザクションとして自動的にキャプチャされ、NewRelicUIに表示されます。トランザクションには、 トランザクショントレースの一部としてキャプチャされる機能レベルのセグメントを含めることもできます。

これらの方法を使って、Webトランザクション、非Webトランザクション、およびトランザクションセグメントを監視します。

あなたがしたい場合は...

これを行う...

WSGIウェブトランザクションの監視

Pythonエージェントは、サポートされているフレームワークのWebトランザクションを自動的にキャプチャします。サポートされているフレームワークがない場合は、 wsgi_application関数を使用してWSGIエントリポイントを監視できます。

非ウェブ取引の監視

Pythonエージェントは、 非Webトランザクションをバックグラウンドタスクとして分類します。 Web以外のトランザクションをキャプチャするには、 background_taskを使用します。

トランザクションの詳細情報を取得

トランザクションのトレース に希望する詳細レベルがない場合。

  • function_traceを使用して、トランザクションの機能レベルの詳細をキャプチャします。
  • datastore_traceを使用して、データストア呼び出しに関する詳細をキャプチャします。

トランザクションを無視する

いずれかのオプションを使用します。

  • トランザクションを完全に無視するには、 ignore_transactionを使用します。
  • トランザクションがトランザクショントレースを生成しないようにするには、 suppress_transaction_traceを使用します。
  • エージェントがトランザクションを自動的に終了する前にトランザクションを終了するには、 end_of_transactionを使用します。

トランザクションのメタデータの追加と編集

対象となるコードが私たちのUIに表示されていても、そのメソッドの詳細が役に立たないことがあります。例えば

これらのコールは、既存のトランザクションのメタデータを変更する場合に使用します。

あなたがしたい場合は...

これを行う...

現在のトランザクションへの参照を取得

現在のトランザクションを表すオブジェクトを返すには、 current_transactionを使用します。これは、他のPythonエージェントAPI呼び出しで必要です。

トランザクションの名前を変更する

set_transaction_nameを使用します。

トランザクションへのメタデータ(顧客のサブスクリプションレベルなど)の追加

add_custom_parameterを使用してトランザクションにカスタム属性を追加するか、他のAPI呼び出しを使用してカスタムデータをレポートします。

トランザクションをバックグラウンドジョブとしてマークする

Webトランザクションをバックグラウンドタスクに変換して、UIに非Webトランザクションとして表示するには、 set_background_taskを使用します。

トランザクションが Apdex スコアに影響するのを防ぐ

suppress_apdex_metricを使用します。

関連ログを見る

アプリケーションのエラーとトレースのコンテキスト内でログを直接表示するには、 get_linking_metadata API呼び出しを使用してログに注釈を付けます。ログデータを他のテレメトリデータと相関させる方法の詳細については、コンテキストドキュメントのログを参照してください。

カスタムイベントとカスタムメトリックデータのレポート

エージェント は、データ を2つの主要な形式で報告します。

  • メトリクスデータは、1分あたりの接続数など、時間を基準とした数値を測定します。
  • イベントデータは、離散的なイベント情報をキャプチャします。イベントには、キーバリュー属性が付いています。イベントデータの分析や クエリを行うことができます

これらのメソッドを使用して、新しいイベントデータや新しいメトリックデータを作成します。

あなたがしたい場合は...

これを行う...

イベントに関するデータを送信し、データを照会する際に使用します。

record_custom_eventを使用します。

アプリケーションのパフォーマンスに関する時間ベースのメトリクスを報告

例外をエラーとして報告する

デフォルトでは、Pythonエージェントは未処理の例外のみを報告します。 Python例外をエラーとして報告するには、 notice_errorを使用します。

レポートのクエリ文字列パラメータ

セキュリティ上の理由から、Webトランザクションに関連付けられたクエリ文字列パラメータはデフォルトで無効になっています。 capture_request_paramsを使用してそれらを有効にします。

イベントをメタデータでタグ付け

より詳細なクエリまたはエラー分析のためにイベントに属性を追加するには、 add_custom_parameterを使用します。

データソースやデータファクトリからメトリクスを生成する

record_custom_metric()によって実装されたプッシュスタイルのAPIではなくプルスタイルのAPIを使用してメトリックを生成するには、次のAPI呼び出しを使用します。

メッセージ関連コール

これらのAPIコールを使用すると、メッセージパシングアーキテクチャやサービスのパフォーマンスデータを収集することができます。例えば、 RabbitMQ 。これらのコールを使用するには、Python エージェントバージョン2.88.0.72以上が必要です。

あなたがしたい場合は...

これを行う...

トランザクションとしてメッセージを報告

message_transactionを使用します。

メッセージの詳細をトランザクション・トレース・セグメントとして報告

message_traceを使用します。

分散型トレーシングの実装

これらのAPIは、 分散型トレーシングが有効になっている必要があります。.

当社のエージェントが監視するサービスやアプリケーションは、サポートされているフレームワーク を使用している場合、自動的に分散型トレーシングのコンテキストを相互に渡します。サポートされているフレームワークを使用していない場合は、分散型トレーシングAPIを使用して手動でこのコンテキストを受け入れる必要があります。

サポートされているWebフレームワーク(Flask、Django、Tornadoなど)は、トランザクションの作成時にaccept_distributed_trace_payloadを自動的に呼び出します。 サポートされている外部Webサービスライブラリは、外部HTTP呼び出しを行う前に自動的にcreate_distributed_trace_payloadを呼び出します。

以下のコールを使用して分散型トレーシングを実装する方法の一般的な説明については、 Use distributed tracing APIs を参照してください。

あなたがしたい場合は...

これを行う...

呼び出したサービスに送るペイロードを作成する。

create_distributed_trace_payloadを使用します。

最初のサービスから送信されたペイロードを受け入れる。これにより、これらのサービスがトレースで結ばれる

accept_distributed_trace_payloadを使用します。

エージェントの設定、初期化、シャットダウン

これらのコールは、エージェントの初期化や統合、 構成 設定の参照や変更など、Pythonエージェントの動作を管理するのに役立ちます。

あなたがしたい場合は...

これを行う...

エージェントの初期化

高度な統合プロセスの一部として特定の構成ファイルでPythonエージェントを初期化するには、 initializeを使用します。

applicationオブジェクトへの参照を取得します

applicationオブジェクトは、エージェントが監視するアプリケーションを表し、一部のPythonエージェントAPI呼び出しで使用されます。

コンフィギュレーション設定の参照を取得

Pythonエージェントの動作を制御するには、 設定項目 を使用します。

エージェントのシャットダウン

エージェントがデータのアップロードを標準で最終的に試行できるようにするのではなく、エージェントを強制的にシャットダウンするには、 shutdown_agentを使用します。

ブラウザ監視エージェントの制御

ブラウザ・モニタリング・エージェント をインストールするには、ページに自動的に追加するか、ブラウザ・エージェントの JavaScript スニペットをコピー&ペーストすることで、特定のページにデプロイすることができます。また、APMエージェントのAPIコールを使用してブラウザエージェントを制御することもできます。詳細については、 ブラウザエージェントとPythonエージェント を参照してください。

あなたがしたい場合は...

これを行う...

特定のページビューの監視

ブラウザエージェントのヘッダーとフッターのJavaScriptスニペットを監視するビューに挿入するには、get_browser_timing_headerget_browser_timing_footerの両方を使用します。

特定のページビューの監視を無効にする

特定のページビューのブラウザ監視を無効にするには、 disable_browser_autorumを使用します。

Copyright © 2022 New Relic株式会社。

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