Você poderá configurar nosso agente .NET para se adequar ao seu ambiente depois de criar uma conta New Relic (é grátis, para sempre) e instalar o agente .NET.
Visão geral da configuração
As opções de configuração do agente APM permitem controlar alguns aspectos de como o agente se comporta. Algumas dessas opções de configuração fazem parte do processo básico de instalação (como definir a chave de licença e o nome do aplicativo), mas a maioria são configurações mais avançadas, como definir um nível de log, configurar o acesso ao host proxy, excluir determinados atributos e ativar distributed tracing.
O agente .NET obtém sua configuração do arquivo newrelic.config
, que é gerado como parte do processo de instalação. Por padrão, apenas um arquivo global newrelic.config
é criado, mas você também pode criar arquivos locais de aplicativo newrelic.config
para um controle mais preciso sobre um sistema com vários aplicativos. Outras maneiras de definir opções de configuração incluem: usar variáveis de ambiente ou definir a configuração no lado do servidor a partir da interface. Para mais informações sobre as várias opções de configuração e o que substitui o quê, consulte Precedência de configurações.
O suporte para .NET framework e .NET Core usa as mesmas opções de configuração e possui o mesmo recurso APM, salvo indicação em contrário.
Se você fizer alterações no arquivo de configuração e quiser validar se ele está no formato correto, poderá verificá-lo no arquivo XSD (por exemplo, em C:\ProgramData\New Relic\.NET Agent\newrelic.xsd
para Windows) com qualquer validador XSD.
Importante
For IIS: após alterar o arquivo newrelic.config
ou app.config
, execute um IISRESET
em um prompt de comando administrativo. Os ajustes de nível de log não exigem redefinição.
Métodos de configuração e níveis de precedência
Após a instalação, o arquivo de configuração do agente .NET (newrelic.config
) se aplica a todos os aplicativos de monitor, mas você pode configurar o agente de outras maneiras. Aqui está um diagrama que mostra como diferentes opções de configuração têm precedência umas sobre as outras:
Este diagrama explica a ordem de precedência para diferentes maneiras de configurar o agente .NET.
Aqui estão detalhes sobre os métodos de configuração mostrados no diagrama e seus níveis de precedência:
.NET configuration | Details and precedence |
---|---|
| As definições de configuração definidas nesses arquivos têm precedência mais alta. Se o agente estiver desabilitado no
|
Variáveis ambientais | Segunda maior precedência. Para obter mais informações sobre isso, consulte Variáveis de ambiente .NET. |
Configuração no lado do servidor | Terceira maior precedência. Um número limitado de configurações no lado do servidor está disponível; as outras configurações virão de outras fontes de configuração. |
Local do aplicativo | Quarta maior precedência. Você pode criar arquivos O agente procura arquivos de configuração locais do aplicativo nos seguintes diretórios, nesta ordem:
|
Padrão (global) | Fonte padrão e a precedência mais baixa. Configurará todos os aplicativos em um host na ausência de outros arquivos de configuração. O arquivo de configuração global está localizado no diretório inicial do agente New Relic: |
Variáveis de ambiente obrigatórias
Nosso agente .NET depende de variáveis de ambiente para informar ao .NET Common Language Runtime (CLR) para anexar o New Relic aos seus processos. Alguns procedimentos de instalação do agente .NET (como o instalador MSI) definirão automaticamente essas variáveis para você; alguns procedimentos exigirão que você os configure manualmente.
Cuidado
Recomendação de segurança: você deve considerar qual usuário pode definir variáveis de ambiente do sistema. Você também deve proteger as contas sob as quais seu aplicativo é executado para evitar que variáveis de ambiente do usuário substituam variáveis de ambiente do sistema
Se o seu sistema já usou serviços de monitoramento (não New Relic), você pode ter um "conflito profiler " ao tentar instalar e usar o agente New Relic. Mais detalhes:
Para obter instruções de instalação específicas, consulte a documentação de instalação do agente .NET.
Variáveis de ambiente opcionais
Algumas opções de configuração no agente .NET da New Relic podem ser definidas por meio de variáveis de ambiente como uma alternativa à configuração em um arquivo de configuração. Abaixo está uma lista de variáveis de ambiente reconhecidas pelo agente .NET com valores de exemplo.
NEW_RELIC_LICENSE_KEY=YOUR_LICENSE_KEYNEW_RELIC_APP_NAME=Descriptive NameMAX_TRANSACTION_SAMPLES_STORED=500MAX_EVENT_SAMPLES_STORED=500NEW_RELIC_DISTRIBUTED_TRACING_ENABLED=trueNEW_RELIC_SPAN_EVENTS_ENABLED=falseNEW_RELIC_SPAN_EVENTS_MAX_SAMPLES_STORED=2000NEW_RELIC_INFINITE_TRACING_TRACE_OBSERVER_HOST=myhost.infinitetracing.comNEW_RELIC_LABELS="foo:bar;zip:zap"NEW_RELIC_PROCESS_HOST_DISPLAY_NAME=Custom NameNEW_RELIC_HOST=gov-collector.newrelic.comNEW_RELIC_PROXY_HOST=hostnameNEW_RELIC_PROXY_URI_PATH=path/to/something.aspxNEW_RELIC_PROXY_PORT=5000NEW_RELIC_PROXY_USER=YOUR_USER_NAMENEW_RELIC_PROXY_PASS=YOUR_PROXY_PASSWORDNEW_RELIC_PROXY_DOMAIN=mydomain.comNEW_RELIC_PROXY_PASS_OBFUSCATED=YOUR_OBFUSCATED_PROXY_PASSWORDNEW_RELIC_CONFIG_OBSCURING_KEY=YOUR_OBSCURING_KEYNEW_RELIC_SEND_DATA_ON_EXIT=trueNEW_RELIC_SEND_DATA_ON_EXIT_THRESHOLD_MS=2000NEW_RELIC_HIGH_SECURITY=trueNEW_RELIC_DISABLE_SAMPLERS=trueNEW_RELIC_LOG=MyApp.logNEW_RELIC_LOG_ENABLED=trueNEWRELIC_LOG_LEVEL=infoNEW_RELIC_LOG_CONSOLE=trueNEWRELIC_PROFILER_LOG_DIRECTORY=path\to\a\directory # not configurable via config fileNEWRELIC_LOG_DIRECTORY=path\to\a\directory # Insert a directory where you want to put the agent and profiler logs. You can't set this directory for both agent and profiler logs in the configuration file.NEW_RELIC_LOG_ROLLING_STRATEGY=dayNEW_RELIC_LOG_MAX_FILE_SIZE_MB=100NEW_RELIC_LOG_MAX_FILES=2NEW_RELIC_ERROR_COLLECTOR_IGNORE_ERROR_CODES=401, 403.18NEW_RELIC_ERROR_COLLECTOR_EXPECTED_ERROR_CODES=401, 501-503NEW_RELIC_APPLICATION_LOGGING_ENABLED=trueNEW_RELIC_APPLICATION_LOGGING_METRICS_ENABLED=trueNEW_RELIC_APPLICATION_LOGGING_FORWARDING_ENABLED=trueNEW_RELIC_APPLICATION_LOGGING_FORWARDING_CONTEXT_DATA_ENABLED=trueNEW_RELIC_APPLICATION_LOGGING_FORWARDING_CONTEXT_DATA_INCLUDE="myCustomAttribute1, myOtherCustomAttribute*"NEW_RELIC_APPLICATION_LOGGING_FORWARDING_CONTEXT_DATA_EXCLUDE="myCustomAttribute2, myOtherCustomAttributeMoreSpecificName"NEW_RELIC_APPLICATION_LOGGING_FORWARDING_MAX_SAMPLES_STORED=10000NEW_RELIC_APPLICATION_LOGGING_FORWARDING_LOG_LEVEL_DENYLIST="debug, warn"NEW_RELIC_APPLICATION_LOGGING_LOCAL_DECORATING_ENABLED=trueNEW_RELIC_ALLOW_ALL_HEADERS=trueNEW_RELIC_ATTRIBUTES_ENABLED=trueNEW_RELIC_ATTRIBUTES_INCLUDE=request.headers.*,foo.barNEW_RELIC_ATTRIBUTES_EXCLUDE=request.headers.cookie,request.headers.authorizationNEW_RELIC_UTILIZATION_DETECT_AWS=trueNEW_RELIC_UTILIZATION_DETECT_AZURE=trueNEW_RELIC_UTILIZATION_DETECT_GCP=trueNEW_RELIC_UTILIZATION_DETECT_PCF=trueNEW_RELIC_UTILIZATION_DETECT_DOCKER=trueNEW_RELIC_UTILIZATION_DETECT_KUBERNETES=trueNEW_RELIC_FORCE_NEW_TRANSACTION_ON_NEW_THREAD=trueNEW_RELIC_CODE_LEVEL_METRICS_ENABLED=trueNEW_RELIC_AI_MONITORING_ENABLED=trueNEW_RELIC_AI_MONITORING_RECORD_CONTENT_ENABLED=true
Se você estiver usando New Relic CodeStream para monitor o desempenho do seu IDE, talvez você também queira associar o repositório aos seus serviços e associar SHAs de compilação ou tags de lançamento aos erros.
Configuração Errors Inbox
Definir uma das tags a seguir ajudará você a identificar quais versões do seu software estão produzindo erros.
NEW_RELIC_METADATA_SERVICE_VERSION
irá criar tag.service.version nos dados do evento contendo a versão do seu código que está implantada, em muitos casos uma versão semântica como 1.2.3, mas nem sempre.NEW_RELIC_METADATA_RELEASE_TAG
criará tags.releaseTag nos dados do evento contendo a tag de lançamento (como v0.1.209 ou release-209).NEW_RELIC_METADATA_COMMIT
criará tag.commit nos dados do evento contendo o commit sha. O sha inteiro pode ser usado ou apenas os primeiros sete caracteres (por exemplo, 734713b).
Uma próxima versão da Errors Inbox rastreará automaticamente quais versões do seu software estão produzindo erros. Quaisquer dados de versão também serão exibidos no CodeStream.
Opções de configuração, newrelic.config
Use estas opções para instalar e configurar seu agente por meio do arquivo newrelic.config
. O agente .NET oferece suporte às seguintes categorias de opções de configuração:
- Elemento de configuração
- Elemento de serviço
- Elemento-chave obscurecendo
- Elemento proxy
- Elemento log
- Elemento do aplicativo (configuração)
- Elemento de transmissão de dados
- Nome de anfitrião
Elemento de configuração
O elemento raiz do documento de configuração é um elemento configuration
.
<configuration xmlns="urn:newrelic-config" agentEnabled="true" maxStackTraceLines="50">
O elemento configuration
suporta o seguinte atributo:
Elemento de serviço
O primeiro filho do elemento configuration
é um elemento service
. O elemento de serviço configura a conexão do agente com o serviço New Relic.
<service licenseKey="YOUR_LICENSE_KEY" sendEnvironmentInfo="true" syncStartup="false" sendDataOnExit="false" sendDataOnExitThreshold="60000" autoStart="true"/>
O elemento service
suporta o seguinte atributo:
Elemento-chave obscurecendo
O elemento obscuringKey
é um filho opcional do elemento service
. O agente .NET usa esse valor para desofuscar valores de configuração suportados. Por exemplo, quando uma senha de proxy ofuscada é fornecida, ela será desofuscada usando esta chave.
<service licenseKey="YOUR_LICENSE_KEY"> <obscuringKey>OBSCURING_KEY</obscuringKey></service>
A chave de obscurecimento também pode ser configurada definindo a variável de ambiente NEW_RELIC_CONFIG_OBSCURING_KEY
.
Cuidado
Recomendação de segurança: A colocação da chave obscurecida no mesmo arquivo de configuração que um valor ofuscado pode representar um risco de segurança. Considere colocar a chave oculta e a senha do proxy ofuscada em variáveis de ambiente e limitar o acesso às variáveis de ambiente em seu ambiente.
Elemento proxy
O elemento proxy
é um filho opcional do elemento service
. O elemento proxy
é usado quando o agente se comunica com o serviço backend da New Relic por meio de um proxy.
<service licenseKey="YOUR_LICENSE_KEY"> <proxy host="hostname" port="PROXY_PORT" uriPath="path/to/something.aspx" domain="mydomain.com" user="PROXY_USERNAME" password="PROXY_PASSWORD" passwordObfuscated="OBFUSCATED_PROXY_PASSWORD"/></service>
O elemento proxy
suporta o seguinte atributo:
Elemento log
O elemento log
é filho do elemento configuration
. O elemento log
configura o registro do New Relic. O agente gera seu próprio arquivo de log para manter suas informações de log separadas dos logs do seu aplicativo.
<log enabled="true" level="info" auditLog="false" console="false" directory="PATH\TO\LOG\DIRECTORY" fileName="FILENAME.log" />
O elemento log
suporta o seguinte atributo:
Elemento do aplicativo (obrigatório)
O elemento application
é filho do elemento configuration
. Este elemento obrigatório define o nome do seu aplicativo e desabilita ou habilita a amostragem.
Elemento de transmissão de dados
O elemento dataTransmission
é filho do elemento configuration
. Este elemento afeta a forma como os dados são enviados para o New Relic e pode ser usado se você tiver requisitos específicos de transmissão de dados.
<dataTransmission putForDataSend="false" compressedContentEncoding="deflate"/>
O elemento dataTransmission
suporta o seguinte atributo:
Nome de anfitrião
Se o rótulo do nome do host padrão na interface do usuário do APM não for útil, você poderá decorar esse nome na interface do usuário do New Relic com um nome de exibição. Depois que o processo do aplicativo for reiniciado e o agente .NET reportar novamente, o nome de exibição aparecerá na lista suspensa Servers . Essa configuração de nome de host não afeta a lista de hosts na página Summary do seu aplicativo.
Para definir um nome de exibição, escolha uma das opções a seguir. A variável de ambiente tem precedência sobre o valor do arquivo de configuração. Em seguida, reinicie seu aplicativo para ver suas alterações na interface do New Relic.
Utilização da plataforma em nuvem
O elemento de configuração utilization
controla como o agente coleta informações de utilização e as envia ao serviço New Relic para determinar o preço. O agente pode coletar informações de instâncias EC2 da Amazon Web Services (AWS), contêiner Docker , Microsoft Azure, Google Cloud Platform, Pivotal Cloud Foundry e Kubernetes.
<configuration . . . > <utilization detectAws="true" detectAzure="true" detectGcp="true" detectPcf="true" detectDocker="true" detectKubernetes="true" /></configuration>
O elemento utilization
suporta o seguinte atributo:
Opções de instrumentação
Utilize estas opções para configurar quais elementos da sua aplicação e ambiente serão instrumentados. O New Relic for .NET oferece suporte às seguintes categorias de opções de instrumentação:
Elemento de instrumentação
O elemento instrumentation
é filho do elemento configuration
. Por padrão, os processos de trabalho asp do instrumento do agente .NET e as funções web e de trabalho do Microsoft Azure. Para instrumentar outros processos, consulte aplicativo customizado instrumentado.
Elemento de regras (instrumentação)
Importante
Este recurso está disponível no agente .NET 10.21.0 e superior.
O elemento rules
é filho do elemento instrumentation
. O elemento rules
suporta qualquer número de elementos filhos ignore
, o que instrui o profiler a NÃO utilizar nenhum método definido no assembly especificado. Os métodos definidos em outras montagens ainda serão instrumentados.
<instrumentation> <rules> <ignore assemblyName="NameOfAssemblyToIgnore" /> </rules></instrumentation>
A regra ignore
permite definir opcionalmente um nome de classe. No exemplo a seguir, apenas os métodos definidos em MyNamespace.MyClass
na montagem MyAssembly
serão ignorados. Outros métodos em outras classes, tanto dentro desse assembly quanto em outros assemblies, não serão ignorados pelo profiler.
<instrumentation> <rules> <ignore assemblyName="MyAssembly" className="MyNamespace.MyClass" /> </rules></instrumentation>
Mais de uma regra de ignorar pode ser especificada. O exemplo a seguir desabilita a instrumentação Confluent Kafka e StackExchange Redis .
<instrumentation> <rules> <ignore assemblyName="Confluent.Kafka" /> <ignore assemblyName="StackExchange.Redis" /> </rules></instrumentation>
Observe que a instrumentação personalizada não pode ser ignorada pelo elemento rules
.
Elemento aplicativo (instrumentação)
O elemento applications
é filho do elemento instrumentation
. O elemento applications
oferece suporte a elementos filhos application
que especificam quais aplicativos não-web devem ser usados. O elemento application
contém um atributo name
.
Importante
Isso não é o mesmo que o elemento application
(configuração) , que é filho do elemento configuration
.
<instrumentation> <applications> <application name="MyService1.exe" /> <application name="MyService2.exe" /> <application name="MyService3.exe" /> </applications></instrumentation>
Elemento atributo
Um atributo é um par de valores principais que determina as propriedades de um evento ou transação. Cada atributo é enviado para APM trace da transação, APM error trace, Transaction
evento, TransactionError
evento ou PageView
evento. O elemento attributes
principal ativa ou desativa a coleta de atributos para o agente .NET e define atributos específicos para coletar ou excluir. Você também pode definir configurações de atributo com base em seu destino: Coleta de erros, rastreamento da transação, instrumentação do navegador e evento de transação.
Neste exemplo, o agente exclui todos os atributos cuja chave começa com myApiKey
(myApiKey.bar
, myApiKey.value
) mas coleta o atributo personalizado myApiKey.foo
.
<attributes enabled="true"> <exclude>myApiKey.*</exclude> <include>myApiKey.foo</include></attributes>
Você pode visualizar o atributo .NET APM na página de atributo do agente .NET . Você também pode definir um atributo personalizado com a chamada da API do agente AddCustomAttribute
.
Opções de recurso
Use estas opções para ativar, desativar e configurar o recurso New Relic. New Relic for .NET permite configurar o seguinte recurso:
- Pools de aplicativos
- Coleta de erros
- Modo de alta segurança
- Remover mensagens de exceção
- Evento de transação
- Evento personalizado
- Parâmetro personalizado
- Etiqueta/rótulos
- Instrumentação do browser
- Consulta lenta
- Rastreamento da transação
- Tracerde armazenamento de dados
- Distributed tracing
- Rastreamento infinito
- Rastreamento multiaplicativo
- Evento de extensão
- Capturar cabeçalhos de solicitação HTTP
- Registro de aplicativo
- Nível do código métrico
- AI Monitoring
Pools de aplicativos
Importante
Isto só é aplicável ao arquivo de configuração global de um sistema.
Importante
Essa configuração só se aplica quando o modelo de hospedagem do IIS está definido como em processo.
O elemento applicationPools
é filho do elemento configuration
. O elemento applicationPools
especifica para o profiler exatamente quais pools de aplicativos serão usados como instrumento e usa o mesmo nome do pool de aplicativos do IIS. Esse elemento de configuração é útil quando você precisa instrumentar apenas um pequeno subconjunto de seus pools de aplicativos. Por exemplo, um determinado servidor pode ter várias centenas de pools de aplicativos, mas apenas alguns desses pools precisam ser instrumentados pelo agente .NET.
Aqui está um exemplo de desabilitação da instrumentação para pools de aplicativos específicos:
<applicationPools> <applicationPool name="Foo" instrument="false"/> <applicationPool name="Bar" instrument="false"/></applicationPools>
Aqui está um exemplo de desabilitação da instrumentação para todos os pools de aplicativos atualmente em execução no servidor e ativação da instrumentação para pools de aplicativos específicos:
<applicationPools> <defaultBehavior instrument="false"/> <applicationPool name="Foo" instrument="true"/> <applicationPool name="Bar" instrument="true"/></applicationPools>
O elemento applicationPools
oferece suporte aos seguintes elementos:
Coleta de erros
O elemento errorCollector
é filho do elemento configuration
. errorCollector
configura a coleta de erros, que captura informações sobre exceções não detectadas e as envia para o New Relic.
<errorCollector enabled="true" captureEvents="true" maxEventSamplesStored="100"> <ignoreClasses> <errorClass>System.IO.FileNotFoundException</errorClass> <errorClass>System.Threading.ThreadAbortException</errorClass> </ignoreClasses> <ignoreMessages> <errorClass name="System.Exception"> <message>Ignore message</message> <message>Ignore too</message> </errorClass> </ignoreMessages> <ignoreStatusCodes> <code>401</code> <code>404</code> </ignoreStatusCodes> <expectedClasses> <errorClass>System.ArgumentNullException</errorClass> <errorClass>System.ArgumentOutOfRangeException</errorClass> </expectedClasses> <expectedMessages> <errorClass name="System.Exception"> <message>Expected message</message> <message>Expected too</message> </errorClass> </expectedMessages> <expectedStatusCodes>403,500-505</expectedStatusCodes> <attributes enabled="true"> <exclude>myApiKey.*</exclude> <include>myApiKey.foo</include> </attributes></errorCollector>
Dica
Para obter uma visão geral da configuração de erros no APM, consulte Gerenciar erros no APM.
Importante
expectedClasses
, expectedMessages
e expectedStatusCodes
configurações de configuração exigem agente .NET versão 8.31.0.0 ou superior.
O elemento errorCollector
oferece suporte aos seguintes elementos e atributos:
Modo de alta segurança
O elemento highSecurity
é filho do elemento configuration
. Para ativar o modo de alta segurança, configure esta propriedade como true
e ative a propriedade de alta segurança na interface do usuário do New Relic. Ativar a alta segurança ativa o SSL; parâmetro de solicitação, parâmetro personalizado e cabeçalhos de solicitação HTTP não são coletados; remover mensagens de exceção está habilitado; e a consulta não pode ser enviada para a New Relic em sua forma bruta.
Remover mensagens de exceção
O elemento stripExceptionMessages
é filho do elemento configuration
. Para ativar mensagens de exceção de remoção, configure esta propriedade como true
. Por padrão, isso é definido como falso, o que significa que o agente envia mensagens de todas as exceções para o coletor New Relic. Se você ativar o modo de alta segurança, isso será automaticamente alterado para verdadeiro e o agente removerá as mensagens das exceções.
Evento de transação
O elemento transactionEvents
é filho do elemento configuration
. Use transactionEvents
para configurar o evento de transação.
<transactionEvents enabled="true" maximumSamplesStored="10000"> <attributes enabled="true"> <exclude>myApiKey.*</exclude> <include>myApiKey.foo</include> </attributes></transactionEvents>
O elemento transactionEvents
suporta o seguinte atributo:
Evento personalizado
O elemento customEvents
é filho do elemento configuration
. Use customEvents
para configurar evento personalizado.
<customEvents enabled="true" maximumSamplesStored="10000"/>
O elemento customEvents
suporta o seguinte atributo:
Parâmetro personalizado
O elemento customParameters
é filho do elemento configuration
. Use customParameters
para configurar parâmetros personalizados.
<customParameters enabled="true" />
O elemento customParameters
suporta o seguinte atributo:
Etiquetas (etiqueta)
O elemento labels
é filho do elemento configuration
.
Isso define nomes e valores tag . A lista é uma lista delimitada por ponto e vírgula de pares de nomes e valores separados por dois pontos. Você também pode usar com a variável de ambiente NEW_RELIC_LABELS
. Exemplo:
<labels>foo:bar;zip:zap</labels>
NEW_RELIC_LABELS="foo:bar;zip:zap"
Instrumentação do browser
O elemento browserMonitoring
é filho do elemento configuration
. browserMonitoring
configura em seu aplicativo .NET. O browser fornece insights sobre a experiência de desempenho do usuário final. Isso é feito medindo o tempo que o browser do seu usuário leva para baixar e renderizar suas páginas da web, injetando uma pequena quantidade de código JavaScript no cabeçalho e rodapé de cada página.
// If you use both the Exclude and Attribute elements// the Exclude element must be listed first.<browserMonitoring autoInstrument="true"> <requestPathsExcluded> <path regex="url-regex-1"/> <path regex="url-regex-2"/> ... <path regex="url-regex-n"/> </requestPathsExcluded> <attributes enabled="true"> <exclude>myApiKey.*</exclude> <include>myApiKey.foo</include> </attributes></browserMonitoring>
O elemento browserMonitoring
suporta o seguinte atributo:
Consulta lenta
O elemento slowSql
é filho do elemento configuration
. slowSql
configura a captura de informações sobre execuções de consulta lenta e captura e ofusca os planos explicativos para essas consultas.
<slowSql enabled="true"/>
O elemento slowSql
oferece suporte ao seguinte atributo:
Rastreamento da transação
O elemento transactionTracer
é filho do elemento configuration
. transactionTracer
configura o rastreamento da transação. Incluída no trace está a sequência exata de chamada da transação, incluindo quaisquer declarações de consulta emitidas.
<transactionTracer enabled="true" transactionThreshold="apdex_f" recordSql="obfuscated" explainEnabled="true" explainThreshold="500" maxSegments="3000" maxExplainPlans="20"> <attributes enabled="true"> <exclude>myApiKey.*</exclude> <include>myApiKey.foo</include> </attributes> </transactionTracer>
O elemento transactionTracer
suporta o seguinte atributo:
Tracerde armazenamento de dados
O elemento datastoreTracer
é filho do elemento configuration
.
<datastoreTracer> <instanceReporting enabled="true" /> <databaseNameReporting enabled="true" /> <queryParameters enabled="false" /></datastoreTracer>
O elemento datastoreTracer
oferece suporte aos seguintes subelementos:
Distributed tracing
O elemento distributedTracing
é filho do elemento configuration
.
<distributedTracing enabled="false" excludeNewrelicHeader="false"/>
Distributed tracing permite ver o caminho que uma solicitação percorre ao percorrer sistemas distribuídos. Requer agente .NET versão 8.6.45.0 ou superior e está ativado por padrão em agentes .NET 9.0.0.0 e superior.
Importante
Habilitar distributed tracing desabilita o rastreamento multiaplicativo e tem outros efeitos no recurso APM. Antes de ativar, leia o guia de planejamento.
Para obter mais informações sobre como configurar distributed tracing, consulte Habilitar distributed tracing para seu aplicativo .NET.
O elemento distributedTracing
suporta o seguinte atributo:
Relatórios distributed tracing abrangem evento. O relatório de eventos de intervalo está ativado por padrão, mas distributed tracing deve estar ativado para que os intervalos sejam relatados. Para desativar o evento span, escolha uma das seguintes opções:
Rastreamento infinito
O Infinite Tracing estende o serviço distributed tracing empregando um observador de trace externo ao agente. Ele observa 100% do rastreamento do seu aplicativo em vários serviços e fornece dados acionáveis para que você possa resolver problemas com mais rapidez.
Para ativar o rastreamento infinito, certifique-se de ter o agente .NET versão 8.30 ou superior e ative distributed tracing. Em seguida, adicione as seguintes configurações adicionais:
<configuration . . . > <distributedTracing enabled="true" /> <infiniteTracing> <trace_observer host="YOUR_TRACE_OBSERVER_HOST" /> </infiniteTracing></configuration>
Importante
Os intervalos de rastreamento infinitos podem ser limitados pela configuração transactionTracer.maxSegments
.
O elemento infiniteTracing
oferece suporte aos seguintes elementos:
Rastreamento multiaplicativo
O elemento crossApplicationTracer
é filho do elemento configuration
. crossApplicationTracer
vincula o rastreamento da transação no aplicativo. Quando vinculados em uma arquitetura orientada a serviços, todos os aplicativos instrumentados que se comunicam entre si via HTTP irão agora "vincular" o rastreamento da transação ao aplicativo que eles chamam e ao aplicativo pelo qual são chamados. O rastreamento multiaplicativo facilita o entendimento da relação de desempenho entre serviços e aplicativos.
Importante
O rastreamento multiaplicativo foi descontinuado a partir da v9.0.0 do agente e desabilitado por padrão. Ele será removido em uma versão futura do agente. Para usar CAT com v9+ do agente, você deve configurar crossApplicationTracer.enabled = true
e distributedTracing.enabled = false
. A ativação distributed tracing desativará o rastreamento multiaplicativo.
<crossApplicationTracer enabled="true"/>
O elemento crossApplicationTracer
oferece suporte ao seguinte atributo:
Evento de extensão
O elemento spanEvents
é filho do elemento configuration
. Use spanEvents
para configurar o evento span.
<spanEvents enabled="true"> <attributes enabled="true"> <exclude>myApiKey.*</exclude> <include>myApiKey.foo</include> </attributes></spanEvents>
O elemento spanEvents
suporta o seguinte atributo:
Capturar cabeçalhos de solicitação HTTP
O elemento allowAllHeaders
é filho do elemento configuration
. Defina isso como true
para permitir que o agente .NET capture todos os cabeçalhos de solicitação HTTP e aplique-os ao evento Span
e Transaction
como atributo request.headers.{http-header-name}
. Defina como false
para permitir que apenas o agente .NET colete os seguintes cabeçalhos de solicitação HTTP:
request.headers.referer
request.headers.accept
request.headers.content-length
request.headers.host
request.headers.user-agent
Importante
A configuração allowAllHeaders
está disponível apenas no agente .NET versão 8.40.0+. Ao usar allowAllHeaders
para capturar atributo, o atributo do cabeçalho da solicitação capturada ainda está sendo controlado pelas configurações de atributo no nível raiz e no nível de destino. Sem definir request.header.*
na lista include
no elemento attributes
(veja a seguir), o agente .NET ainda filtra todos os atributos do cabeçalho. O padrão newrelic.config
é definido para incluir o request.header.*
.
<allowAllHeaders enabled="true" /><attributes enabled="true"> <include>request.headers.*</include> ...</attributes>
O padrão newrelic.config
também é definido para excluir explicitamente os seguintes cabeçalhos de solicitação HTTP para evitar que o agente .NET colete dados indesejados.
<attributes enabled="true"> <exclude>request.headers.cookie</exclude> <exclude>request.headers.authorization</exclude> <exclude>request.headers.proxy-authorization</exclude> <exclude>request.headers.x-*</exclude></attributes>
Registro de aplicativo
Importante
Essas opções de configuração estão disponíveis somente com o agente .NET versões 9.7.1 e superiores. As opções relacionadas aos dados de contexto (atributo personalizado) estão disponíveis apenas nas versões 10.4.0 e superiores do agente .NET.
O elemento applicationLogging
é filho do elemento configuration
. Use applicationLogging
para configurar a instrumentação da atividade de criação de log do seu aplicativo.
Existem três sub-recursos principais:
Métrica: Colete métricas sobre o número total de linhas de registro escritas por ciclo de colheita (
Logging/lines
), bem como o número de linhas de registro escritas em níveis de registro específicos (por exemplo,Logging/lines/ERROR
).Encaminhamento de logs: Quando habilitado, o agente irá capturar dados de log e enviá-los para New Relic.
- Dados de contexto (via
AddCustomAttribute
): quando ativado, o agente irá capturar e encaminhar qualquer atributo de log personalizado. Os elementosinclude
eexclude
são listas separadas por vírgula de nomes de atributos a serem incluídos ou excluídos, seguindo as mesmas regras de outras configurações de atributos de agentes. Ambos estão vazios por padrão, o que resulta na captura e encaminhamento de todos os dados de contexto de log. - Filtragem de nível de log: Quando configurado com um ou mais níveis de log em uma lista separada por vírgula, o agente impedirá que mensagens nesses níveis sejam capturadas e encaminhadas.
- Rótulos: quando habilitado, o agente adiciona rótulos personalizados ao log encaminhado pelo agente. Você pode usar o atributo
exclude
, que é uma lista de nomes de rótulos separados por vírgulas e sem distinção entre maiúsculas e minúsculas. Por padrão, o agente adiciona rótulos personalizados quando o atributoexclude
está vazio.
- Dados de contexto (via
Decoração log local: quando ativado, seu log existente será decorado com metadados que vinculam o log a outros dados do New Relic, como erros.
Para obter mais detalhes, consulte nossos documentos sobre como usar o logs contextualizados do agente .NET.
<applicationLogging enabled="true"> <metrics enabled="true" /> <forwarding enabled="true" maxSamplesStored="10000" logLevelDenyList=""> <contextData enabled="false" include="" exclude="" /> <labels enabled="false" exclude="" /> </forwarding> <localDecorating enabled="false" /></applicationLogging>
Esses recursos também podem ser configurados via variáveis de ambiente:
NEW_RELIC_APPLICATION_LOGGING_ENABLED=trueNEW_RELIC_APPLICATION_LOGGING_METRICS_ENABLED=trueNEW_RELIC_APPLICATION_LOGGING_FORWARDING_ENABLED=trueNEW_RELIC_APPLICATION_LOGGING_FORWARDING_CONTEXT_DATA_ENABLED=trueNEW_RELIC_APPLICATION_LOGGING_FORWARDING_CONTEXT_DATA_INCLUDE="myCustomAttribute1, myOtherCustomAttribute*"NEW_RELIC_APPLICATION_LOGGING_FORWARDING_CONTEXT_DATA_EXCLUDE="myCustomAttribute2, myOtherCustomAttributeMoreSpecificName"NEW_RELIC_APPLICATION_LOGGING_FORWARDING_MAX_SAMPLES_STORED=10000NEW_RELIC_APPLICATION_LOGGING_FORWARDING_LOG_LEVEL_DENYLIST="debug, warn"NEW_RELIC_APPLICATION_LOGGING_FORWARDING_LABELS_ENABLED=trueNEW_RELIC_APPLICATION_LOGGING_FORWARDING_LABELS_EXCLUDE="label1, label2"NEW_RELIC_APPLICATION_LOGGING_LOCAL_DECORATING_ENABLED=true
O elemento applicationLogging
suporta os seguintes atributos e subelementos:
Nível do código métrico
O elemento codeLevelMetrics
é filho do elemento configuration
. Use codeLevelMetrics
para ativar o suporte ao nível do código métrico no CodeStream por meio de metadados adicionais do método instrumentado capturados como atributo no evento span.
Para obter mais detalhes, consulte nossa documentação para integração do New Relic CodeStream.
<codeLevelMetrics enabled="true" />
Isso também pode ser configurado através da variável de ambiente:
NEW_RELIC_CODE_LEVEL_METRICS_ENABLED=true
AI Monitoring
Por padrão, AI Monitoring está desabilitado. Para ativar AI Monitoring, defina o atributo enabled
como true
no elemento aiMonitoring
. O elemento aiMonitoring
é filho do elemento configuration
.
<aiMonitoring enabled="true" />
Isso também pode ser configurado através da variável de ambiente:
NEW_RELIC_AI_MONITORING_ENABLED=true
O elemento aiMonitoring
oferece suporte aos seguintes subelementos:
Configurações em app.config ou web.config
Para aplicativos de console ASP.NET e .NET framework , você também pode definir as seguintes configurações no app.config
ou web.config
do aplicativo, no elemento mais externo, <configuration>
:
Configurações em appsettings.json
Para aplicativos .NET Core, você poderá definir as seguintes configurações em appsettings.json
se o seguinte for verdadeiro:
O arquivo
appsettings.json
deve estar localizado no diretório de trabalho atual do aplicativo.O aplicativo deve ter a seguinte dependência:
Importante
Para aplicativos ASP..NET Core, o agente .NET lerá appsettings.{environment}.json
se você definir a variável ASPNETCORE_ENVIRONMENT
.