Sintaxe
newrelic.agent.external_trace(library, url, method=None)
Reportar chamadas para serviços externos como segmentos de rastreamento da transação.
Descrição
external_trace
é usado para adicionar mais detalhes ao seu rastreamento de transação na forma de segmentos adicionais. Todas as chamadas relatadas com external_trace
aparecerão na guia externas do APM. external_trace
retorna uma parcial de ExternalTraceWrapper
que pode ser usada como decorador para uma função que chama um serviço externo.
O decorador external_trace
pode ser usado em geradores e corrotinas com agente versão 2.102.0.85 ou superior. O tempo desses objetos começa quando o consumo começa e termina quando o objeto se esgota ou sai do escopo. Esta é uma mudança em relação às versões anteriores, onde a métrica representava o tempo necessário para criar o gerador ou o próprio objeto de corrotina.
Se você não puder usar o decorador em seu aplicativo, poderá usar um destes outros formatos de chamada:
The context manager
: O formulário do gerenciador de contexto é
ExternalTrace
.The wrapper
: o formulário do wrapper é
ExternalTraceWrapper
. Pode ser usado para retornar uma função encapsulada sem o uso de um decorador.The path-based wrapper
: o formulário wrapper baseado em caminho é
wrap_external_trace
. Isso aplica oExternalTraceWrapper
a um determinado objeto por meio de monkey patching. Isso usa os mesmos parâmetros do decorador mais um parâmetromodule
eobject_path
adicional.
Para obter uma explicação sobre os usos desses diferentes formatos de chamada, consulte Diferentes formatos de chamada. Consulte Exemplos para exemplos de chamadas.
Parâmetro
Parâmetros para external_trace
newrelic.agent.external_trace(library, url, method=None)
O decorador external_trace
usa estes parâmetros:
Parâmetro | Descrição |
---|---|
string ou função | Obrigatório. O nome (ou tipo) da biblioteca externa em uso. Passe uma string que o defina ou uma função que o retorne. |
string ou função | Obrigatório. A URL que foi solicitada pela chamada da biblioteca. Passe uma string que o defina ou uma função que o retorne. |
string ou função | Opcional. O método que define o tipo de chamada que está sendo feita. Normalmente são |
Parâmetro para ExternalTrace
newrelic.agent.ExternalTrace(library, url, method=None)
O gerenciador de contexto ExternalTrace
usa todos os parâmetros obtidos por external_trace
.
Parâmetro para ExternalTraceWrapper
newrelic.agent.ExternalTraceWrapper(wrapped, library, url, method=None)
O ExternalTraceWrapper
usa todos os mesmos parâmetros do decorador , além de um parâmetro wrapped
inicial:
Parâmetro | Descrição |
---|---|
função | Obrigatório. A função de chamada externa para atribuir ao tempo externo. |
parâmetro para wrap_external_trace
newrelic.agent.wrap_external_trace(module, object_path, library, url, method=None)
O wrap_external_trace
usa todos os parâmetros que o decorador usa, além de um parâmetro module
e um parâmetro object_path
:
Parâmetro | Descrição |
---|---|
objeto | Obrigatório. O módulo que contém o objeto a ser empacotado. |
corda | Obrigatório. O caminho para o objeto a ser encapsulado. |
Valores de retorno
external_trace
retorna uma parcial ExternalTraceWrapper()
.
Exemplos
exemplo de external_trace
Um exemplo de uso de external_trace
:
@external_trace('library', 'http://example.com', 'get')def foo(): pass
Um exemplo de uso external_trace
em uma corrotina nativa:
@external_trace('library', 'http://example.com', 'get')async def foo(): pass
Exemplo de ExternalTrace
Um exemplo de uso do gerenciador de contexto ExternalTrace
:
def fetch_example_dot_com(): with ExternalTrace('library', 'http://example.com', 'get'): pass
Exemplo de ExternalTraceWrapper
Um exemplo de uso do ExternalTraceWrapper
:
wrapped_fetch_example_dot_com = newrelic.agent.ExternalTraceWrapper(fetch_example_dot_com, 'library', 'http://example.com', 'get')
response = wrapped_fetch_example_dot_com()
exemplo wrap_external_trace
Um exemplo de uso do wrapper baseado em caminho wrap_external_trace
:
wrap_external_trace('module', 'Foo.bar', 'library', 'http://example.com', 'get')