• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

application (Python API d'agent)

Syntaxe

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

Monitorer les transactions Web en marquant le point d'entrée application ASGI.

Description

asgi_application est un décorateur Python utilisé pour surveiller les transactions Web en instrumentant le point d'entrée application ASGI. L'agent Python prend automatiquement en charge la plupart des frameworks et serveurs qui utilisent ASGI. Si votre framework ou votre serveur Web n'est pas pris en charge, vous devrez peut-être utiliser cette API dans le cadre du processus d'intégration avancé.

Si vous ne pouvez pas utiliser le décorateur asgi_application, vous pouvez utiliser l'un de ces autres formats d'appel :

  • The wrapper: L'appel wrapper est ASGIApplicationWrapper. Vous pouvez utiliser le wrapper à plusieurs endroits pour des composants d'application ASGI distincts qui peuvent être empilés. Dans ce cas, le premier wrapper rencontré marque le début de la transaction et l'agent détermine l'application cible en fonction de ce premier wrapper (et ignore les suivants).
  • The path-based wrapper: L'appel wrapper basé sur le chemin est wrap_asgi_application. Utilisez ceci si vous ne pouvez pas référencer l’objet ASGI en tant que variable dans la portée de l’instrumentation. Cela prend le même paramètre que le décorateur avec les paramètres module et object_path supplémentaires.

Pour une explication des raisons d'utiliser le décorateur par rapport aux wrappers, voir Différents formats d'appel.

Paramètres

Paramètre du décorateur

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

Le décorateur asgi_application utilise ces paramètres :

paramètres

Description

application

chaîne ou objet d'application

Facultatif. Le nom de l'application à associer à ces données. La valeur par défaut est None. Si aucune valeur n'est définie, l'agent utilise le nom de l'application spécifié dans la configuration de l'agent.

Si une chaîne est fournie, elle doit correspondre au nom exact application et ne peut pas être une liste de noms application . Pour en savoir plus sur la génération d’un objet d’application, consultez la méthode application .

name

chaîne

Facultatif, rarement utilisé. Définit un nom de transaction pour toutes requests capturées via le point d'entrée ASGI. Généralement non utilisé, car vous ne voudriez généralement pas que toutes les transactions aient le même nom (voir également le problème de regroupement métrique).

group

chaîne

Facultatif, rarement utilisé. Le group représente la structure de nommage pour le paramètre name . Ce paramètre crée une sous-catégorie de type de transaction. Similaire à name, cela doit être rarement utilisé car vous ne souhaitez généralement pas que l'ensemble de l'application soit signalé comme un seul nom ou une seule catégorie de transaction.

framework

uplet

Facultatif. Un uplet avec deux chaînes représentant le nom du framework et le numéro de version. Par exemple: ('Flask', '0.12.2')

Paramètres de l'enveloppe

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

Ceci prend tous les paramètres requis par asgi_application en plus d'un paramètre wrapped :

paramètres

Description

wrapped

objet

Required. L'objet ASGI à encapsuler.

Paramètre de wrapper basé sur le chemin

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

En plus du paramètre requis par asgi_application, cet appel nécessite des paramètres supplémentaires module et object_path :

paramètres

Description

module

objet ou chaîne

Required. Le module contenant l'objet ASGI.

object_path

chaîne

Required. Représente la méthode de classe ou la méthode permettant de rechercher l'objet ASGI dans un fichier.

Exemples

Exemple d'application asgi

Un exemple de décorateur appelé sans le paramètre facultatif application :

@newrelic.agent.asgi_application()
async def application(scope, receive, send):
await send(
{
"type": "http.response.start",
"status": 200,
"headers": [(b"Content-type", b"text/plain")]
}
)
await send(
{
"type": "http.response.body",
"body": b"Hello World!"
}
)

Exemple d'ASGIApplicationWrapper

Un exemple d'utilisation du ASGIApplicationWrapper, qui peut être nécessaire si le décorateur asgi_application ne fonctionne pas :

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
from django.core.asgi import get_asgi_application
application = get_asgi_application()
application = newrelic.agent.ASGIApplicationWrapper(application)

Exemple d'application wrap_asgi

Un exemple d'utilisation du wrapper basé sur le chemin :

import newrelic.agent
newrelic.agent.initialize('newrelic.ini')
class Application:
def __init__(self, scope):
self.scope = scope
async def __call__(self, receive, send):
await send({"type": "http.response.start", "status": 200})
await send({"type": "http.response.body", "body": b"Hello World!"})
newrelic.agent.wrap_asgi_application(__name__, 'Application')
Droits d'auteur © 2025 New Relic Inc.

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