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トランザクションを自動的にキャプチャします。サポートされているフレームワークがない場合は、 |
ASGI Web トランザクションを監視する | Python エージェントは、 サポートされているフレームワークの Web トランザクションを自動的にキャプチャします。 サポートされているフレームワークがない場合は、 |
非ウェブ取引の監視 | Pythonエージェントは、 非Webトランザクションをバックグラウンドタスクとして分類します。 Web以外のトランザクションをキャプチャするには、 |
トランザクションの詳細情報を取得 | トランザクションのトレース に希望する詳細レベルがない場合。
|
トランザクションを無視する | いずれかのオプションを使用します。
|
トランザクションのメタデータの追加と編集
対象となるコードが私たちのUIに表示されていても、そのメソッドの詳細が役に立たないことがあります。例えば
- デフォルトの名前が役に立たない、あるいは、 メトリックのグループ化の問題を引き起こしている 。
- カスタム属性 をトランザクションに追加して、クエリ時にフィルタリングできるようにしたい。
これらのコールは、既存のトランザクションのメタデータを変更する場合に使用します。
あなたがしたい場合は... | これを行う... |
---|---|
現在のトランザクションへの参照を取得 | 現在のトランザクションを表すオブジェクトを返すには、 |
トランザクションの名前を変更する |
|
トランザクションへのメタデータ(顧客のサブスクリプションレベルなど)の追加 |
|
トランザクションをバックグラウンドジョブとしてマークする | Webトランザクションをバックグラウンドタスクに変換して、UIに非Webトランザクションとして表示するには、 |
トランザクションが Apdex スコアに影響するのを防ぐ |
|
関連ログを見る
アプリケーションのエラーとトレースのコンテキスト内でログを直接表示するには、 get_linking_metadata
API呼び出しを使用してログに注釈を付けます。ログデータを他のテレメトリデータと相関させる方法の詳細については、コンテキストドキュメントのログを参照してください。
カスタムイベントとカスタムメトリックデータのレポート
エージェント は、データ を2つの主要な形式で報告します。
- メトリクスデータは、1分あたりの接続数など、時間を基準とした数値を測定します。
- イベントデータは、離散的なイベント情報をキャプチャします。イベントには、キーバリュー属性が付いています。イベントデータの分析や クエリを行うことができます 。
これらのメソッドを使用して、新しいイベントデータや新しいメトリックデータを作成します。
あなたがしたい場合は... | これを行う... |
---|---|
イベントに関するデータを送信し、データを照会する際に使用します。 |
|
アプリケーションのパフォーマンスに関する時間ベースのメトリクスを報告 |
|
例外をエラーとして報告する | デフォルトでは、Pythonエージェントは未処理の例外のみを報告します。 Python例外をエラーとして報告するには、 |
レポートのクエリ文字列パラメータ | セキュリティ上の理由から、Webトランザクションに関連付けられたクエリ文字列パラメータはデフォルトで無効になっています。 |
イベントをメタデータでタグ付け | より詳細なクエリまたはエラー分析のためにイベントに属性を追加するには、 |
データソースやデータファクトリからメトリクスを生成する |
|
メッセージ関連コール
これらのAPIコールを使用すると、メッセージ パッシング アーキテクチャまたはサービスに関するパフォーマンス データを収集できます。たとえば、 RabbitMQ 。 これらの呼び出しを使用するには、 Pythonエージェントのバージョンが 2.88.0.72 以上であることを確認してください。
あなたがしたい場合は... | これを行う... |
---|---|
| |
メッセージの詳細をトランザクション・トレース・セグメントとして報告 |
|
重要
高セキュリティ モードが有効な場合、エージェントはメッセージキューを収集しません。
分散型トレーシングの実装
これらのAPIは、 分散型トレーシングが有効になっている必要があります。.
当社のエージェントが監視するサービスやアプリケーションは、サポートされているフレームワーク を使用している場合、自動的に分散型トレーシングのコンテキストを相互に渡します。サポートされているフレームワークを使用していない場合は、分散型トレーシングAPIを使用して手動でこのコンテキストを受け入れる必要があります。
サポートされているWebフレームワーク(Flask、Django、Tornadoなど)は、トランザクションの作成時にaccept_distributed_trace_payload
を自動的に呼び出します。 サポートされている外部Webサービスライブラリは、外部HTTP呼び出しを行う前に自動的にcreate_distributed_trace_payload
を呼び出します。
以下のコールを使用して分散型トレーシングを実装する方法の一般的な説明については、 Use distributed tracing APIs を参照してください。
あなたがしたい場合は... | これを行う... |
---|---|
呼び出したサービスに送るペイロードを作成する。 | |
最初のサービスから送信されたペイロードを受け入れる。これにより、これらのサービスがトレースで結ばれる |
エージェントの設定、初期化、シャットダウン
これらのコールは、エージェントの初期化や統合、 構成 設定の参照や変更など、Pythonエージェントの動作を管理するのに役立ちます。
あなたがしたい場合は... | これを行う... |
---|---|
エージェントの初期化 | 高度な統合プロセスの一部として特定の構成ファイルでPythonエージェントを初期化するには、 |
|
|
コンフィギュレーション設定の参照を取得 | Pythonエージェントの動作を制御するには、 設定項目 を使用します。
|
エージェントのシャットダウン | エージェントがデータのアップロードを標準で最終的に試行できるようにするのではなく、エージェントを強制的にシャットダウンするには、 |
ブラウザ監視エージェントの制御
ブラウザ監視エージェントは、ページに自動的に追加するか、 エージェント JavaScript スニペットをコピーして貼り付けることで特定のページにデプロイしてインストールできます。 APMエージェントAPIコールを使用してBrowseragentを制御することもできます。 詳細については、Browserエージェントと Python エージェントを参照してください。
あなたがしたい場合は... | これを行う... |
---|---|
特定のページビューの監視 | ブラウザエージェントのヘッダーとフッターのJavaScriptスニペットを監視するビューに挿入するには、 |
特定のページビューの監視を無効にする | 特定のページビューのブラウザ監視を無効にするには、 |