深入浅出分布式技术原理
陈现麟
伴鱼技术中台负责人,前小米工程师
21241 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 39 讲
深入浅出分布式技术原理
15
15
1.0x
00:00/00:00
登录|注册

13|可观测性(一):如何监控一个复杂的分布式系统?

依赖分析(Dependency Analysis)
剖析(Profiling)
排错(Debugging)
历史数据采样频率降低
采样频率选择
分位值
饱和度(Saturation)
错误(Errors)
流量(Traffic)
延迟(Latency)
信息精简
单页面原则
服务、机器节点:个体指标
运维研发、DBA、基础服务:团队目标指标
研发部门:核心业务指标
展示:Grafana
采集与存储:Prometheus
系统状态与趋势
处理:Jaeger
请求生命周期信息
处理:ELK
事件记录
主动发现(Preactive)
应用概览(Overview)
告警(Alerting)
监控系统使用中的痛点
度量方法与采样频率
四个黄金指标
Overview设计
分层设计
统一标准:OpenTelemetry
指标(Metrics)
链路(Traces)
日志(Logs)
可观测性层级
概念差异:结果与原因的区别
术语演变:从监控到可观测性
调试角度:快速定位问题
实时角度:监控系统变更
长期角度:分析系统长期趋势
全局角度:构建监控大盘
规则角度:数据来源于监控
思考题
监控系统的设计经验
可观测性系统的开源组件
监控与可观测性的关系
监控的重要性
可观测性(一):如何监控一个复杂的分布式系统?

该思维导图由 AI 生成,仅供参考

你好,我是陈现麟。
通过学习“雪崩”系列的内容,我们掌握了构建一个稳定的分布式系统所需的四大方法:熔断、限流、降级和扩容,再也不用担心由于一个局部的小问题,导致整个系统出现重大的故障了。
在“雪崩”系列课程中,我们曾经提到需要基于系统内部的运行状态,来进行相应的降级和扩容操作,特别是在扩容机制中,需要通过服务过载的信息来进行相应的扩容,可是我们应该如何来获得系统内部的运行状态呢?
其实这就是分布式系统中的可观测性问题,那么从这节课开始,我们将用 2 节课的时间来讨论,如何通过分布式系统的可观测性,来解决系统监控与告警的问题。在这一节课中,我们先讨论需要监控的原因,然后分析监控与可观测性之间的关系,接着介绍搭建一个可观测性系统涉及的开源组件,最后,重点讨论对于一个大规模的分布式系统,设计监控系统应该遵循的经验和原则。

为什么需要监控

如果一辆汽车没有仪表盘,我们就不知道汽车当前的速度,只能凭着感觉开,很容易出现超速甚至意外,另外由于不知道当前还有多少汽油或者电量,一不小心就会因为能源耗尽抛锚在路上。监控之于分布式系统,更甚于仪表盘之于汽车,因为分布式系统的内部更加复杂,更容易出现意外的情况。那么对于“为什么需要监控”的这个问题,我们就从监控有哪些作用的角度来回答。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了分布式系统监控与可观测性的重要性及其关系。首先从监控的必要性出发,比喻了没有监控就像开车没有仪表盘一样危险。监控的作用包括规则设置、构建监控大盘、长期趋势分析、实时变更追踪和故障定位。随后,文章介绍了监控与可观测性的关系,指出可观测性是监控的扩展和进化,强调了可观测性的主动发现能力和对系统内部状态的关注。文章还从五个层级划分了可观测性能力,并阐述了排错、剖析和依赖分析的重要性。此外,文章还介绍了可观测性系统的开源组件,包括日志、链路和指标的采集、计算和展示,以及监控系统的设计经验,包括分层设计、精简内容和选择合适的度量方法和采样频率。总的来说,本文全面介绍了监控与可观测性的重要性和关系,为读者提供了对分布式系统监控与可观测性的全面认识。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入浅出分布式技术原理》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(6)

  • 最新
  • 精选
  • 不吃辣👾
    5层级为什么是呈现三角形呢?

    作者回复: 数据量从下到上是越来越少的。

    2022-03-30
    2
  • 不吃辣👾
    感觉overview就是各类大屏

    作者回复: 是的!

    2022-03-30
    1
  • peter
    请教老师三个问题: Q1:确认一下对SpringCloud微服务系统的可观测性理解 一个采用SpringBoot/SpringCloud开发的微服务系统,根据文章内容,对其可观测性理解如下: A 目前没有一个组件(或框架)能够提供完整的“logs”、“trace”、“Metrics”功能。 B 完整的可观测性需要通过三个不同的外部组件来完成:(1) SpringBoot集成ELK来完成“logs”功能;(2)SpringBoot集成jaeger(或sleuth+zipkin)来完成“trace”功能;(3)SpringBoot集成Prometheus+grafana来完成“metrics”功能。 C 可以根据情况在这三个部分之上做一次综合处理,提供统一信息。 我的理解是否对? Q2:整个微服务系统的饱和度怎么确定? 在饱和度方面,文中以Redis为例进行讲解,从其多个指标中选取一个关键指标来定义饱和度。但是,微服务系统包括很多组件,比如Nginx、Redis、rocketMQ、网关、微服务所在机器等等。那么,对于整个微服务系统,该怎么定义其饱和度?选取其中的一个关键组件吗? Q3:对于“trace”,jaeger和sleuth哪个更好?
    2022-02-25
    2
  • hanjc
    链路追踪的话 Jaeger和skywalking哪个好呢?
    2022-12-23归属地:广东
  • 张申傲
    关于 Google 的 Four Golden Singles 可以参考:https://sre.google/sre-book/monitoring-distributed-systems/
    2022-08-17归属地:北京
  • 花花大脸猫
    最大的痛点就是每段数据都在不同的系统里面,比如链路调用延时统计,系统资源相关的在pinpoint里面,但是业务出现问题,定位原因又需要去具体的pod或者日志中心去查看对应日期的日志信息,如果出现了链路调用的问题,得挨个服务查看,缺少老师说的cncf给定的大一统的方案!!
    2022-06-16
收起评论
显示
设置
留言
6
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部