写点什么

可观测性与原生云监控

  • 2017-11-22
  • 本文字数:1299 字

    阅读完需:约 4 分钟

在近日发表的一篇文章中,Cindy Sridharan概括介绍了可观测性及其与原生云应用程序监控的关系。可观测性是一种理念,包括监控、日志聚合、指标和分布式跟踪,可以实时更深入地观察系统。

Sridharan 的文章基于她就同一个主题所做的 Velocity 演讲。随着微服务、云和容器化架构的出现,我们构建系统的方式变了。在后一种情况下,应用程序是分布式的,而且瞬息万变。底层的基础设施和网络服务愈加健壮,应用程序层需要跟上技术的发展步伐。将来,大多数的故障都将来自应用程序层或者是不同应用程序之间的复杂交互。

这种复杂性增加了把系统状态可视化的难度。虽然出现了新的工具,但尚处于发展阶段。Sridharan 探讨了可观测性的概念以及如何选择恰当的工具洞察现如今的系统。

可观测性是一个最近几年开始在监控社区流行的术语,然而,它并不是一个新事物,而且似乎和它真正的意思有些出入。据Sridharan之前的文章,可以将可观测性视为监控的超集。Twitter 工程团队的文章将可观测性总结为监控、预警/ 可视化、分布式系统跟踪、日志聚合和分析。谷歌致力于简化工具,降低数据聚合成本,标准化整个栈的格式和框架,从而便于跟踪。谷歌最上层的抽象是上下文传播,他们针对每一种语言提供了一个库,或者使用该语言的内置特性。上下文用于在整个栈中传播被称为标签的键- 值对,后续可以把它们用于过滤特定的请求。

预警和统一管理面板是监控的组成部分。按照Sridharan 的说法,可观测性是所有这些再加上(应用程序)性能分析、调试和依赖分析。与监控不同,可观测性和数据挖掘有关,是为了寻找问题的答案,简化信息的访问。监控和故障检测有关,有定义好的故障路径。随着故障模式的增加,确定真正的原因变得非常困难,这是由日益复杂的架构所导致的。而后者已成常态。定义可观测性有不同的方法。例如,白盒监控是指,有一个数据源,可观测性可以视为从数据中挖掘相关信息的能力。

日志、指标和请求跟踪是可观测性的基础。日志为数据(如指标)提供额外的上下文。不过,日志对性能的影响也很大。相比之下,指标的开销是不变的,而且有利于预警。总而言之,日志和指标可以为观察单独的系统提供方便,但是对于穿过多个系统的请求,很难提供其生命周期的信息。跟踪提供了跟踪在各个系统之间传递的请求的能力。后者很难实施,一个原因是应用程序使用的第三方库也需要检测。抽样被用于减少跟踪的开销和存储成本。这里的抽样是指减少收集的信息的数量。其中,磁盘配额及动态调整日志生成速度就是日志记录的一些最佳实践。

关于跟踪技术的发展近况。谷歌发布了 Dapper 论文, Open Zipkin 是以此为基础的开源实现,并导致 OpenTracing 标准的产生。如果应用程序使用了类似 Envoy 项目这样的网格技术,跟踪就简单些。服务网格是一个位于TCP/IP 层之上的网络基础设施层,可以处理可靠请求交付,有时候也实现为一系列网络代理。它简化了动态环境中的服务通信,如使用Kubernetes 编排的容器集群。

在原生云环境中,软件开发和交付可以从采用类似预生产测试、生产测试、有效监控、原始数据(如指标和日志事件)挖掘和动态检测这样的实践收益。

查看英文原文 Observability and the Monitoring of Cloud-Native Applications

2017-11-22 18:002684
用户头像

发布了 1008 篇内容, 共 441.7 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

【LeetCode】子域名访问计数Java题解

Albert

LeetCode 10月月更

Spring 项目启动测试的时候错误:Unable to acquire JDBC Connection

HoneyMoose

如何零基础学习大数据培训

小谷哥

说说你对Vue的keep-alive的理解

bb_xiaxia1998

Vue

手写节流防抖函数

helloworld1024fd

JavaScript

Spring 测试运行的时候提示 Unable to find a @SpringBootConfiguration 错误

HoneyMoose

推荐一款工具,辅助估算线程池参数

xiaoxi666

线程池

浅谈前端工程化的发展以及相关工具介绍

茶无味的一天

国庆perfetto学习

留白的艺术

黄山归来不看岳:《Java开发手册(黄山版)》新增 11 条规约

琦彦

Java Java开发手册 10月月更

JDK源码对你最有触动的是哪一段#HashMap

琦彦

Java hashmap 10月月更

大数据ELK(十三):Elasticsearch编程(添加职位数据)

Lansonli

10月月更

说说Vue响应式系统中的Watcher和Dep的关系-面试进阶

bb_xiaxia1998

Vue

Vue是怎样监听数组的变化的?

bb_xiaxia1998

Vue

慧嗨

kcnf

第一个只出现一次的字符 (哈希表、队列两种解法)

清风莫追

数据结构 算法 遍历 字符 10月月更

JDK源码对你最有触动的是哪一段#集合

琦彦

Java 集合 10月月更

求平方根 (又是辛苦debug的一天)

清风莫追

数据结构 算法 函数 10月月更

用纯CSS实现优惠券剪卡风格

茶无味的一天

CSS 前端

前端培训机构选择哪些建议

小谷哥

Timestone: Netflix的高吞吐、低延迟优先级队列系统

俞凡

架构

通过单步调试的方式学习 Angular 中 TView 和 LView 的概念

汪子熙

typescript 前端开发 angular 10月月更 前端开发web开发

不懂FAQ页面怎么设计?一些产品FAQ页面模板展示!

Baklib

产品 FAQ

自学java培训之间学习方法有哪些

小谷哥

假如面试官要你手写一个promise

helloworld1024fd

JavaScript

手写JS函数的call、apply、bind

helloworld1024fd

JavaScript

反转字符串

清风莫追

数据结构 字符串 10月月更

大数据培训学习如何选择?

小谷哥

前端培训学习比较实用的方法

小谷哥

Vue3入门指北(九)生命周期钩子

Augus

Vue3 10月月更

C++学习---cstdio的源码学习分析05-打开文件函数fopen

桑榆

c++ 源码分析 10月月更

可观测性与原生云监控_DevOps & 平台工程_Hrishikesh Barua_InfoQ精选文章