TiHC Alpha 1.0 版本试用邀请:探索新功能

网友投稿 390 2024-03-03



一、作者声明

TiHC 为 TiDB 爱好者开发工具,属于个人行为与 PingCAP 官方无关,请谨慎使用;

TiHC Alpha 1.0 版本试用邀请:探索新功能

TiHC 现阶段作者定义为 Alpha 版本,因此存在诸多 BUG 与不完善,生产环境请谨慎使用,如导致任何损失与作者无关;

TiHC 的发版将在 Github 完成,鉴于国内用户可能由于 “科学上网” 原因无法登录 Github,作者还会同步在 Gitee 更新代码;

本篇文章的目的是希望 TiDB 爱好者初步体验 TiHC ,作者认为一个好用、有价值的工具软件不应该限于作者的个人脑补,而应切合真实的使用场景。因此,希望得到各位爱好者的宝贵意见并对 TiHC 不断加以改进。

鉴于声明 4 ,如果大家反馈 TiHC 没有使用价值,作者会果断终止丰富该工具的行为,欢迎文章留言。

二、TiHC 是什么

TiHC (TiDB Healthy Check) 是一个开源的、基于 rust 构建的 TiDB 巡检工具,目的是为缩短巡检时间,提高交付效率。与传统 ***、MySQL 等巡检工具使用 SQL 采集对应内存表、操作系统指标,最终生成 Html 巡检报告不同。因为 TiDB 排查问题的方法论基于 Grafana 监控指标构建,tihc 借鉴 TiDB 官方工具 tiup 分发 ssh 的原理,分布式采集各节点信息并整合 grafana 监控,最终生成可交付的巡检 Office Doc 文件。

TiHC 的作用 :

       1. 对于 TiDB DBA 角色,节约 TiDB 巡检过程中大量可模版化工作;

       2. 对于 Others DBA 角色,提供一套针对 TIDB 健康检查的简单方法;

Tips : TiHC 不期望探究所有性能细节,仅关注 TiDB 读写请求流中较为常见、重要的组件监控进行采集与分析。详细的根因分析还是需 Grafana 各组件配合分析、定论。

TiHC 价值何在 :

1. 作为非甲方 DBA 而言,存在巡检后需为客户出具巡检报告的工作场景,如果巡检的数据库是 TiDB ,那么 TiHC 可以为你缩短大量编写文档的时间,专心依据 Grafana 检查客户集群是否有问题便可;       

2. 作为 TiDB 小白巡检 TIDB 数据库时,由于 TiDB 非按照常理的、非内存表信息、等待事件的巡检方法论经常导致手足无措,那么 TiHC 期望巡检报告从上至下浏览完后,可以列出很多预设的问题对常见风险简单预、判定、学习;         3.对 TiDB 巡检而言,据作者所知还处于一个依据 DBA 经验巡检阶段,即:不同 DBA 对 TIDB 的认识不同,巡检时侧重点也不同。这将会导致交付报告的给规范化,而 *** 由于强大的应用生态,很多爱好者写出来的巡检报告模版(Html)可以对其他 DBA 起到启发、规范作用,这也是 TiHC 期望做到的。         4. 另外,很多“甲方爸爸” 其实根本不在意巡检报告的细节,只在意结论如何,TiHC 可以让你 1min 交差(前提是巡检下来,数据库真的没有潜在问题)。

三、TiHC 的特性

采集 grafana 监控面板

调用 grafana-image-render 插件,获取指定时间段内的监控信息。

生成 Docx 巡检文档

TiHC 将收集的统计数据排版、生成 Office Word 文档模版,仅需少量修改便可直接交付客户。

轻量化巡检采集操作

TiHC 只需初次巡检时,配置 Grafana-image-render。此后,仅需要可执行文件便可完成全部巡检。

四、文档与快速上手

4.1 TiHC 文档

       TiHC 遵循 terminal cli 使用风格,可 --help 或 -h 简单查看使用方法。

$ tihc % ./bin/tihc -h TiHC 1.0 Jan Su TiHC (TiDB Healthy Check) is a tool designed by RUST to reduce inquiry timeand improve delivery efficiency. USAGE: tihc[OPTIONS] FLAGS: -h, --help Prints help information -v, --version Print TiHC version OPTIONS: -c <cluster_name> The name of cluster which need to health check. -t <grafana_end_time>The TSO of grafana endtime which need to get images. -p <grafana_pwd> Use password of target grafana. (default "admin") -f <grafana_start_time> The TSO of grafana start time which need to get images. -u <grafana_user> Use user name of target grafana. (default "admin") -P <ssh_pwd>The password to login via SSH with"ssh_user". -U <ssh_user> The user name to login via SSH.

       针对安装部署、使用过程中遇到的诸多,非软件 BUG 问题作者创建了 Github Project Wiki FAQ,更多细节相见 TiHC Wiki

4.2 快速上手

4.2.1 本地安装

        首先,使用 TiHC 之前需要选择一个已经部署好 TiDB 的集群作为巡检目标;         其次,使用 TiHC 前需要在 TiDB 中控机的 tidb 用户下,执行脚本为 Grafana 配置插件 grafana-image-render,TiHC 作者准备了deploy_grafana_image_render.sh 部署脚本。该脚本有两种部署模式 onlineoffline 两种;        下面仅展示 online 下载方式部署 grafana-image-render,至于 offline 方式请参考 Wiki 描述,部署过程中遇到的问题请参考 Wiki FAQ

wgethttps://github.com/jansu-dev/tihc/releases/download/v0.1.0-alpha/tihc-v0.1.0-alpha-linux-amd64.tar.gz&& \ tar -zxvf tihc-v0.1.0-alpha-linux-amd64.tar.gz && \ cd tihc-v0.1.0-alpha-linux-amd64 && \ chmod 777 ./deploy_grafana_image_render.sh && \ ./deploy_grafana_image_render.sh CLUSTER_NAME online

        最后,部署成功屏幕输出 [Log ] --> grafana-image-renderer has been downloaded and configed successfully!,如下:

3.2 执行采集

       使用一下命令执行巡检,详情见 TiHC Wiki Quick Start 部分。

./tihc -c xu-tidb \ -u admin \ # grafana 登录用户名 -p admin \ # grafana 登录密码 -U tidb \ # 各节点 ssh 登录用户名 -P tidb \ # 各节点 ssh 登录密码 -f "2022-03-17 14:00:00" \ # grafana 图像采集开始时间点 -t "2022-03-17 14:10:00" # grafana 图像采集结束时间点

       当巡检命令发出后 terminal 输出如下,并且会在 tihc 可执行文件目录下找到的名为 tidb_check.docx 的文件。

       最后,将 tidb_check.docx 文件从 tidb 中控机上取下打开,可双击查看生成的巡检文档。概览如下:

3.3 使用串讲

       最后,附上 3 张操作全流程图,帮助大家串联上面的步骤拆解:

五、TiHC 源码编译

       在本地安装 Rust 环境下,访问 tihc repo 直接获取源码至本地。使用 make 命令便可编译二进制文件。

# Get repo from github git clone git@github.com:jansu-dev/tihc.git && cd tihc # Build the tool by Makefile make # Get binary of tihc ll ./bin/tihc

六、代码贡献与意见收集

作者作为 rust 的初学者,期待与大家一起构建 TiHC 工具,如有兴趣者可以直接提交 PR;

TiHC 现在代码中缺少很多注释,作者会陆续将其补充完整,更好让感兴趣者参与其中;

针对使用过程中遇到的任何问题,大家均可通过 Issue 提问交流(主),或者本文下方留言(辅);

TiHC 虽然简单将各模块抽离,模仿流水线设计模式构建,但因急于实现功能且代码实战应验少导致功能过于耦合,未来可能大幅度重构

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:TiFlash表达式的设计与实现解析
下一篇:TiKV 6.0体验:重启后 Leader 均衡加速实践报告
相关文章