改版通知

巨人肩膀网站已全新改版。若您仍依赖旧站功能或数据,欢迎联系我们,我们会协助处理。联系我们

PrometheusGrafana监控StarRocks二

ckckck2025年1月10日40 浏览

以下文章来源于 rundba,作者 landnow

Image

rundba:数据库及相关 IT 技术分享、交流。

Image

StarRocks 提供两种监控报警的方案:

  1. 使用内置的 StarRocks Manager,其自带的 Agent 从各个 Host 采集监控信息上报到 Center Service 然后做可视化展示,也提供了邮件和 Webhook 的方式发送报警通知。
  2. 如果用户为了二次开发需求,需要自己搭建部署监控服务,也可以使用开源的 Prometheus + Grafana 的方案。StarRocks 提供了兼容 Prometheus 的信息采集接口,可以通过直接链接 BE/FE 的 HTTP 端口来获取集群的监控信息。

如果采购 StarRocks 企业版,则提供 StarRocks Manager 进行监控;如果使用 StarRocks 社区版、Apache Doris、百度 Palo,则需要采用开源 Prometheus + Grafana 监控方案。

Image

文中多图预警

4. Grafana 添加 Prometheus 数据源

  1. 首页点击“datasources”
    Image
  2. 点击“Prometheus”-“Select”
    Image
  3. 输入名称,服务器地址及端口
    Image
  4. 点击“保存和测试”
    Image

5. Grafana 添加 StarRocks 监控模板

  1. Grafana 首页,点击“+”--“Import”
    Image
  2. 输入 StarRocks JSON 文件编号 9734,点击 Load
    或者输入 https://Grafana.com/Grafana/dashboards/9734
    StarRocks-1.19.0 之前版本使用 9734 模板;
    StarRocks-1.19.0 及以后版本使用以下模板:
    http://starrocks-thirdparty.oss-cn-zhangjiakou.aliyuncs.com/StarRocks-Overview-19.json
    Image
  3. Palo 一栏选择“Prometheus”,点击“Import”
    Image

6. Prometheus 监控 StarRocks

1) Prometheus 配置文件添加 StarRocks 内容

yaml 复制代码
vim /monitor/prometheus/prometheus.yml    # 添加如下内容
# StarRocks CLUSTER 1
- job_name: 'StarRocks'
  metrics_path: '/metrics'
  static_configs:
    - targets: ['sr01:8030', 'sr02:8030']
      labels:
        group: fe
    - targets: ['sr01:8040', 'sr02:8040', 'sr03:8040']
      labels:
        group: be
Image

注意缩进格式,非正常缩进可能导致监控异常。

2) 配置文件说明

yaml 复制代码
# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
- job_name: 'PALO_CLUSTER' # 每一个 StarRocks 集群,我们称为一个 job。这里可以给 job 取一个名字,作为 StarRocks 集群在监控系统中的名字。
  metrics_path: '/metrics' # 这里指定获取监控项的 restful api。配下面的 targets 中的 host:port,Prometheus 最终会通过 host:port/metrics_path 来采集监控项。
  static_configs: # 这里开始分别配置 FE 和 BE 的目标地址。所有的 FE 和 BE 都分别写入各自的 group 中。
    - targets: ['fe_host1:8030', 'fe_host2:8030', 'fe_host3:8030']
      labels:
        group: fe # 这里配置了 fe 的 group,该 group 中包含了 3 个 Frontends
    - targets: ['be_host1:8040', 'be_host2:8040', 'be_host3:8040']
      labels:
        group: be # 这里配置了 be 的 group,该 group 中包含了 3 个 Backends

3) 热加载使配置生效

bash 复制代码
curl -XPOST http://localhost:9090/-/reload

7. Grafana + Prometheus 监控 StarRocks 效果展示

Prometheus 提供监控抓取,附带 TSDB 时序数据存储功能,Grafana 提供展示功能,将监控数据进行展示。

1) 点击“Search”

Image

2) 点击 StarRocks Overview

Image

3) StarRocks 监控内容

Image

Grafana 中,Row 的概念,即一组图表的集合。如上图中的 Overview、Cluster Overview 即两个不同的 Row。可以通过点击 Row,对 Row 进行折叠。当前 Dashboard 有如下 Rows(持续更新中):

  • Overview: 所有 StarRocks 集群的汇总展示;
  • Cluster Overview: 选定集群的汇总展示;
  • Query Statistic: 选定集群的查询相关监控;
  • Jobs:数据加载汇总;
  • Transaction:事物运行监控;
  • FE JVM: 选定 Frontend 的 JVM 监控;
  • BE: 选定集群的 Backends 的汇总展示;
  • BE Tasks: 选定集群的 Backends 任务信息的展示。

4) 监控数据展示

Overview:
Image

Cluster Overview:
Image

Query Statistic:
Image

Jobs:
Image

Transaction:
Image

FE JVM:
Image

BE:
Image

BE Tasks:
Image

8. 小结

在未有 StarRocks Manager 情况下,文中通过 Prometheus + Grafana 监控 StarRocks 进行了操作实现。对 StarRocks 主机监控可采用 Prometheus 的 node_exporter 模块实现,后续将在其它篇幅展示,告警可采用 Prometheus 的 alertmanager 方式实现。

--完--

end