0

プロメテウス:v2.15.2 kubernetes:v1.14.9

設定された期間中の時間の経過に伴う最大値を正確に表示するクエリがあります。しかし、kube_pod_container リソースに既に設定されているメトリクスに参加したいと考えています。

パーセンテージを表示して、設定されているものがパーセンテージ設定に近いかどうかを知りたいです。

これと同じメトリック構造で動作する他の例があります

jvm_memory_bytes_used{instance="url.instance.com.br"} / jvm_memory_bytes_max{area="heap"} * 100 > 80

しかし、これは機能していません。

max_over_time(sum(rate(container_cpu_usage_seconds_total{pod="pod-name-here",container_name!="POD", container_name!=""}[1m])) [1h:1s]) / kube_pod_container_resource_requests_cpu_cores * 100 < 70

最初のアイデアは、ポッド内のコンテナーの過去の最大 CPU 使用率を短期間で収集するクエリを作成することでした。

max_over_time(sum(rate(container_cpu_usage_seconds_total{pod="xpto-92838241",container_name!="POD", container_name!=""}[1m])) [1h:1s])

要素: {}値: 0.25781324101515

このように実行すると:

container_cpu_usage_seconds_total{pod="xpto-92838241",container_name!="POD", container_name!=""}

要素: container_cpu_usage_seconds_total{beta_kubernetes_io_arch="amd64",beta_kubernetes_io_instance_type="t3.small",beta_kubernetes_io_os="linux",cluster="teste.k8s.xpto",container="xpto",container_name="xpto",cpu="total ",failure_domain_beta_kubernetes_io_region="sa-east-1",failure_domain_beta_kubernetes_io_zone="sa-east-1c",generic="true",id="/kubepods/burstable/poda9999e9999e999e9-/99999e9999999e9",image="nginx",instance= "kubestate-dev.internal.xpto",job="kubernetes-cadvisor",kops_k8s_io_instancegroup="ノード",kubernetes_io_arch="amd64",kubernetes_io_hostname="ip-99-999-9-99.sa-east-1.compute .internal",kubernetes_io_os="linux",kubernetes_io_role="node",name="k8s_nginx_nginx-99999e9999999e9",namespace="nmpc",pod="pod-92838241",pod_name="pod-92838241",spot="false"}値: 22533.2

これで、構成されたものが得られました。

kube_pod_container_resource_requests_cpu_cores{pod="xpto-92838241"}

要素: kube_pod_container_resource_requests_cpu_cores{container="xpto",instance="kubestate-dev.internal.xpto",job="k8s-http",namespace="nmpc",node="ip-99-999-999-99.sa -east-1.compute.internal",pod="pod-92838241"}値: 1

私の認識では、これら 2 つのメトリックを使用して、次のようなパーセンテージに近づけることができます。

max_over_time(sum(rate(container_cpu_usage_seconds_total{pod="xpto-dev-92838241",container_name!="POD", container_name!=""}[1m])) [1h:1s]) / kube_pod_container_resource_requests_cpu_cores * 100 < 70

要素: データなし 値:

しかし、これら 2 つのメトリックは相互作用しません。その理由が理解できず、ドキュメントにも記載されていません。

よろしく

4

2 に答える 2

0

ここでわかるように、 Kubernetes 1.16 cadvisor メトリック ラベルpod_namecontainer_nameでのみ、およびpodが削除され、それぞれおよび に置き換えられcontainerました。Kubernetes 1.14を使用しているため、引き続き と を使用する必要がpod_nameありcontainer_nameます。

それが役立つかどうか教えてください。

于 2020-01-15T17:50:06.933 に答える