为什么OpenTelemetry正在将云原生带到新的高度?
译文2023-02-08 15:35:44运行云原生应用程序时,可观测性(observability)很关键。在云原生领域,应用程序功能来自在多个位置运行的众多微服务之间的交互。
译者 | 布加迪
审校 | 孙淑娟
运行云原生应用程序时,可观测性(observability)很关键。在云原生领域,应用程序功能来自在多个位置运行的众多微服务之间的交互。微服务应用程序具有松散耦合性,可能意味着每个微服务都以各自的方式报告其活动。如果没有一种工具来汇总和关联这些遥测数据,自始至终跟踪请求的处理就算并非没有可能,也是非常困难的。
这种细粒度、循序渐进的跟踪对于故障排除和性能调优而言至关重要。在物色一种多功能的可观测性工具时,NGINX现代应用程序参考架构(MARA)项目背后的团队选择了OpenTelemetry。这篇博文解释了为什么OpenTelemetry对微服务架构而言如此重要,以及它在如何改变云原生应用程序格局。
OpenTelemetry驱动可观测性2.0
OpenTelemetry在2019年巴塞罗那KubeCon大会上首次宣布,此后就吸引了一批狂热的贡献者。今天,它仍然是云原生计算基金会(CNCF)的一个高人气项目。越来越多的贡献者表明OpenTelemetry已趋成熟,开始跨越愿意尝新的早期采用者和渴望成熟产品的实用主义者之间的这条鸿沟。
OpenTelemetry专注于数据,具体说来是最有效地了解、检测和改进应用程序所需要的数据和数据流(遥测)。数据只有在可以大规模聚合、分析和可视化后才有用。虽然OpenTelemetry并不提供可视化数据方面的指导,但它让我们从此不必操心我们获得什么数据,而是专注于我们可以用数据做什么。
OpenTelemetry简化了跨数据源和应用程序关联事件的工作。这由此带来了可观测性2.0,这是用于测量云端应用程序活动的新基准。由于数据自动关联,我们不再局限于仅仅知道应用程序是否在运行。现在我们可以了解任何请求通过我们的应用程序所经过的确切数据路径。
为了实现这一点,OpenTelemetry的两个功能方面非常关键:分布式跟踪和应用程序智能。
为何现代应用程序架构需要分布式跟踪?
虽然分布式跟踪已经存在多年了(可以追溯到Solaris中的DTrace),但过去十年发生的许多变化加大了用户对它的需求。使用Cynefin框架,我们可以着重表明如今在现代应用程序方面面临的一些变化和挑战:
Cynefin框架表明了从简单向复杂变化时,我们的实践或做法会发生怎样的变化。面临的挑战是,我们沿两条不同的路径前进,每条路径有其特点;从简单变成复杂后,试图直接抄捷径常常会造成混乱和不完整的进展。
不妨看看哪些要素构建了现代应用程序和云原生旅程中的路径。在第一条路径(Cynefin图中的Y轴)中,我们有现代应用程序,它们通常是微服务架构,每个应用程序都做特定的工作。在第二条路径(X轴)中,复杂的环境是短暂的,因为微服务实例根据需求来创建和关闭,并根据网络问题移动到不同的主机上。
我们还必须考虑云环境的出现和迅猛增长,比如亚马逊网络服务(AWS)、微软Azure和谷歌云平台(GCP)等云环境。这种云的一个优点是弹性响应——可以灵活扩展或收缩资源,以匹配当前的需求量。加上容器编排(最常使用Kubernetes)的影响,随着资源的数量和位置在一段时间后出现变化,我们开始看到混乱的行为。(连这种相对受限的视图也很混乱,而无 服务器 函数等要素可能也会使其更混乱。)
在现代架构中,有许多独立的部分生成我们监控和维护应用程序所需的遥测数据,数据负载庞大而复杂。由于我们无法完全控制基础设施和通信路径,问题可能不会可靠地重复或容易引发。我们需要能够让我们一直跟踪所有活动和相关要素的技术,这样我们可以理解和分析不断变化的环境,不仅可以识别反复出现的问题,还可以识别异常情况以及相关的应用程序和网络情况。
这时候OpenTelemetry应运而生。
OpenTelemetry在分布式跟踪方面的未来
分布式跟踪支持跟踪许多类型的新指标,但最常见的指标是与每个时间单位的请求数量、每个时间单位的错误数量以及聚合请求在该时间单位中占多长时间有关的指标。
在OpenTelemetry中,所有生成指标的应用程序都可以通过遥测(传输)层将它们发送到一个通用收集点,这有助于对齐和关联来自生成数据的松散耦合服务的数据。这包括与底层基础设施保持一致。简而言之,有了OpenTelemetry,获取和发送高度详细的指标变得更轻松了。
OpenTelemetry还有助于解决时间戳漂移和倾斜问题,这个问题使事件关联起来变得很难。OpenTelemetry为每个请求分配一个跟踪编号(TraceId),但数据仍然可能受到漂移和倾斜的影响,这个问题常常出现在云原生架构中。漂移和倾斜可能是持续时间不一的报告路径或各个主机上时钟之间缺乏紧密同步造成的。通过在流量处理期间跟踪组件之间的通信,分布式跟踪允许OpenTelemetry测量单个跨度(跟踪的工作单位和基本模块),不需要对相关应用程序进行深入的检测。
结合这三种信号(遥测的类别),我们就可以纠正问题,让应用程序恢复到生产级质量:
这时候我们又回到了可观测性2.0。能够获得跟踪并立即查看哪些指标对应哪些跟踪为我们赋予了强大的功能。比如说,当指标表明有问题时,分布式跟踪让您可以一路追溯到导致初始问题的那个特定请求,并跟踪请求实现的每个步骤的进度。由于我们的跟踪是由跨度按照它们发生的顺序组成的,所以我们可以在请求旅程的每一步跟踪请求。了解发生了什么,以什么顺序发生(从初始事件到表明的问题,直到最终结果),让我们能够聚焦于应用程序中具体的部位,集中注意力。
尽管听起来很简单,OpenTelemetry的分布式跟踪方面可以让我们深入了解用户所遇到的一切,作为请求成功和执行时间的代理。作为用户,我关心我的请求。作为站点可靠性工程师(SRE),我关心聚合的请求。作为应用程序所有者,我还关心尾部延迟:在某些条件下,对于少量重要的用户群体而言,尾部延迟可能演变成糟糕的性能。OpenTelemetry为我提供了这三个功能,以及从聚合内容中提炼细节的能力,因为它本身旨在让所有应用程序上的所有数据能够为用户所用。
借助AI和ML的应用程序智能
来自OpenTelemetry的这种新数据流还让我们在开发和操作响应方面可以实现自适应和自动化。有了所有这些积累的数据,我们可以使应用程序更加智能和自适应。而自适应应用程序恰如其名:自动智能地调整其行为以应对环境变化的应用程序。
通过实现遥测数据的可访问性和标准化,OpenTelemetry使通向自适应应用程序的旅程变得更顺坦。随着不同类型的产品开始输出类似的指标,如果利用OpenTelemetry中已确立的语义约定,我们更容易在请求处理期间将它们的操作关联起来,并将这些信息馈送给人工智能(AI)和机器学习(ML)算法,从而使应用程序和基础设施能够动态适应。
总结
对OpenTelemetry的用户和使用它作为遥测通道的应用程序来说,规范遥测是明显的举措。可以从多个数据源收集数据,并转发给任何兼容的聚合和分析工具。此外,OpenTelemetry Collector使供应商不必自行实施收集器。相反,它们可以致力于改善代码,以执行有意义的分析,并采取明智的操作,可以构建新的工具来帮助理解这个复杂而混乱的新世界。实际上,OpenTelemetry Collector(基于开源创新)在让这项技术顺应未来的同时,能够处理几乎所有的现有格式。
OpenTelemetry专注于我们理解应用程序所需的主要数据类别,使我们的应用程序可以为复杂的现代应用程序环境的性能和问题提供更深入的见解。通过关联我们的数据、遵守语义和标准惯例,OpenTelemetry使通向现代应用程序的旅程变得更顺坦。
随着OpenTelemetry项目不断成熟,采用率不断提高,它显然是我们加深了解的方法。我们还希望OpenTelemetry有助于运用AI和ML技术来解决复杂问题、实现自动化补救,并表明如何使云原生应用程序变得更具适应性、性能更好。
原文标题: Why OpenTelemetry Is Taking Cloud Native to New Heights ,作者:Dave McAllister
五行带金的字有哪些适合公司起名字用字
钰,锋这样的偏旁都是【五行生克制化宜忌】木旺得金, 方成栋梁。 木能生火, 火多木焚; 强木得火, 方化其顽。 木能克土, 土多木折; 土弱逢木, 必为倾陷。 木赖水生, 水多木漂; 水能生木, 木多水缩。
如何养巴哥犬幼崽?

你好:其实很简单无需繁琐幼犬疫苗:一定要做全疫苗疫苗期间严禁洗澡不要外出(现在这个季节狗狗的病很多)真想外出的话带到无人遛狗的地方(狗狗经常出现的地方有排泄物是传染源)幼犬食物:好消化容易吸收一定要是熟食(狗粮也可以严格按照犬年龄投放食物)幼犬食量:少食多餐 一天3至4顿 每次少量俗话说:饿不坏的狗 撑不死的猫幼犬的肠胃技能还很弱 吃多容易呕吐拉稀 难消化幼犬安全过夏:不喂生水(凉白开最好) 尽量不洗澡(或者干脆不洗为了不感冒脏就脏点吧)可以考虑购买狗狗专用的干洗粉幼犬入厕:幼犬小时候其实和人一样还不懂事大点就会好的不要 要求太高现在狗狗还不会在指定地点NN和BB需要你耐心教育狗狗是气味动物喜欢在有自己气味的地方上WC你可以这样:NNBB的地方用食用醋擦地板(主要是考虑到即便是舔舐也不会伤害到狗狗化学的东西怕狗狗舔舐)再说了 醋是一个很好的东西杀菌去异味很管用等狗狗大点了就要看主人的了(要勤快哦) 你要定时定点的带狗狗外出上WC时间长了狗狗就会形成条件反射 到点就想NNBB我就是这样教育和培养狗狗的效果可喜希望你可以用的上
收集有关鸟的资料!!
在自然界,鸟是所有脊椎动物中外形最美丽,声音最悦耳,深受人们喜爱的一种动物。 从冰天雪地的两极,到世界屋脊,从波涛汹勇的海洋,到茂密的丛林,从寸草不生的沙漠,到人烟稠密的城市,几乎都有鸟类的踪迹。 鸟是一类适应在空中飞行的高等脊椎动物,是由爬行动物的一支进化来的。 现在已知最早的鸟是始祖鸟,1861年在德国南部发现了第一个始祖鸟化石。 始祖鸟既有鸟类的特征又与爬行动物有某些相似之处,所以它是鸟类由爬行类进化而来的一个强有力的证据。 鸟的全身都生有羽毛,身体呈流线型,前肢变成翅膀,后肢形成支持体重的双脚,除极少数种类外都能飞翔。 鸟的嘴叫喙,由于用喙在土壤中取食,喙一般狭长尖细,口中没有牙齿。 鸟是恒温动物,体温较高,通常为42℃。 鸟类的胸骨上有发达的龙骨突,骨骼中空充气,这是鸟类适应飞行生活的骨骼结构特征。 鸟类种类很多,在脊椎动物中仅次于鱼类。 现在世界上已知的鸟类9000余种,中国有1186种。 这些鸟在体积、形状、颜色以及生活习性等方面,都存在着很大的差异。 在这么多的鸟类中,最大的要数驼鸟,它是鸟中的巨人。 非洲驼鸟体高2.75米,最重的可达165.5千克。 最小的是南美洲的蜂鸟,体长只有50毫米,体重也就同一枚硬币一样重。 鸟能飞翔,但并不是所有的鸟都可以飞起来。 比如驼鸟双翅已退化,胸骨小而扁平,没有龙骨突起,不能飞翔。 企鹅是特化了的海鸟,双翅变成鳍状,失去了飞翔能力。 有的鸟虽然可以飞行但飞行的距离很短,如家鸡由于双翅短小,不能高飞。 大多数的鸟都具有很强的飞行能力。 在会飞的鸟中,飞行最高的要算秃鹫了,飞行高度可在9000米以上。 飞行最快的是苍鹰,短距离飞行最快时速可达600多千米。 飞行距离最长的则是燕鸥,可从南极飞到遥远的北极,行程约1.76万千米。 鸟类新陈代谢旺盛,消化力强,所以鸟类的食量相当大,例如蜂鸟一天吸食的花蜜量等于体重的一倍。 一些小型鸟类每天的食物量相当于体重的10%~30%。 大多数鸟类是杂食的,并不太挑挑拣拣。 每年春天和秋天,鸟类都成群结队,遮天蔽日地在天空中飞行,这种在不同季节要更换栖息地区,或是从营巢地移至越冬地,或是从越冬地返回营巢地的季节性现象称为鸟类迁徙。 每年大地回春,鸟类就开始进行求爱、生殖、营巢、孵卵和育雏等一连串的活动。 鸟是脊椎动物中的一种。 鸟的主要特征是:大多数飞翔生活。 体表被覆羽毛,一般前肢变成翼(有的种类翼退化),骨多孔隙,内充气体;心脏有两心房和两心室。 体温恒定。 呼吸器官除具肺外,还有由肺壁凸出而形成的气囊,用来帮助肺进行双重呼吸。 卵生。 鸟类种类繁多,分布全球,生态多样,现在鸟类可分为三个总目。 平胸总目,包括一类善走而不能飞的鸟,如鸵鸟。 企鹅总目,包括一类善游泳和潜水而不能飞的鸟,如企鹅。 突胸总目,包括两翼发达能飞的鸟,绝大多数鸟类属于这个总目。 世界鸟类跑得最快的鸟跑得最快的鸟:鸵鸟,72千米/小时。 其他世界鸟类之最游水最快的鸟:巴布亚企鹅,27.4千米/小时。 最小的鸟和最小的鸟卵:许多人都知道蜂鸟是世界上最小的鸟类,其实这种说法并不十分准确,因为全世界的蜂鸟有315种左右,分布于 从北美洲的阿拉斯加到南美洲的麦哲伦海峡,以及其间的众多岛屿上。 它们的体形差异也很大,最大的巨蜂鸟体长达21.5厘米,当然不能说它是世界上最小的鸟 了。 而产于古巴的吸蜜蜂鸟的体长只有5.6厘米,其中喙和尾部约占一半,体重仅2克左右,其大小和蜜蜂差不多,这样的蜂鸟才是世界上体形最小的鸟类,它的 卵也是世界上最小的鸟卵,比一个句号大不了多少。 蜂鸟的羽毛大多十分鲜艳,并且闪耀着金属的光泽。 它们的飞行本领高超,可以倒退飞行,垂直起落,翅膀振动 的频率很快,每秒钟可达50~70次,所以有神鸟、彗星、森林女神和花冠等称呼。 我国近几年有很多地方都声称发现了蜂鸟,其实都是误传。 体形最大的鸟:世界上体形最大的现生鸟类是生活在非洲和阿拉伯地区的非洲鸵鸟,它的身高达2~3米,体重56千克左右,最重的可达75千克。 但它不能飞翔。 它的卵重约1.5千克,长17.8厘米,大约等于30-40个鸡蛋的总重量,是现今最大的鸟卵。 翼展最宽的鸟:漂泊信天翁,3.63米。 最大的飞鸟:生活在非洲东南部的柯利鸟,翅长2.56米,体重达18千克左右,是世界上能飞行的鸟中体重最大者。 最重的飞鸟:大鸨,雄性的体重18千克。 最小的猛禽:婆罗洲隼,体长15厘米,体重35克。 羽毛最多的鸟:天鹅,超过根。 羽毛最少的鸟:蜂鸟,不足1000根。 羽毛最长的鸟:天堂大丽鹃,尾羽是体长的2倍多。
发表评论