Node.js aws X射线采样不适用于http状态代码

Node.js aws X射线采样不适用于http状态代码,node.js,amazon-web-services,aws-sdk,aws-xray,Node.js,Amazon Web Services,Aws Sdk,Aws Xray,我们如何根据http状态代码对aws X射线中的数据进行采样,例如,我希望对40%的状态代码为200的记录和100%的状态代码为500的记录进行采样。下面是json示例,但我无法对数据进行采样 const rules = { "rules": [{ "description": "get users", "service_name": "*", "http_method": "GET", "url_path": "*",

我们如何根据http状态代码对aws X射线中的数据进行采样,例如,我希望对40%的状态代码为200的记录和100%的状态代码为500的记录进行采样。下面是json示例,但我无法对数据进行采样

const rules = {
    "rules": [{
        "description": "get users",
        "service_name": "*",
        "http_method": "GET",
        "url_path": "*",
        "fixed_target": 0,
        "rate": 0.25
        "attributes": {
            "status": 200
         }
    }],
    "default": { "fixed_target": 1, "rate": 0.1},
    "version": 1
};

X-Ray SDK当前不支持您所需的功能。
AWS在文件[1]中提到了这一点:

  • (可选)属性(键和值)–做出采样决策时已知的分段属性

    • X射线SDK–不受支持。SDK忽略指定属性的规则

    • Amazon API网关–来自原始HTTP请求的头

您还可以看到,在AWS X-Ray SDK for Node.js中查看采样规则的源代码时,该规则不受支持。[2]

我认为您只能从AWS管理控制台(而不是SDK)指定Attributes属性,并且只能为AmazonAPI网关指定属性

解决
  • 将采样计数增加到100%(不建议这样做,因为它会有效地破坏采样的目的-尽管对于一小部分HTTP端点可能是可行的)
  • 使用API网关(可能成本高昂)
  • 在GitHub上打开一个带有功能请求(FR)的问题,并写信给AWS支持部门,以提交一个FR,如果您正在执行支持计划(根据我在AWS X射线开发速度方面的经验,这不是很有希望)
  • 工具书类 [1]
    [2]