构建开源可观测平台

企业始终面临着确保 IT 基础设施和应用程序全年可用的压力。现代架构(容器、混合云、SOA、微服务等)的复杂性不断增长,产生大量难以管理的日志。我们需要智能应用程序性能管理 (APM) 和可观察性工具来实现卓越生产并满足可用性和正常运行时间目标。其中包括分析应用程序运行状况、性能和用户体验。采用机器学习技术来识别异常和行为模式将有助于及早发现根本原因并满足客户服务级别协议 (SLA)。

APM和可观察性工具市场无疑是火热的。这些工具摄取多个遥测数据源,并且是强大的分析平台,提供对应用程序和基础设施健康状况(包括系统性能)的重要见解。采用可观察性的软件开发团队能够更好地迭代发布他们的应用程序代码。根据“MarketsandMarkets”的研究,可观测工具和平台的市场规模预计将从 2023 年的 24 亿美元增长到 2028 年的 4 亿美元以上,复合年增长率 (CAGR) 为 11.7%。

什么是可观察性?

可观察性是指收集有关分布式应用程序、基础设施以及其内部和外部组件和服务之间的通信的数据的能力,使团队能够勤奋地调试他们的系统。它使站点可靠性工程 (SRE)、软件工程和运营团队能够分析客户影响并对服务中断进行分类。可观察性和监控有时可以互换使用。可观察性(主动)使数据可访问,并允许您提出任何系统问题以更深入地了解代码的行为方式。监控(反应式)是收集和显示数据以及确定系统整体状态的能力的任务。
可观察性可以进一步细分为三个关键支柱:日志、跟踪和指标,这对于 SRE 可观察性至关重要。

• 日志帮助我们诊断问题并告诉我们问题发生的原因。
• 跟踪帮助我们隔离问题并告诉我们问题发生的位置。
• 指标帮助我们发现问题并告诉我们发生了什么。

市场工具、能力和挑战

Gartner 的 APM 和可观察性魔力象限已识别出 20 多个提供 APM 和可观察性功能的供应商产品,包括自托管、供应商管理或 SaaS 部署。这些产品提供多种功能,包括应用程序性能指标、事件监控和警报、可追溯性、异常检测和漏洞等。

企业业务应用程序包括自主开发的应用程序(例如.NET、Java、Python、SQL、NoSQL DB 等)、第三方/现成产品(例如 Salesforce、HubSpot 等)和集成(例如 Stripe、PayPal 等)。自行开发的应用程序托管在本地数据中心或由 AWS、GCP 或 Azure 等云供应商托管。现成的产品基于 SaaS 或通过 API 集成。高度分布式的应用程序跨越数十个和数百个节点、服务和实例。

• 工具过多:企业应用程序使用各种工具来监控应用程序运行状况和性能(例如New Relic、Data Dog 等)、错误日志记录(例如Splunk)以及云供应商提供的工具(例如CloudWatch)。这些产品在功能上重叠,维护和管理这些工具(采购、学习曲线等)可能很麻烦。

• 不可预测的数据量:想象一下根据应用程序流量、使用情况、对外部产品的依赖性等收集的可观察性数据(日志、跟踪、指标)的数量。整合这些数据源所需的数据存储量可能会快速增长。控制。

• 定价复杂:这些供应商产品还提供不同的定价模型,例如按主机收费(例如Splunk、Data Dog、Dynatrace)、按用户收费(例如New Relic)、按摄取收费(例如SumoLogic、AppDynamics)。定价模型的复杂性使得比较供应商之间的总拥有成本 (TCO) 并确定适合您的要求和预算的正确工具具有挑战性。

为什么选择开源可观测平台?

基于开源的可观测性工具旨在提供一种标准的、与供应商无关的方法,用于摄取、转换数据并将数据发送到可观测性后端。开源可观察性工具可以作为节省许可成本的替代方案,并将多个 APM 工具与适合您的要求和预算的工具整合在一起。

但是,维护开源系统可能需要付出努力来设置和维护,并且会增加您的初始运营成本。但从长远来看,您将节省许可费用并避免供应商锁定和合同协议。

Gartner 预测,到 2025 年,70% 的新云原生应用监控将使用开源工具而不是特定于供应商的代理来提高互操作性,并且 70% 的新云原生应用将采用 OpenTelemetry 来实现可观察性而不是供应商。特定代理和软件开发工具包 (SDK)。

使用开源生态系统扩展可观测性

可观察性的开源格局非常动态。有多个云原生计算基金会 (CNCF) 开源工具用于可观察和监控。这篇文章将主要关注 OpenTelemetry 框架和 LGTM 技术堆栈。

OpenTelemetry
上述“工具太多”的挑战给遥测数据收集带来了新的挑战。每个工具供应商都有自己的 API、SDK、日志、指标和跟踪代理和收集器。我们需要使用 OpenTelemetry 框架的统一遥测收集来创建和管理遥测数据,例如日志、跟踪和指标。

CNCF 赞助的 OTEL 项目提供了一套统一的与供应商无关的 API、SDK 和工具,用于生成和收集遥测数据并将其导出到各种分析工具。您可以获得每种编程语言的一个 API 和 SDK 来提取应用程序的可观测性数据、一个标准收集器、一个传输协议 (OTLP) 等。

LGTM:
最流行的基于开源的可观测性和监控是使用 LGTM 技术堆栈实现的。

在LGTM 堆栈中,我们利用:
• Loki 用于日志聚合
• Grafana 仪表板用于遥测可视化
• Tempo(或 Jaeger)用于跟踪聚合
• 托管 Prometheus 用于指标聚合

结论

可观察性是指整个系统的完整可见性以及将业务指标与技术数据联系起来。监控是为了了解事情是否正常工作,而 AIOps 是为了从这种可见性中获取意义。可观察性和监控对于确保应用程序顺利运行并满足客户 SLA 至关重要。总之,通过投资开源 OTel 框架和 LGTM 工具,SRE 团队可以有效监控其应用程序并深入了解系统行为和潜在问题。这些工具提供成本效益和定制以满足特定要求。它促进供应商中立,这对于避免供应商锁定至关重要。

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

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

相关文章

《搜广推算法指南》(2024版) 重磅发布!

节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学,针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 结合…

从头开发一个RISC-V的操作系统(五)汇编语言编程

文章目录 前提RISC-V汇编语言入门RISC-V汇编指令总览汇编指令操作对象汇编指令编码格式add指令介绍无符号数 练习参考链接 目标:通过这一个系列课程的学习,开发出一个简易的在RISC-V指令集架构上运行的操作系统。 前提 这个系列的大部分文章和知识来自于…

【C++】模拟实现红黑树(插入)

目录 红黑树的概念 红黑树的性质 红黑树的调整情况 红黑树的模拟实现 枚举类型的定义 红黑树节点的定义 插入函数的实现 旋转函数的实现 左旋 右旋 自检函数的实现 红黑树类 红黑树的概念 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储…

【剑指offr--C/C++】JZ7 重建二叉树

一、题目 二、思路及代码 前序遍历:中、左、右。所以前序遍历的第一个节点是树的根节点,第二个节点是左子树的根节点。。。。 中序遍历:左、中、右。树的根节点在中间某处 我们可以根据二者的特点结合一下:对于前序遍历序列{1,2,4…

查看MySQL版本的方式

文章目录 一、使用cmd输入命令行查看二、在mysql客户端服务器里查询 一、使用cmd输入命令行查看 1、打开 cmd ,输入命令行: mysql --version 2、还是打开cmd,输入命令行:mysql -V (注意了,此时的V是个大写的V) 二、…

海外问卷调查项目拆解(操作全流程演示)保姆级攻略具体操作

海外问卷调查是怎么做的?好做吗? 关于这个问题,不管我说好做、或者不好做,都并不能解决问题; 所以,这篇文章直接把做题的全过程展现给你看,你自己去真实地感受一下,这个玩意儿到底…

华媒舍:3个科学指导,协助油管大V写下爆款文章

油管(YouTube)作为一个重要的视频分享平台,吸引了很多的观众和原创者。作为一位油管大V,你可能会一直在努力提升自己的文章质量以吸引更多的观众和订阅者。下面我们就为您提供三个科学指导,帮助自己写下更具有爆品发展…

浅析JavaWeb内存马基础原理与查杀思路

文章目录 前言Java内存马内存马分类&原理JavaWeb三大组件注入Servlet内存马注入Filter型内存马JAVA Agent内存马 哥斯拉木马0x01 WebShell0x02 MemShell0x03 FilterShell0x04 Arthas排查0x05 scanner查杀 总结 前言 几年前写过《Web安全-一句话木马》,主要介绍…

stargan项目实战及源码解读

数据及代码链接见文末 ​​​​​​​论文解析:Star GAN论文解析-CSDN博客 1.测试模块效果与实验分析 测试数据需要准备两个文件夹src(源)和ref(目标),这两个文件夹下的文件夹名称代表各个domain。 运行测…

[lesson07]函数参数的扩展

函数参数的扩展 函数参数的默认值 C中可以在函数声明时为参数提供一个默认值 当函数调用时没有提供参数的值,则使用默认值 参数的默认值必须在函数声明中指定 函数默认参数的规则 参数的默认值必须从右向左提供函数调用时使用了默认值,则后续参数必…

数据结构:详解【树和二叉树】

1. 树的概念及结构(了解) 1.1 树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝…

小林coding图解计算机网络|基础篇02|键入网址到网页显示,期间发生了什么?

小林coding网站通道:入口 本篇文章摘抄应付面试的重点内容,详细内容还请移步:小林coding网站通道 文章目录 孤单小弟——HTTP真实地址查询——DNS指南好帮手——协议栈可靠传输——TCP远程定位——IP两点传输——MAC出口——网卡送别者——交…