监控系统实战-04-SQL 指标的数据源
背景
我们可以考虑设计一套 SQL 指标。
不过SQL指标个人感觉设计的比较好的就是类似于 grafana 这种,可以内置支持常见的数据源最好。
拓展阅读
grafana stack grafana-01-The open and composable observability and data visualization platform.
整体思路
核心能力
基础指标信息...
2018-11-25 01:14:43 |
Devops
监控系统实战-04-05-SQL 指标应该有哪些核心能力?
背景
我们如果想设计一个 SQL 指标/规则 系统,应该有哪些核心能力?
基础
用户+权限管理
系统设置
一些系统级别的常量+枚举
app 管理
相关应用管理
数据源管理
人工维护数据源
前期不失为一种过渡方案
告警模板
所有的模板支持自定义
日志记录
审计日志留痕
方便查问题+找出变更记录
进阶
报警+报表+直发
报警就是报警
报表,额外查询内容
直...
2018-11-25 01:14:43 |
Devops
监控系统实战-04-04-SQL 指标的数据源表的基本增删改查 v1.1.0
背景
上一节我们初步定义了相关的数据库表,这一节我们一起来看一下,如何实现对应的表信息管理。
基础管理
我们针对上述的 4 张表,实现最基础的增删改查功能。
调整一下 admin 的实现
todo…
测试验证功能
SQL 脚本还是使用以前的,将新增的部分拆分出来。
数据库备份
完整版本的
mysqldump -u root -p sql_execute > "D:\...
2018-11-25 01:14:43 |
Devops
监控系统实战-04-03-SQL 指标的数据源表设计 v1.1.0
背景
我们希望存储对应的数据源信息,这里我们设计一下对应的数据源表。
初期可以简单些,只管理基本的信息,不做应用间的引用关系限制。
建表语句
这里以 mysql 为例
数据源基本信息
清空
drop table if exists jdbc_datasource_info;
CREATE TABLE jdbc_datasource_info (
id bigint(20...
2018-11-25 01:14:43 |
Devops
监控系统实战-04-02-SQL 指标的数据源从哪里来?
背景
我们在配置数据源的时候,希望可以默认加载好一些内置的数据源。
一个是为了方便,一个是为了安全。
安全层面可以是避免密码的泄露,或者是用户手动连接一些业务主库之类的。
如果我们可以控制这些,那么就会方便很多。
v1-用户自己填写
流程
最简单的思路就是我们让用户可以提前配置一些数据源。
这个数据源隶属于某一个业务域之类的。这个限制信息可选。
如果想控制,可以在数据层加一...
2018-11-25 01:14:43 |
Devops
监控系统实战-03-实时链路配置加载与2层缓存
背景
我们一般的控台系统,实时查询接口/数据库,返回对应的配置信息等,一般时间上都是可以接受的。
但是如果是一个实时链路,那么就必须尽可能的降低这种耗时的远程访问。比如查询数据库
比较自然的思考方式就是引入 redis 之类的缓存。
不过真的只有这一种方式吗?redis 有什么缺点?
redis/memcache 远程缓存的缺点
网络耗时真的快吗?
redis 快,那也只是相对...
2018-11-25 01:14:43 |
Devops
监控系统实战-02-标准化是自动化的前提
背景
我们如何实现日志的自动化解析?
答案是前提需要标准化。
但是希望所有的日志都是标准的,这显然非常不现实。
那么,有没有什么办法,稍微让这个情况好一些呢?
v1-标准化的底层框架日志
我们场景的中间件,比如 mq cache rpc database config 等,可以提供一些中间件层面的标准的日志输出。
因为这部分不需要用户太多额外的工作量,一般公司提前埋点好,耗时比...
2018-11-25 01:14:43 |
Devops
监控系统实战-01-如何减少监控指标的数据?
背景
网关希望根据 IP 限制一些恶意的 IP。
要求是 1min 内出现 5000 次的,被视为恶意 IP。
那么应该如何实现大量的 IP 信息累加呢?
Redis 累加
一种方式是基于 redis 累加,比如 IP 作为 key,然后定时过期累加。
好处是 redis 相对来说比较节省空间。
不过当时的系统架构并没引入 redis。
而是时序数据库,那么如何优化,降低存储...
2018-11-25 01:14:43 |
Devops