标签: kube-state-metrics

省略系列结果 PromQL 中的标签

假设我编写一个像这样的基本 PromQL 查询

询问: kube_deployment_spec_replicas{}

结果:

kube_deployment_spec_replicas{deployment="mydeployment",endpoint="myendpoint",instance="myinstance",job="myjob",namespace="default",pod="mypod",service="myservice"}
Run Code Online (Sandbox Code Playgroud)

有没有一种干净的方法可以从结果时间序列中省略instance和?pod

期望:

kube_deployment_spec_replicas{deployment="mydeployment",endpoint="myendpoint",job="myjob",namespace="default",service="myservice"}
Run Code Online (Sandbox Code Playgroud)

prometheus promql prometheus-operator kube-state-metrics

18
推荐指数
2
解决办法
3万
查看次数

Kube状态度量错误:无法创建客户端:... I / O超时

我正在虚拟机中运行Kubernetes,并阅读了基础教程,目前正在向PHP / Redis Guestbook示例添加日志记录和指标。我正在尝试安装kube-state-metrics:

git clone https://github.com/kubernetes/kube-state-metrics.git kube-state-metrics
kubectl create -f kube-state-metrics/kubernetes
Run Code Online (Sandbox Code Playgroud)

但是失败了。

kubectl describe pod --namespace kube-system kube-state-metrics-7d84474f4d-d5dg7
Run Code Online (Sandbox Code Playgroud)

...

警告不健康的28m(x8超过30m)kubelet,kubernetes-node1就绪性探针失败:获取http://192.168.129.102:8080/healthz:拨打tcp 192.168.129.102:8080:connect:连接被拒绝

kubectl logs --namespace kube-system kube-state-metrics-7d84474f4d-d5dg7 -c kube-state-metrics
Run Code Online (Sandbox Code Playgroud)

I0514 17:29:26.980707 1 main.go:85]使用默认收集器
I0514 17:29:26.980774 1 main.go:93]使用所有命名空间
I0514 17:29:26.980780 1 main.go:129]指标白名单:将以下各项列入黑名单:
W0514 17:29:26.980800 1 client_config.go:549] --kubeconfig和--master都未指定。使用inClusterConfig。这可能行不通。
I0514 17:29:26.983504 1 main.go:169]测试与服务器的通信
F0514 17:29:56.984025 1 main.go:137]无法创建客户端:与apiserver通信时出错:获取https://10.96.0.1:443 / version?timeout = 32s:拨打tcp 10.96.0.1:443:I / O超时

我不确定此10.96.0.1 IP是否正确。我的虚拟机位于桥接网络10.10.10.0/24和仅主机网络192.168.59.0/24中。初始化Kubernetes时,我使用了参数,--pod-network-cidr=192.168.0.0/16所以这是我期望的另一个IP范围。但是10.96.0.1看起来并不熟悉。

我是Kubernetes的新手,只做基础教程,所以我不知道现在该怎么做。如何修复或进一步调查?


编辑-其他信息:

kubectl get nodes -o wide

NAME                STATUS …
Run Code Online (Sandbox Code Playgroud)

kubernetes kube-state-metrics

17
推荐指数
1
解决办法
388
查看次数

PromQL 用于绘制每小时创建的 Kubernetes POD 数量的图表

我使用 Kubernetes 与 kube-state-metrics 和 Prometheus/grafana 来绘制 Kubernetes 集群的各种指标。

现在我想要绘制随时间推移每小时创建了多少个新POD 的图表。

该指标kube_pod_created包含创建时间戳作为值,但由于每个时隙中都有一个值,因此以下查询还会针对尚未创建新 POD 的时隙返回 >0 的结果:

count(rate(kube_pod_created[1h])) by(namespace)
Run Code Online (Sandbox Code Playgroud)

我可以在某种标准中使用该值来仅计算该值是否在“当前”时隙内吗?

kubernetes prometheus promql kube-state-metrics

5
推荐指数
1
解决办法
3438
查看次数

如何计算kube状态指标中pod的cpu使用率?

我使用 kubernetes api 和 kube 状态指标通过 prometheus 远程监控 eks 集群。在 Kubernetes api 中,我们有一个指标container_cpu_usage_seconds_total可以给出 pod 的 CPU 使用情况。kube-state-metrics 中是否有类似的指标可以给出 cpu 使用情况。实际上,我正在尝试获取与 kubernetes api 完全不同的集群 cpu 使用率,下面是计算的 kube-state-metrics。

kube-state-metrics:

sum(kube_pod_container_resource_requests_cpu_cores) / sum(kube_node_status_allocatable_cpu_cores) * 100- 这给出了 101%

而 kube-state-metrics 给出的12%对我来说看起来很准确。

kubernetes-api:

sum (rate (container_cpu_usage_seconds_total{id="/",kubernetes_io_hostname=~"^$Node$", job=~"$job$"}[5m])) / sum (machine_cpu_cores{kubernetes_io_hostname=~"^$Node$", job=~"$job$"}) * 100

我认为 kube-state-metric 中没有任何指标可以提供与 kubernetes-api 相比的 cpu 使用情况

提前致谢。

monitoring kubernetes prometheus kube-state-metrics

4
推荐指数
1
解决办法
2万
查看次数

Prometheus kube_pod_container_status_waiting_reason 未捕获 pod CrashLoopBackOff 原因

根据定义,kube_pod_container_status_waiting_reason应该捕获处于 Waiting 状态的 pod 的原因。

我的 kubernetes 集群中有几个 Pod 位于 CrashLoopBackOff 中,但我没有看到kube_pod_container_status_waiting_reason. 它只捕获两个原因 - ErrImagePull 和 ContainerCreating。

~$ k get pods -o wide --show-all --all-namespaces | grep Crash
cattle-system   cattle-cluster-agent-6f744c67cc-jlkjh       0/1       CrashLoopBackOff   2885       10d       10.233.121.247   k8s-4
cattle-system   cattle-node-agent-6klkh                     0/1       CrashLoopBackOff   2886       171d      10.171.201.127   k8s-2
cattle-system   cattle-node-agent-j6r94                     0/1       CrashLoopBackOff   2887       171d      10.171.201.110   k8s-3
cattle-system   cattle-node-agent-nkfcq                     0/1       CrashLoopBackOff   17775      171d      10.171.201.131   k8s-1
cattle-system   cattle-node-agent-np76b                     0/1       CrashLoopBackOff   2887       171d      10.171.201.89    k8s-4
cattle-system   cattle-node-agent-pwn5v                     0/1       CrashLoopBackOff   2859       171d      10.171.202.72    k8s-5 …
Run Code Online (Sandbox Code Playgroud)

kubernetes prometheus prometheus-operator prometheus-alertmanager kube-state-metrics

3
推荐指数
1
解决办法
1493
查看次数

我们如何在 Prometheus 指标中包含 K8s 对象的自定义标签/注释?

例如,我有 StatefulSet,其上应用了自定义标签/注释。

每个人都提到应该使用这两个指标,因为kube-state-metrics也应该生成标签/注释。

kube_statefulset_annotations
kube_statefulset_labels
Run Code Online (Sandbox Code Playgroud)

问题是,我只能看到默认的(jobinstancenamespace、...),但看不到额外添加的标签/注释。

我正在测试的清单示例:

apiVersion: apps/v1
kind: StatefulSet
metadata:
  annotations:
    label_network: "111"
  labels:
    app: testing-labels
    label_STATEFULSET_LABEL: "111"
    label_network: "111"
  name: testing-labels
  namespace: sre-test
spec:
  selector:
    matchLabels:
      app: testing-labels
  serviceName: testing-labels-headless
  template:
    metadata:
      labels:
        app: testing-labels
        label_network: "111"
Run Code Online (Sandbox Code Playgroud)

我添加了很多不同的标签/注释,但kube_statefulset_labels{statefulset='testing-labels'}返回:

kube_statefulset_labels{container="kube-rbac-proxy-main",instance="10.2.23.229:8443",job="kube-state-metrics",namespace="sre-test",prometheus="aws-monitoring/k8s “,prometheus_replica =“prometheus-k8s-1”,statefulset =“测试标签”}

...当然不包含任何额外的标签。有什么想法会有帮助吗?

版本:

  • kube-状态-指标:v2.5.0
  • kube-rbac-代理:v0.12.0

kubernetes prometheus kube-state-metrics

2
推荐指数
1
解决办法
2841
查看次数