全链路自动化监控相关概念和微服务应用监控

全链路监控的四部分:链路采集、指标采集、日志采集、深度分析

  • 链路采集包括调用链和服务拓扑,是全链路分析的串联器。

  • 指标采集整合到服务链路上,使全链路具备基础监控能力。

  • 日志采集的数据源,也是全链路分析的数据源。

  • 深度分析包括离线、在线模块,满足全链路的问题定位需求。

在微服务架构中,不同维度有不同的监控方式。

(1)健康检查。健康检查是对应用本身健康状况的监控,检查服务是否还正常存活。

(2)日志日志是排查问题的主要方式,日志可以提供丰富的信息用于定位和解决问题。

(3)调用链监控。调用链监控可以完整的呈现出一次请求的全部信息,包括服务调用链路、所耗时间等。

(4)指标监控。指标是一些基于时间序列的离散数据点,通过聚合和计算后能反映出一些重要指标的趋势。

在上述4中监控方式中,健康检查是云平台等基础设施提供的能力,日志则一般有单独的日志中心进行日志的采集、存储、计算和查询,调用链监控一般也有独立的解决方案进行服务调用的埋点、采集、计算和查询。

指标监控采用,选择Prometheus的主要原因:

(1) 成熟的社区支撑。Prometheus是一个开源的监控软件,拥有活跃的社区,能够很好地与云原生环境搭配。

(2) 易于部署和运维。Prometheus核心只有一个二进制文件,没有其他的第三方依赖,部署运维均十分方便。

(3)采用Pull模型,通过HTTP的Pull方式从各个监控目标拉取监控数据。Push模型一般通过Agent方式去采集信息并推送到收集器中,每个服务的Agent都需要配置监控数据项与监控服务端的信息,在大量服务时会加大运维难度;另外,采用Push模型,在流量高峰期间监控服务端会同时接收到大量请求和数据,会给监控服务端造成很大压力,严重时甚至服务不可用。

(4)强大的数据模型。Prometheus采集到的监控数据均以指标的形式存在于内置的时序数据库中,除了基本的指标名称外,还支持自定义的标签。通过标签可以定义出丰富的维度,方便进行监控数据的聚合和计算。

(5)强大的查询语言PromQL。通过PromQL可以实现对监控数据的查询、聚合、可视化、告警。

(6)完善的生态。常见的操作系统、数据库、中间件、类库、编程语言,Prometheus都提供了接入方案,并且提供了Java/Golang/Ruby/Python等语言的客户端SDK,能够快速实现自定义的监控逻辑。

(7)高性能。Prometheus单一实例即可处理数以百计的监控指标,每秒处理数十万的数据,在数据采集和查询方面有着优异的性能表现。

爱奇艺全链路自动化监控平台的探索与实践

爱奇艺号基于Prometheus的微服务应用监控实践

猜你喜欢

转载自blog.csdn.net/qq_35240226/article/details/108096049