背景
为服务可观测性、系统性能瓶颈预测与发现、系统状态透视、系统调优和故障调查提供可靠的数据支持参考和关键词
参考资料:https://www.cn blogs.com/erda/p/15204516.html
金属
Metrics是计算Events发生数的数据集,这些数据通常是原子性的,可以汇总。 从操作系统到APP应用程序,万物都生成Metrics数据。 这些数据可用于衡量操作系统或APP操作是否正常,以及计算一段时间内请求的平均延迟。
记录
记录离散的事件。 Logging描述了一些列的离散事件。 在缺乏强大的监控系统的情况下,Logging数据通常是工程师确定生产问题的最直接手段。 如果Metrics能告诉你系统和APP程序有问题,Logging就能告诉你为什么有问题。 关于日志的收集,现在也有文件beat、fluented、loki等很多方法。
跟踪
记录APP应用操作的数据
单个请求的完整生命周期
在分布式系统上一次经历多个服务生成操作的数据(Spans ) )。
Tracing在没有有向图的情况下记录分散系统中发生的Events之间的因果关系。 在云的本机场景中,多个服务之间或多或少存在依赖关系,一次跟踪通常通过多个服务(Span )。 此外,在高度复杂的分布式系统中,一次跟踪可能包含数以万计的Span。 此外,Tracing经常关注这种端到端系统之间的联系,基于这种需求,分布式跟踪系统应运而生。 计划的特性
监控门户、统一监控门户、用户自定义视图、警报(页面、钉子、邮件); Prometheus grafana; elasticsearch agg数据可视化(开发) ) ) ) ) ) )。
支持服务日志:记录时间(开始/结束)、用户、用户站点(ip )、服务节点、服务名称、模块名称、参数、跟踪id、异步写入,成功执行服务
服务器性能指标、RT、请求数量(1m/5m/15m )、异常数量(1m/5m/15m )、失败数量(1m/5m/15m ) )。
服务呼叫链路、服务呼叫拓扑、呼叫关系性能、最忙服务、最慢服务(topN ) )。
业务指标组件(如每秒拉取请求的字节数、数据数、拉取请求工作量*日志收集ELK )不包括在此计划中
cpu、线程数(jvm )、内存(jvm )、磁盘io、网络io等系统监控直接使用Prometheus,不在本平台范围内
4 .技术架构
可以观测到4个维度数据,
服务审核的服务日志。 服务日志中添加了与跟踪id相关的呼叫链,并存储在elasticsearch中
存储在elasticsearch上的服务跟踪服务呼叫链跟踪
服务-度量业务度量,直接到属性
performance-metrics的性能指标保存在elasticsearch中并传输到Prometheus
通过监控门户、统一的数据可视化和警报可视化门户支持用户自定义视图
1 .服务日志设计
辅助/分析切割/注释、服务拦截、日志功能实现和定制标记支持
从切面调用的 service逻辑
模型日志模型
model .param软件包解释/获取参数
事件日志打印在事件中异步处理,依赖于guava的事件总线包
存储库日志存储、测试(jdbc )、电子搜索(elasticsearch )、可扩展性
自动配置配置打印引导
上下文上下文、rpc上下文feign/dubbo/…,识别上级呼叫是否为网关,并假设网关后的服务为业务服务; 链接上下文zipkin/skywalking,
adapter适配器、获取系统用户信息、实现统一服务提供
统一链路跟踪,跟踪id; 支持交换机
数据更改跟踪,依赖统一链路跟踪,将跟踪id添加到数据库,canal捕获数据更改,服务日志和数据与最后定时任务相关联,只有链路上的第一个服务相关联; 支持交换机
2服务链路跟踪部署open zipkin
低入侵探测/报告器、拦截集成到服务器、数据收集和定制标签
收集器与报告器对接,接收收集数据(span ),使用生产环境mq
存储支持多个存储、elasticsearch中的一个
web ui zipkin server附带ui,查询跟踪、拓扑、功能简陋,直接搜索elasticsearch进行自定义分析
监控入口(TBD )监控入口支持用户的定制视图,数据包括:
服务日志,保存到电子搜索
存储在链接span、elasticsearch中
商业测量,保存到promethus
性能指标,保存在promethus中
监控门户集成数据/警告视图
户,包括开发人员,测试人员,运维人员,公司运营提供系统观测数据,支持大屏实时滚动显示订单,交易,支付等统计 手动主题开发
可视化数据
引入数据可视化组件,拖拽式构建 4 业务metrics
引入micrometer
micrometer框架,提供metrics模型,包括metrics类型,counter,gaugegr,timer,histoams等,实现了多种指标输出器,输出多种监控平台,Prometheus在支持列表中
3 性能metrics改造sentinel dashboard
sentinel 熔断限流框架, 熔断限流过程产生秒级服务性能指标数据,包括响应事件,通过qps,拦截qps,异常比例等作为熔断决策依据,dashboard使用transport采集性能指标;但开源版本的dashboard单机不能用于生产,指标存于内存,需要改造:
引入zookeeper作为注册中心,sentinel实例注册,系统按注册实例动态生成拉取任务
性能指标拉取使用master-worker模式,分布式拉取,支持动态增减拉取worker
指标持久,使用elasticsearch
引入micrometer,指标转发送到Prometheus
微服务可观测平台(二)-服务日志设计与实现
微服务可观测平台 (二)- 链路跟踪 & 数据变更跟踪设计
微服务可观测平台(三-业务metrics设计与实现
微服务可观测平台(四)-性能metrics设计与实现(TBD)