Sintaxe
public interface ITransaction
Fornece acesso a métodos específicos de transação na API New Relic.
Descrição
Fornece acesso a métodos específicos de transação na API do agente .NET da New Relic. Para obter uma referência a ITransaction
, use o método de transação atual disponível em IAgent
.
Os seguintes métodos estão disponíveis em ITransaction
:
Nome | Descrição |
---|---|
Aceita cabeçalhos de contexto do trace recebidos de outro serviço. | |
Adiciona cabeçalhos de contexto do trace a uma solicitação de saída. | |
Aceita uma carga útil distributed trace de entrada de outro serviço. | |
Cria uma carga de distributed trace para inclusão em uma solicitação de saída. | |
Adicione informações contextuais da sua aplicação à transação atual em forma de atributo. | |
Fornece acesso ao span em execução atualmente, que fornece acesso a métodos específicos de span na API New Relic. | |
Associa um ID de usuário à transação atual. |
AcceptDistributedTraceHeaders
ITransaction.AcceptDistributedTraceHeaders
É usado para instrumentar o serviço chamado para inclusão em um distributed trace. Ele vincula os intervalos em um trace aceitando uma carga gerada por ou gerada por algum InsertDistributedTraceHeaders
outro W3C Trace Context compatível com tracer. Este método aceita os cabeçalhos de uma solicitação recebida, procura cabeçalhos W3C Trace Context e, se não for encontrado, recorre aos cabeçalhos distributed trace da New Relic. Este método substitui o método AcceptDistributedTracePayload
obsoleto, que lida apenas com carga distributed trace do New Relic.
Sintaxe
void AcceptDistributedTraceHeaders(carrier, getter, transportType)
Parâmetro
Nome | Descrição |
---|---|
<T> | Obrigatório. Fonte do contexto de entrada dos cabeçalhos de rastreamento. |
Func<T, string, IEnumerable<string>> | Obrigatório. Função definida pelo chamador para extrair dados de cabeçalho da operadora. |
Enumeração TransportType | Obrigatório. Descreve o transporte da carga de entrada (por exemplo |
Considerações de uso
- Distributed tracing deve estar ativado.
AcceptDistributedTraceHeaders
será ignorado seInsertDistributedTraceHeaders
ouAcceptDistributedTraceHeaders
já tiver sido chamado para esta transação.
Exemplo
HttpContext httpContext = HttpContext.Current;IAgent agent = NewRelic.Api.Agent.NewRelic.GetAgent();ITransaction currentTransaction = agent.CurrentTransaction;currentTransaction.AcceptDistributedTraceHeaders(httpContext, Getter, TransportType.HTTP);IEnumerable<string> Getter(HttpContext carrier, string key) { string value = carrier.Request.Headers[key]; return value == null ? null : new string[] { value }; }
InsertDistributedTraceHeaders
ITransaction.InsertDistributedTraceHeaders
é usado para implementar distributed tracing. Ele modifica o objeto transportador que é transmitido adicionando cabeçalhos de contexto de rastreamento W3C e cabeçalhos distributed trace New Relic. Os cabeçalhos New Relic podem ser desativados com <distributedTracing excludeNewrelicHeader="true" />
na configuração. Este método substitui o método CreateDistributedTracePayload
obsoleto, que cria apenas carga distributed trace da New Relic.
Sintaxe
void InsertDistributedTraceHeaders(carrier, setter)
Parâmetro
Nome | Descrição |
---|---|
<T> | Obrigatório. contêiner onde são inseridos os cabeçalhos do contexto do trace. |
Action<T, string, string> | Obrigatório. Ação definida pelo chamador para inserir dados de cabeçalho na operadora. |
Considerações de uso
Exemplo
HttpWebRequest requestMessage = (HttpWebRequest)WebRequest.Create("https://remote-address");IAgent agent = NewRelic.Api.Agent.NewRelic.GetAgent();ITransaction currentTransaction = agent.CurrentTransaction;var setter = new Action<HttpWebRequest, string, string>((carrier, key, value) => { carrier.Headers?.Set(key, value); });currentTransaction.InsertDistributedTraceHeaders(requestMessage, setter);
AcceptDistributedTracePayload
Cuidado
Esta API não está disponível no agente .NET v9.0 ou superior. Use AcceptDistributedTraceHeaders
em vez disso.
Aceita uma carga útil distributed trace de entrada de um serviço upstream. Chamar esse método vincula a transação do serviço upstream a essa transação.
Sintaxe
void AcceptDistributedPayload(payload, transportType)
Parâmetro
Nome | Descrição |
---|---|
corda | Obrigatório. Uma representação de cadeia de caracteres da carga útil distributed trace de entrada. |
Tipo de transporte | Recomendado. Descreve o transporte da carga de entrada (por exemplo, Padrão |
Considerações de uso
- Distributed tracing deve estar ativado.
- A carga útil pode ser uma string de texto simples ou codificada em Base64.
AcceptDistributedTracePayload
será ignorado seCreateDistributedTracePayload
já tiver sido chamado para esta transação.
Exemplo
//Obtain the information from the request object from the upstream caller.//The method by which this information is obtain is specific to the transport //type being used. For example, in an HttpRequest, this information is//contained in the header.KeyValuePair<string, string> metadata = GetMetaDataFromRequest("requestPayload");IAgent agent = NewRelic.Api.Agent.NewRelic.GetAgent(); ITransaction transaction = agent.CurrentTransaction; transaction.AcceptDistributedTracePayload(metadata.Value, TransportType.Queue);
CreateDistributedTracePayload (obsoleto)
Cuidado
Esta API não está disponível no agente .NET v9.0 ou superior. Use InsertDistributedTraceHeaders
em vez disso.
Cria uma carga distributed trace para inclusão em uma solicitação de saída para um sistema downstream.
Sintaxe
IDistributedTracePayload CreateDistributedTracePayload()
Devoluções
Um objeto que implementa IDistributedTracePayload
que fornece acesso à carga distributed trace que foi criada.
Considerações de uso
- Distributed tracing deve estar ativado.
CreateDistributedTracePayload
será ignorado seAcceptDistributedTracePayload
já tiver sido chamado para esta transação.
Exemplo
IAgent agent = NewRelic.Api.Agent.NewRelic.GetAgent();ITransaction transaction = agent.CurrentTransaction;IDistributedTracePayload payload = transaction.CreateDistributedTracePayload();
AdicionarAtributoCustom
Adiciona informações contextuais sobre sua aplicação à transação atual na forma de atributo.
Este método requer a versão do agente .NET e a API do agente .NET versão 8.24.244.0 ou superior. Ele substituiu o obsoleto AddCustomParameter
.
Sintaxe
ITransaction AddCustomAttribute(string key, object value)
Parâmetro
Parâmetro | Descrição | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
corda | Identifica as informações que estão sendo relatadas. Também conhecido como nome.
| ||||||||||||||||
objeto | O valor que está sendo informado. Note:
|
Devoluções
Uma referência à transação atual.
Considerações de uso
Para obter detalhes sobre os tipos de dados suportados, consulte o Guia de atributo personalizado.
Exemplo
IAgent agent = NewRelic.Api.Agent.NewRelic.GetAgent();ITransaction transaction = agent.CurrentTransaction;transaction.AddCustomAttribute("customerName","Bob Smith") .AddCustomAttribute("currentAge",31) .AddCustomAttribute("birthday", new DateTime(2000, 02, 14)) .AddCustomAttribute("waitTime", TimeSpan.FromMilliseconds(93842));
Período Atual
Fornece acesso ao span em execução atualmente, disponibilizando métodos específicos do span na API New Relic.
Exemplo
IAgent agent = NewRelic.Api.Agent.NewRelic.GetAgent(); ITransaction transaction = agent.CurrentTransaction; ISpan currentSpan = transaction.CurrentSpan;
DefinirUserId
Associa um ID de usuário à transação atual.
Este método requer o agente .NET e a API do agente .NET versão 10.9.0 ou superior.
Sintaxe
ITransaction SetUserId(string userId)
Parâmetro
Parâmetro | Descrição |
---|---|
corda | O ID do usuário a ser associado a esta transação.
|
Exemplo
IAgent agent = NewRelic.Api.Agent.NewRelic.GetAgent(); ITransaction transaction = agent.CurrentTransaction; transaction.SetUserId("BobSmith123");