我的目标是使用堆栈驱动程序TimeSeries REST获取运行在GKE上kubernetes集群上的荚的度量的时间序列。
我已经确保在kubernetes集群上启用Stackdriver监视和日志记录。
目前,我可以使用以下筛选器获取集群中所有可用资源的时间序列:
metric.type="container.googleapis.com/container/cpu/usage_time" AND resource.labels.cluster_name="<MY_CLUSTER_NAME>"为了获取给定的 id的时间序列,我使用了以下过滤器:
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:
kubectl get deploy -n default <SERVICE_NAME> -o yaml但是,当我使用GKE/Stackdriver生成的背景容器的Pod ID时,我确实得到了时间序列值。
由于我能够在GKE UI上看到我的pod的Stackdriver度量,所以我认为我也应该使用REST获得度量值。
我的怀疑/问题是:
发布于 2018-09-19 03:21:31
发布于 2018-09-19 19:05:24
我是否使用kubectl正确地获取了我的吊舱的Pod ID?
您可以使用JSONpath作为kubectl的输出,在本例中迭代Pods并获取metadata.name和metadata.uid字段:
kubectl get pods -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.uid}{"\n"}{end}'它将输出如下内容:
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和空响应,则有几种可能性:
在阅读监控API的文档时,我找到了这个链接。该链接将使您使用一些预先填充的字段到达API资源管理器,相应地更改这些字段并添加您自己的筛选器。
目前,我还没有使用REST进行更多的测试,但希望这能让您向前迈进。
https://stackoverflow.com/questions/52386995
复制相似问题