构建开源可观测平台

news2024/12/24 0:28:11

企业始终面临着确保 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.coloradmin.cn/o/1571294.html

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

相关文章

基于SpringBoot+微信小程序的防诈骗平台

一、项目背景介绍: 社会背景随着互联网的高速发展,网络和手机的普及率也大大提高,这也衍生出一系列问题:用户信息泄露、不法分子电话诈骗等…现越来越多的老年人甚至年轻人经历过电信诈骗并被骗了大量金额。该产品正是基于这样的社…

揭秘SCQL:隐私计算的未来之路

1.SCQL使用/集成最佳实践 隐语隐私计算中SCQL(Secure Collaborative Query Language)的设计旨在提供一种便捷且安全的方式来处理多方参与下的隐私敏感数据查询与分析,而无需暴露原始数据给任何一方。以下是基于以上所记录信息的SCQL使用和集…

Linux文件IO(3):使用文件IO进行文件的打开、关闭、读写、定位等相关操作

目录 1. 文件IO的概念 2. 文件描述符概念 3. 函数介绍 3.1 文件IO-open函数 3.2 文件IO-close函数 3.3 文件IO-read函数 3.4 文件IO-write函数 3.5 文件IO-lseek函数 4. 代码练习 4.1 要求 4.2 具体实现代码 4.3 测试结果 5. 总结 1. 文件IO的概念 posix(可移植操作系统接…

vulhub中Struts2-008 远程代码执行漏洞复现

影响版本: 2.1.0 - 2.3.1 原理 > S2-008 涉及多个漏洞,Cookie 拦截器错误配置可造成 OGNL 表达式执行,但是由于大多 Web 容器(如 Tomcat)对 Cookie 名称都有字符限制,一些关键字符无法使用使得这个点显得比较鸡肋…

深入了解 Python 中标准排序算法 Timsort

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ Timsort:一个非常快速的、时间复杂度为 O ( n l o g n ) O (n \ log\ n) O(n log n)、稳健(即不改变等值元素间的相对顺序)的排序算法,在处理真实世界数…

ModuleNotFoundError: No module named ‘einops‘解决办法

安装对应的库就好 pip install einops -i https://pypi.tuna.tsinghua.edu.cn/simple 拓展——在python中einops模块有什么作用 einops 是一个 Python 库,它提供了一种简洁、易读的方式来操作多维数组(通常是 NumPy 数组或 PyTorch 张量)。e…

移动端基础

移动端基础 一.了解二.视口1.视口形式2.视口标签3.viewport设置 三.二倍图1.像素比2.多倍图3.背景缩放及使用(background-size)4.多倍图切图 四.移动端开发选择1.单独制作2.响应式3.总结 五.移动端技术解决方案1.初始化2.盒子模型3.特殊样式 六.常见布局…

铸铁平台的平面度

铸铁平台的平面度是指平台的表面平整程度,即平台表面与其理论平面之间的最大偏差。平台的平面度通常使用国际标准符号GD&T中的平面度符号(ⓨ)表示,单位为毫米(mm)或微米(μm)。 …

【数据分析面试】10. 计算平均通勤时间(SQL:timestampdiff() 和datediff()区别)

题目 假设你在Uber工作。rides表包含了关于Uber用户在美国各地的行程信息。 编写一个查询,以获取纽约(NY)每位通勤者的平均通勤时间(以分钟为单位),以及纽约所有通勤者的平均通勤时间(以分钟为…

Codeforces Round 836 (Div. 2) D. Range = √Sum

题目 思路&#xff1a; #include <bits/stdc.h> using namespace std; #define int long long #define pb push_back #define fi first #define se second #define lson p << 1 #define rson p << 1 | 1 const int maxn 1e6 5, inf 1e18, maxm 4e4 5; c…

Phpstorm配置Xdebug

步骤 1、先去官网找到对应的php xdebug的版本 2、配置phpstorm断点调试 网址&#xff1a;https://xdebug.org/ 查看php对应的xdebug版本&#xff1a;Xdebug: Support — Tailored Installation Instructions 1.1查看对应php xdebug版本 全选&#xff0c;复制到目标网址 我…

数据恢复软件有哪些?适用于 Windows PC 的 10 款最佳免费数据恢复软件

数据已成为数字世界运作的主要来源。任何数据丢失都会对公司的日常活动产生巨大影响。它会影响过程的连续性。以下文章为您带来了各种简单且免费使用的数据恢复软件。 什么是数据恢复&#xff1f; 检索和恢复丢失、损坏、无法访问、损坏或意外删除的数据的过程称为数据恢复。这…

B3631 单向链表(结构体模拟链表)

输入格式 第一行一个整数 q表示操作次数。 接下来 q行&#xff0c;每行表示一次操作&#xff0c;操作具体间题目描述。 输出格式 对于每个操作 2&#xff0c;输出一个数字&#xff0c;用换行隔开。 #include<iostream> #include<map> #include<algorithm> …

【随笔】Git 高级篇 -- 整理提交记录(上)(十五)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

设置Chrome打开链接在新标签页显示

Chrome版本 版本 123.0.6312.106&#xff08;正式版本&#xff09; &#xff08;64 位&#xff09; 下面这两个页面都有设置按钮&#xff1a; https://www.google.com/?pli1或者https://www.google.com/?hlzh-CN 要先退出账号&#xff0c;要不然看不到右下角的 “设置” 。…

【Linux】进程控制之进程程序替换

目录 前言 替换的原理 替换函数 记忆技巧 函数使用 execl execlp execv execvp execle execvpe 调用其它语言的程序 模拟实现一个shell 前言 关于本文可以先去看看上一篇【Linux】进程控制详解-CSDN博客可以更好的理解这里的内容 学完本篇文章&#xff0c;你就…

python标准数据类型--集合常用方法

在Python中&#xff0c;集合&#xff08;Set&#xff09;是一种无序且不重复的数据结构&#xff0c;它是由一个无序的、不重复的元素组成的。Python中的集合与数学中的集合概念相似&#xff0c;并且支持一系列常用的方法。本篇博客将深入介绍Python集合的常用方法&#xff0c;帮…

亚马逊跨境电商平台真人测评和自养号测评有什么区别?

下面来讲一下真人测评和自养号测评的优缺点有哪些 真人测评 优点&#xff1a;权重高&#xff0c;可以有效提升转化率 缺点&#xff1a;市面上的渠道良莠不齐&#xff0c;质量难以保证&#xff0c;且较难选择 真人测评是通过真人的买家在页面留下review的方式来提高权重&…

【51单片机入门记录】A/D、D/A转换器PCF859应用

目录 一、IIC初始化代码 二、开发板电路图 三、PCF8591读/写字节操作流程及相关函数 &#xff08;1&#xff09;PCF8591&#xff08;AD&#xff09;读操作流程及代码 &#xff08;2&#xff09;PCF8591&#xff08;AD&#xff09;写操作流程及代码 四、应用示例-显示电压…