4
1
1
0
专栏/.../

TiDB中如何查看database级别的QPS

 啦啦啦啦啦  发表于  2022-05-30
原创监控

本文演示如何在grafana中配置database级别的 QPS,其他监控图表的添加或者修改也可以当做参考。

在官方文档中可以看到有相关参数,默认关闭。

record-db-qps

  • 输出与 database 相关的 QPS metrics 到 Prometheus 的开关。
  • 默认值:false

1.开启record-db-qps 参数

tiup cluster edit-config tidb-test

添加status.record-db-qps: true

server_configs:
  tidb:
    log.slow-threshold: 300
    new_collations_enabled_on_first_bootstrap: true
    status.record-db-qps: true

tiup cluster reload tidb-test

注意:开启该参数可能会导致一定的性能下降

2.验证参数生效

访问 prometheus

地址:http://xx.xx.xx.xx:9090/graph

image.png

image.png

在prometheus界面可以看到数据已经正常采集到了。

或者通过http 接口curl http://__tidb_ip__:10080/metrics |grep tidb_executor_statement_total 也可以看到。

[root@test1 ~]# curl http://10.0.0.1:10080/metrics |grep tidb_executor_statement_db_total
% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
Dload  Upload   Total   Spent    Left  Speed
0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0# HELP tidb_executor_statement_db_total Counter of StmtNode by Database.
TYPE tidb_executor_statement_db_total counter
tidb_executor_statement_db_total{db="sbtest",type="Delete"} 19
tidb_executor_statement_db_total{db="sbtest",type="Select"} 11
100  426k    0  426k    0     0  55.8M      0 --:--:-- --:--:-- --:--:-- 59.5M

通过命令 grep -r "tidb_executor_statement_db_total" /tidb-deploy/grafana-3000/dashboards

发现现有的 .json 文件里没有相关的信息,说明 grafana 中并没有相关的图表,只能自己添加。

3.在grafana上添加图表

grafana 的 UI 编辑保存功能没有开启,无法直接修改或者添加图表,同时为了 reload 时不将修改的监控页面覆盖,直接修改 .json 文件。

首先确定图表想加的位置,例如想加到 Overview 中 TiDB 下的第一个图。

vim /tidb-deploy/grafana-3000/bin/overview.json

"id": 2 (Statement OPS对应的内容)之前添加如下内容。其中 id 可以为不和现有重复的任意值。title 为图表标题,这里取为 QPS for Databases 。targets 后为对应表达式,可以根据需要修改。其余部分拷贝其他监控项的即可。

           "id": 111,
           "legend": {
             "alignAsTable": true,
             "avg": true,
             "current": true,
             "hideEmpty": true,
             "hideZero": true,
             "max": true,
             "min": false,
             "rightSide": true,
             "show": true,
             "sideWidth": null,
             "sort": "max",
             "sortDesc": true,
             "total": false,
             "values": true
           },
           "lines": true,
           "linewidth": 1,
           "links": [],
           "maxPerRow": 1,
           "nullPointMode": "null as zero",
           "percentage": false,
           "pointradius": 5,
           "points": false,
           "renderer": "flot",
           "seriesOverrides": [],
           "spaceLength": 10,
           "stack": false,
           "steppedLine": false,
           "targets": [
             {
               "expr": "sum(rate(tidb_executor_statement_db_total{k8s_cluster=\"$k8s_cluster\", tidb_cluster=\"$tidb_cluster\"}[1m])) by (db,type)",
               "format": "time_series",
               "intervalFactor": 2,
               "legendFormat": "{{db}}-{{type}}",
               "refId": "A",
               "step": 10
             }
           ],
           "thresholds": [],
           "timeFrom": null,
           "timeRegions": [],
           "timeShift": null,
           "title": "QPS for Databases",
           "tooltip": {
             "msResolution": true,
             "shared": true,
             "sort": 0,
             "value_type": "individual"
           },
           "type": "graph",
           "xaxis": {
             "buckets": null,
             "mode": "time",
             "name": null,
             "show": true,
             "values": []
           },
           "yaxes": [
             {
               "format": "short",
               "label": null,
               "logBase": 2,
               "max": null,
               "min": "0",
               "show": true
             },
             {
               "format": "short",
               "label": null,
               "logBase": 1,
               "max": null,
               "min": null,
               "show": true
             }
           ],
           "yaxis": {
             "align": false,
             "alignLevel": null
           }
         },
         {
           "aliasColors": {},
           "bars": false,
           "dashLength": 10,
           "dashes": false,
           "datasource": "${DS_TEST-CLUSTER}",
           "fill": 1,
           "gridPos": {
             "h": 7,
             "w": 12,
             "x": 12,
             "y": 3
           },

执行 tiup cluster reload tidb-test -R grafana 使配置生效并重启 grafana。

4.验证

对应 grafana 页面中出现了QPS for Databases的图表。

image.png

4
1
1
0

版权声明:本文为 TiDB 社区用户原创文章,遵循 CC BY-NC-SA 4.0 版权协议,转载请附上原文出处链接和本声明。

评论
暂无评论