【问题标题】:aws xray sampling not working on http status codeaws xray 采样不适用于 http 状态代码
【发布时间】:2023-04-02 21:58:01
【问题描述】:

我们如何根据 http 状态码对 aws xray 中的数据进行采样,例如,我会采样 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
};

【问题讨论】:

    标签: node.js amazon-web-services aws-sdk aws-xray


    【解决方案1】:

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

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

      • X-Ray SDK – 不支持。 SDK 会忽略指定属性的规则。

      • Amazon API Gateway – 来自原始 HTTP 请求的标头。

    您还可以在查看适用于 Node.js 的 AWS X-Ray 开发工具包中的采样规则的源代码时看到它不受支持。 [2]

    我认为您只能从 AWS 管理控制台(而不是 SDK)指定 Attributes 属性,并且只能用于 Amazon API Gateway。

    解决方案

    1. 将样本计数增加到 100%(不推荐,因为它会有效地破坏采样的目的 - 尽管对于一小部分 HTTP 端点可能是可行的)。
    2. 使用 API 网关(可能成本高昂)。
    3. 如果您在支持计划中(根据我对 AWS X-Ray 开发速度的经验,希望不大),请在 GitHub 上使用功能请求 (FR) 打开一个问题并写信给 AWS 支持以提交 FR。

    参考文献

    [1]https://docs.aws.amazon.com/xray/latest/devguide/xray-console-sampling.html#xray-console-sampling-options
    [2]https://github.com/aws/aws-xray-sdk-node/blob/6bade5ad006a47f19a5352a40f1ad2823f404e63/packages/core/lib/middleware/sampling/sampling_rule.js

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-27
      • 2015-10-24
      • 2017-01-28
      • 2019-02-01
      • 1970-01-01
      • 2011-06-14
      • 1970-01-01
      • 2015-03-14
      相关资源
      最近更新 更多