概述
关于Prometheus和Grafana的安装,略过。
写在前面
- Dashboard:仪表板,可包含多个Panel
- Panel:面板,Dashboard中的组件
如有写得不对的地方,烦请指出。
新增仪表板
点击右上角的
选择New dashboard,
备注:上图自有探索->自由探索。
自由探索
点击Add visualizaton,出现选择数据源界面,
如上图所示,一个Grafana可以新增多个Prometheus数据源。选择Prometheus数据源,然后出现如下视图
点击Code,输入http_server_requests
,Grafana有自动补齐提示,也就是说,我们现在是在Grafana里写PromQL。
选择不同的数据源,写的Code不一样,如果选择的是Loki,则写Code时需要遵从LogQL语法(计划会另写一篇博客)。
勾选Explain,下面会出现关于code的解释,比如下面的1 Fetch all series matching metric name and label filters.
,翻译过来就是抓取所有满足指标名称和标签过滤符的序列
变量
在Grafana中,用户可为仪表板定义一组变量(Variables),变量一般包含一个到多个可选值。通过将变量渲染为一个下拉框,使用户可动态地调整变量的值,进而查询不同标签(Tag)下的数据,从而实现分组(Group by)效果
在仪表板右上角,点击Settings,会发现若干个Tab标签页,其中第三个Variables就是变量
点击新增变量
变量是仪表板全局生效的,一个仪表板如果有多个面板,则全部面板都会复用这个变量,也就是说,放在一个仪表板里的多个面板最好是强相关的(能复用这些变量的,负责查询面板会出现No Data问题)。
变量过滤
以http_server_requests
(参考Grails应用http.server.requests指标数据采集问题排查及解决)这个Micrometer默认暴露出来的指标为例,在Prometheus Graph页面查询此指标时,有如下图所示几个标签组(注意,下文会使用这个数据):
- container:容器,表示是Pushgateway采集的
- endpoint:采集方式
- exception:API接口异常
- job:即应用,服务,非常