• EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

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.

Criar um problema

asgi_application (API do agente Python)

Sintaxe

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

Monitor transações da web marcando o ponto de entrada do aplicativo ASGI.

Descrição

asgi_application é um decorador Python usado para monitor transações da web instrumentando o ponto de entrada da aplicação ASGI. O agente Python suporta automaticamente a maioria das estruturas e servidores que usam ASGI. Se sua framework ou servidor web não for compatível, talvez seja necessário usar esta API como parte do processo de integração avançada.

Se não for possível usar o decorador asgi_application , você poderá usar um destes outros formatos de chamada:

  • The wrapper:

    A chamada do wrapper é ASGIApplicationWrapper. É possível usar o wrapper em mais de um local para componentes distintos do aplicativo ASGI que podem estar empilhados. Nesse caso, o primeiro wrapper encontrado marca o início da transação e o agente determina o aplicativo de destino com base nesse primeiro wrapper (e ignora os subsequentes).

  • The path-based wrapper:

    A chamada do wrapper baseada em caminho é wrap_asgi_application. Use isto se não for possível fazer referência ao objeto ASGI como uma variável no escopo de instrumentação. Isso leva o mesmo parâmetro do decorador com parâmetros adicionais module e object_path .

Para obter uma explicação dos motivos para usar o decorador em vez dos wrappers, consulte Diferentes formatos de chamada.

Parâmetro

Parâmetro decorador

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

O decorador asgi_application usa estes parâmetros:

Parâmetro

Descrição

application

string ou objeto de aplicativo

Opcional. O nome do aplicativo a ser associado a esses dados. O padrão é None. Se não houver valor, o agente usará o nome do aplicativo especificado na configuração do agente.

Se uma sequência for fornecida, ela deverá ser o nome exato do aplicativo e não poderá ser uma lista de nomes de aplicativos. Para obter mais informações sobre como gerar um objeto de aplicativo, consulte o método application .

name

corda

Opcional, raramente usado. Define um nome de transação para todas as solicitações capturadas através do ponto de entrada ASGI. Geralmente não utilizado, porque normalmente não se deseja que todas as transações tenham o mesmo nome (ver também questão de agrupamento métrico).

group

corda

Opcional, raramente usado. O group representa a estrutura de nomenclatura do parâmetro name . Definir isso cria uma subcategoria de tipo de transação. Semelhante a name, raramente deve ser usado porque geralmente você não deseja que o aplicativo inteiro seja relatado como um nome ou categoria de transação.

framework

tuple

Opcional. Uma tupla com duas strings representando o nome da framework e o número da versão. Por exemplo: ('Flask', '0.12.2')

Parâmetro do wrapper

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

Isso leva todos os parâmetros exigidos por asgi_application além de um parâmetro wrapped :

Parâmetro

Descrição

wrapped

objeto

Required. O objeto ASGI a ser empacotado.

Parâmetro wrapper baseado em caminho

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

Além do parâmetro exigido por asgi_application, esta chamada requer parâmetros adicionais module e object_path :

Parâmetro

Descrição

module

objeto ou string

Required. O módulo que contém o objeto ASGI.

object_path

corda

Required. Representa o método de classe ou método para localizar o objeto ASGI em um arquivo.

Exemplos

asgi_application example

Um exemplo do decorador sendo chamado sem o 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!"
}
)

Exemplo ASGIApplicationWrapper

Um exemplo de uso do ASGIApplicationWrapper, que pode ser necessário se o decorador asgi_application não funcionar:

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

Um exemplo de uso do wrapper baseado em caminho:

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.