本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 X-R SDK ay for 为区段添加注释和元数据。 NET
可以利用注释和元数据记录与请求、环境或应用程序相关的其他信息。您可以向 X-Ray 创建的区段或您SDK创建的自定义子分段添加注释和元数据。
注释是带字符串、数字或布尔值的键值对。系统会对注释编制索引,以便与筛选表达式一起使用。使用注解来记录要用于在控制台中或在调用时对跟踪进行分组的数据GetTraceSummaries
API。
元数据是可以具有任何类型值的键-值对,包括对象和列表,但没有编制索引,无法与筛选条件表达式一起使用。使用元数据记录要存储在跟踪中但不需要用于搜索跟踪的其他数据。
使用 X-R SDK ay 录制注释。 NET
使用注释记录有关要为其编制索引以进行搜索的分段和子分段的信息。
X-Ray 中的所有注释都需要以下内容:
注释要求
-
密钥-X-Ray 注释的密钥最多可以包含 500 个字母数字字符。除了点号或句点 (.) 之外,不能使用空格或符号
-
值-X-Ray 注释的值最多可以包含 1,000 个 Unicode 字符。
-
注释的数量-每条轨迹最多可以使用 50 个注释。
在 AWS Lambda 函数之外录制注释
-
获取
AWSXRayRecorder
的实例。using Amazon.XRay.Recorder.Core; ... AWSXRayRecorder recorder = AWSXRayRecorder.Instance;
-
使用字符串键和布尔型、Int32、Int64、双精度或字符串值调用
addAnnotation
。recorder.AddAnnotation("mykey", "my value");
以下示例说明如何
putAnnotation
使用包含点和布尔值、数字值或字符串值的字符串键进行调用。document.putAnnotation("testkey.test", "my value");
在 AWS Lambda 函数内部记录注释
Lambda 函数中的分段和子分段均由 Lambda 运行时环境管理。如果要在 Lambda 函数中为区段或子分段添加注释,则必须执行以下操作:
-
在 Lambda 函数中创建区段或子分段。
将注释添加到区段或子区段。
结束片段或子区段。
以下代码示例向您展示了如何向 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(); }
X-Ray 将注释作为键值对SDK记录在区段文档的annotations
对象中。使用相同的键调用两次addAnnotation
操作会覆盖先前在同一分段或子分段上记录的值。
要查找具有带特定值的注释的跟踪,请在annotation[
筛选表达式中使用 关键字。key
]
使用 X-R SDK ay 录制元数据。 NET
使用元数据记录有关区段或子细分的信息,您无需为这些区段或子细分编制索引即可在搜索中使用。元数据值可以是字符串、数字、布尔值或任何其他可以序列化为对象或数组的JSON对象。
记录元数据
-
获取的实例
AWSXRayRecorder
,如以下代码示例所示:using Amazon.XRay.Recorder.Core; ... AWSXRayRecorder recorder = AWSXRayRecorder.Instance;
-
AddMetadata
使用字符串命名空间、字符串键和对象值进行调用,如以下代码示例所示:recorder.AddMetadata("
my namespace
", "my key
", "my value
");您也可以仅使用键值对来调用该
AddMetadata
操作,如以下代码示例所示:recorder.AddMetadata("
my key
", "my value
");
如果您没有为命名空间指定值,X-Ray 将SDK使用default
。使用相同的键调用两次AddMetadata
操作会覆盖先前在同一分段或子分段上记录的值。