• EnglishEspañol日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

Crea una propuesta

asgi_application (API del agente Python)

Sintaxis

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

Monitor transacciones web marcando el punto de entrada de la aplicación ASGI.

Descripción

asgi_application es un decorador de Python utilizado para monitor transacciones web instrumentado el punto de entrada de la aplicación ASGI. El agente Python admite automáticamente la mayoría de los marcos y servidores que utilizan ASGI. Si su framework o servidor web no es compatible, es posible que necesite utilizar esta API como parte del proceso de integración avanzado.

Si no puede utilizar el decorador asgi_application , puede utilizar uno de estos otros formatos de llamada:

  • The wrapper:

    La llamada contenedora es ASGIApplicationWrapper. Puede utilizar el contenedor en más de un lugar para distintos componentes de la aplicación ASGI que pueden estar apilados. En ese caso, el primer contenedor encontrado marca el inicio de la transacción y el agente determina la aplicación de destino en función de ese primer contenedor (e ignora los siguientes).

  • The path-based wrapper:

    La llamada contenedora basada en ruta es wrap_asgi_application. Úselo si no puede hacer referencia al objeto ASGI como una variable en el alcance de la instrumentación. Esto toma el mismo parámetro que el decorador con parámetros module y object_path adicionales.

Para obtener una explicación de los motivos para utilizar el decorador frente a los contenedores, consulte Diferentes formatos de llamada.

Parámetros

Parámetro decorador

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

El decorador asgi_application utiliza estos parámetros:

Parámetro

Descripción

application

cadena u objeto de aplicación

Opcional. El nombre de la aplicación para asociar con estos datos. El valor predeterminado es None. Si se deja sin valor, el agente usa el nombre de la aplicación especificado en la configuración del agente.

Si se proporciona una cadena, debe ser el nombre exacto de la aplicación y no puede ser una lista de nombres de aplicaciones. Para obtener más información sobre cómo generar un objeto de aplicación, consulte el método application .

name

cadena

Opcional, raramente usado. Establece un nombre de transacción para todas las solicitudes capturadas a través del punto de entrada ASGI. Generalmente no se usa, porque normalmente no se desea que todas las transacciones tengan el mismo nombre (consulte también el tema de agrupación métrica).

group

cadena

Opcional, raramente usado. El group representa la estructura de nombres para el parámetro name . Configurar esto crea una subcategoría de tipo de transacción. Al igual que name, esto rara vez se debe utilizar porque normalmente no desea que toda la aplicación se informe como un nombre o categoría de transacción.

framework

tupla

Opcional. Una tupla con dos cadenas que representan el nombre del framework y el número de versión. Por ejemplo: ('Flask', '0.12.2')

Parámetro de envoltura

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

Esto toma todos los parámetros requeridos por asgi_application además de un parámetro wrapped :

Parámetro

Descripción

wrapped

objeto

Required. El objeto ASGI que se va a empaquetar.

Parámetro contenedor basado en ruta

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

Además del parámetro requerido por asgi_application, esta llamada requiere parámetros module y object_path adicionales:

Parámetro

Descripción

module

objeto o cadena

Required. El módulo que contiene el objeto ASGI.

object_path

cadena

Required. Representa el método de clase o el método para buscar el objeto ASGI dentro de un archivo.

Ejemplos

asgi_application example

Un ejemplo de llamada del decorador sin el parámetro opcional 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!"
}
)

Ejemplo de ASGIApplicationWrapper

Un ejemplo del uso de ASGIApplicationWrapper, que puede ser necesario si el decorador asgi_application no funciona:

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)

wrap_asgi_application example

Un ejemplo de uso del contenedor basado en ruta:

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')
Copyright © 2024 New Relic Inc.

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