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

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

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

問題を作成する

wsgi_application (PythonエージェントAPI)

構文

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

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

説明

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

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

  • ラッパー: ラッパー呼び出しは 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デコレータは次のパラメータを使用します:

パラメータ

説明

application

string、または アプリケーションオブジェクト

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

文字列を指定する場合は、正確なアプリケーション名である必要があり、アプリケーション名のリストを指定することはできません。アプリケーション オブジェクトの生成の詳細については、 application メソッドをご覧ください。

リクエスト環境ディクショナリごとに WSGI アプリケーション内で newrelic.app_name 定義されている場合、アプリケーションは指定されている場合でもオーバーライドできます。

name

ストリング

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

group

ストリング

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

framework

タプル

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

ラッパーのパラメーター

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

これは、 wrapped パラメータに加えて、 wsgi_application で必要なすべての パラメータ を受け取ります。

パラメータ

説明

wrapped

物体

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

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

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

wsgi_applicationで必要な パラメータ に加えて、この呼び出しには追加の module パラメータと object_path パラメータが必要です。

パラメータ

説明

module

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

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

object_path

ストリング

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

wsgi_application の例

オプションの 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 © 2024 New Relic Inc.

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