2020-DevOps导论-Lec9-探索可观测性的技术原理
Lec9-探索可观测性的技术原理
1. 软件架构的演进
- 在软件架构的演进过程中,也出现了一些问题
- 服务之间存在错综复杂的关系
- 应用部署到生产环境只是刚刚开始
- 天下没有不宕机的系统,时刻做好恢复系统的准备
- 如果系统是分布式的,那么它的故障也可能在哪里都存在
2. 分布式链路追踪的起源
- Google Dapper论文
- 记录并不难,将记录进行关联才是解决问题的关键
- 黑盒方案:方便、基于统计学、不准确
- 基于注释的监控方案:利用应用程序或中间件给每条记录赋予一个全局性的标示符
- 如何收集关联数据?
- 埋点/日志
- JVM字节码增强技术
- 构建分布式追踪系统难点
- 低开销:开销越小,开发人员越能接受
- 可扩展性:能够满足至少未来几年需求
- 应用层透明:应该对程序员是不可见的
3. 链路追踪与可观测性
- APM——Application Performance Management
- 可观测性的定义与本质
- 监控告诉我们系统的那部分是工作的。
- 可观测性告诉我们那里为何不工作了。
- 可观测性的三根支柱
- Log 日志
- Metric 指标
- Tracing 应用追踪
- 分层级构建可观测性(适用于云原生应用的可观测性建设四步法)
- 健康检查
- 指标
- 日志
- 应用追踪
- 典型问题排查过程
- Alert
- Dashboard
- Adhoc Query
- Log Aggregation
- Distributed Tracing
- Fix!
- 工具的可用性是实施可观测性的关键
- 成本低的追踪埋点
- 容易浏览查询分析
- 可靠性值得信任
4. 常见开源方案
4.1. Apache Skywalking 深度剖析
- 三个维度
- Tracing 追踪链路数据
- Logging 日志数据
- Metrics 指标数据
- 三个层级
- Receiver 接收器:解析和适配不同协议
- Analysis Core 分析内核:OAL/MAL
- Query Core 内核:多维度数据查询
4.1.1. 探针工作原理剖析
4.1.2. 探针协议剖析
4.1.3. 指标分析剖析
4.1.4. 指标存储与查询剖析
5. 小结
2020-DevOps导论-Lec9-探索可观测性的技术原理
https://spricoder.github.io/2020/07/02/2020-Devops-introduction/2020-Devops-introduction-Lec9-%E6%8E%A2%E7%B4%A2%E5%8F%AF%E8%A7%82%E6%B5%8B%E6%80%A7%E7%9A%84%E6%8A%80%E6%9C%AF%E5%8E%9F%E7%90%86/