-
Notifications
You must be signed in to change notification settings - Fork 45
05.zkdoctor扩展功能说明
Elevenlxl edited this page Jun 20, 2018
·
1 revision
为了更方便进行功能扩展,zkdoctor提供了对应的接口。所有相关功能以及扩展说明将在下面进行介绍。
如果采用LDAP校验,请自行完善LoginUtil工具类中的ldapLogin方法,默认不进行校验:
/**
* LDAP登录校验
*
* @param username 用户名
* @param password 密码
* @return
*/
public static boolean ldapLogin(String username, String password) {
// TODO 自行增加ldap校验过程
return true;
}
消息发送主要包括短信和邮件,具体实现在MessageUtil工具类中,需要自行扩展对应的邮件以及短信发送实现,如下:
/**
* 发送短信
*
* @param content 短信内容
* @param mobile 手机号
*/
public static void sendSMS(String content, String mobile) {
// TODO 自行实现短信发送
LOGGER.info("Sent sms to {}. the content is {}.", mobile, content);
}
/**
* 发送邮件
*
* @param title 邮件标题
* @param content 邮件内容
* @param mailAddress 邮箱地址
*/
public static void sendMail(String title, String content, String mailAddress) {
// TODO 自行实现邮件发送
LOGGER.info("Sent mail to {}. the title is {}, content is {}.", mailAddress, title, content);
}
具体监控报警均在com.ucar.zkdoctor.service.monitor.detail
包下实现,如需增加新的监控报警项,直接继承MonitorBase
基类,重写monitor()
以及init()
方法即可,说明如下:
该方法主要是监控报警具体实现,具体监控实现放在Monitor接口的monitor方法中,直接调用父类的specifyMonitor方法即可
该方法为监控指标初始化方法,主要做一些基本信息传递以及指标基本设置以及存储操作。系统在初始化的时候,会通过Init类,完成监控报警信息的初始化工作,会调用该方法。
通过使用ZooKeeper的四字命令进行服务端数据收集工作,具体支持的四字命令在枚举类FourLetterCommand中定义,可自行添加以及扩展支持的四字命令。具体支持的四字命令描述如下:
/**
* conf (New in 3.3.0)输出相关服务配置的详细信息。比如端口、zk数据及日志配置路径、最大连接数,session超时时间、serverId等
* cons (New in 3.3.0)列出所有连接到这台服务器的客户端连接/会话的详细信息。包括“接受/发送”的包数量、session id 、操作延迟、最后的操作执行等信息
* crst New in 3.3.0)重置当前这台服务器所有连接/会话的统计信息
* dump 列出未经处理的会话和临时节点(只在leader上有效)
* envi 输出关于服务器的环境详细信息(不同于conf命令),比如host.name、java.version、java.home、user.dir=/data/zookeeper-3.4.6/bin之类信息
* ruok 测试服务是否处于正确运行状态。如果正常返回"imok",否则返回空
* srst 重置服务器的统计信息
* srvr (New in 3.3.0)输出服务器的详细信息。zk版本、接收/发送包数量、连接数、模式(leader/follower)、节点总数
* stat 输出服务器的详细信息:接收/发送包数量、连接数、模式(leader/follower)、节点总数、延迟。 所有客户端的列表
* wchs (New in 3.3.0)列出服务器watches的简洁信息:连接总数、watching节点总数和watches总数
* wchc (New in 3.3.0)通过session分组,列出watch的所有节点,它的输出是一个与 watch 相关的会话的节点列表。如果watches数量很大的话,将会产生很大的开销,会影响性能,小心使用
* wchp (New in 3.3.0)通过路径分组,列出所有的 watch 的session id信息。它输出一个与 session 相关的路径。如果watches数量很大的话,将会产生很大的开销,会影响性能,小心使用
* mntr (New in 3.4.0)列出集群的健康状态。包括“接受/发送”的包数量、操作延迟、当前服务模式(leader/follower)、节点总数、watch总数、临时节点总数
*/
前端主要采用React+TypeScript,每个模块主要包含三部分:
主要是前端渲染、展示相关定义
主要是数据类型定义以及数据获取定义,采用mobx进行数据状态管理
主要是与后台的请求交互定义