快捷搜索: 王者荣耀 脱发

微服务可观测平台设计-总体设计

  1. 背景 服务可观测性,预测与发现系统性能瓶颈,透视系统状态,为系统调优和查故障提供可靠数据支撑
  2. 规划特性  监控门户,统一监控门户,用户自定义视图,告警(页面,钉钉,邮件);Prometheus+grafana(运维);elasticsearch agg+数据可视化(开发)  服务日志: 记录时间(起始/结束),用户,用户地点(ip),服务节点(ip),服务名称,模块名称,参数(可配置),tracingId,支持异步写入,减少服务正常执行影响  服务性能指标,RT,请求数(1m/5m/15m),异常数(1m/5m/15m),失败数(1m/5m/15m)  服务调用链路,服务调用拓扑,调用关系性能,topN(最忙服务,最慢服务)  业务度量组件,如,拉单每秒字节数,数据笔数,拉单作业数

*日志收集ELK不在本次计划 *系统监控,如cpu,线程数(jvm),内存(jvm),磁盘io,网络io 直接使用Prometheus,不在本平台范围 4. 技术架构

1. 服务日志设计

 aspect/annotation 切面/注解,拦截服务,实现日志功能,支持自定义标签  service 日志逻辑,由切面发起调用  model log模型  model .param包解释/抓取参数  event 日志打印以事件异步处理,依赖guava的event bus包  repository 日志存储,支持jdbc(用于测试),elasticsearch(生产),可扩展  config spring boot自动配置  context 上下文,rpc上下文feign/dubbo/…,识别上级调用是否为网关,我们假设,网关后的服务是业务服务;链路上下文 zipkin/skywalking,  adapter 适配接口,获取系统用户信息,集成服务提供实现  集成链路跟踪,tracingId;支持开关  数据变更跟踪,依赖集成链路跟踪,数据库增加tracingId,canal捕获数据变更,最后定时任务关联服务日志和数据便跟,只关联链路第一个服务;支持开关

2 服务链路跟踪

引入open zipkin

探针/报告器 低侵入,拦截器方式集成到服务,采集数据,支持自定义tag 采集器 与报告器对接,接收采集数据(span),生产环境用mq 存储 支持多种存储,elasticsearch其中一种 web ui zipkin server自带ui,查询跟踪,拓扑,功能比较简陋,直接搜索elasticsearch,做自定义分析

监控门户(TBD)

监控门户支持用户自定义视图,数据包括: 服务日志,存于elasticsearch 链路span, 存于elasticsearch 业务度量,存于promethus 性能指标,存于promethus 监控门户统一数据/告警视图,为用户,包括开发人员,测试人员,运维人员,公司运营提供系统观测数据,支持大屏实时滚动显示订单,交易,支付等统计  手动主题开发  可视化数据 引入数据可视化组件,拖拽式构建

4 业务metrics

引入micrometer

micrometer框架,提供metrics模型,包括metrics类型,counter,gaugegr,timer,histoams等,实现了多种指标输出器,输出多种监控平台,Prometheus在支持列表中

3 性能metrics

改造sentinel dashboard

微服务可观测平台(四)-性能metrics设计与实现(TBD)

经验分享 程序员 微信小程序 职场和发展