我在IBM Cloud中使用SYSDIG监控。我有这两个指标
:
sum by(container_image_repo,container_image_tag) (sysdig_container_cpu_cores_used)
通过repo返回并标记已使用的总cpu(在Value_A中)
第二:
count by(container_image_repo,container_image_tag)(sysdig_container_info)
通过repo返回并标记容器的总数(在Value_B中)
我的问题是,我想有一个单一的请求,通过repo和标签同时返回两个指标,即:
Repo Tag Value_A Value_B
提示吗?
我尝试合并两个请求,
sum by(container_image_repo,container_image_tag) (sysdig_container_cpu_cores_used) *on (container_image_repo,container_image_tag) (count by(
container_image_repo,container_image_tag)(sysdig_container_info))
,但我仍然得到一个值(这是两个值A*B的乘法,按repo和标签分组。一点也不奇怪……)
谢谢
这与Sysdig无关,而是与PromQL的设计方式有关。在PromQL中,当您在矢量上应用函数时,结果矢量或标量不包含度量名称(因为这不再是相同的度量,而是它的衍生物)。
在您的示例中,您使用的这两个度量表示两种不同的东西:
sysdig_container_cpu_cores_used
:特定容器占用的内核数sysdig_container_info
:每个集装箱的一组附加标签。为了不将所有容器信息添加到每个容器度量(如代理id,容器id,容器中图像的id,图像摘要值等),当您需要它时,您可以将该容器度量与sysdig_container_info
连接起来,以丰富这些附加标签。
在我看来,你的查询提供了你所需要的所有相关信息:
。
Repo Tag Value (CPU used)
k8s.gcr.io/kops/kops-controller 1.22.3 0.00148
披露:我是Sysdig的一名工程师,但我的回答/评论完全是我自己的。