4

追踪某些路径,例如健康检查,对我们没有太大价值。我们希望确保我们不会为针对健康端点的 AWS XRay 跟踪付费。我正在尝试使用采样规则排除此类路径,但它不起作用。我尝试使用规则和 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)。

4

1 回答 1

4

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

回复:这似乎是适用于 Node.js 的 AWS X-Ray 开发工具包的一个错误。未定义的主机标头确实应该与通配符匹配。

这已在最新版本中得到修复。

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

于 2018-01-15T23:22:54.640 回答