https://docs.pingcap.com/zh/tidb/v6.5/monitor-tidb-lightning

tidb-lightning 支持使用 Prometheus 采集监控指标 (metrics)。本文主要介绍 TiDB Lightning 的监控配置与监控指标。

监控配置

如果是手动部署 TiDB Lightning,则参照以下步骤进行配置。

只要 Prometheus 能发现 tidb-lightning 和 tikv-importer 的监控地址,就能收集对应的监控指标。

监控的端口可在 tidb-lightning.toml 中配置:

[lightning] # 用于调试和 Prometheus 监控的 HTTP 端口。输入 0 关闭。 pprof-port = 8289 ...

监控的端口也可在 tikv-importer.toml 配置:

# 状态服务器的监听地址 status-server-address = '0.0.0.0:8286'

配置 Prometheus 后,tidb-lightning 才能发现服务器。配置方法如下,将服务器地址直接添加至 scrape_configs 部分:

... scrape_configs: - job_name: 'lightning' static_configs: - targets: ['192.168.20.10:8289'] - job_name: 'tikv-importer' static_configs: - targets: ['192.168.20.9:8286']

Grafana 面板

Grafana 的可视化面板可以让你在网页上监控 Prometheus 指标。

第一行:速度面板

面板名称 序列 描述
Import speed write from lightning 从 TiDB Lightning 向 TiKV Importer 发送键值对的速度,取决于每个表的复杂性
Import speed upload to tikv 从 TiKV Importer 上传 SST 文件到所有 TiKV 副本的总体速度
Chunk process duration   完全编码单个数据文件所需的平均时间

有时导入速度会降到 0,这是为了平衡其他部分的速度,属于正常现象。

第二行:进度面板

面板名称 描述
Import progress 已编码的文件所占百分比
Checksum progress 已导入的表所占百分比
Failures 导入失败的表的数量以及故障点,通常为空

第三行:资源使用面板

面板名称 描述
Memory usage 每个服务占用的内存
Number of Lightning Goroutines TiDB Lightning 使用的运行中的 goroutines 数量
CPU% 每个服务使用的逻辑 CPU 数量

第四行:配额使用面板

面板名称 序列 描述
Idle workers io 未使用的 io-concurrency 的数量,通常接近配置值(默认为 5),接近 0 时表示磁盘运行太慢
Idle workers closed-engine 已关闭但未清理的引擎数量,通常接近 index-concurrency 与 table-concurrency 的和(默认为 8),接近 0 时表示 TiDB Lightning 比 TiKV Importer 快,导致 TiDB Lightning 延迟
Idle workers table 未使用的 table-concurrency 的数量,通常为 0,直到进程结束
Idle workers index 未使用的 index-concurrency 的数量,通常为 0,直到进程结束
Idle workers region 未使用的 region-concurrency 的数量,通常为 0,直到进程结束
External resources KV Encoder 已激活的 KV encoder 的数量,通常与 region-concurrency 的数量相同,直到进程结束
External resources Importer Engines 打开的引擎文件数量,不应超过 max-open-engines 的设置

第五行:读取速度面板

面板名称 序列 描述
Chunk parser read block duration read block 读取一个字节块来准备解析时所消耗的时间
Chunk parser read block duration apply worker 等待 io-concurrency 空闲所消耗的时间
SQL process duration row encode 解析和编码单行所消耗的时间
SQL process duration block deliver 将一组键值对发送到 TiKV Importer 所消耗的时间

如果上述项的持续时间过长,则表示 TiDB Lightning 使用的磁盘运行太慢或 I/O 太忙。

第六行:存储空间面板

面板名称 序列 描述
SQL process rate data deliver rate 向 TiKV Importer 发送数据键值对的速度
SQL process rate index deliver rate 向 TiKV Importer 发送索引键值对的速度
SQL process rate total deliver rate 发送数据键值对及索引键值对的速度之和
Total bytes parser read size TiDB Lightning 正在读取的字节数
Total bytes data deliver size 已发送到 TiKV Importer 的数据键值对的字节数
Total bytes index deliver size 已发送到 TiKV Importer 的索引键值对的字节数
Total bytes storage_size/3 TiKV 集群占用的存储空间大小的 1/3(3 为默认的副本数量)

第七行:导入速度面板

面板名称 序列 描述
Delivery duration Range delivery 将一个 range 的键值对上传到 TiKV 集群所消耗的时间
Delivery duration SST delivery 将单个 SST 文件上传到 TiKV 集群所消耗的时间
SST process duration Split SST 将键值对流切分成若干 SST 文件所消耗的时间
SST process duration SST upload 上传单个 SST 文件所消耗的时间
SST process duration SST ingest ingest 单个 SST 文件所消耗的时间
SST process duration SST size 单个 SST 文件的大小

监控指标

本节将详细描述 tikv-importer 和 tidb-lightning 的监控指标。

tikv-importer

tikv-importer 的监控指标皆以 tikv_import_* 为前缀。

  • tikv_import_rpc_duration(直方图)

    完成一次 RPC 用时直方图。标签:

    • request:所执行 RPC 请求的类型

      • switch_mode — 将一个 TiKV 节点切换为 import/normal 模式
      • open_engine — 打开引擎文件
      • write_engine — 接收数据并写入引擎文件
      • close_engine — 关闭一个引擎文件
      • import_engine — 导入一个引擎文件到 TiKV 集群中
      • cleanup_engine — 删除一个引擎文件
      • compact_cluster — 显式压缩 TiKV 集群
      • upload — 上传一个 SST 文件
      • ingest — Ingest 一个 SST 文件
      • compact — 显式压缩一个 TiKV 节点
    • result:RPC 请求的执行结果
      • ok
      • error
  • tikv_import_write_chunk_bytes(直方图)

    从 TiDB Lightning 接收的键值对区块大小(未压缩)的直方图。

  • tikv_import_write_chunk_duration(直方图)

    从 tidb-lightning 接收每个键值对区块所需时间的直方图。

  • tikv_import_upload_chunk_bytes(直方图)

    上传到 TiKV 的每个 SST 文件区块大小(压缩)的直方图。

  • tikv_import_range_delivery_duration(直方图)

    将一个 range 的键值对发送至 dispatch-job 任务所需时间的直方图。

  • tikv_import_split_sst_duration(直方图)

    将 range 从引擎文件中分离到单个 SST 文件中所需时间的直方图。

  • tikv_import_sst_delivery_duration(直方图)

    将 SST 文件从 dispatch-job 任务发送到 ImportSSTJob 任务所需时间的直方图

  • tikv_import_sst_recv_duration(直方图)

    ImportSSTJob 任务接收从 dispatch-job 任务发送过来的 SST 文件所需时间的直方图。

  • tikv_import_sst_upload_duration(直方图)

    从 ImportSSTJob 任务上传 SST 文件到 TiKV 节点所需时间的直方图。

  • tikv_import_sst_chunk_bytes(直方图)

    上传到 TiKV 节点的 SST 文件(压缩)大小的直方图。

  • tikv_import_sst_ingest_duration(直方图)

    将 SST 文件传入至 TiKV 所需时间的直方图。

  • tikv_import_each_phase(测量仪)

    表示运行阶段。值为 1 时表示在阶段内运行,值为 0 时表示在阶段内运行。标签:

    • phase:prepare / import
  • tikv_import_wait_store_available_count(计数器)

    计算出现 TiKV 节点没有充足空间上传 SST 文件现象的次数。标签:

    • store_id: TiKV 存储 ID。
  • tikv_import_upload_chunk_duration(直方图)

    上传到 TiKV 的每个区块所需时间的直方图。

tidb-lightning

tidb-lightning 的监控指标皆以 lightning_* 为前缀。

  • lightning_importer_engine(计数器)

    计算已开启及关闭的引擎文件数量。标签:

    • type:

      • open
      • closed
  • lightning_idle_workers(计量表盘)

    计算闲置的 worker。标签:

    • name:

      • table — 未使用的 table-concurrency 的数量,通常为 0,直到进程结束
      • index — 未使用的 index-concurrency 的数量,通常为 0,直到进程结束
      • region — 未使用的 region-concurrency 的数量,通常为 0,直到进程结束
      • io — 未使用的 io-concurrency 的数量,通常接近配置值(默认为 5),接近 0 时表示磁盘运行太慢
      • closed-engine — 已关闭但未清理的引擎数量,通常接近 index-concurrency 与 table-concurrency 的和(默认为 8),接近 0 时表示 TiDB Lightning 比 TiKV Importer 快,导致 TiDB Lightning 延迟
  • lightning_kv_encoder(计数器)

    计算已开启及关闭的 KV 编码器。KV 编码器是运行于内存的 TiDB 实例,用于将 SQL 的 INSERT 语句转换成键值对。此度量的净值(开启减掉关闭)在正常情况下不应持续增长。标签:

    • type:

      • open
      • closed
  • lightning_tables(计数器)

    计算处理过的表及其状态。标签:

    • state:表的状态,表明当前应执行的操作

      • pending — 等待处理
      • written — 所有数据已编码和传输
      • closed — 所有对应的引擎文件已关闭
      • imported — 所有引擎文件已上传到目标集群
      • altered_auto_inc — 自增 ID 已改
      • checksum — 已计算校验和
      • analyzed — 已进行统计信息分析
      • completed — 表格已完全导入并通过验证
    • result:当前操作的执行结果
      • success — 成功
      • failure — 失败(未完成)
  • lightning_engines(计数器)

    计算处理后引擎文件的数量以及其状态。标签:

    • state:引擎文件的状态,表明当前应执行的操作

      • pending — 等待处理
      • written — 所有数据已编码和传输
      • closed — 引擎文件已关闭
      • imported — 当前引擎文件已上传到目标集群
      • completed — 当前引擎文件已完全导入
    • result:当前操作的执行结果
      • success — 成功
      • failure — 失败(未完成)
  • lightning_chunks(计数器)

    计算处理过的 Chunks 及其状态。标签:

    • state: 单个 Chunk 的状态,表明该 Chunk 当前所处的阶段

      • estimated — (非状态)当前任务中 Chunk 的数量
      • pending — 已载入但未执行
      • running — 正在编码和发送数据
      • finished — 该 Chunk 已处理完毕
      • failed — 处理过程中发生错误
  • lightning_import_seconds(直方图)

    导入每个表所需时间的直方图。

  • lightning_row_read_bytes(直方图)

    单行 SQL 数据大小的直方图。

  • lightning_row_encode_seconds(直方图)

    解码单行 SQL 数据到键值对所需时间的直方图。

  • lightning_row_kv_deliver_seconds(直方图)

    发送一组与单行 SQL 数据对应的键值对所需时间的直方图。

  • lightning_block_deliver_seconds(直方图)

    每个键值对中的区块传送到 tikv-importer 所需时间的直方图。

  • lightning_block_deliver_bytes(直方图)

    发送到 Importer 的键值对中区块(未压缩)的大小的直方图。

  • lightning_chunk_parser_read_block_seconds(直方图)

    数据文件解析每个 SQL 区块所需时间的直方图。

  • lightning_checksum_seconds(直方图)

    计算表中 Checksum 所需时间的直方图。

  • lightning_apply_worker_seconds(直方图)

    获取闲置 worker 等待时间的直方图 (参见 lightning_idle_workers 计量表盘)。标签:

    • name:

      • table
      • index
      • region
      • io
      • closed-engine

[转帖]TiDB Lightning 监控告警的更多相关文章

  1. zookeeper监控告警

    一.ZooKeeper简介 ZooKeeper作为分布式系统中重要的组件,目前在业界使用越来越广泛,ZooKeeper的使用场景非常多,以下是几种典型的应用场景: l  数据发布与订阅(配置中心) l ...

  2. linux服务器内存、根目录使用率、某进程的监控告警脚本

    脚本内容如下 #!/bin/bash #磁盘超过百分之80发送邮件告警 DISK_USED=`df -T |sed -n "2p" |awk '{print ($4/$3)*100 ...

  3. Execute to Parse %: 29.76,数据库硬解析过高,监控告警提示数据库硬解析比例过低

    客户反馈,Oracle重启库操作后,监控告警出现pin比例低于25% 根据Oracle体系结构的理解,重启库后,硬解析及buffer命中率肯定有一段时间低. 生成不同时段的AWR报告:不要生成rac ...

  4. 24 Zabbix系统配置日志监控告警--关键字触发

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 24 Zabbix系统配置日志监控告警--关键字触发 trapper是被监控主机主动发送数据给za ...

  5. zabbix监控告警Received empty response from Zabbix Agent Assuming that agent dropped connection

    zabbix监控告警Received empty response from Zabbix Agent Assuming that agent dropped connection错误 查看zabbi ...

  6. (转)Linux磁盘空间监控告警 && Linux磁盘管理

    Linux磁盘空间监控告警 http://blog.csdn.net/github_39069288/article/details/73478784-----------Linux磁盘管理 原文:h ...

  7. SQL Server Alwayson架构下 服务器 各虚拟IP漂移监控告警的功能实现 -2(虚拟IP视角)

    1.需求描述 我们知道Windows Cluster 都是多节点的,当虚拟IP漂移的时候,一般都是从一个节点漂移到另外一个节点.如果可以及时捕捉到旧节点信息是什么.新节点信息是什么对我们提供高可用的数 ...

  8. 分布式监控告警平台Centreon快速使用

    一. Centreon概述 Centreon是一款功能强大的分布式IT监控系统,它通过第三方组件可以实现对网络.操作系统和应用程序的监控:首先,它是开源的,我们可以免费使用它:其次,它的底层采用nag ...

  9. MaxCompute按量计费计算任务消费监控告警

    MaxCompute 按量计费资源为弹性伸缩资源,对于计算任务,按任务需求提供所需资源,对资源使用无限制,同时MaxCompute按量计费的账单为天账单,即当天消费需要第二天才出账,因此,有必要对计算 ...

  10. 详解Linux运维工具:运维流程管理、运维发布变更、运维监控告警

     概述 应用上线后,运维工作才刚开始,具体工作可能包括:升级版本上线工作.服务监控.应用状态统计.日常服务状态巡检.突发故障处理.服务日常变更调整.集群管理.服务性能评估优化.数据库管理优化.随着应用 ...

随机推荐

  1. window10 AppX Deployment Service (AppXSVC)占用大量内存导致资源管理器卡死无响应

    window10 AppX Deployment Service (AppXSVC)占用大量内存导致资源管理器卡死无响应,导致无法进入桌面打开软件等等. 1.打开任务管理的情况下,先结束卡死的资源管理 ...

  2. nacos 系列:.net core 6.0 使用 nacos

    目录 安装 Nuget 包 配置 appsettings.json 添加服务和配置 测试 官方示例:https://kgithub.com/nacos-group/nacos-sdk-csharp 安 ...

  3. LAS Spark+云原生:数据分析全新解决方案

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 随着数据规模的迅速增长和数据处理需求的不断演进,云原生架构和湖仓分析成为了现代数据处理的重要趋势.在这个数字化时代 ...

  4. 从飞书妙记秒开率提升,看火山引擎A/B测试在研发场景的应用

    作者:DataTester   用户体验是决定互联网产品能否长久生存的关键,每一个基于产品功能.使用和外观的微小体验,都将极大地影响用户留存和满意度.   对于企业协作平台飞书而言,用户体验旅程从打开 ...

  5. Solon2 之基础:三、启动参数说明

    启动参数,在应用启动后会被静态化(为了内部更高效的利用).比如,想通过体外扩展加载配置,是不能改掉它们的. 1.启动参数 启动参数 对应的应用配置 描述 --env solon.env 环境(可用于内 ...

  6. 用 Java?就用国产轻量框架: Solon v1.10.2

    相对于 Spring Boot 和 Spring Cloud 的项目: 启动快 5 - 10 倍. (更快) qps 高 2- 3 倍. (更高) 运行时内存节省 1/3 ~ 1/2. (更少) 打包 ...

  7. App备案与iOS云管理式证书 ,公钥及证书SHA-1指纹的获取方法

    iOS 备案查看信息 iOS平台Bundle ID 公钥 证书SHA-1指纹 IOS平台服务器域名 获取 Bundle ID: 或者 https://developer.apple.com/accou ...

  8. 100天搞定机器学习|Day59 主成分分析(PCA)原理及使用详解

    数学概念 方差:用来衡量随机变量与其数学期望(均值)之间的偏离程度.统计中的方差(样本方差)是各个数据分别与其平均数之差的平方的和的平均数. $$Var(X)=\frac{1}{n}\sum(x_i- ...

  9. Leaflet 地图偏移 地图纠偏

    (地图瓦片纠偏最好的方法在这:https://www.cnblogs.com/s0611163/p/15606460.html) 地图区域是一个市,偏移量可以近似认为是固定不变的,通过修改Leafle ...

  10. 关于 Jupyter 导出 PDF/Latex 格式报错的简单解决方法

    利用 Jupyter 提供的 Print Preview 功能,然后鼠标右键点击打印,就能导出PDF了,而且不会出问题,中文,图片都可以