O agente .NET da New Relic oferece diversas opções para instrumentação personalizada. A instrumentação personalizada permite instrumentar partes do seu aplicativo que não são instrumentadas automaticamente. Este documento descreve como instrumentar seu aplicativo decorando os métodos no código do seu aplicativo com atributo.
- Use o atributo
Transaction
para criar uma transação personalizada. Você também pode marcar a transação personalizada como uma transação da web com a propriedadeWeb
do atributo. - Use o atributo
Trace
para adicionar instrumentação personalizada a métodos invocados em uma transação preexistente.
Requisitos e recomendações
Os requisitos incluem:
- Agente .NET versão 6.16.178.0 ou superior.
- Você deve estar disposto a modificar seu código-fonte. Se você não pode ou não deseja modificar seu código-fonte, use instrumentação personalizada via XML.
- Seu projeto deve ter uma referência a
NewRelic.Api.Agent.dll
(por exemplo, instalar o pacote e colocarusing NewRelic.Api.Agent;
em seu código). Este pacote está na galeria do NuGet. - O atributo
Transaction
eTrace
devem ser aplicados a implementações concretas de métodos. Eles não podem ser aplicados em interfaces ou definições de métodos de superclasses.
Transação chamada transação dentro
Os métodos decorados com o atributo [Transaction]
só criarão uma nova transação quando ainda não existir uma. Quando um método decorado com [Transaction]
é chamado a partir de within uma transação iniciada anteriormente, ele será tratado como o atributo [Trace]
e fornecerá mais informações sobre a transação existente.
Crie uma nova transação fora da web
Para iniciar uma transação fora da web (também conhecida como solicitação em segundo plano) com o atributo Transaction
:
[Transaction]public void Run(){ // your background task}
Para obter detalhes sobre por que usar web ou não-web, consulte Classificar como web ou não-web.
Crie uma nova transação da web
Para instruir o agente a marcar uma tarefa que não seja da Web como uma transação do browser da Web, use uma destas opções:
- Defina a propriedade
Web
do atributoTransaction
comotrue
. - Defina o URI da transação com
SetTransactionUri()
.
[Transaction(Web = true)]public void Run(){ var uri = new Uri("https://www.mydomain.com/path"); NewRelic.Api.Agent.NewRelic.SetTransactionUri(uri);
// your web task}
Quando usado dentro de uma transação iniciada anteriormente, será tratado como um atributo [Trace]
.
Para obter detalhes sobre por que usar web ou não-web, consulte Classificar como web ou não-web.
Adicione detalhes à transação existente com Trace
Se o seu trace da transação mostrar grandes blocos de tempo não instrumentado e você quiser incluir métodos adicionais no trace, você poderá usar o atributo Trace
:
[Trace]protected void MethodWithinTransaction(){ // your app code}
Importante
Se alguns dos seus métodos não aparecerem no rastreamento depois de adicionar o atributo [Trace]
, desative o método embutido para esses métodos com [MethodImpl(MethodImplOptions.NoInlining)]
.
Importante
Executar seu aplicativo no Visual Studio no modo debug pode impedir que alguns métodos apareçam no rastreamento do New Relic. Para garantir que os métodos apareçam no New Relic, execute o aplicativo no modo de liberação por meio da linha de comando.
Propriedades para Transaction
O atributo Transaction
oferece suporte às seguintes propriedades:
Exemplo: instrumento quatro métodos
Leia postagens do fórum sobre instrumentação
Para recomendações mais específicas, confira estas postagens em nossa comunidade do Fórum de Suporte:
- Solucionar problemas de instrumentação personalizada baseada em atributo
- Construir instrumentação personalizada tracer factorys from .NET agent arquivo de log
Use outras funções da API
Para obter mais informações sobre a API do agente .NET e sua funcionalidade, consulte o guia da API do agente .NET da New Relic. Para instrumentação personalizada sem modificar seu código-fonte, consulte Criar transação via XML e Adicionar detalhes à transação via XML.