首页 文章

从Google Cloud Endpoints中排除路径

提问于
浏览
1

主要问题:

我们是否可以从 Cloud endpoints 统计/监控中排除路径,同时仍允许流量到我们的实际后端?

说明:

我们在Kubernetes上运行后端,现在正在尝试使用Google Cloud Endpoints . 我们将EPS容器添加到后端容器前面的pod中 . 正如我们在其他地方所做的那样,我们也在Kubernetes和前面的Google(L7)LoadBalancer中使用 Health 检查 . 为了让 Health 检查到达我们的后端,必须在EPS容器使用的openapi yaml文件中定义,例如:

...
paths:
"/_ah/health":
  get:
    operationId: "OkStatus"
    security: []
    responses:
      200:
        description: "Ok message"
...

这个问题是这些请求混淆了我们实际API的监视/跟踪/统计信息 . Cloud endpoints 注册的延迟数量是无用的:它们显示出2个百分位数的50%,然后显示20个百分点的第95个百分位数,因为 Health 检查流量的比例很高 . 20秒的实际请求显示为请求的边际部分,因为 Health 检查每秒请求多次,每次需要2ms . 由于这些 Health 检查的稳定流量占所有请求的90%,因此实际相关请求在保证金中显示为“例外” .

因此,我们希望从 endpoints 统计信息中排除此运行状况流量,但保持运行状况检查功能正常 .

我在文档中没有找到任何相关内容,也没有在其他地方找到任何解决方案 .

可能的替代解决方案

我们可以为我们的Kubernetes设置添加额外服务,直接到达我们的后端,仅用于 Health 检查 . 这个问题是:

  • 额外的k8s服务,配置,防火墙规则......需要

  • 我们不 Health 检查实际设置 . 如果EPS容器无法将流量引导到我们的后端,则不会注意到这一点 .

  • 我们使用SSL加密负载均衡器和后端之间的流量,但是我们的实际后端现在需要一个额外的ssl感知网络服务器 . 对于没有实际数据的 Health 检查,这是一个小问题,但仍然意味着规则的例外 .

  • 我们还可以为EPS容器添加额外的运行状况检查 . 但由于这不应该出现在统计数据中,它应该像对未定义的路径进行请求并检查响应是该情况的EPS响应:

{"code": 5,
 "message": "Method does not exist.",
 "details": [{
     "@type": "type.googleapis.com/google.rpc.DebugInfo",
     "stackEntries": [],
     "detail": "service_control"
 }]
}

这也不理想 . 它确实检查容器是否至少运行,但它更多的是“它没有关闭”而不是“它正在工作”的方法,因此许多其他问题将被忽视 .

1 回答

  • 2

    Google Cloud Endpoints不支持从报告统计信息/监控中排除路径 . 这是一个在雷达上并被积极关注的东西 .

    与此同时,您的备用解决方案可以作为一个止损点,但有你发布的缺点 .

相关问题