Tanto o atributo padrão quanto o personalizado são visíveis em trace da transação, trace distribuído e análise de erros; Evento APM e evento do browser no painel. Você pode personalizar exatamente qual atributo será enviado para cada um desses destinos.
Este documento descreve o atributo do agente Java, detalha como ativar ou desativar o atributo e descreve as regras que o agente segue para determinar qual atributo incluir ou excluir para um destino.
Dica
Essas configurações de atributo se aplicam à versão 3.7.0 ou superior do agente Java. Se você usa uma versão mais antiga do agente, consulte Atualizar configuração do legado atributo.
O código de status de resposta para uma solicitação da web. A chave para este atributo é http.statusCode. Nota: As versões do agente abaixo de 8.0.0 usaram o atributo httpResponseCode.
A configuração padrão para cada destino é:
Rastreamento da transação: Habilitado
Análise de erros: habilitada
Evento APM: Habilitado
Evento do browser: Desativado
A mensagem de status de resposta, se presente para uma solicitação da web. A chave para este atributo é http.statusText. Nota: As versões do agente abaixo de 8.0.0 usaram o atributo httpResponseMessage.
A configuração padrão para cada destino é:
Rastreamento da transação: Habilitado
Análise de erros: habilitada
Evento APM: Habilitado
Evento do browser: Desativado
O nome do tópico. A chave para este atributo é jvm.thread_name.
A configuração padrão para cada destino é:
Rastreamento da transação: Habilitado
Análise de erros: habilitada
Evento APM: Desativado
Evento do browser: indisponível
O nome de um thread bloqueado. A chave para este atributo é jvm.lock_thread_name.
A configuração padrão para cada destino é:
Rastreamento da transação: Indisponível
Análise de erros: habilitada
Evento APM: Indisponível
Evento do browser: indisponível
Atributo adicionado por uma chamada à API do agente Java NewRelic.addCustomParameter(...) . O nome da chave para esse atributo depende do que você especifica ao chamar o método.
Atributo adicionado a uma chamada NoticeError() na API do agente Java. O nome da chave para esse atributo depende do que você especifica ao chamar o método.
A configuração padrão para cada destino é:
Rastreamento da transação: Indisponível
Análise de erros: habilitada
Evento APM: Indisponível
Evento do browser: indisponível
O agente Java pode capturar os seguintes cabeçalhos de resposta e solicitação como atributo:
Cabeçalhos de solicitação HTTP capturados:
request.headers.referer
request.headers.accept
request.headers.contentLength
request.headers.host
request.headers.userAgent
Cabeçalho de resposta capturado: response.headers.contentType
O agente não captura outros cabeçalhos de solicitação.
O sistema de atributo não se aplica a nenhum valor de cabeçalho diferente dos listados acima. Se desejar capturar cabeçalhos de solicitação adicionais não listados aqui, você deverá usar a opção de configuração custom_request_headers para especificar cabeçalhos a serem capturados pelo agente. Como alternativa, você mesmo pode registrar diretamente os cabeçalhos usando o método addCustomParameter() da API do agente Java.
A configuração padrão para cada destino é:
Rastreamento da transação: Habilitado
Análise de erros: habilitada
Evento APM: Habilitado
Evento do browser: Desativado
O agente Java captura os métodos de solicitação GET, POST e PUT por padrão como parte do atributo request.method .
Os parâmetros de solicitação da transação não são capturados por padrão. Use a API do agente Java addCustomParameter() para capturar o parâmetro da solicitação.
A chave para esses atributos é request.parameters.*. Se a captura de informações confidenciais for uma preocupação, você pode usar estas opções:
Evite usar curingas em attributes.include. Em vez disso, especifique explicitamente cada campo a ser capturado.
Se você quiser usar um curinga em attributes.include, exclua explicitamente os campos confidenciais usando attributes.exclude.
Coletar atributos do usuário
Com o agente Java do APM, você pode coletar automaticamente informações do usuário editando seu arquivo de configuração. Você pode então executar a consulta NRQL com base nas informações do usuário sem precisar criar um atributo personalizado manualmente. Este recurso está disponível com o agente Java 3.10.0 da New Relic ou mais alto.
# This instrumentation reports the name of the user principal returned from
# HttpServletRequest.getUserPrincipal() when servlets and filters are invoked.
com.newrelic.instrumentation.servlet-user:
enabled:true
Reinicie seu servidor web.
Se você estiver usando o 8.1.0 versão do agente Java ou superior, você pode consultar o atributo enduser.id ativando com.newrelic.instrumentation.servlet-user ou usando a API pública e aguardando alguns minutos. Por exemplo, você poderia usar a seguinte consulta NRQL para obter uma contagem exclusiva de todos os usuários:
SELECT uniqueCount(enduser.id)FROMTransaction SINCE 1day ago
Você pode configurar quais tipos de atributo, ou qual atributo específico, o agente Java reporta à New Relic. Isso geralmente é feito por motivos de segurança, quando há certos atributos confidenciais que você não deseja que sejam relatados à New Relic. Para saber quais configurações substituem outras configurações, consulte as regras de configuração do atributo.
O agente Java segue estas regras ao determinar qual atributo incluir ou excluir para um destino:
Se você definir a propriedade attributes.enabled principal como false, o agente não reportará nenhum atributo.
Configuração do agente:
attributes.enabled: false
attributes.include: request.parameters.*
error_collector.attributes.enabled: true
Chaves de entrada:
foo
bar
request.parameters.foo
request.parameters.bar
Saída do agente:
Rastreamento da transação: Sem atributo
Análise de erros: sem atributo
Evento APM: Sem atributo
Evento do browser: Sem atributo
Quando você define ativado como false para um destino, o agente ignora suas configurações de inclusão/exclusão e não relata nenhum atributo para esse destino.
Configuração do agente:
transaction_tracer.attributes.enabled: false
attributes.include: one, two*
transaction_tracer.attributes.include: three, four
Chaves de entrada:
one
two
three
four
Saída do agente:
Rastreamento da transação: Sem atributo
Análise de erros: one, two
Evento APM: one, two
Evento do browser: Sem atributo
As propriedades .exclude substituem as propriedades .include .
Configuração do agente:
attributes.enabled: true
attributes.include: foo, myCustomAtt
attributes.exclude: password, myCustomAtt
Chaves de entrada:
foo
myCustomAtt
password
Saída do agente:
Rastreamento da transação: foo
Análise de erros: foo
Evento APM: foo
Evento do browser: foo
Se vários atributos de inclusão ou exclusão afetarem a mesma chave, a configuração mais específica terá prioridade.
Configuração do agente:
attributes.enabled: true
attributes.include: foo, myCustomAtt
attributes.exclude: password, myCustomAtt
browser_monitoring.attributes.enabled: true
Chaves de entrada:
food
food.bread
food.fruit.banana
food.fruit.apple
Saída do agente:
Rastreamento da transação: food.fruit.apple
Análise de erros: food.fruit.banana, food.fruit.apple
Evento APM: food.fruit.banana, food.fruit.apple
Evento do browser: food.fruit.banana, food.fruit.apple
As chaves especificadas nas propriedades .include e .exclude diferenciam maiúsculas de minúsculas.
Configuração do agente:
attributes.enabled: true
attributes.exclude: password, PaSsWoRd
Chaves de entrada:
password
Password
PASSWORD
PaSsWoRd
PassWORD
Saída do agente:
Rastreamento da transação: Password, PASSWORD, PassWORD
Análise de erros: Password, PASSWORD, PassWORD
Evento APM: Password, PASSWORD, PassWORD
Evento do browser: Password, PASSWORD, PassWORD
Você pode usar um asterisco * no final de uma chave como curinga. Isso corresponderá a um conjunto de atributo com o mesmo prefixo.
Configuração do agente:
attributes.enabled: true
attributes.include: custom*
attributes.exclude: request.parameters.*
Chaves de entrada:
custom
custom.key1
custom.key2
request.parameters.
request.parameters.foo
request.parameters.bar
Saída do agente:
Rastreamento da transação: custom, custom.key1, custom.key2
Análise de erros: custom, custom.key1, custom.key2
Evento APM: custom, custom.key1, custom.key2
Evento do browser: custom, custom.key1, custom.key2