使用适用于 Ruby 的 X-Ray 开发工具包将注释和元数据添加到分段中 - AWS X-Ray
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用适用于 Ruby 的 X-Ray 开发工具包将注释和元数据添加到分段中

您可以记录有关请求、环境或具有注释和元数据的应用程序的其他信息。您可以向 X-Ray 开发工具包创建的分段或您创建的自定义子分段添加注释和元数据。

注释是带字符串、数字或布尔值的键值对。系统会对注释编制索引,以便与筛选表达式一起使用。使用注释记录要用于对控制台中的跟踪进行分组的数据或在调用 GetTraceSummaries API 时使用的数据。

元数据是可以拥有有任意类型值的密钥值对,包括对象和列表,但未编制索引以便与筛选表达式一同使用。使用元数据记录要存储在跟踪中但不需要用于搜索的其他数据。

除了注释和元数据之外,您还可以在分段上记录用户 ID 字符串。用户 ID 记录在分段的单独字段中,并且不会为其编制索引以用于搜索。

使用适用于 Ruby 的 X-Ray 开发工具包记录注释

使用注释记录有关要为其编制索引以进行搜索的分段和子分段的信息。

注释要求

  • 密钥 – 最多 500 个字母数字字符。无空格或符号,下划线除外。

  • – 最多 1,000 个 Unicode 字符。

  • 条目 – 每个跟踪最多 50 条注释。

记录注释

  1. xray_recorder 获取对当前分段或子分段的引用。

    require 'aws-xray-sdk' ... document = XRay.recorder.current_segment

    或者

    require 'aws-xray-sdk' ... document = XRay.recorder.current_subsegment
  2. 调用带哈希值的 update

    my_annotations = { id: 12345 } document.annotations.update my_annotations

开发工具包将注释以键-值对的形式记录在分段文档的 annotations 对象中。使用相同键调用两次 add_annotations 将覆盖同一分段或子分段上之前记录的值。

要查找具有带特定值的注释的跟踪,请在筛选条件表达式中使用 annotations.key 关键字。

使用适用于 Ruby 的 X-Ray 开发工具包记录元数据

使用元数据记录有关您无需为其编制索引以进行搜索的分段或子分段的信息。元数据值可以是字符串、数字、布尔值或可序列化为 JSON 对象或数组的任何对象。

记录元数据

  1. xray_recorder 获取对当前分段或子分段的引用。

    require 'aws-xray-sdk' ... document = XRay.recorder.current_segment

    或者

    require 'aws-xray-sdk' ... document = XRay.recorder.current_subsegment
  2. 使用字符串键、布尔值、数字、字符串或对象值以及字符串命名空间调用 metadata

    my_metadata = { my_namespace: { key: 'value' } } subsegment.metadata my_metadata

使用相同键调用两次 metadata 将覆盖同一分段或子分段上之前记录的值。

使用适用于 Ruby 的 X-Ray 开发工具包记录用户 ID

记录请求分段上的用户 ID 以标识发送请求的用户。

记录用户 ID

  1. xray_recorder 获取对当前分段的引用。

    require 'aws-xray-sdk' ... document = XRay.recorder.current_segment
  2. 将分段上的用户字段设置为发送请求的用户的字符串 ID。

    segment.user = 'U12345'

您可以在控制器中设置用户以便在应用程序开始处理请求后立即记录用户 ID。

要查找用户 ID 的跟踪,请在筛选条件表达式中使用 user 关键字。