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 da transação na forma de segmentos adicionais. Todas as chamadas relatadas com external_trace aparecerão na guia externa no APM. external_trace retorna uma parte de ExternalTraceWrapper que pode ser usada como um 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 oExternalTraceWrappera um determinado objeto por meio de monkey patching. Isso usa os mesmos parâmetros do decorador mais um parâmetromoduleeobject_pathadicional.
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(): passUm exemplo de uso external_trace em uma corrotina nativa:
@external_trace('library', 'http://example.com', 'get')async def foo(): passExemplo de ExternalTrace
Um exemplo de uso do gerenciador de contexto ExternalTrace :
def fetch_example_dot_com(): with ExternalTrace('library', 'http://example.com', 'get'): passExemplo 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')