导航:这里主要是列出一个prometheus一些系统的学习过程,最后按照章节顺序查看,由于写作该文档经历了不同时期,所以在文中有时出现

的云环境不统一,但是学习具体使用方法即可,在最后的篇章,有一个完整的腾讯云的实战案例。

  1.​​什么是prometheus?​

  2.​​Prometheus安装​

  3.​​Prometheus的Exporter详解​

  4.​​Prometheus的PromQL​

  5.​​Prometheus告警处理​

  6.​​Prometheus的集群与高可用​

  7.​​Prometheus服务发现​

  8.​​kube-state-metrics 和 metrics-server​

  9.​​监控kubernetes集群的方式​

  10.​​prometheus operator​

  11.​​Prometheus实战之联邦+高可用+持久​

  12.​​Prometheus实战之配置汇总​

  13.​​Grafana简单用法​

  14.​​Grafana SQL汇总​

  15.​​prometheus SQL汇总​

  参考:

  ​​https://prometheus.io/docs/prometheus/latest/configuration/configuration/#kubernetes_sd_config​

  ​​https://yunlzheng.gitbook.io/prometheus-book/part-iii-prometheus-shi-zhan/readmd/use-prometheus-monitor-kubernetes​

  ​​https://www.bookstack.cn/read/prometheus_practice/introduction-README.md​

  ​​https://www.kancloud.cn/huyipow/prometheus/521184​

  ​​https://www.qikqiak.com/k8s-book/docs/​

  

  本文档不讲解基础使用,仅讲解,在使用中花费了很多时间的操作。更多的操作可以去参考grafana的导出json,这里只是做一个简单的流程记录

 

1.Grafana查询界面

Grafana简单用法_sql

  这样可以将粒度调成最粗,可以拉取更长时间的数据.

 

2.变量

2.1 变量总类

  用户需要指定变量的名称,后续用户就可以通过$variable_name的形式引用该变量。Grafana目前支持6种不同的变量类型,而能和Prometheus一起工作的主要包含以下5种类型:

Grafana简单用法_sql_02

  Label属性用于指定界面中变量的显示名称,Hide属性则用于指定在渲染界面时是否隐藏该变量的下拉框。

 

2.2 Query_result

  Query_result是Query里面的一个种类,只是使用的方式不同.基本也能实现大致的目的,所以没必要深究.

  通过Dashboard页面的Settings选项,可以进入Dashboard的配置页面并且选择Variables子菜单:

Grafana简单用法_高可用_03

  使用变量过滤需要的值

Grafana简单用法_高可用_04

  比如上图中 query_result(kube_namespace_created{job=~"cn-lcm-prod.*"})

  这里一步一步拆解;

Grafana简单用法_数据_05

  上图可以看到,获取了类似于prometheus计算的结果,但是我们只需要其中的一个labels值,那么,可以继续通过正则过滤,过滤出labels为namespace的值

Grafana简单用法_高可用_06

  结果可以看到,namespace的值过滤出来了,接下来就看在看板界面通过这些值筛选要显示的信息(主机或者pod),也就是将这个变量传入给prometheus sql来查询。

 

2.3 变量图解

Grafana简单用法_高可用_07

 

3.函数

  使用Query类型的变量能够根据允许用户能够根据时间序列的特征维度对数据进行过滤。在定义Query类型变量时,除了使用PromQL查询时间序列以过滤标签的方式以外,Grafana还提供了几个有用的函数:

Grafana简单用法_sql_08

 

3.1 label_values

Grafana简单用法_sql_09

  可以看到,所有的namespace都返回了.但是建议使用query_result,因为如果是联邦集群,那么所有集群的namespace都会抓取出来,这样就就不是想要的结果了。

  也可以这么使用

  通过使用label_values函数,获取到当前Promthues监控指标up中所有可选的job标签的值:

label_values(up, job)

作者:​​小家电维修​

转世燕还故榻,为你衔来二月的花。