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 |
---|---|
tuple | Opcional e raramente usado. Uma tupla contendo informações de exceção |
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á. |
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 |
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 |
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 |
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 objeto |
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
.