可观测性与原生云监控

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

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

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

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

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

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

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

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

原文:http://www.infoq.com/cn/news/2017/11/observability-monitoring


.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/322772.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

项目总览地址

写这篇的目的是整理一下最近一段时间写的小demo,我这里稍微自夸一下暂且先叫项目吧,如果服务器不垮台的话,以后还是一直可以看到预览效果的,反正域名和服务器我是不会扔掉的,就怕后面项目多了,服务器承受不…

mybatis3中@SelectProvider的使用技巧

转载自 mybatis3中SelectProvider的使用技巧 mybatis3中增加了使用注解来配置Mapper的新特性,本篇文章主要介绍其中几个Provider的使用方式,他们是:SelectProvider、UpdateProvider、InsertProvider和DeleteProvider。MyBatis 3 User Guide中…

P2766-最长不下降子序列问题【网络流,dp】

正题 题目大意 求最长不下降子序列和可以取出多少以及允许多次使用一些数时可以取出多少个。 解题思路 第一问dp求,且保存以xxx开头的最长长度fxf_xfx​。 第二问考虑网络流。 我们对于每个数字以fif_ifi​的不同分层,然后每次从下往上一层连接&#x…

使用Microsoft.AspNetCore.TestHost进行完整的功能测试

简介 Microsoft.AspNetCore.TestHost是可以用于Asp.net Core 的功能测试工具。很多时候我们一个接口写好了,单元测试什么的也都ok了,需要完整调试一下,检查下单元测试未覆盖到的代码是否有bug。步骤为如下:程序打个断点->F5运行…

MockJs案例

有时候前端写好模板后,后端还完工,那么总不能一直让项目停滞吧,这里就用Mockjs来模拟后端接口的数据,让我们先人一步完成项目。 首先创建一个html,导入axios和mockjs 再用mock去拦截请求,如果后端接口写好了…

JS document.execCommand实现复制功能

转载自 JS document.execCommand实现复制功能 最近项目中需要实现功能:点击button,复制input框的值; 我使用的是 document.execCommand(copy)的方法; 但是很郁闷的是,始终实现不了功能;代码如下 HTML代…

Entity Framework Core 使用HiLo生成主键

HiLo是在NHibernate中生成主键的一种方式,不过现在我们可以在Entity Framework Core中使用。所以在这篇内容中,我将向您在介绍如何在Entity Framework Core中使用HiLo生成主键。 什么是Hilo? HiLo是High Low的简写,翻译成中文叫高…

P1991-无线通讯网【最小生成树,瓶颈生成树】

正题 题目大意 有nnn个点&#xff0c;连边长度不超过DDD的情况下分为SSS个联通块。 求最小的DDD 解题思路 直接KruskalKruskalKruskal连边连到只剩下SSS个联通块就好了。 codecodecode #include<cstdio> #include<cmath> #include<algorithm> using names…

Echarts报错:Component series.lines not exists. Load it first.

前几天用的echarts标签是bootcdn的 <script src"https://cdn.bootcdn.net/ajax/libs/echarts/4.7.0/echarts-en.common.js"></script>用着官方给的案例还可以&#xff0c;但是一用gallery社区里面的例子就报错 后来经过不断调试终于知道是需要换个cdn&…

Mongodb常见问题

转载自 Mongodb常见问题 一.数据库级锁 MongoDB的锁机制和一般关系数据库如 MySQL&#xff08;InnoDB&#xff09;, Oracle 有很大的差异&#xff0c;InnoDB 和 Oracle 能提供行级粒度锁&#xff0c;而 MongoDB 2.x 只能提供 库级粒度锁&#xff0c;这意味着当 MongoDB 一个…

认识微软Visual Studio Tools for AI

微软已经发布了其 Visual Studio Tools for AI 的测试版本&#xff0c;这是微软 Visual Studio 2017 IDE 的扩展&#xff0c;可以让开发人员和数据科学家将深度学习模型嵌入到应用程序中。Visual Studio Tools for AI 工具同时支持 Microsoft 的 Cognitive Toolkit 和 Google 的…

P1297-[国家集训队]单选错位【期望概率】

正题 题目大意 nnn道题&#xff0c;第iii道aia_iai​个选项&#xff0c;选择每个选项的概率第相等的。但是每个选择都会填到后一道题。求对的期望题数。 解题思路 考虑若前面一道题有xxx个选项&#xff0c;后一道有yyy个选项&#xff0c;那么其实就是求一个在1∼x1\sim x1∼x随…

mybatis源码阅读(一):SqlSession和SqlSessionFactory

转载自 mybatis源码阅读(一)&#xff1a;SqlSession和SqlSessionFactory 一、接口定义 听名字就知道这里使用了工厂方法模式&#xff0c;SqlSessionFactory负责创建SqlSession对象。其中开发人员最常用的就是DefaultSqlSession &#xff08;1&#xff09;SqlSession接口定义…

开源纯C#工控网关+组态软件(六)图元组件

一、 图元概述 图元是构成人机界面的基本单元。如一个个的电机、设备、数据显示、仪表盘&#xff0c;都是图元。构建人机界面的过程就是铺排、挪移、定位图元的过程。 图元设计是绘图和编码的结合。因为图元不仅有显示和动画&#xff0c;还有背后操纵动画的控制逻辑。 一个好…

P2590-[ZJOI2008]树的统计【树链剖分,线段树】

正题 题目大意 一棵带权树&#xff0c;要求单点修改&#xff0c;路径求和和路径求最大值。 解题思路 先来一个树链剖分&#xff0c;然后线段树维护。 codecodecode #include<cstdio> #include<algorithm> using namespace std; const int N31000; int tot,cnt,n…

git合并分支的策略(赞)

假设当前有两个分支 master和test&#xff0c;两个分支一模一样&#xff0c;都有这三个文件 现在test添加一个test4.txt&#xff0c;然后提交到本地&#xff08;git add . git commit&#xff09; 切换到master分支上&#xff0c;git checkout master git merge test 这样mase…

mybatis源码阅读(二):mybatis初始化上

转载自 mybatis源码阅读(二)&#xff1a;mybatis初始化上 1.初始化入口 //Mybatis 通过SqlSessionFactory获取SqlSession, 然后才能通过SqlSession与数据库进行交互 private static SqlSessionFactory getSessionFactory() {SqlSessionFactory sessionFactory null;String …

P1983-车站分级【图论,记忆化dfs,构图】

正题 题目链接:https://www.luogu.org/problemnew/show/P1983 题目大意 一个辆车会一个一个值xxx&#xff0c;如果等级大于等于xxx的车站都会停靠(包括起点和终点)。给每辆车的停靠点&#xff0c;求至少要将车站分多少级。 解题思路 对于一辆车&#xff0c;若一个点他经过了…

slot的使用

普通插槽 在嵌入的组件标签中加入内容&#xff0c;如果子组件中有slot就显示&#xff0c;否则就是不显示 父组件 <h1>Hello 父组件</h1> <Child><p>这是一些初始内容</p><p>这是更多的初始内容</p> </Child>子组件 <h1&…

mybatis源码阅读(三):mybatis初始化(下)mapper解析

转载自 mybatis源码阅读(三)&#xff1a;mybatis初始化&#xff08;下&#xff09;mapper解析 MyBatis 的真正强大在于它的映射语句&#xff0c;也是它的魔力所在。由于它的异常强大&#xff0c;映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比…