Sintaxe
NewRelic.Api.Agent.NewRelic.SetErrorGroupCallback(Func<IReadOnlyDictionary<string,object>, string> errorGroupCallback);
Forneça um método de retorno de chamada que receba um IReadOnlyDictionary<string,object>
de dados de atributo e retorne um nome de grupo de erros.
Requisitos
Esta chamada de API é compatível com:
- Versões do agente >= 10.9.0
- Todos os tipos de aplicativos
Descrição
Configure um método de retorno de chamada que o agente usará para determinar o nome do grupo de erros para evento de erro e rastreio. Este nome é usado na Errors Inbox para agrupar erros em grupos lógicos.
O método de retorno de chamada deve aceitar um único argumento do tipo IReadOnlyDictionary<string,object>
e retornar uma string (o nome do grupo de erros). O IReadOnlyDictionary
é uma coleção de dados de atributo associados a cada evento de erro, incluindo atributo personalizado.
A lista exata de atributos disponíveis para cada erro irá variar dependendo de:
- Qual código do aplicativo gerou o erro
- Definições de configuração do agente
- Se algum atributo personalizado foi adicionado
Contudo, deverá sempre existir o seguinte atributo:
error.class
error.message
stack_trace
transactionName
request.uri
error.expected
Uma cadeia de caracteres vazia pode ser retornada para o nome do grupo de erros quando o erro não pode ser atribuído a um grupo de erros lógicos.
Parâmetro
Parâmetro | Descrição |
---|---|
'Func<IReadOnlyDictionary<string,object>,string>' | O retorno de chamada para determinar o nome do grupo de erros com base nos dados do atributo. |
Exemplos
Agrupar erros por nome de classe de erro:
Func<IReadOnlyDictionary<string, object>, string> errorGroupCallback = (attributes) => { string errorGroupName = string.Empty; if (attributes.TryGetValue("error.class", out var errorClass)) { if (errorClass.ToString() == "System.ArgumentOutOfRangeException" || errorClass.ToString() == "System.ArgumentNullException") { errorGroupName = "ArgumentErrors"; } else { errorGroupName = "OtherErrors"; } } return errorGroupName;};
NewRelic.Api.Agent.NewRelic.SetErrorGroupCallback(errorGroupCallback);
Erros de grupo por nome de transação:
Func<IReadOnlyDictionary<string, object>, string> errorGroupCallback = (attributes) => { string errorGroupName = string.Empty; if (attributes.TryGetValue("transactionName", out var transactionName)) { if (transactionName.ToString().IndexOf("WebTransaction/MVC/Home") != -1) { errorGroupName = "HomeControllerErrors"; } else { errorGroupName = "OtherControllerErrors"; } } return errorGroupName;};
NewRelic.Api.Agent.NewRelic.SetErrorGroupCallback(errorGroupCallback);