• ログイン今すぐ開始

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

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

問題を作成する

wsgi_application (PythonエージェントAPI)

構文

newrelic.agent.wsgi_application(application=None, name=None, group=None, framework=None)

WSGIアプリケーションのエントリーポイントをマークすることで、Webトランザクションを監視します。

説明

wsgi_application は、WSGI アプリケーションのエントリーポイントをインスツルメン トすることでウェブトランザクションを監視するために使用される Python デコレーターです。Python エージェントは、 WSGI を使用するほとんどのフレームワークとサーバー を自動的にサポートします。使用しているフレームワークやウェブサーバがサポートされていない場合は、 高度な統合プロセスの一部としてこのAPIを使用する必要があるかもしれません

wsgi_application デコレーターを使用できない場合は、以下の他の呼び出し形式を使用できます。

  • The wrapper: The wrapper call is WSGIApplicationWrapper.スタック化されたWSGIアプリケーション・コンポーネントのために、複数の場所でラッパーを使用することができます。この場合、最初に遭遇したラッパーがトランザクションの開始を意味し、エージェントはその最初のラッパーに基づいてターゲットアプリを決定します(それ以降のラッパーは無視されます)。
  • パスベースのラッパー: パスベースのラッパーコールは wrap_wsgi_application.WSGIオブジェクトをインスツルメンテーションスコープの変数として参照できなかった場合に使用します。これは、デコレータと同じパラメータを取り、さらに moduleobject_path パラメータを取ります。

デコレーターとラッパーを使い分ける理由については、 Different call formats を参照してください。

パラメータ

デコレーターのパラメータ

newrelic.agent.wsgi_application(application=None, name=None, group=None, framework=None)

wsgi_application デコレータは、これらのパラメータを使用します。

パラメーター

説明

アプリケーション

文字列、アプリケーションオブジェクト

オプションです。このデータと関連付けるアプリケーション名。デフォルトは None です。値を指定しない場合、エージェントはエージェント構成で指定されたアプリケーション名 を使用します

文字列を指定する場合は、正確なアプリケーション名でなければならず、アプリケーション名のリストにすることはできません。アプリケーション・オブジェクトの生成については、 アプリケーション メソッドを参照してください。

アプリケーションは、たとえ指定されていても、 newrelic.app_name がWSGI application per request environ dictionary内で定義されていれば、上書きすることができます。

name

文字列

オプション、ほとんど使用されません。WSGIエントリーポイントを介して取得されるすべてのリクエストのトランザクション名を設定します。通常は、すべてのトランザクションが同じ名前になることを望まないため、一般的には使用されません( Metric grouping issue も参照してください)。

グループ

文字列

オプションで、ほとんど使用されません。 グループ は、 名前 パラメータの命名構造を表しています。これを設定すると、 トランザクションタイプのサブカテゴリ が作成されます。 name と同様に、通常、アプリケーション全体を1つのトランザクション名やカテゴリとしてレポートすることはないため、これを使用することはほとんどありません。

フレームワーク

タプル

オプションです。フレームワークの名前とバージョン番号を表す2つの文字列を持つタプルです。例: ('Flask', '0.12.2')

ラッパーのパラメーター

newrelic.agent.WSGIApplicationWrapper(wrapped, application=None, name=None, group=None, framework=None)

これは、 wsgi_application が必要とする パラメータ のすべてに加えて、 をラップした パラメータを取ります。

パラメーター

説明

ラップ

オブジェクト

必須。ラップされるWSGIオブジェクトです。

パスベースのラッパーパラメーター

newrelic.agent.wrap_wsgi_application(module, object_path, application=None, name=None, group=None, framework=None)

パラメータ wsgi_application で必要なものに加えて、この呼び出しではさらに moduleobject_path パラメータが必要です。

パラメーター

説明

モジュール

オブジェクト または 文字列

必要です。WSGIオブジェクトを含むモジュールです。

object_path

文字列

必須です。クラスメソッドまたはファイル内のWSGIオブジェクトを見つけるためのメソッドを表します。

wsgi_application の例

オプションの アプリケーション パラメータを指定せずにデコレーターを呼び出した例です。

@newrelic.agent.wsgi_application()
def application(environ, start_response):
status = '200 OK'
output = 'Hello World!'
response_headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]

WSGIApplicationWrapperの例

WSGIApplicationWrapper の使用例です。これは、 wsgi_application デコレータが動作しない場合に必要になるかもしれません。

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
application = newrelic.agent.WSGIApplicationWrapper(application)

wrap_wsgi_applicationの例

パスベースのラッパーの使用例。

import newrelic.agent
newrelic.agent.initialize('newrelic.ini')
class Application(object):
def application(self, environ, start_response):
status = '200 OK'
response_headers = [('Content-type', 'text/plain')]
start_response(status, response_headers)
return [b'Hello World']
newrelic.agent.wrap_wsgi_application(__name__, 'Application.application')
Copyright © 2022 New Relic株式会社。

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