Suh*_*nna 2 prometheus prometheus-operator prometheus-net
我想比较以下两个彼此不同的时间序列。我要做的就是将第二时间序列的结果除以第一时间序列的结果,如果值小于1,则生成警报。我使用的查询低于我在下面提到的时间序列。如何实现我的目标?
第一次系列:
container_memory_usage_bytes {container_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"
}
Run Code Online (Sandbox Code Playgroud)
第二时间系列:-
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"
}
Run Code Online (Sandbox Code Playgroud)
PromQL:
kube_pod_container_resource_requests_memory_bytes {container =“ documentation”} /((container_memory_usage_bytes {namespace =“ apimanager”})
向量匹配
Prometheus称为向量匹配,如果它们的标签匹配,则可以跨不同的时间序列执行算术二进制运算(+,-,*,/等)。如果它们不匹配,则可以使用on或ignoring选择应该匹配的标签。
一对一从操作的每一侧找到一对唯一的条目。在默认情况下,这是遵循格式vector1 vector2的操作。如果两个条目具有完全相同的一组标签和相应的值,则它们匹配。ignoring关键字允许匹配时忽略某些标签,而on关键字允许将考虑的标签集减少到提供的列表中
例如
kube_pod_container_resource_requests_memory_bytes{container="documentation"}
/ on (container)
container_memory_usage_bytes{namespace="apimanager"}
Run Code Online (Sandbox Code Playgroud)
label_join / label_replace
查看您的特定示例,没有任何可用于on匹配的标签。container_memory_usage_bytes有container_name一会儿kube_pod_container_resource_requests_memory_bytes有container。Prometheus还有其他查询功能,称为label_join和label_replace,可让您在其中一个指标上创建自定义标签。
您可能需要使用label_replace附加_name到kube_pod_container_resource_requests_memory_bytes。然后,您将可以使用/ on (container_name)上面显示的内容。
希望这两个普罗米修斯概念,向量匹配和label_join / replace将帮助您跨不同的时间序列执行算术运算。注意:我对您的确切用例还不够熟悉,无法知道是否container_name是用于实现所需输出的最佳标签,或者使用Kubernetes和Prometheus是否有更简单的方法来实现此目的。
| 归档时间: |
|
| 查看次数: |
2417 次 |
| 最近记录: |