当前位置: 首页 > news >正文

构建开源可观测平台

企业始终面临着确保 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 团队可以有效监控其应用程序并深入了解系统行为和潜在问题。这些工具提供成本效益和定制以满足特定要求。它促进供应商中立,这对于避免供应商锁定至关重要。

相关文章:

构建开源可观测平台

企业始终面临着确保 IT 基础设施和应用程序全年可用的压力。现代架构(容器、混合云、SOA、微服务等)的复杂性不断增长,产生大量难以管理的日志。我们需要智能应用程序性能管理 (APM) 和可观察性工具来实现卓越生产并满足可用性和正常运行时间…...

SketchUp Pro 2024 for mac 草图大师 专业的3D建模软件

SketchUp Pro 2024 for Mac是一款功能强大的三维建模软件,适用于Mac电脑。其简洁易用的界面和强大的工具集使得用户可以轻松创建复杂的3D模型。 软件下载:SketchUp Pro 2024 for mac v24.0.483 激活版下载 SketchUp Pro 2024 for Mac支持导入和导出多种文…...

通过 Cookie、Redis共享Session 和 Spring 拦截器技术,实现对用户登录状态的持有和清理(三)

本篇内容对应 “2.4 生成验证码” 小节 和 “4.7 优化登陆模块”小节 视频链接 1 Kaptcha介绍 Kaotcga是一个生成验证码的工具。 你的网站验证码是什么? 在我们这个牛客论坛项目,验证码分为两部分 给用户看的是图片,用户根据图片上显示的…...

学习 Git 基础知识 - 日常开发任务手册

欢迎来到我关于 Git 的综合指南,Git 是一种分布式版本控制系统,已经在软件开发中彻底改变了协作和代码管理方式。 无论你是经验丰富的开发者还是刚开始编程之旅的新手,理解 Git 对于正确掌控代码、高效管理项目和与他人合作至关重要。 在本…...

pip和conda 设置安装源

pip和conda 设置安装源 conda查看 channels添加 channels移除 channelschannels 配置文件 pip查看 index-url添加 index-url移除 index-urlindex-url 配置文件 常用源 conda 查看 channels conda config --show channels添加 channels conda config --add channels https:/…...

数据分析之Logistic回归分析中的【多元有序逻辑回归】

1、定义 多元有序逻辑回归用于分析有序分类因变量与一个或多个自变量之间的关系。有序逻辑回归适用于因变量具有自然排序但没有固定间距的类别,例如疾病严重程度(轻度、中度、重度)或调查问卷中的满意度评分(非常不满意、不满意、…...

路由器拨号失败解决方法

目录 一、遇到问题 二、测试 三、解决方法 (一)路由器先单插wan口设置 (二)mac地址替换 (三)更改路由器DNS 一、遇到问题 1 .在光猫使用桥接模式,由路由器进行拨号的时候,出现…...

Oracle 中 where 和 on 的区别

1.Oracle 中 where 和 on 的区别 on:会先根据on后面的条件进行筛选,条件为真时返回该行,由于on的优先级高于left join,所以left join关键字会把左表中没有匹配的所有行也都返回,然后生成临时表返回,执行优先级高于…...

NLP学习路线总结

自然语言处理(Natural Language Processing,NLP)是人工智能和语言学领域的一部分,它旨在让计算机能够理解、解释和生成人类语言。NLP学习路线可以大致分为以下几个步骤: 1. 基础知识准备 - 计算机科学知识&#xff1a…...

AI绘图cuda与stable diffusion安装部署始末与避坑

stable diffusion的安装说起来很讽刺,最难的不是stable diffusion,而是下载安装cuda。下来我就来分享一下我的安装过程,失败了好几次,几近放弃。 一、安装cuda 我们都知道cuda是显卡CPU工作的驱动(或者安装官网的解释…...

OpenCv —— cv::VideoCapture设置摄像头图像格式为“MJPEG“

背景 今天恰巧同事有台USB摄像头,她想要在Windows系统下通过OpenCV读取该摄像头宽高为1080x768、帧率为60的视频,用来做图像算法处理。但无奈通过网上OpenCV教程 读取的视频对应尺寸的帧率仅为10帧左右,根本无法满足使用要求。于是作者通过本篇文章介绍如何解决,欢迎交流指…...

Qt事件学习案例

视频链接 https://www.bilibili.com/video/BV18B4y1K7Cs?p7&spm_id_frompageDriver&vd_sourcefa4ef8f26ae084f9b5f70a5f87e9e41bQt5跟着视频做即可,Qt6部分代码需要改动,改动的地方注释有写 素材 百度云 链接:https://pan.baidu.com/s/158j…...

无锡国家集成电路设计中心某公司的单锂小电机直流电机H桥驱动电路

H桥驱动 L9110S是一款直流电机驱动电路,适合单节锂电池应用。输出电流0.4A。价格约3毛。 推荐原因: 某些人应该知道这个地方,大多数人应该不知道这个地方,所以推荐一下。 这个地方去过几次,某公司与某方走的“近”&…...

数据分析 -- numpy

文章目录 numpy库简介简介特点 numpy操作数组创建数组属性数组变更数据计算 numpy库简介 简介 开源的Python库,它提供了高性能的多维数值(numpy.ndarray)计算能力;由“Numerical Python”缩写而来,并且它是Pandas库的…...

开源项目生存现况:xz投毒事件引发的思考与GNU tar维护挑战

(首发地址:学习日记 https://www.learndiary.com/2024/04/xz-tar/) 嗨,大家好!我是来自淘宝网“学习日记小店”的 learndiary,专注于 Linux 服务领域。今天我要和大家谈谈近期备受瞩目的 XZ 供应链投毒事件…...

前端开发语言有哪些

随着互联网的迅猛发展,前端开发已经成为了一个炙手可热的职业。对于初学者来说,了解前端开发所使用的语言是非常重要的。那么,前端开发语言有哪些呢?本文将为您一一介绍。 一、HTML HTML(HyperText Markup Language&…...

速盾:cdn加速https额外收费吗?

CDN(内容分发网络)是一种通过在全球各地部署服务器来提供高速互联网内容传输的技术,它可以加速网站的访问速度,提高用户体验。而HTTPS(超文本传输安全协议)是一种通过加密技术保护网站数据传输安全的协议。…...

【蓝桥杯嵌入式】13届程序题刷题记录及反思

一、题目分析 考察内容: led按键(短按)PWM输出(PA1)串口接收lcd显示 根据PWM输出占空比调节,高频与低频切换 串口接收(指令解析)【中断接收】 2个显示界面 led灯闪烁定时器 二…...

C++类 单例模式

例子 请看如下的类和调用: 在您提供的代码片段中,CPathPlanMan 类使用了一个单例模式,这意味着这个类只需要一个实例,并且提供了全局访问点来获取这个实例。这通常用于控制对一个类实例的访问,尤其是在创建实例代价昂…...

prompt 工程案例

目录 prompt 工程是什么? 案例 vllm 推理加速框架 prompt 工程是什么? prompt:提示词,也就是我们使用网页版输入给大模型的内容就叫 prompt,那什么是 prompt 工程呢? 简单理解其实就是利用编写的 prom…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

基于服务器使用 apt 安装、配置 Nginx

🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)

考察一般的三次多项式&#xff0c;以r为参数&#xff1a; p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]&#xff1b; 此多项式的根为&#xff1a; 尽管看起来这个多项式是特殊的&#xff0c;其实一般的三次多项式都是可以通过线性变换化为这个形式…...

如何更改默认 Crontab 编辑器 ?

在 Linux 领域中&#xff0c;crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用&#xff0c;用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益&#xff0c;允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...

ArcPy扩展模块的使用(3)

管理工程项目 arcpy.mp模块允许用户管理布局、地图、报表、文件夹连接、视图等工程项目。例如&#xff0c;可以更新、修复或替换图层数据源&#xff0c;修改图层的符号系统&#xff0c;甚至自动在线执行共享要托管在组织中的工程项。 以下代码展示了如何更新图层的数据源&…...

MeshGPT 笔记

[2311.15475] MeshGPT: Generating Triangle Meshes with Decoder-Only Transformers https://library.scholarcy.com/try 真正意义上的AI生成三维模型MESHGPT来袭&#xff01;_哔哩哔哩_bilibili GitHub - lucidrains/meshgpt-pytorch: Implementation of MeshGPT, SOTA Me…...