首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用REST为运行在GKE上的TimeSeries集群上的k8s集群获取监控k8s数据的堆栈驱动程序

使用REST为运行在GKE上的TimeSeries集群上的k8s集群获取监控k8s数据的堆栈驱动程序
EN

Stack Overflow用户
提问于 2018-09-18 12:49:56
回答 2查看 446关注 0票数 2

我的目标是使用堆栈驱动程序TimeSeries REST获取运行在GKE上kubernetes集群上的荚的度量的时间序列。

我已经确保在kubernetes集群上启用Stackdriver监视和日志记录。

目前,我可以使用以下筛选器获取集群中所有可用资源的时间序列:

代码语言:javascript
复制
metric.type="container.googleapis.com/container/cpu/usage_time" AND resource.labels.cluster_name="<MY_CLUSTER_NAME>"

为了获取给定的 id的时间序列,我使用了以下过滤器:

代码语言:javascript
复制
metric.type="container.googleapis.com/container/cpu/usage_time" AND resource.labels.cluster_name="<MY_CLUSTER_NAME>" AND resource.labels.pod_id="<POD_ID>"

此过滤器返回一个带有空响应体的HTTP200OK。我在以下kubectl命令的响应中从metadata.uid字段中找到了pod:

代码语言:javascript
复制
kubectl get deploy -n default <SERVICE_NAME> -o yaml

但是,当我使用GKE/Stackdriver生成的背景容器的Pod ID时,我确实得到了时间序列值。

由于我能够在GKE UI上看到我的pod的Stackdriver度量,所以我认为我也应该使用REST获得度量值。

我的怀疑/问题是:

  1. 我是否使用kubectl正确地获取了我的吊舱的Pod ID?
  2. 我的集群设置/服务部署是否存在一些问题,由于这些问题,我无法获取度量标准?
  3. 还有其他方法可以使用REST来获取豆荚的时间序列吗?
EN

回答 2

Stack Overflow用户

发布于 2018-09-19 03:21:31

  1. 我不会依赖kubectl get deploy来获取pod ids。我会用类似于kubectl -n default get pods | grep <prefix-for-your-pod> | awk '{print $1}'的东西来得到它们
  2. 我不这么认为,但是如果你有任何疑问的话,最好的方法就是打开一张GCP的支持票。
  3. 据我所知,Stackdriver是GCP中的监控解决方案。同样,您可以使用GCP支持进行检查。您还可以使用其他工具从Kubernetes (如普罗米修斯 )中获取度量。关于如何在k8s上设置Grafana,web上有多个指南。例如,这是

希望能帮上忙!

票数 1
EN

Stack Overflow用户

发布于 2018-09-19 19:05:24

我是否使用kubectl正确地获取了我的吊舱的Pod ID?

您可以使用JSONpath作为kubectl的输出,在本例中迭代Pods并获取metadata.namemetadata.uid字段:

代码语言:javascript
复制
kubectl get pods -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.uid}{"\n"}{end}'

它将输出如下内容:

代码语言:javascript
复制
nginx-65899c769f-2j775  d4fr5t6-bc2f-11e8-81e8-42010a84011f
nginx2-77b5c9d48c-7qlps 4f5gh6r-bc37-11e8-81e8-42010a84011f

我的集群设置/服务部署是否存在一些问题,由于这些问题,我无法获取度量标准?

正如@Rico在他的答复中提到的,如果您没有进一步了解故障排除,那么联系GCP支持可能是一个前进的方向,请参见下面的内容。

还有其他方法可以使用REST来获取豆荚的时间序列吗?

您可以在Stackdriver门户中使用API资源管理器或Metrics Explorer。有一些很好的故障排除技巧,这里有一个指向API资源管理器的链接。在Stackdriver中,很容易重新组装使用下拉列表来选择特定pod_id的过滤器。

摘自“监视指南”中有关过滤查询上的空HTTP 200响应的故障诊断指南(链接):

如果您的API调用返回状态代码200和空响应,则有几种可能性:

  • 如果调用使用筛选器,则筛选器可能没有匹配任何内容。过滤器匹配是区分大小写的.要解决筛选问题,首先只指定一个筛选器组件,例如metric.type,然后查看是否得到结果。一个接一个地添加其他过滤器组件。
  • 如果使用自定义度量,则可能没有指定定义自定义度量的项目。

在阅读监控API的文档时,我找到了这个链接。该链接将使您使用一些预先填充的字段到达API资源管理器,相应地更改这些字段并添加您自己的筛选器。

目前,我还没有使用REST进行更多的测试,但希望这能让您向前迈进。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52386995

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档