开发者学堂课程【阿里云可观测峰会:开源全场】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1060/detail/15342
开源全场
四、Observability with Prometheus and beyond
当您从一件事到另一件事再到下一个时中断,这不是很好,所以稍微重新重新考虑一下,你可能很了解,在这次聚会期间站在此之前,让我们先了解一下流行语的基础知识以及人们通常不会告诉你的事情
当然这些也是超级重要,这个行业有一个肮脏的秘密,今天这个云原生的基础基本上是20年前互联网规模,没有Internet云不会存在,所以他需要更大并且运行在云之前如果你看看发电站或者水厂像这样的组合关注指标和事件,这在所有基础设施行业几乎都是标准,它甚至更广泛,比如回到补金和帆船等一线。关于这一点的好处是很多,这些做法很好的,映射到两个不同的世界上,有点进入流行语。流行语通常带有真理的核心,这实际上是有用的,你应该尝试找出真理的核心是什么,他们观察了,结果他们只是复制了观察到的行为,他们没有改变或者实际上并没并不了解正在发生的事情,并尝试去做他们刚刚观察到的行为,因为他们无法深入了解这个所以这个如果流行语有一件事要超级小心,如果你只是要更改名称或者其他人只是更改他们正在做的事情的名称,那么在这种情况下,改变实际行为非常重要,我个人在控时可以使用监控和可观察性,具有收集而不使用数据的含义。关心您的数据,并实际使用它的一方面是全文索引,另一方面是数据库,这是一种委婉的说法,除非您正在做数据科学或禁止调查,否则没有人真正查看他这个在警报和监控领域是毫用处的,所以可观察性是关于使人类和计算机能够理解复杂的系统。他是关于能够询问为什么某些东西在工作毫不仅仅是说是他不工作,因为这还远远不够你。使用你已拥有的数据,提出自省系统的问及此处的另一个重要主题。
遗产只是一个委婉说法,即使实际上赚钱但如果你能降低你的复杂性,你可能应该你至少应该尝试喜欢他,总是最重要的事情,但如果你可以这样做,并且有一件事情真的很有趣,那就是这个真正的系统中会有复杂性,你可以移动它,我们大多数人看到我这就像大型单体服务器,客户端服务器结构、微服务、pio服务、无服务器,然后它来回大和小,我们都看到了这一点,但你不能让这种复杂性消失,它需要存在于你在数据中看到的某种地方,每个人都有无状态微服务说,但是有人运行数据库课程,否则你没有你的服务,它应该或必须进行比较,我们将在一秒钟内讨论服务,理想情况下它应该有意义的提炼出来,并且有不同的含义,它可能是你的api或者用户界面或你有什么也意味着你从你的东西发出什么信号,以便能够操作在St上发出警报。
对我来说,另一个重要的流行词是devops的实例化,有人会强烈反对,有人会强烈同意,两者都很好。对我来说核心是关于一件事,如果我必须选择一个那是一件事,也就说,如果您查看更传统的商店或大多数商店,则激励措施,实际上在整个组织中是一致的,客户很高兴,如果一个随机功能可能与其他人超级相关,也可能不相关,他们自己的内在和内在和外在的动机,他们开始战斗,这是一个巨大的问题。sre正试图做到这一点,最好的例子是错误预算,每个人都共享一个错误预算,如果开发人员做了出色的工作,他们可以在星期五发布所有功能高速等,没有人关心b测试,每个人都很高兴,当然他们不是,他们并没有破坏他们的slas,但是如果他们开始破坏他们的slo,那么他们需要降低功能速度,那么反过来意味着操作人员会占据主导地位,实际上也需要从开发人员和其他人那里获得帮助,为了使事情再次稳定,并且让他们共享这一资源并且他们的激励措施保持一致时,我提到了slo和sla,他们非常简单,但通常不是简单的解释服务线指标,目标和协议,你衡量的内容,您需要在内部实现什么以及何时实现,您需要付钱,因为你违反了合同。
当你开始考虑这些sre条款的事情时,另一件事是一旦你开始建造,如您拥有自己的常用工具和仪表盘,你也有动力投资与共享工具,并汇集您的知识,不同领域的所有主题专家。齐心协力在一个仪表盘上工作一个警报,每个人都向每个人学习,其他人每个人都受益于其他人,但另一件事是你的经理在哪里查看不同的图表,并且你不同意,这实际上意味着什么,因为人们对这些服务以及关于那些服务,那么什么是服务
那些竞争比较金属化的复杂性接口通常有不同的所有者和团队,合同甚至在内部定义了接口,我喜欢合作这个术语,因为它是一个理想情况下不能违反的协议,它是书面的,只有当你把事情写下来,人们实际上发现他们确实不同意,在那之前和他们实际签署的这个和那个东西,每个人都喜欢是的,然后他们会在之后打架,所以我喜欢这个术语合同。任何云原生或互联网原生的人,我不需要说服你那层超级的,如果没有适当的分层,通用概念和互联网实际上就不会存在,而分层正式的服务接口和服务。您可以在其中私下令牌并用以太网替代他或者您自己做饭,你也有其他示例,最后一个黄瓜,其实你家里有植物,我没有,但即使你家里有植物你也不会种植你买的每一根黄瓜,你在某个时候买你的黄瓜,这也是服务界面使植物生长而不死亡的复杂性。
最后对你隐藏起来,提醒最后一个基本的客户真的真的真的不关心你的服务,就像他们中的大多数人,他们不关心这个事情,如果你有一个或20个数据库服务器,没有人关心你关心但不关心他们关心的东西,在那里他们不关心是否有十个或者这些数据库中有20个或者零个已关闭,他们关心的是正在运行的东西。这将朝着警报的方向发展。因为当只有当前或即将影响当前或即将影响客户的东西必须得到警报,而没有其他关于警报的内容,我个人喜欢区分主要和次要,这不是您经常看到我改的,但我强烈建议您以这种方式思考,但主要sli是您为自己的事务和服务衡量的概念,您依赖他们的主要是slis是你所依赖的,当然如果你的数据库出现故障你不需要弄清楚你的网上商店为什么不工作,你可以直接去源头,你建立了这个服务金字塔,他只是让推理中断变得更快更容易,所以让我们首先进入技术方面.
但很快prometheus受到gold sporkman 时间序列数据库的启发,他实际上有数以万计的仪器和导出器他不是用于事件记录仪表板,通常通过Grafana完成。
它具有高度动态的内置服务,涵盖了你们中的大多数人都会知道firebase,服务涵盖了你只需要创建一个或多个yaml文件,并开始监控这些内容,或者你只需将其指向kubernetes,你就会自动开始观察kubernetes中所有的内容云提供商的接口有一个区域传输系统因此您可以将DNS区域传输到prometheus或允许传输和promises将开始抓取该区域中的所有内容,如果你正在运行网络,这非常好,他没有这种分层数据模型,你有regen,有数据中心,有客户,选择由客户决定一切都很糟糕您需要编写大量for循环并上下移动,你拥有这个n为标签集,您可以在其中根据需要对数据进行切片和切块,您可以通过任何方式进行选择,它只是适合你使用prom cal为老年人处理图形警报和运动等,这是你必须学习的一种语言,它非常高效,并且实际上所有数据操作都通过这种单一语言进行,
它是值得肯定的是基于运动的,作为一名网络工程师,我更喜欢或稍微更喜欢拉动,而不是在这里一个重要的概念,要注意黑盒监视器toring与白盒监控。黑盒对你来说是不透明的,你不知道里面有什么,你只看里面有什么,是白盒监控,你实际上是在检测你的代码,就像我们之前听到的那样,你实际上可以从你的代码中发出内部知识,每个人服务都应该有自己的指标端点,但是像什么Grafana和promises代理,也可以有不同的,或者只是反向代理,对于prometheus,我们有极端。我也是prometheus成员,有了我的承诺,我们在主要版本中,甚至在次要版本中都有非常严格的API承诺。
什么是时间序列,它们记录的值会随着时间而变化,你通常将世界合
并到计数器或直方图变化值被记录为华丽,
你可能是意识到这一点,只是为了确保它看起来是这样,有一个人,他从他们的c代码中真正打印效果,然后把它转储到一个网站上,那是他们的仪器,他可以工作,规模kubernetes是一向流星运动员的运动如果没有这些,谷歌就不会存在
Kubernetea和承诺是为彼此设计和撰写,即使他们开始时完全不同,但通过他们共同的传统,这就是为什么他们在扩展方面可以很好的协同工作
可以期望在当前硬件上每秒大约100万个样本只是一个随机机器,核心每秒200k个样本,我们压缩得相当好,超过十倍最高货,我们看到的最大的prometheus并没有永久着火,同时有1.25亿个活跃的分时共享,对于长期存储来说是相当多的
有两件事thanos和cortex,都从prometheus团队成员那里得到了巨大的投资,从历史上看,thanos更容易运行,但查询速度较慢,它从水平扩展存储开始,而皮质更容易运行这些,他从扩展注入器和查询开始,这样的皮质将thanos的代码用与水平扩展其存储猜测thanos在查询和摄取级别上的工作
在Grafana这个最大的集群中显而易见,这并不是我们所有的客户,只是今年九月我们拥有的最大集群,我们有6500万个活动时间序列,成本为670个CPU核心,3 TB ram,我们正在努力支持10亿活动,时间年,实际上真目前正在作为证明概念,所以它运行。
loki它遵循与prometheus相同的基于标签的系统。其中一个好处是你只索引你需要的东西,你可以查询运行使得其余部分这意味着你没有这个疯狂的完整成本文本索引,可以在实际规模上使用日志有一个超低延迟的正确路径,它非常高效,并且在读取时拥有一个非常灵活的模式,通过这个标签集和logql的组合,可以在其中查询所有内容,然后从数据库中提取它,然后可以对通过锁定查询的初始部分返回的内容进行更深入的分析前面基本上看起来像logql,原因很明显,对于syslog,提示的所有内容都立即存在,也是Grafana代理的一部分,我们可以将你的东西转出在那里,并直接朝向loki
他看起来基本上像prommetheus exposition格式或openmetrice格式,有一个强制性的时间戳,但除此之外他是相同的,最后有一个为索引的东西,在prometheus上下文中这将是一个数字,这里它只是一个blob他甚至有来自的照片,他不是自动驾驶,而是实验车和玩
东西,他将这些图像存储在loki中
找到从11月份开始Grafana实验室经常看到查询的峰值为每秒60gb,而不是千兆,而是每秒千兆字节,这反过来意味着我们经常在一分钟内查询tb的数据,这包括选择读取和实际执行的所有额外复杂性,通过洛克西德进行更深入的分析,这是非常强大的节奏
如果我们没有为我们的跨度和跟踪建立第三个索引,这实际上是我们与谷歌交谈并考虑与开放传感器合并时的开放量度工作所产生的,他们提到搜索um的踪迹并没有扩展,当谷歌告诉搜索某些东西没有扩展时,最好听一下我们所做的例子,只是ids numeric ids一个用于跨度可选Um和你只需将其附加到您的指标,到您的日志中,原因很简单,如果查看其他问题,就没有这个针和干草堆的问题,大规模跟踪后端,通常他们需要大量的元数据,并且他们拥有这样的东西,就像他们建立了一个字面上的um,而不是字面上的um,大海捞针,然后可以搜索针,当然你有所有的信息,你可以在摄取时会花费大量CPU成本来实际确定具有这些跟踪的那些发生了什么,但我们已经知道我们的高延迟存储桶是什么,因为我们有仪器,我们知道哪些指标,我们已经知道错误发生的位置,因为我们有那个日志行告诉我们,哪件事不会发生,它不会发生,所以我们已经知道哪个轨迹是有趣的,只要他附加到感兴趣的对数线或感兴趣的,度量低并且外显子玩家这正是他们,是否只有将此ID附加到您的事务上,然后您直接从那些相关日志和指标跳转跟踪到您的跨度中,而您不必弄清楚为什么这是相关的,因为你已经知道他是相关的,所以说有些人更喜欢干草堆,我们支持干草堆tempo,如果绝对想要一个人可以索引和搜集标签集,强烈建议不要这样做或移开,伴随您对tempo越来越熟悉,您不需要任何花哨的东西,只需要对象存储即可完成,它与基本上所有的东西百分百兼容。我们不会从七月份的Grafana labs数据中采
我们有一个一致的速率为2.2每秒百万个样本,在14天的保留期和免费副本存储中保持每秒350 mb总成本是240个CPU内核450 gigs ram 132Tb对象存储,我们有绝对没问题的延迟,就像他在此期间更好一样,需要上传幻灯片,我们已经相当快了,取得了巨大的进步,从那时起就开始节奏,所以突然将所有这些结合在一起,可以从日志无缝跳转到跟踪,从指标到跟踪,从日志到跟踪以及所有其他方式,这些都是开源的,并且你也可以自己运行它。
对相对较新的事物进行一些更新,就像一个月前一样,可以隐藏您的好台词,关于填充中的渐变的详细信息,以及您在左侧有多种选择可以喜欢的所有内容都是相同的数据,只是在右侧以不同的方式可视化,这是我个人对COU超级满意的一件事。