我们是否可以从云端点统计/监控中排除路径,同时仍允许流量到达我们的实际后端?
我们在Kubernetes上运行后端,现在正在尝试使用Google Cloud Endpoints。我们将EPS容器添加到后端容器前面的pod中。正如我们在其他地方所做的那样,我们也在Kubernetes和前面的Google(L7)LoadBalancer中使用健康检查。为了让健康检查到达我们的后端,必须在EPS容器使用的openapi yaml文件中定义,例如:
...
paths:
"/_ah/health":
get:
operationId: "OkStatus"
security: []
responses:
200:
description: "Ok message"
...
这个问题是这些请求混淆了我们实际API的监控/跟踪/统计信息。云端点注册的延迟数量是无用的:它们显示出2个百分位数的50%,然后显示20个百分点的第95个百分位数,因为健康检查流量的比例很高。由于健康检查每秒多次请求多次,每次需要2ms,因此实际请求需要20多秒才会显示为请求的边际部分。由于这些健康检查是所有请求的90%的稳定流量,因此实际相关请求显示为“例外”#39;在边缘。
因此,我们希望从端点统计信息中排除此运行状况流量,但保持运行状况检查功能。
我在文档中找不到任何相关内容,也没有在其他地方找到任何解决方案。
我们可以为我们的Kubernetes设置添加额外的服务,直接到达我们的后端,仅用于健康检查。问题是:
我们还可以为EPS容器添加额外的运行状况检查。但由于这不应该出现在统计数据中,它应该像是对未定义的路径进行请求,并检查响应是否是该情况的EPS响应:
{"code": 5,
"message": "Method does not exist.",
"details": [{
"@type": "type.googleapis.com/google.rpc.DebugInfo",
"stackEntries": [],
"detail": "service_control"
}]
}
这也不理想。它确实检查容器是否至少运行,但更多的是它没有下降'而不是它的工作'方法,所以许多其他问题将被忽视。
答案 0 :(得分:2)
Google Cloud Endpoints尚不支持从报告统计信息/监控中排除路径。这是一些在雷达上并被积极关注的东西。
与此同时,您的备用解决方案可以作为一个止损点,但有你发布的缺点。