监控图像自动生成为了监控接入的便捷性,我们实现了监控大盘的自动生成,根据monitor内置的相关埋点进行默认的监控数据上报,如JVM、Dubbo、Http等 。通过这些上报数据拼接JSON,同时调用Grafana的创建Dashboard的API接口,自动创建Dashboard,大致流程如下:

文章插图
机器的核心指标(cpu、内存、磁盘、带宽),通过应用上报的指标信息中的host tag,生成promql,通过promql从运维的prometheus数据源中获取,自动添加到大盘监控中 。
监控接入全程自动化为了方便业务快速接入监控,我们除了对监控自动生成大盘之外,还做了其他的处理,监控系统接入全程自动化,自动化过程如下图所示:

文章插图
- 监控数据网关触发安装filebeat流程,调用ocean平台的接口进行filebeat推送安装,实现wf日志的收集 。
- 调用告警平台实现大盘对应的告警创建,告警平台根据监控数据网关推送的应用名从应用中心拉取该应用下的相关开发人员,实现告警的自动化设置 。
- 监控大盘生成,通过业务推送的监控指标数据和告警地址拼接大盘模板,然后调用Grafana的接口实现界面的自动化创建和更新 。
- 监控数据网关调用异常网关,实现异常网关对wf日志的top5日志统计
- 监控数据网关调用日志统计,实现wf的error和warning的pv统计以及异常统计
监控系统分享监控系统在一次分享大会上做过相关分享,主要分享通用的监控系统的架构是什么样,我们的Monitor监控实现是什么样,支持了哪些功能 。
在分享会上再一次重点的宣讲了一下埋点的重要性,因为只有业务人员对自己所负责的业务最熟悉,所以为了方便第一时间发现问题,以及对自己的业务有全局的监控,那么就需要手动去埋点 。以登陆功能为例,我们需要在登陆操作的每一步做埋点,我们需要知道登陆成功的pv,失败的pv,是什么原因失败,失败比例各占多少 。
监控系统方面做的改进Grafana改造指标分组指标分组主要是为了方便大家快速定位自己的埋点位置,比如我们有一组与用户登陆相关的埋点数据,埋点指标名称统一为UserLogin_前缀,那么在上报之后我们会自动进行分组,将UserLogin_xxx分到同一组下 。为了快速定位一组埋点,对Grafana前端进行大盘进行了拆解显示,可以通过下拉的方式选择自己的埋点指标组,然后会过滤掉无用的展示,只展示该指标组下的内容 。

文章插图
指标搜索Grafana Git上很多人都对指标查询这个功能有需求,不过官方没有打算做,随着业务指标数量的递增,排查起来非常麻烦,为此,除了可以通过指标分组功能来实现过滤之外,还对指标搜索功能做了实现,可以通过搜索具体的指标来查看具体的单个指标 。

文章插图
分时段告警不同时段的指标的数据、趋势是不同的,有些业务基本上晚上都没有什么量,为了使得告警更准确,实现了第一版的单时段告警,可以实现在指定时间段内才会对指标进行监控 。
这种方式已经满足了大部分的场景,但是业务是多样性的,指标数据、趋势也存在多样性 。因此实现了第二个版本,分时段、分策略告警 。咋不同时间段可以配置不同的告警策略,从而使得告警更加准确,更加的人性化 。

文章插图
同环比Grafana的指标图根据不同的数据类型,配置、查询方式等都不相同,Grafana的OpenTSDB数据源前端指标图默认无法将不同时间段的数据放在同一个指标图上,为了增加同环比的功能,对OpenTSDB的查询模块在前端做了扩展 。做法如下:
- 对指标查询做标记,标记是否为同环比查询
- 查询时对时间进行计算
- 渲染前对时间进行计算
- 最终达到将不同时间段的数据展示在同一个指标图上 。

文章插图
推荐阅读
- Qt编写安防视频监控系统27-GPU显示
- 淘宝店铺原创设计认证 淘宝店铺怎么认证
- 写字楼设计装修风格有哪些
- 阳台客厅隔断设计技巧
- 广告设计师应该学些什么
- 你会喜欢吗?Apple新版 macOS 更改了所有图标设计
- Spring启动原理和可扩展设计分析
- 茶叶包装设计,茶叶包装设计的要素和要求
- 茶包装的设计要素,包装设计的要素和要求
- 架构设计 | 高并发流量削峰,共享资源加锁机制
