Prometheus 普罗米修斯能比较两个不同的时间序列吗?
我想比较以下两个相互不同的时间序列。我只想将第二个时间序列的结果除以第一个时间序列的结果,如果值小于1,则生成警报。我使用的查询位于我在下面提到的时间序列下面。如何实现我的目标 第一时间序列:Prometheus 普罗米修斯能比较两个不同的时间序列吗?,prometheus,prometheus-operator,prometheus-net,Prometheus,Prometheus Operator,Prometheus Net,我想比较以下两个相互不同的时间序列。我只想将第二个时间序列的结果除以第一个时间序列的结果,如果值小于1,则生成警报。我使用的查询位于我在下面提到的时间序列下面。如何实现我的目标 第一时间序列: container_memory_usage_bytes{ beta_kubernetes_io_arch="amd64", beta_kubernetes_io_fluentd_ds_ready="true", beta_kubernetes_io_instance_type="n1-
container_memory_usage_bytes{
beta_kubernetes_io_arch="amd64",
beta_kubernetes_io_fluentd_ds_ready="true",
beta_kubernetes_io_instance_type="n1-highmem-8",
beta_kubernetes_io_os="linux",
cloud_google_com_gke_nodepool="pool-1",
container_name="documentation",
failure_domain_beta_kubernetes_io_region="europe-west1",
failure_domain_beta_kubernetes_io_zone="europe-west1-b",
id="/kubepods/burstable/podb79239ff-1ee9-11e8-a6c1-42010a840fd9/3ccdaa6597d5bd306d228e37d9d4c65a9681dba2e894aa7b7ed4502ec54e5619",
image="gcr.io/ingenious-169318/publicapi/documentation@sha256:60a5454bb40ed34f24cbeb9f330e1097191754cf2890eee1ca4f2988188a7705",
instance="gke-ingenious-pool-1-bbd77706-5rbz",
job="kubernetes-cadvisor",
kubernetes_io_hostname="gke-ingenious-pool-1-bbd77706-5rbz",
name="k8s_documentation_documentation-6c4c4c9f5f-dn2bv_apimanager_b79239ff-1ee9-11e8-a6c1-42010a840fd9_0",
namespace="apimanager",
pod_name="documentation-6c4c4c9f5f-dn2bv"
}
容器\内存\使用\字节{container\ u name=“documentation”}
结果:
container_memory_usage_bytes{
beta_kubernetes_io_arch="amd64",
beta_kubernetes_io_fluentd_ds_ready="true",
beta_kubernetes_io_instance_type="n1-highmem-8",
beta_kubernetes_io_os="linux",
cloud_google_com_gke_nodepool="pool-1",
container_name="documentation",
failure_domain_beta_kubernetes_io_region="europe-west1",
failure_domain_beta_kubernetes_io_zone="europe-west1-b",
id="/kubepods/burstable/podb79239ff-1ee9-11e8-a6c1-42010a840fd9/3ccdaa6597d5bd306d228e37d9d4c65a9681dba2e894aa7b7ed4502ec54e5619",
image="gcr.io/ingenious-169318/publicapi/documentation@sha256:60a5454bb40ed34f24cbeb9f330e1097191754cf2890eee1ca4f2988188a7705",
instance="gke-ingenious-pool-1-bbd77706-5rbz",
job="kubernetes-cadvisor",
kubernetes_io_hostname="gke-ingenious-pool-1-bbd77706-5rbz",
name="k8s_documentation_documentation-6c4c4c9f5f-dn2bv_apimanager_b79239ff-1ee9-11e8-a6c1-42010a840fd9_0",
namespace="apimanager",
pod_name="documentation-6c4c4c9f5f-dn2bv"
}
第二时间序列:-
kube_pod_container_resource_requests_memory_bytes{container=“documentation”}
结果:
kube_pod_container_resource_requests_memory_bytes{
container="documentation",
instance="10.32.0.30:8080",
job="kubernetes-service-endpoints",
k8s_app="kube-state-metrics",
kubernetes_name="kube-state-metrics",
kubernetes_namespace="kube-system",
namespace="apimanager",
node="gke-ingenious-pool-1-bbd77706-pdsz",
pod="documentation-6c4c4c9f5f-mzd54"
}
PromQL:
container_memory_usage_bytes{
beta_kubernetes_io_arch="amd64",
beta_kubernetes_io_fluentd_ds_ready="true",
beta_kubernetes_io_instance_type="n1-highmem-8",
beta_kubernetes_io_os="linux",
cloud_google_com_gke_nodepool="pool-1",
container_name="documentation",
failure_domain_beta_kubernetes_io_region="europe-west1",
failure_domain_beta_kubernetes_io_zone="europe-west1-b",
id="/kubepods/burstable/podb79239ff-1ee9-11e8-a6c1-42010a840fd9/3ccdaa6597d5bd306d228e37d9d4c65a9681dba2e894aa7b7ed4502ec54e5619",
image="gcr.io/ingenious-169318/publicapi/documentation@sha256:60a5454bb40ed34f24cbeb9f330e1097191754cf2890eee1ca4f2988188a7705",
instance="gke-ingenious-pool-1-bbd77706-5rbz",
job="kubernetes-cadvisor",
kubernetes_io_hostname="gke-ingenious-pool-1-bbd77706-5rbz",
name="k8s_documentation_documentation-6c4c4c9f5f-dn2bv_apimanager_b79239ff-1ee9-11e8-a6c1-42010a840fd9_0",
namespace="apimanager",
pod_name="documentation-6c4c4c9f5f-dn2bv"
}
kube\u pod\u container\u resource\u requests\u memory\u bytes{container=“documentation”}/(container\u memory\u usage\u bytes{namespace=“apimager”})向量匹配 普罗米修斯称之为,如果不同时间序列的标签匹配,您可以执行算术二进制运算(+、-、*、/etc)。如果它们不匹配,您可以使用
打开
或忽略
来选择您应该匹配的标签
“一对一”可以从列表的每一侧找到一对唯一的条目
活动在默认情况下,这是在
格式化矢量1矢量2。如果两个条目具有相同的
完全相同的标签集和相应的值。忽视
关键字允许在匹配时忽略某些标签,而
关键字允许将所考虑的标签集减少到所提供的值
名单
e、 g
标签加入/标签替换
看看您的具体示例,没有任何标签可以在上使用container\u memory\u usage\u bytes
具有container\u name
而kube\u pod\u container\u resource\u requests\u memory\u bytes
具有container
。Prometheus还调用了其他查询函数,允许您在其中一个指标上创建自定义标签
在您的情况下,您可能希望使用label\u replace将\u name
附加到kube\u pod\u容器\u资源\u请求\u内存\u字节
。这将允许您在(容器名称)上使用/on,如上所示
希望这两个普罗米修斯概念,向量匹配和标签连接/替换将帮助您在不同的时间序列上执行算术运算。注意:我不太熟悉您的具体用例,不知道container\u name
是否是实现所需输出的最佳标签,或者是否有一种更简单的方法可以通过Kubernetes和Prometheus实现这一点