Sintaxis
public interface ITransaction
Proporciona acceso a métodos específicos de transacciones en la API New Relic.
Descripción
Proporciona acceso a métodos específicos de transacciones en la API del agente New Relic .NET. Para obtener una referencia a ITransaction
, utilice el método de transacción actual disponible en IAgent
.
Los siguientes métodos están disponibles en ITransaction
:
Nombre | Descripción |
---|---|
Acepta encabezados de contexto de traza entrantes de otro servicio. | |
Agrega encabezados de contexto de traza a una solicitud saliente. | |
Acepta una carga útil entrante de rastreo distribuido de otro servicio. | |
Crea una carga útil de rastreo distribuido para incluirla en una solicitud saliente. | |
Agregue información contextual de su aplicación a la transacción actual en forma de atributo. | |
Proporciona acceso al intervalo que se está ejecutando actualmente, que proporciona acceso a métodos específicos del intervalo en la API New Relic. | |
Asocia una identificación de usuario a la transacción actual. |
AceptarDistributedTraceHeaders
ITransaction.AcceptDistributedTraceHeaders
se utiliza para instrumentar el servicio llamado para su inclusión en un rastreo distribuido. Vincula los tramos en una traza aceptando una carga útil generada por InsertDistributedTraceHeaders
o generada por algún otro rastreador compatible con W3C Trace Context . Este método acepta los encabezados de una solicitud entrante, busca los encabezados W3C Trace Context y, si no los encuentra, recurre a los encabezados distribuidos del rastreo de New Relic. Este método reemplaza el método obsoleto AcceptDistributedTracePayload
, que solo maneja la carga distribuida de rastreo de New Relic.
Sintaxis
void AcceptDistributedTraceHeaders(carrier, getter, transportType)
Parámetros
Nombre | Descripción |
---|---|
<T> | Requerido. Fuente de encabezados entrantes de contexto de traza. |
Func<T, string, IEnumerable<string>> | Requerido. Función definida por la persona que llama para extraer datos del encabezado del operador. |
Enumeración tipo de transporte | Requerido. Describe el transporte de la carga útil entrante (por ejemplo |
Consideraciones de uso
- Rastreo distribuido debe estar habilitado.
AcceptDistributedTraceHeaders
se ignorará si ya se ha llamadoInsertDistributedTraceHeaders
oAcceptDistributedTraceHeaders
para esta transacción.
Ejemplo
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 }; }
Insertar encabezados de seguimiento distribuido
ITransaction.InsertDistributedTraceHeaders
Se utiliza para implementar rastreo distribuido. Modifica el objeto portador que se pasa agregando encabezados W3C Trace Context y encabezados distribuidos de rastreo New Relic. Los encabezados de New Relic se pueden desactivar con <distributedTracing excludeNewrelicHeader="true" />
en la configuración. Este método reemplaza el método obsoleto CreateDistributedTracePayload
, que solo crea carga distribuida de rastreo New Relic.
Sintaxis
void InsertDistributedTraceHeaders(carrier, setter)
Parámetros
Nombre | Descripción |
---|---|
<T> | Requerido. contenedor donde se insertan los encabezados de contexto de traza. |
Action<T, string, string> | Requerido. Acción definida por la persona que llama para insertar datos de encabezado en el operador. |
Consideraciones de uso
Ejemplo
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);
AceptarDistributedTracePayload
Advertencia
Esta API no está disponible en el agente .NET v9.0 o superior. Utilice AcceptDistributedTraceHeaders
en su lugar.
Acepta una carga útil entrante de rastreo distribuido desde un servicio ascendente. Llamar a este método vincula la transacción del servicio ascendente a esta transacción.
Sintaxis
void AcceptDistributedPayload(payload, transportType)
Parámetros
Nombre | Descripción |
---|---|
cadena | Requerido. Una representación de cadena de la carga útil distribuida del rastreo entrante. |
Tipo de transporte | Recomendado. Describe el transporte de la carga útil entrante (por ejemplo, Predeterminado |
Consideraciones de uso
- Rastreo distribuido debe estar habilitado.
- La carga útil puede ser una cadena de texto sin formato o codificada en Base64.
AcceptDistributedTracePayload
se ignorará si ya se ha llamadoCreateDistributedTracePayload
para esta transacción.
Ejemplo
//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)
Advertencia
Esta API no está disponible en el agente .NET v9.0 o superior. Utilice InsertDistributedTraceHeaders
en su lugar.
Crea una carga útil de rastreo distribuido para incluirla en una solicitud saliente a un sistema descendente.
Sintaxis
IDistributedTracePayload CreateDistributedTracePayload()
Devoluciones
Un objeto que implementa IDistributedTracePayload
que proporciona acceso a la carga útil de rastreo distribuido que se creó.
Consideraciones de uso
- Rastreo distribuido debe estar habilitado.
CreateDistributedTracePayload
se ignorará si ya se ha llamadoAcceptDistributedTracePayload
para esta transacción.
Ejemplo
IAgent agent = NewRelic.Api.Agent.NewRelic.GetAgent();ITransaction transaction = agent.CurrentTransaction;IDistributedTracePayload payload = transaction.CreateDistributedTracePayload();
Agregar atributo personalizado
Agrega información contextual sobre su aplicación a la transacción actual en forma de atributo.
Este método requiere la versión del agente .NET y la versión de API del agente .NET 8.24.244.0 o superior. Reemplazó al AddCustomParameter
obsoleto.
Sintaxis
ITransaction AddCustomAttribute(string key, object value)
Parámetros
Parámetro | Descripción | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
cadena | Identifica la información que se reporta. También conocido como el nombre.
| ||||||||||||||||
objeto | El valor que se informa. Note:
|
Devoluciones
Una referencia a la transacción actual.
Consideraciones de uso
Para obtener detalles sobre los tipos de datos admitidos, consulte la Guía de atributos personalizados.
Ejemplo
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));
Intervalo actual
Proporciona acceso al span que se está ejecutando actualmente, lo que hace que los métodos específicos del span estén disponibles dentro de la API de New Relic.
Ejemplo
IAgent agent = NewRelic.Api.Agent.NewRelic.GetAgent(); ITransaction transaction = agent.CurrentTransaction; ISpan currentSpan = transaction.CurrentSpan;
Establecer ID de usuario
Asocia una identificación de usuario con la transacción actual.
Este método requiere el agente .NET y la API del agente .NET versión 10.9.0 o superior.
Sintaxis
ITransaction SetUserId(string userId)
Parámetros
Parámetro | Descripción |
---|---|
cadena | El ID de usuario que se asociará con esta transacción.
|
Ejemplo
IAgent agent = NewRelic.Api.Agent.NewRelic.GetAgent(); ITransaction transaction = agent.CurrentTransaction; transaction.SetUserId("BobSmith123");