准备内容
- 自己使用 toplingdb 的可运行程序; 当前示例是使用 db_bench 完成。
- 安装 prometheus
- 安装 grafana
- 基本了解配置文件格式
toplingdb 直接内置和展示运行情况接口,通过一个配置文件设置,这里不展开介绍。
测试环境说明
- 使用 docker 测试
- toplingdb 地址为 toplingdb_host:55125
- prometheus 地址为 http://prometheus_host:55121
- grafana 地址为 http://grafana_host:55122
toplingdb 支持 prometheus 接口
- statistics 内容
示例是 /statistics/stat-strings,对应于配置中的 “Statistics” 的内容,可以有多个,依赖配置文件设置。1
2
3
4
5
6
7
8
9
10# 抓取配置列表
scrape_configs:
- job_name: 'stat-strings'
metrics_path: '/statistics/stat-strings'
params:
metric: ['1']
html: ['0']
static_configs:
- targets: ['db_ip_port'] - props 内容
可以有多个不同的内容(不同 db,不同 column_families),依赖配置文件,prometheus 设置示例如下。
后续运行示例中只有一个 strings 的 default column_families。注意: 接口展示具体内容时 rocksdb 相关统计信息,这里不展开介绍,请参考相关资料。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27- job_name: 'props-zsets-default'
metrics_path: '/props/zsets/default'
params:
metric: ['1']
html: ['0']
noint: ['0']
static_configs:
- targets: ['db_ip_port']
- job_name: 'props-zsets-data_cf'
metrics_path: '/props/zsets/data_cf'
params:
metric: ['1']
html: ['0']
noint: ['0']
static_configs:
- targets: ['db_ip_port']
- job_name: 'props-zsets-score_cf'
metrics_path: '/props/zsets/score_cf'
params:
metric: ['1']
html: ['0']
noint: ['0']
static_configs:
- targets: ['db_ip_port']
db_bench 使用说明:config.json 内容见”4 config.json 内容”
注意这里 LD_LIBRARY_PATH 的内容修改为你自己的代码位置,之后在代码目录直接执行即可。
/data 是自己创建的存储数据的目录
1 | export LD_LIBRARY_PATH=/code/toplingdb:/code/toplingdb/sideplugin/topling-zip/build/Linux-x86_64-g++-8.3-bmi2-1/lib_shared:/code/toplingdb/sideplugin/topling-zip/build/Linux-x86_64-g++-8.3-bmi2-1/rls/boost-shared/bin.v2/libs/fiber/build/gcc-8/release/threading-multi/visibility-hidden:/code/toplingdb/sideplugin/topling-zip/build/Linux-x86_64-g++-8.3-bmi2-1/rls/boost-shared/bin.v2/libs/filesystem/build/gcc-8/release/threading-multi/visibility-hidden:/code/toplingdb/sideplugin/topling-zip/build/Linux-x86_64-g++-8.3-bmi2-1/rls/boost-shared/bin.v2/libs/context/build/gcc-8/release/threading-multi/visibility-hidden:/code/toplingdb/sideplugin/topling-zip/build/Linux-x86_64-g++-8.3-bmi2-1/rls/boost-shared/bin.v2/libs/system/build/gcc-8/release/threading-multi/visibility-hidden:/code/toplingdb/sideplugin/topling-zip/build/Linux-x86_64-g++-8.3-bmi2-1/rls/boost-shared/stage/lib |
1. 设置 static 接口内容相关配置项
toplingdb 有许多灵活设置,不是每个指标在你的设置下有有相应内容数据,一些不需要数据的数据指标可以通过这个设置忽略。目前操作的是 statistics 数据。
- discard_tickers
需要忽略的 prometheus gauge 或 conter 类型数据; - discard_histograms
需要忽略的 prometheus histogram 类型数据;
更详细可参见最后 config.json 内容
1 | "Statistics": { |
2. prometheus 设置内容
数据示例
“/statistics/stat-strings”和”/props/strings/default” 对应请求的 url 地址。
数据示例:
1 | $ curl -s "http://toplingdb_host:55125/statistics/stat-strings?html=0&metric=1" | head -5 |
1 | $ curl -s "http://toplingdb_host:55125/props/strings/default?html=0&metric=1" | head -5 |
配置内容
toplingdb_host:55125 是你的是使用 toplingdb 程序监听端口。
注意设置两个 http 请求参数:数据示例中的 “?html=0&metric=1” 部分。
- metric: [‘1’]
- html: [‘0’]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18# 抓取配置列表
scrape_configs:
- job_name: 'stat-strings'
metrics_path: '/statistics/stat-strings'
params:
metric: ['1']
html: ['0']
static_configs:
- targets: ['toplingdb_host:55125']
- job_name: 'props-strings'
metrics_path: '/props/strings/default'
params:
metric: ['1']
html: ['0']
noint: ['0']
static_configs:
- targets: ['toplingdb_host:55125']
3. grafana 设置过程
设置数据源为你的 prometheus 地址
创建 dashboard
创建两个 dashboard 分别用来展示 prometheus 的 gauge 指标、counter 指标和 histogram 指标。
其他指标可以自行添加,指标内容可以通过数据示例curl请求或者直接网页打开的方式查看,推荐使用curl请求获取查看。
gauge 或者 counter 类指标展示内容
engine:number:superversion_acquires
histogram 内容展示示例
histogram_quantile(0.5, rate(engine:bytes:per:write_bucket[1m]))
4. config.json 内容
主要配置值:注意相关变量设置为这个值就可以了
- /toplingdb/strings
- 10005
这里使用了 docker,10005 是内部端口,映射到外部就是 55125。
参照 sideplugin/rockside/sample-conf/lcompact_community.json 修改如下
1 | { |