排除在 AWS X-Ray 中跟踪的路径

Exclude Path from being traced in AWS X-Ray

跟踪某些路径,如健康检查,对我们没有多大价值。我们希望确保我们不会为针对健康端点的 AWS XRay 跟踪付费。我正在尝试使用采样规则排除此类路径,但它并不是 working.I 尝试使用规则和 setSamplingRules() 而不走运。我尝试使用我想要排除的特定 url 路径以及如下通配符。

var rules = {
"rules": [ { "description": "PostTest", "service_name": "*", 
"http_method": "*", "url_path": "*", "fixed_target": 0, "rate": 0.0 } 
],
"default": { "fixed_target": 1, "rate": 0.1 },
"version": 1
}

AWSXRay.middleware.setSamplingRules(rules);
app.use(AWSXRay.express.openSegment('app-1'));

....path
....path
....path

app.use(AWSXRay.express.closeSegment());

我使用的是最新版本的 aws-xray-sdk (1.1.6)。

更新: 添加调试,发现本地正在匹配规则。但是,在部署时,规则不匹配。问题是健康端点是通过 Rancher healthcheck 容器调用的,它不提供服务名称——它是未定义的。因此,它与 'service_name'='*'.

的规则不匹配

回复: 这似乎是 Node.js 的 AWS X-Ray SDK 的错误。未定义的主机头确实应该匹配通配符。

这已在最新版本中修复。

论坛 post 在此处解决问题:https://forums.aws.amazon.com/thread.jspa?threadID=269425&tstart=0