Para enviar dados de erro que você está processando em seu próprio código para o New Relic, use a chamada da Ruby API do agente NewRelic::Agent.notice_error
em seu gerenciador de erros.
Notifique a New Relic Ruby
Esta chamada de API aceita a exceção e uma opção opcional aplica hash. Use este formato:
NewRelic::Agent.notice_error(exception, options = { }) ⇒ Object
Essa função registra o erro fornecido e o transmite pelo processo normal de filtragem de erros, incluindo ignorar erros com base na configuração e o método #ignore_error_filter
global, se definido.
O exception
é a exceção a ser registrada ou uma mensagem de erro. Se necessário, você também pode incluir options = { }
. O parâmetro a seguir receberá tratamento especial e qualquer outro parâmetro fornecido será tratado como parâmetro personalizado.
options = { } | Comments |
---|---|
| Registra apenas o tracede erro. Isto não afeta a taxa de erros ou o status do Apdex. Para obter informações sobre erro esperado na interface, consulte Visualizar erro esperado. Substitui a opção |
| Parâmetro personalizado. |
| O caminho da solicitação, menos qualquer parâmetro de solicitação ou string de consulta. Geralmente não é necessário. Inclua isso apenas se estiver chamando |
| O nome da métrica associado à transação. Geralmente não é necessário. Inclua isso apenas se estiver chamando |
| Versões mais antigas do agente Ruby permitiam passar uma opção |
Erro impressão digital: Aplique dinamicamente um grupo de erros a cada erro detectado
Suas ocorrências de erros estão mal agrupadas? Defina sua própria impressão digital de erro por meio de uma função de retorno de chamada.
Um retorno de chamada baseado em Proc
pode ser fornecido ao agente para aplicar dinamicamente um grupo de erros desejado a cada erro detectado. Use a API do agente Ruby NewRelic::Agent.set_error_group_callback
para fornecer um retorno de chamada ao agente.
Esta chamada de API usa um método de retorno de chamada (deve ser do tipo Proc
) como único argumento. O argumento é obrigatório. A chamada de API só precisa ser feita uma vez por lançamento do agente New Relic Ruby, portanto, a chamada pode ser feita em um inicializador Rails ou similar. Se forem feitas chamadas subsequentes à API, o método de retorno de chamada será atualizado para o método mais recente fornecido. Aqui está um exemplo de retorno de chamada sendo definido e passado para o método de API NewRelic::Agent.set_error_group_callback
:
proc = proc { |hash| "Access" if hash[:'http.statusCode'] == 401 }NewRelic::Agent.set_error_group_callback(proc)
No exemplo mostrado, é criado um procedimento de retorno de chamada que aceitará um hash Aplicar como seu único argumento e, em seguida, retornará a string "Access" para o nome do grupo de erros desejado se o hash Aplicar contiver uma chave de código de status HTTP com um valor de 401.
Espera-se que o processo de retorno de chamada receba exatamente um argumento de entrada, um hash aplicar. O hash aplicar contém o seguinte:
Key | Value |
---|---|
| A instância da classe de erro Ruby. Ofertas |
| Qualquer atributo personalizado para a transação atual |
| O URI de solicitação atual, se disponível |
| O código de status HTTP (200, 404, etc.), se disponível |
| O método HTTP (GET, PUT, etc.), se disponível |
| Se (verdadeiro) ou não (falso) o erro era esperado |
| As opções aplicam hash passado para |
Espera-se que o procedimento de retorno de chamada retorne uma string representando o nome do grupo de erros desejado, se algum puder ser determinado. Se o proc retornar um nil
ou uma string vazia (''
), o erro receberá lógica de agrupamento do lado do servidor.
rastreamento de usuário: Associando um ID de usuário a cada transação e erro
Agora você pode ver o número de usuários afetados por um grupo de erros.
Transações e erros podem ser associados a um ID de usuário se um for conhecido pelo agente New Relic Ruby. Use a API do agente Ruby NewRelic::Agent.set_user_id
para fornecer ao agente um ID de usuário.
Esta chamada de API requer um único argumento de uma string que representa um identificador exclusivo para um usuário final. Essa string pode ser um UUID, um ID de banco de dados ou similar. A chamada da API deve ser feita pelo menos uma vez por transação para informar ao agente New Relic Ruby a qual ID de usuário associar a transação. Então, por sua vez, quando o agente perceber erros durante a vida útil da transação, os erros terão um atributo de agente enduser.id
que contém o valor do ID do usuário.
Como a API deve ser chamada sempre que um novo ID de usuário entrar no escopo, o ideal é que ela seja chamada por meio de um middleware que esteja ciente da criação da sessão do usuário. Depois que o agente New Relic Ruby tiver conhecimento do ID do usuário, ele fornecerá o atributo de agente enduser.id
na transação atual, bem como em quaisquer erros observados durante a vida útil da transação atual.
Rastreamento de versão: use metadados para ver qual versão produziu um erro
A Caixa de entrada de erros rastreará automaticamente quais versões do seu software estão produzindo erros. Todos os dados da versão também serão exibidos no CodeStream.
Defina uma das seguintes variáveis de ambiente para ajudar a identificar quais versões do seu software produzem erros.
NEW_RELIC_METADATA_SERVICE_VERSION
adiciona o atributotags.service.version
aos dados do evento de erro contendo a versão do seu código que está implantada, geralmente uma versão semântica como1.2.3
, mas nem sempre.NEW_RELIC_METADATA_RELEASE_TAG
adiciona o atributotags.releaseTag
aos dados do evento que contêm a tag de lançamento (comov0.1.209
ourelease-209
).NEW_RELIC_METADATA_COMMIT
adiciona o atributotags.commit
nos dados do evento que contém o commit sha. Você pode usar o sha inteiro ou apenas os primeiros sete caracteres (por exemplo,734713b
).