• 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

notice_error (API do agente Python)

Sintaxe

newrelic.agent.notice_error(error=None, attributes={}, expected=None, ignore=None, status_code=None, application=None)

Registra detalhes de uma exceção Python como um erro.

Descrição

Por padrão, o agente Python relata apenas exceções não tratadas. Use notice_error para registrar qualquer exceção do Python como um erro, que pode então ser encontrado na interface. Se nenhum parâmetro for fornecido, os detalhes da exceção atualmente tratada serão usados.

Você pode registrar até cinco exceções distintas por transação e até 20 exceções no total em todas as transações por ciclo de coleta.

Quando notice_error() é chamado no contexto de uma solicitação da Web de monitoramento ou de uma tarefa em segundo plano, os detalhes da exceção serão relatados no aplicativo ao qual a solicitação ou tarefa está sendo relatada.

Se chamada fora do contexto de uma solicitação da Web de monitoramento ou de uma tarefa em segundo plano, a chamada será ignorada, a menos que o argumento da palavra-chave application seja fornecido e um objeto de aplicativo correspondente ao aplicativo no qual a exceção deve ser registrada seja fornecido. Um objeto de aplicativo adequado pode ser obtido usando a função newrelic.agent.application() .

Parâmetro

Dica

Em quase todos os casos, notice_error não exigirá nenhum parâmetro.

Parâmetro

Descrição

error

tuple

Opcional e raramente usado. Uma tupla contendo informações de exceção (exception_class, exception_instance, traceback) retornadas de sys.exc_info().

attributes

dict

Opcional. atributo personalizado a ser adicionado ao evento de erro (além de qualquer atributo personalizado já adicionado à transação). Se o modo de alta segurança estiver ativado, isso não funcionará.

expected

boolean, iterable[String], callable(exception_class, exception_instance, traceback)->boolean

Opcional. Erros a serem marcados como esperado podem ser transmitidos como um iterável de strings no formato module:class. Esse valor também pode ser chamável ou booliano, indicando se o erro é esperado. Esses erros serão reportados à interface, mas não afetarão a pontuação Apdex ou taxa de erros.

ignore

boolean, iterable[String], callable(exception_class, exception_instance, traceback)->boolean

Opcional. Erros a serem ignorados podem ser transmitidos como um iterável de strings no formato module:class. Esse valor também pode ser chamável ou booleano, indicando se o erro deve ser ignorado. Útil quando certos tipos de exceções sempre devem ser ignorados e nunca registrados.

status_code

string, inteiro, chamável (exception_class, exception_instance, traceback)

Opcional. O código de status de exceção. Esse valor pode ser uma sequência, um número inteiro ou uma chamada que recebe informações de exceção (exception_class, exception_instance, traceback) retornadas de sys.exc_info() e retorna o código de status como um número inteiro.

application

objeto de aplicativo

Opcional. Se chamada fora do contexto de uma solicitação da Web de monitoramento ou de uma tarefa em segundo plano, a chamada será ignorada, a menos que o objetoapplication seja fornecido.

Valores de retorno

Nenhum.

Exemplos

Exemplo simples de reportar exceções

Na grande maioria dos casos, não será necessário passar nenhum parâmetro. Você apenas chamaria o seguinte quando quiser relatar uma exceção:

newrelic.agent.notice_error()

Exemplo usando booleano

Um exemplo de notice_error usando um valor booleano. Isso indica que um erro deve ser esperado.

newrelic.agent.notice_error(expected=True)

Chame com tupla sys.exc_info() e parâmetro adicional

Um exemplo de notice_error usando dados sys.exc_info() :

def complex_ignore_errors(exc, val, tb):
# do some logic here
return False
newrelic.agent.notice_error(attributes={'my_special_exception': True}, ignore=complex_ignore_errors)

Exemplo usando retorno de chamada

Se precisar filtrar exceções dinamicamente com base no atributo de um tipo de exceção específico, você pode fornecer uma função de retorno de chamada:

def _ignore_errors(exc, value, tb):
if instance(value, HTTPError):
if value.status == 404:
return True
newrelic.agent.notice_error(ignore=_ignore_errors)

Se a exceção for ignorada/esperada, defina o valor de retorno do chamável como True. Retorne False se a exceção nunca deve ser ignorada/esperada, independentemente de quaisquer outras verificações, e None se verificações subsequentes e regras embutidas devem determinar se a exceção deve ser ignorada/esperada. Um retorno de chamada normalmente retornaria True ou None.

Copyright © 2024 New Relic Inc.

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