StarRocks 存算分离集群监控部署

说明

StarRocks 存算分离集群在存算一体基础上增加了众多与后端存储相关的监控指标,本文章主要提供这些指标在 Prometheus 和 Grafana 上的部署以及各字段含义说明,存算一体的监控部署可参考 https://docs.starrocks.io/zh-cn/latest/administration/Monitor_and_Alert ,这里不再赘述。

部署 Prometheus 和 Grafana

详情内容请参考:https://docs.starrocks.io/zh-cn/latest/administration/Monitor_and_Alert

部署 Prometheus

下载并解压 Prometheus

# 注意需要使用高版本的 Prometheus
curl -LO https://github.com/prometheus/prometheus/releases/download/v2.45.1/prometheus-2.45.1.linux-amd64.tar.gz
tar -xf prometheus-2.29.1.linux-amd64.tar.gz

准备配置文件:

# prometheus.yml
# my global config
global:
  scrape_interval:     15s # 全局的采集间隔,默认是 1m,这里设置为 15s
  evaluation_interval: 15s # 全局的规则触发间隔,默认是 1m,这里设置 15s

scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'StarRocks_Cluster01' # 每一个集群称之为一个job,可以自定义名字作为StarRocks集群名
    metrics_path: '/metrics'    # 指定获取监控项目的Restful Api
    static_configs:
      - targets: ['fe_ip:8030']  # fe http port
        labels:
          group: fe
      - targets: ['be_ip1:8040', 'be_ip2.38:8040', 'be_ip3:8040'] # be http port
        labels:
          group: be

启动 Prometheus

nohup ./prometheus \
    --config.file="./prometheus.yml" \
    --web.listen-address=":9090" \
    --log.level="info" &

访问 Prometheus 的 9090 端口,如果显示以下内容则表示服务成功启动。

部署 Grafana

curl -LO https://dl.grafana.com/oss/release/grafana-10.1.4.linux-amd64.tar.gz
tar -zxf grafana-8.0.6.linux-amd64.tar.gz

nohup ./bin/grafana-server --config="./conf/defaults.ini" &

为 Grafana 配置 Prometheus 作为数据源。登录用户名和密码都是 admin。

依次点击 Configuration,Data sources,Add data source,和 Prometheus。在下面的页面配置:Name、URL、Access。

添加 Dashboard

添加 Shared Data Dashboard

导入 JSON 文件,文件内容参考 shared_data.json 文件。
shared_data.json (49.2 KB)

添加 Starlet Dashboard

导入 JSON 文件,文件内容参考 starlet_fslib.json 文件。
starlet_fslib.json (97.0 KB)

注意,查看 dashboard 时,需要选择正确的 DatasourceNodeGroup注意:不能选择 All。

理解 Dashboard

Shared Data Dashboard

Shared Data Dashboard 总共包含五个监控类别,如下:

Publish Version

名称 描述
Latency / QPS Public Version $quantile 分位延迟,平均延迟,以及 QPS
Queued Tasks 处于排队中的 Public Version 任务数量

Metadata

名称 描述
Get Tablet Metadata Get Tablet Metadata 的 $quantile 分位延迟,平均延迟,以及 QPS
Put Tablet Metadata Put Tablet Metadata 的 $quantile 分位延迟,平均延迟,以及 QPS
Get Txn Log Get Txn Log 的 $quantile 分位延迟,平均延迟,以及 QPS
Put Txn Log Put Txn Log 的 $quantile 分位延迟,平均延迟,以及 QPS

Metacache

名称 描述
Metacache Usage Metacache 的利用率
Delvec Cache Miss Per Minute Delvec Cache 每分钟 Miss 的次数
Metadata Cache Miss Per Minute Metadata Cache 每分钟 Miss 的次数
Txn Log Cache Miss Per Minute Txn Log Cache 每分钟 Miss 的次数
Segment Cache Miss Per Minute Segment Cache 每分钟 Miss 的次数

Vacuum

名称 描述
Vacuum Deletes Vacuum Deletes 的 $quantile 分位延迟,平均延迟,以及 QPS
Errors Vacuum Deletes 操作失败的次数

Loading

名称 描述
Queue Size BE async delta writer 的队列长度

Starlet Dashboard

Starlet Dashboard 总共包含五个监控类别,如下:

在 Grafana 图表中可以按需选择观察的文件系统类型(例如 S3、HDFS、Posix 等)。这里我们以 S3 为例,详细介绍各指标的含义。

FSLIB READ IO METRICS

名称 指标类型 描述
fslib read io_latency (quantile) Histogram 读取 S3 的 $quantile 分位延迟
fslib read io_latency (average) Counter 读取 S3 的平均延迟
fslib total read data Counter 累计读取 S3 的数据总量
fslib read iosize (quantile) Histogram 读取 S3 的 $quantile 分位 IO 大小
fslib read iosize (average) Counter 读取 S3 的 平均 IO 大小
fslib read throughput Counter 每秒钟读取 S3 的 IO 吞吐
fslib read iops Counter 每秒读取 S3 的 IO 次数

FSLIB WRITE IO METRICS

名称 指标类型 描述
fslib write io_latency (quantile) Histogram 应用写入的 $quantile 分位延迟,注意这里只是写入缓冲区,因此观察到的值会比较低
fslib write io_latency (average) Counter 应用写入的平均延迟,注意这里只是写入缓冲区,因此观察到的值会比较低
fslib total write data Counter 累计写入的数据总量
fslib write iosize (quantile) Histogram 应用每次写入请求的 $quantile 分位大小
fslib write iosize (average) Counter 应用每次写入请求的平均大小
fslib write throughput Counter 应用的写入吞吐

S3 IO METRICS

该栏包含 S3 的各种详细指标。

名称 指标类型 描述
fslib s3 single upload iops Counter S3 Put Object 的每秒调用次数
fslib s3 single upload iosize (quantile) Histogram S3 Put Object 的 $quantile 分位大小
fslib s3 single upload latency (quantile) Histogram S3 Put Object 的 $quantile 分位延迟
fslib s3 multi upload iops Counter S3 Multi Upload Object 的每秒调用次数
fslib s3 multi upload iosize (quantile) Histogram S3 Multi Upload Object 的 $quantile 分位大小
fslib s3 multi upload latency (quantile) Histogram S3 Multi Upload Object 的 $quantile 分位延迟
fslib s3 complete multi upload latency (quantile) Histogram S3 Compelete Multi Upload Object 的 $quantile 分位延迟

FSLIB CACHE METRICS

名称 指标类型 描述
fslib cache hit ratio Counter 缓存访问的命中率
fslib cache hits/misses Counter 每秒打开缓存文件的命中次数

FSLIB FS METRICS

名称 指标类型 描述
fslib alive fs instances count Guage 文件系统实例存活数。
fslib open files Counter 累计打开的文件数量
fslib create files Counter 每秒平均创建的文件数
filesystem meta operations Counter 每秒平均 list 文件目录的次数
fslib async caches Counter 累计异步缓存的文件数量
fslib create files (TOTAL) Counter 累计创建的文件数量
fslib async tasks Counter 累计排队中的异步任务
fslib async writeback 没有该指标
fslib list latency (quantile) 没有该指标
fslib list latency (average) 没有该指标
3赞

:partying_face: :partying_face: :partying_face: