Estrutura suportada pelo instrumento New Relic automaticamente. No entanto, você também pode ter outra estrutura para a qual algumas transações não estão sendo criadas automaticamente ou métodos adicionais que você gostaria de utilizar. Você pode adicionar instrumentação personalizada a esses métodos criando transações. transações criadas via XML são classificadas como não-web na interface New Relic.
Este documento descreve como criar transações com um arquivo XML. Você também pode:
- Adicione detalhes à transação existente usando XML
- Crie transações e adicione detalhes às transações existentes com a API do agente .NET.
Se você tiver um aplicativo não IIS, a instrumentação XML exigirá a ativação da opção Instrument all durante a instalação do agente .NET.
Criar transação usando XML
A transação personalizada (transação não instrumentada automaticamente) é definida em um arquivo XML de instrumentação personalizada. Você define um método que aciona a criação de uma transação. Você também pode instrumentar métodos adicionais chamados pelo método trigger.
Algumas regras importantes que você deve saber antes de criar uma transação personalizada:
- Chamadas externas e de banco de dados não exigem instrumentação personalizada porque são instrumentadas automaticamente.
- Certifique-se de que seu arquivo XML esteja no caminho correto. Para definir seu conjunto de instrumentação, o agente .NET lê cada arquivo XML no diretório Extensions.
- Se um método que você tentar instrumentalizar já fizer parte de uma transação existente, ele será adicionado como um segmento a essa transação. Nenhuma nova transação será criada. Isso ocorrerá mesmo se o método pai for instrumentado usando instrumentação personalizada.
- Evite coisas instrumentadas como Main(), pois esse método não terminará até que o aplicativo termine e os dados não poderão ser enviados para o New Relic.
Para criar um arquivo de instrumentação personalizada:
- Crie um novo arquivo - .xmlno diretório- Extensionsdentro do diretório do agente .NET. A localização deste diretório depende do seu sistema operacional:
- Copie este modelo no arquivo que você criou. Este modelo define duas classes e métodos separados como transação, mas mais podem ser adicionados: <?xml version="1.0" encoding="utf-8"?><extension xmlns="urn:newrelic-extension"><instrumentation><!-- Define the method which triggers the creation of a transaction. --><tracerFactory name="NewRelic.Agent.Core.Tracer.Factories.BackgroundThreadTracerFactory" metricName="TransactionName"><match assemblyName="AssemblyName" className="NameSpace.ClassName"><exactMethodMatcher methodName="MethodName" /></match></tracerFactory><!-- Define the method which triggers the creation of a transaction. --><tracerFactory name="NewRelic.Agent.Core.Tracer.Factories.BackgroundThreadTracerFactory" metricName="TransactionName2"><match assemblyName="AssemblyName" className="NameSpace.ClassName2"><exactMethodMatcher methodName="MethodName2" /></match></tracerFactory><!-- Define the method which triggers the creation of a transaction. --><tracerFactory name="NewRelic.Agent.Core.Tracer.Factories.BackgroundThreadTracerFactory" metricName="TransactionName3"><match assemblyName="AssemblyName" className="NameSpace.ClassName3" minVersion="1.0.0" maxVersion="99.99.99"><exactMethodMatcher methodName="MethodName3" /></match></tracerFactory></instrumentation></extension>
- No arquivo que você criou, personalize os valores de atributo - TransactionName,- AssemblyName,- NameSpace.ClassNamee- MethodName. Personalize esses valores para o método de gatilho e para quaisquer métodos chamados pelo método de gatilho. Você também pode usar os valores de atributo opcionais- minVersione- maxVersionpara versões específicas de destino de um assembly, conforme mostrado no terceiro exemplo acima. Observe que esta funcionalidade requer o agente 10.6.0 ou superior.- Dica- Esses valores diferenciam maiúsculas de minúsculas. - TransactionName: Define o nome da transação. O atributo- metricNameé opcional. Se omitido, o nome da transação será- NameSpace.ClassName/MethodName. A categoria da transação será- Custom. O nome completo da métrica resultante será- OtherTransaction/Custom/TransactionName. Se você deseja alterar a categoria da transação de- Custom, use a chamada de API SetTransactionName . A interface New Relic agrupa as transações em categorias no campo tipo de transação.
- AssemblyName: o assembly que contém o método de gatilho.
- NameSpace.ClassName: o nome completo da classe que contém o método de disparo.
- MethodName: o nome exato do método de gatilho.
- minVersion: Opcional (você pode removê-lo). A versão mínima de montagem para instrumento (inclusive). Se omitido, a versão mínima será considerada 0. Requer agente 10.6.0 ou superior.
- maxVersion: Opcional (você pode removê-lo). A versão de montagem máxima para instrumento (exclusiva). Se omitido, não há versão máxima. Requer agente 10.6.0 ou superior.
 
- A adição de métodos adicionais deve incluir o atributo - "NewRelic.Agent.Core.Tracer.Factories.BackgroundThreadTracerFactory"para ser definido como uma transação. tag sem esse atributo adicionará detalhes apenas às transações existentes .
- Opcional: para verificar se o arquivo XML está formatado corretamente, você pode verificá-lo no XSD (localizado em - C:\ProgramData\New Relic\.NET Agent\Extensions\extension.xsd) usando qualquer validador XSD.
Importante
Não use colchetes [suffix] no final do nome da sua transação. O New Relic remove automaticamente os colchetes do nome. Em vez disso, use parênteses (suffix) ou outros símbolos, se necessário.
Ver transação na interface
A transação personalizada começa quando o método especificado por methodName é invocado no assembly especificado por assemblyName. A transação termina quando o método retorna ou lança uma exceção.
Você pode visualizar essas métricas na páginaTransactions e no trace da transação. Para visualizar a transação: Vá para one.newrelic.com > All capabilities > APM & services > (select an app) > Monitor > Transactions > Type > (select a type). O tipo será Non-web/Custom , a menos que você use a API para alterar a categoria.

one.newrelic.com > All capabilities > APM & services > (select an app) > Monitoring > Transactions > Type > (selected type): Use o menu Type para visualizar sua transação personalizada.
Exemplo: instrumento três métodos
Este exemplo apresenta uma implementação simples de criação de transação.
Exemplo: instrumento para aplicativo de console
Este aplicativo de console simples demonstra a criação de transações. Depois de executar o aplicativo algumas vezes, você verá a transação que criou na página de transação (em one.newrelic.com > All capabilities > APM & services > (select an app) > Transactions > Type). O segmento Dummy ficará visível na tabela de detalhamento das transações e em qualquer rastreamento da transação.