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
.xml
no diretórioExtensions
dentro 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.ClassName
eMethodName
. 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 opcionaisminVersion
emaxVersion
para 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 atributometricName
é 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 deCustom
, 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 máxima de montagem para instrumento (exclusivo). 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.