1 K8S for Prometheus Dashboard 20211010

Dashboard

【中文版本】2021.10.10更新,kubernetes资源全面展示!包含K8S整体资源总览、微服务资源明细、Pod资源明细及K8S网络带宽,优化重要指标展示。https://github.com/starsliao/Prometheus
Last updated: 15 days ago

Start with Grafana Cloud and the new FREE tier. Includes 10K series Prometheus or Graphite Metrics and 50gb Loki Logs

Downloads: 12612

Reviews: 9

  • k1.png
    k1.png
  • k2.png
    k2.png
  • k3.png
    k3.png
  • k8s.png
    k8s.png

kubernetes资源全面展示!包含K8S整体资源总览、微服务资源明细、Pod资源明细及K8S网络带宽,优化展示指标。

  • 兼容kube-state-metrics_v1.9.x、kube-state-metrics_v2.x
  • 支持Grafana 7.5.11、Grafana 8.x

Grafana7的用户请更新到7.5.11

注意事项:

  • 关于节点名称的标签,因为cadvisor是使用instance,而kube-state-metrics是使用node;这样会导致grafana节点信息表格中,没有统一的字段来连接各个查询,所以需要在prometheus.yaml中增加以下内容来给cadvisor的指标复制一个node标签。
  • 请在cadvisor的job下增加以下内容:
    metric_relabel_configs:
    - source_labels: [instance]
      separator: ;
      regex: (.+)
      target_label: node
      replacement: $1
      action: replace

请确认kube-state-metrics和cadvisor已经接入了Prometheus,kube-state-metrics_v1.9.8kube-state-metrics_v2.2.1的安装可以参考【这里】,提供国内源。(K8S v1.16及以下的版本建议使用kube-state-metrics_v1.9.8)

菜单中K8S变量origin_prometheus,取自于Prometheus的外部系统标签:external_labels,可用于支持多个Prometheus接入VictoriaMetrics或Thanos等第三方存储使用remote_write方式的场景。例如:多个K8S集群,每个K8S内部署一个Prometheus,并使用统一的Grafana来展示。(默认取值空,指标中无该标签不影响使用)


更新说明:

v20211010
  1. 基于K8S总可用资源的维度,修改了各类资源总可用量的指标,指标更加精准。
  2. 支持kube-state-metrics_v2.x并兼容kube-state-metrics_v1.9.x
  3. 所有表格使用了新的表格样式,并且对各字段颜色做了处理。
  4. 根据节点、微服务、Pod维度调整了图表展示效果。
  5. 提供了kube-state-metrics_v1.9.8kube-state-metrics_v2.2.1的部署文件和国内源。参考【这里】
v20201209
  1. 使用Filter by name来优化了表格展示的字段。
  2. 增加了关于节点名称标签在不同指标中不一致的说明。
v20201208
  1. 调整了资源总览页的展示效果。
  2. 增加了更多命名空间维度的统计信息。
  3. 总览页的节点明细表格更新为grafana7的样式,增加了各节点资源的使用比例并标记颜色。
  4. 微服务和pod的表格数据与曲线图分开2个卡片展示,表格中可以直接查看微服务及对应Pod的明细。
  5. 曲线图使用独立的卡片展示,浏览所有微服务表格时,不会出现服务过多引起卡顿的情况,建议制定微服务后在查看曲线图。
  6. 优化了部分图表的描述。

关注公众号【云原生 DevOps】加入运维群交流,获取更多...

整体资源总览

微服务资源明细

Pod资源明细

K8S网络带宽

注意:Prometheus需要能采集到cadvisorkube-state-metrics的指标。

Prometheus job配置参考(kube-state-metrics部署在ops-monit命名空间):

  - job_name: 'k8s-cadvisor'
    metrics_path: /metrics/cadvisor
    kubernetes_sd_configs:
    - role: node
    relabel_configs:
    - source_labels: [__address__]
      regex: '(.*):10250'
      replacement: '${1}:10255'
      target_label: __address__
      action: replace
    - action: labelmap
      regex: __meta_kubernetes_node_label_(.+)

    metric_relabel_configs:
    - source_labels: [instance]
      separator: ;
      regex: (.+)
      target_label: node
      replacement: $1
      action: replace

    - source_labels: [pod_name]
      separator: ;
      regex: (.+)
      target_label: pod
      replacement: $1
      action: replace
    - source_labels: [container_name]
      separator: ;
      regex: (.+)
      target_label: container
      replacement: $1
      action: replace

  - job_name: kube-state-metrics
    kubernetes_sd_configs:
    - role: endpoints
      namespaces:
        names:
        - ops-monit
    relabel_configs:
    - source_labels: [__meta_kubernetes_service_label_app_kubernetes_io_name]
      regex: kube-state-metrics
      replacement: $1
      action: keep
    - action: labelmap
      regex: __meta_kubernetes_service_label_(.+)
    - source_labels: [__meta_kubernetes_namespace]
      action: replace
      target_label: k8s_namespace
    - source_labels: [__meta_kubernetes_service_name]
      action: replace
      target_label: k8s_sname

博客:StarsL.cn

问题请到github上提交issue。

GitHub:https://github.com/starsliao/Prometheus


Dependencies: