Agregue anotaciones y metadatos a los segmentos con el SDK de X-Ray para .NET
Puede registrar información adicional acerca de las solicitudes, el entorno o su aplicación con anotaciones y metadatos. Puede añadir anotaciones y metadatos a los segmentos que crea el SDK de X-Ray o a los subsegmentos personalizados que cree usted mismo.
Las anotaciones son pares de clave-valor con valores de cadena, numéricos o booleanos. Las anotaciones se indexan para su uso con expresiones de filtro. Utilice anotaciones para registrar los datos que desee utilizar para agrupar rastros en la consola o cuando llame a la API de GetTraceSummaries
.
Los metadatos son pares de clave-valor con valores de cualquier tipo, por ejemplo objetos y listas, pero que no se indexan para utilizarlos con expresiones de filtro. Utilice los metadatos para registrar datos adicionales que desee almacenar en el rastro, pero que no necesite usar para hacer búsquedas.
Secciones
Registro de anotaciones con el SDK de X-Ray para .NET
Utilice anotaciones para registrar información sobre segmentos o subsegmentos que desee indexar para las búsquedas.
Se requiere lo siguiente para todas las anotaciones de X-Ray:
Requisitos de anotación
-
Claves: la clave de una anotación de X-Ray puede contener hasta 500 caracteres alfanuméricos. No se pueden usar espacios ni símbolos, excepto el punto (.)
-
Valores: el valor de una anotación de X-Ray puede contener hasta 1000 caracteres Unicode.
-
Número de anotaciones: se pueden utilizar hasta 50 anotaciones por rastro.
Para registrar anotaciones fuera de una función de AWS Lambda
-
Obtenga una instancia de
AWSXRayRecorder
.using Amazon.XRay.Recorder.Core; ... AWSXRayRecorder recorder = AWSXRayRecorder.Instance;
-
Llame a
addAnnotation
con una clave de cadena y un valor booleano, Int32, Int64, doble o de cadena.recorder.AddAnnotation("mykey", "my value");
El siguiente ejemplo muestra cómo llamar a
putAnnotation
con una clave de cadena que incluye un punto y un valor booleano, numérico o de cadena.document.putAnnotation("testkey.test", "my value");
Para registrar anotaciones dentro de una función de AWS Lambda
Tanto los segmentos como los subsegmentos de una función de Lambda se administran mediante el entorno de tiempo de ejecución de Lambda. Si desea añadir una anotación a un segmento o subsegmento dentro de una función de Lambda, debe hacer lo siguiente:
-
Cree el segmento o subsegmento dentro de la función de Lambda.
Añada la anotación al segmento o subsegmento.
Finalice el segmento o subsegmento.
En el siguiente código de ejemplo, se muestra cómo agregar una anotación a un subsegmento de una función de Lambda:
#Create the subsegment AWSXRayRecorder.Instance.BeginSubsegment("custom method"); #Add an annotation AWSXRayRecorder.Instance.AddAnnotation("My", "Annotation"); try { YourProcess(); #Your function } catch (Exception e) { AWSXRayRecorder.Instance.AddException(e); } finally #End the subsegment { AWSXRayRecorder.Instance.EndSubsegment(); }
El SDK de X-Ray registra las anotaciones como pares de clave-valor en un objeto annotations
del documento de segmento. Si llama dos veces a una operación addAnnotation
con la misma clave, se sobrescribe el valor previamente registrado en ese segmento o subsegmento.
Para encontrar rastros que tengan anotaciones con valores específicos, utilice la palabra clave annotation[
en una expresión de filtro.key
]
Registro de metadatos con el SDK de X-Ray para .NET
Utilice los metadatos para registrar información sobre segmentos o subsegmentos que no necesite indexar para emplearlos en las búsquedas. Los valores de metadatos pueden ser cadenas, números, booleanos o cualquier otro objeto que se pueda serializar en un objeto o matriz JSON.
Para registrar metadatos
-
Obtenga una instancia de
AWSXRayRecorder
, tal como se muestra en el siguiente código de ejemplo:using Amazon.XRay.Recorder.Core; ... AWSXRayRecorder recorder = AWSXRayRecorder.Instance;
-
Llame a
AddMetadata
con un espacio de nombres de cadena, una clave de cadena y un valor de objeto, como se indica en el siguiente código de ejemplo:recorder.AddMetadata("
my namespace
", "my key
", "my value
");También puede llamar a la operación
AddMetadata
con solo un par de clave-valor, como se muestra en el siguiente código de ejemplo:recorder.AddMetadata("
my key
", "my value
");
Si no especifica un valor para el espacio de nombres, el SDK de X-Ray utiliza default
. Si llama dos veces a una operación AddMetadata
con la misma clave, se sobrescribe el valor previamente registrado en ese segmento o subsegmento.