跟踪某些路径,例如健康检查,对我们没有多大价值。我们希望确保我们不支付针对健康端点的AWS XRay跟踪。我试图用采样规则排除这些路径,但它不起作用。我试图使用规则和setSamplingRules()没有运气。我尝试使用我想要排除的特定网址路径以及下面的通配符。
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)。
答案 0 :(得分:3)
更新: 添加调试,我发现本地规则正在匹配。但是,部署时,规则不匹配。问题是健康端点是通过Rancher healthcheck容器调用的,该容器不提供服务名称 - 它是未定义的。因此,它与'service_name'='*'的规则不匹配。
答复: 这似乎是针对Node.js的AWS X-Ray SDK的一个错误。未定义的主机头应该确实与通配符匹配。
这已在最新版本中修复。
论坛在此处发布解决问题:https://forums.aws.amazon.com/thread.jspa?threadID=269425&tstart=0