【可观测技术概述】
可观测性的简介
- 什么是可观测性
- 为什么需要可观测性
- 涉及的数据
- Metrics
- Logs
- Traces
- Profiles
- Dumps
由于工作的需求 , 特地去研究下可观测性技术 , 因此通过本文阐述下自己对可观测技术的理解 。本篇只分析什么是可观测性、为什么需要可观测性以及可观测性收集哪些数据 。后续将完成如何关联各种数据 , 如何呈现和展示以及如何分析这些数据 。
什么是可观测性 随着云计算、微服务和分布式系统的普及 , oberservibility逐渐走进了大众的视野 。似乎可观测性是个新兴的概念 , 然而在它却很久之前就出现在了控制理论中 。在控制理论中他被定义为:衡量一个系统的内部状态可以从其外部输出的知识中推断出的程度 (observability is a measure of how well internal states of a system can be inferred from knowledge of its external outputs) 。对比于监控 , 监控主要包括白盒监控和黑盒监控 , 可观测性则更接近于白盒监控 。一般来说“监控告诉我们系统的哪些部分是工作的 , 可观测性则告诉我们那里为什么不工作了” 。他能提供足够的信息帮助我们定位问题发生的原因 , 因此可观测性主要关注这几个方面:
- 收集哪些内容 。
- 如何关联这些内容 。
- 如何更方便的呈现和展示 。
- 如何分析这些数据 。
涉及的数据 如前所述可观测性要求系统能够通过收集外部输出的知识推断系统的内部状态 , 那么收集哪些知识便是最重要的部分也是最基础的 。根据目前主流的认知中 , 普遍认为可观测性主要包括三个支柱:Metrics、Logs和Traces 。而本文则采用tag-observability的观点 , 将Profiles和Dumps也加入到其中 。
Metrics metrics数据主要包括的两大类数据 , 一是数字数据 , 这部分多是直接采集的数据例如cpu利用率 , 内存利用率;另一个则是提炼成数字的数据 , 这部分多是一些统计数据 , 例如api调用的qps、错误返回的次数等数据 。这部分数据都是指标数据 , 多是结构化或者半结构化的数据 , 并且包含时间戳的记录 , 其用途通常只有以下两种:
- 监控和告警:通常作为看板数据和告警数据的来源使用 。
- 趋势分析: 对于时序数据跟进一步的使用是 , 推测指标未来的变化情况 , 做为预防问题出现和决策的依据 。
这些指标数据通常能告诉我们系统发生了什么情况 , 但对于为什么会发生这种情况通常是无能为力的 , 他们通常是作为问题定位的入口 。在这一部分最流行的开源项目莫过于作为CNCF第二个毕业项目Prometheus 。作为Prometheus的监控数据采集方案 , OpenMetrics可能很快会成为未来监控的业界标准 。
Traces 分布式跟踪是一种了解分布式事务期间发生的事情的技术 , 例如最终用户发起的请求及其对所有下游微服务的影响 。它可以帮助我们定位在分布式系统中 , 到底是哪个模块影响了我们对一个事件的调用 。Trace的核心是如何在不同的模块传递trace信息 , 比如同一个程序的不同模块间如何传递、又比如通过HTTP请求GRPC请求分布在两台机器上的两个程序 , 如何关联两部分内容 , 这一部分可以使用 OpenTelemetry API/SDK、OpenTracing 和 OpenCensus 等项目、工具和技术 。
Profiles 随着公司不断优化云原生应用程序 , 了解尽可能细粒度的性能指标变得越来越重要 。Profile能够使我们能够深入了解特定系统为何会遇到此类问题 。熟悉Go语言的一定对其强大PProf很了解 , 他便是对Profiles最好的实践 , 其收集的数据包括:
- CPU Profilers
- Heap Profilers
- ALLOCS Profilers
- Mutex profilers
- IO profilers
- BLOCKS profilers
- GOROUTINE profilers
Dumps 程序Core文件也是我们对系统问题定位的主要方式 。在基于 Linux 的系统中 , 可以通过全局设置 (/proc/sys/kernel/core_pattern) 将核心转储文件设置为写入系统中的任何位置 。从内核 2.6+ 开始 , 有一种处理核心转储的新方法(core dump handlers) , 不将文件的收集委托给操作系统 , 而是将崩溃进程的输出推送到负责写入文件的应用程序标准输入 。例如 , 在基于 Ubuntu 的发行版中 , 这可以在 systemd 或 abort 的支持下完成 。基于 RedHat 的发行版中使用 ABRT 。
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
