OPLG:新一代云原生可观测最佳实践

简介:OPLG 体系拥有成熟且富有活力的开源社区生态,同时也经过了大量企业生产环境的实践检验,是当下建设新一代云原生统一可观测平台的热门选择。但是,OPLG 只是提供了一个技术体系,如何灵活运用,解决实际问题,沉淀出通用行业或场景的最佳实践,还需要大家一起来探索。

作者:夏明(涯海)

OPLG 是什么

随着云原生架构的兴起,可观测的边界与分工被重新定义,传统的容器/应用/业务分层监控边界被打破,Dev、Ops、Sec 的分工逐渐模糊。大家意识到 IT 系统作为一个有机的整体,对 IT 系统状态的监测与诊断也需要一体化的方案。经过近几年的摸索与实践,基于 OPLG 的新一代云原生可观测体系,逐步成为了社区与企业的热门选择。

OPLG 是指将 (O)penTelemetry Traces、(P)rometheus Metrics、(L)oki Logs 通过 (G)rafana Dashboards 进行统一展示,满足企业级监控与分析的大部分场景,如下图所示(图片来源于 Youtobe Grafana Labs)。基于 OPLG 体系可以快速构建一套覆盖云原生应用全栈的统一可观测平台,全面监测基础设施、容器、中间件、应用及终端用户体验,将链路、指标、日志、事件有机整合,更高效的达成稳定性运维与商业化分析目标。

OPLG 自建方案

小明加入了一家潮牌买手公司,专门帮助年轻人寻找优质潮牌好货。随着业务规模的不断扩大,系统稳定性及商业化分析对全局可观测的要求也“水涨船高”,底层系统故障直接了影响业务营收与客户满意度。为此,小明所在的 IT 部门通过 OPLG 体系构建了一套全新的可观测平台,具备“快速接入、灵活扩展、无缝迁移、异构融合”等优势。

OPLG 优势

  • 快速接入:由于 OpenTelemetry 和 Prometheus 社区提供的大量成熟的开源 SDK/Agent/Exporter,无需大量代码改造,即可快速接入主流组件与框架的链路追踪与指标监控。
  • 灵活扩展:基于 PromQL/LogQL 灵活的查询语法,与 Grafana 丰富的大盘定制功能,可以满足各个业务线或运维团队的个性化可观测需求。
  • 无缝迁移:考虑到数据安全性及未来海外业务发展规划,可观测平台沉淀的组件埋点、自定义大盘能够在不同云服务商之间无缝迁移。相比于商业化大盘深度锁定用户,Grafana 可以集成多种数据源,真正实现“端到端迁移自由”。
  • 异构融合:Java、Go、Node.js 等不同语言的应用,以及多云环境的可观测数据能够互联互通,统一展示。

OPLG 挑战

虽然 OPLG 体系具有多种优势,但是企业自建也会面临多重挑战,特别是在深度使用的过程中,许多规模化运维、性能、成本等非功能性问题将逐渐凸显。

  • 组件规模化升级与配置:客户端探针的规模化管理几乎是运维团队的“梦魇”,探针异常引发的各种故障也是屡见不鲜。此外,动态配置下推与功能降级这类“保命大招”,通常也需要企业自建配置中心,自行开发与管理。
  • Traces 全量采集与存储成本:中大型企业生产系统的日均调用量可以达到上亿级别,调用链全量上报和存储的成本是个不小的开销,对哪些链路进行采样成本最优?链路采样导致的指标监控与告警不准问题又该如何解决?
  • Metrics 大体量查询性能:一次查询扫描的指标数越多,查询性能越差。当查询时间范围超过一周或者一个月时,经常会遇到查询卡顿甚至于无法查询出结果。此外,APM Metrics 还会经常遇到 URL / SQL 发散导致的指标线过多,打爆存储与查询层。
  • 海量告警调度时延与性能:每一条告警规则都代表着一个定期轮询任务,当告警规则超过千级别,甚至万级别时,经常会遇到告警延迟发送,甚至无法发送的情况,错失了故障排查的最佳时机。
  • 组件容灾能力弱:多地域/可用区容灾,是保障服务高可用的重要手段。但是,由于容灾能力建设,需要技术与资源的双重投入,很多企业自建系统都不具备容灾能力。

上述问题都是企业自建可观测体系过程中会遇到的经典问题,这些由于规模带来的性能及可用性问题,需要投入大量研发和时间进行沉淀,大幅增加了企业运维成本。因此,越来越多的企业选择将可观测服务端托管给云服务商,在享受开源方案技术红利的同时,也能得到持续、稳定的服务保障。

OPLG 托管方案

为了降低运维成本,更稳定的提供可观测服务,小明所在的 IT 部门决定采用由阿里云 ARMS 提供的 OPLG 托管方案,该方案在保留开源方案优势的基础上,提供了高性能、高可用、免运维的后端服务,帮助小明团队解决了海量数据场景下的规模化运维难题。此外,通过 eBPF 网络探测、Satellite 边缘计算和 Insights 智能诊断,进一步提升了可观测数据的覆盖度和集成度,如下图所示。

  • 高性能:支持无损统计,数据压缩,连接优化,发散指标自动收敛,DownSample 等技术,大幅降低海量数据场景下的性能开销。
  • 高可用:客户端支持资源限额与自动限流保护,保证高压场景下的集群稳定性;后端服务支持弹性水平扩容,多地域/多可用区容灾,尽最大可能保障服务可用性。
  • 灵活易用:JavaAgent、OT Collector、Grafana Dashboard Template 托管升级,自动适配更新,无需用户管理;支持动态配置下推,实时调整流量开关,调用链采样率,接口过滤与收敛规则等参数。
  • 网络探测:通过 eBPF 无侵入地分析网络请求,自动解析网络协议,构建网络拓扑,展示特定容器之间或容器与特定云产品实例之间的网络性能。
  • 边缘计算:通过 Satellite(OpenTelemetry Collector)实现了可观测数据在用户集群内的边缘采集与计算能力,规范数据格式,统一数据标签,有效提升 Trace/Metrics/Logs 数据之间的关联度。
  • 智能诊断:结合多年沉淀的领域知识库和算法模型,对常见线上故障问题(如慢SQL、流量不均)进行定期巡检,自动给出具体的根因分析与建议。

ARMS for OpenTelemetry Satellite

近两年 OpenTelemetry 和 SkyWalking 等社区都在大力研发边缘采集与计算 Satellite 方案。ARMS for OpenTelemetry Satellite(简称ARMS Satellite)是一套基于 OpenTelemetry Collector 开发的可观测数据(Traces、Metrics、Logs)边缘侧统一采集与处理平台,具备安全、可靠、易用等特性,适合生产环境接入。

ARMS Satellite 通过边缘侧的数据采集、处理、缓存与路由,可以实现多源异构数据的标准化;增强 Traces、Metrics、Logs 可观测数据间的关联性;支持无损统计,降低数据上报和持久化存储成本等。

适用场景一:全景监控数据一键采集与分析(容器环境)

ARMS Satellite 在容器服务 ACK 环境下,深度集成了阿里云 Kubernetes 监控组件与 Prometheus 监控组件,一键安装完成后,会自动采集 Kubernetes 容器资源层和网络性能数据。结合用户上报的应用层数据(只需修改 Endpoint,无代码改造)与自动预聚合指标,全部上报至全托管的服务端数据中心,再通过 Grafana 进行统一展示。最终实现覆盖应用、容器、网络、云组件的全景监控数据采集与分析。

适用场景二:多云/混合云网络,异构 Tracing 框架数据关联与统一展示

在多云/混合云架构下,不同集群或应用间的链路追踪技术选型可能存在差异,比如 A 采用了 Jaeger,B 采用了 Zipkin,不同链路追踪协议上报的数据格式互不兼容,无法串联,大幅降低了全链路诊断效率。

通过 ARMS Satellite 可以将不同来源的链路统一转化为 OpenTelemetry Trace 格式,并上报至统一的服务端进行处理和存储,用户可以轻松实现跨网络或异构链路框架的联合数据查询与分析。

适用场景三:链路采样+无损统计,低成本实现应用监控告警精准统计

生产系统的日均调用量可以达到亿级别,调用链全量上报和存储的成本是个不小的开销,对调用链执行采样存储是个不错的选择。然而,传统的链路采样会导致链路统计指标的准确性大幅下降,比如一百万次真实调用经过 10% 采样后保留的十万次调用,对其统计得到的结果会产生明显的“样本倾斜”,最终导致监控告警误报率过高,基本处于不可用状态。

ARMS Satellite 支持 Trace 数据无损统计,对接收到的 Trace 数据自动进行本地预聚合,得到精准的统计结果后再执行链路采样上报,这样在降低网络开销和持久化存储成本的同时,保证了应用监控与告警指标的准确性。默认集成的 Satellite APM Dashboard 如下图所示。

总结

OPLG 体系拥有成熟且富有活力的开源社区生态,同时也经过了大量企业生产环境的实践检验,是当下建设新一代云原生统一可观测平台的热门选择。但是,OPLG 只是提供了一个技术体系,如何灵活运用,解决实际问题,沉淀出通用行业或场景的最佳实践,还需要大家一起来探索。

原文链接

本文为阿里云原创内容,未经允许不得转载。 

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

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

相关文章

EventBridge 集成云服务实践

简介:本篇文章主要向大家分享了通过 EventBridge 如何集成云产品事件源,如何集成云产品事件目标以及通过事件流如何集成消息产品。 作者:李凯(凯易) EvenBridge 集成概述 EventBridge 是阿里云所推出了一款无服务器…

云原生微服务的下一站,微服务引擎 MSE 升级

简介:管好微服务,成为云原生时代的新难题。 管好微服务,成为云原生时代的新难题。 从建好微服务到管好微服务,差的虽是一个字,连接起两边的却需要大量的微服务落地经验。因为软件架构的核心挑战是解决业务快速增长带…

火爆全网的“数字人”,到底是个啥?

作者 | 小枣君来源 | 鲜枣课堂庄子他老人家说过:“人生,就是一场游戏。”对于这场游戏,有些人玩得很嗨,到了结尾不肯退场,总希望无限期玩下去。例如秦始皇,总想着灵丹妙药、长生不死。还有些人呢&#xff0…

阿里云RemoteShuffleService新功能:AQE和流控

简介:阿里云EMR自2020年推出Remote Shuffle Service(RSS)以来,帮助了诸多客户解决Spark作业的性能、稳定性问题,并使得存算分离架构得以实施。为了更方便大家使用和扩展,RSS在2022年初开源,欢迎各路开发者共建。本文将…

OpenSergo 正式开源,多家厂商共建微服务治理规范和实现

简介 OpenSergo,Open 是开放的意思,Sergo 则是取了服务治理两个英文单词 Service Governance 的前部分字母 Ser 和 Go,合起来即是一个开放的服务治理项目。 该项目由阿里云、bilibili、字节跳动,以及 Spring Cloud Alibaba、Nacos…

Linux中常见的网络端口号

在使用计算机或智能手机时,我们使用各种硬件端口,如用于音频、HDMI、Type-c 等的 3.5mm 端口,其用于与硬件外围设备通信。同样,网络端口可以让我们在一台计算机上访问各种网络服务来达到通信的目的。因此,端口被认为是…

如何在云原生混部场景下利用资源配额高效分配集群资源?

简介:由于混部是一个复杂的技术及运维体系,包括 K8s 调度、OS 隔离、可观测性等等各种技术,之前的一篇文章《历经 7 年双 11 实战,阿里巴巴是如何定义云原生混部调度优先级及服务质量的?》,主要聚焦在调度优…

稳定性与高可用保障的工作思路

简介:稳定性与高可用性是老生常谈的两个词。凭借经验和感受我们知道,提高系统的这两项指标,系统会更加健康,产品也会有更好的用户体验。但是如果要给稳定性和高可用性下一个定义该如何表述?稳定性和高可用性这二者又有…

腾讯云数据库自研内核全新升级 新架构比原先性能提升20%

9月16日,腾讯云数据库自研内核TXSQL完成了全新升级。搭载了新一代内核的云数据库在性能上较之前提升超过20%,延迟降低80%。目前,新一代内核TXSQL已应用于腾讯云数据库MySQL、分布式数据库TDSQL、云原生数据库TDSQL-C等多款主流云数据库产品中…

系统性能分析从入门到进阶

简介:本文以系统为中心, 结合日常工作和用例, 由浅入深地介绍了性能分析的一些方法和体会, 希望对想了解系统性能分析的同学有所帮助。 作者 | 勿非 本文以系统为中心, 结合日常工作和用例, 由浅入深地介绍了性能分析的一些方法和体会, 希望对想了解系统性能分析的…

宜搭小技巧|第一时间看到审批进度?消息通知来帮你

简介:「消息通知」自动发送,再也不用担心错过流程审批进度! 今天,宜小搭要申请出差,为了第一时间获取审批进度,他频繁刷新审批页面,这样既麻烦同时也浪费了大量时间,影响其他工作。…

一看即会:Serverless 应用开发的 7 个实战小技巧

简介:干货满满,马住收藏! Serverless 应用开发的 7 个经验心得 作者说:Serverless 架构下的应用开发,与传统架构的应用开发还是有比较大的区别点的,例如天然分布式架构会让很多框架丧失一定的"便利性…

如何使用 Serverless Devs 部署静态网站到函数计算

简介:手把手教你:如何使用 Serverless Devs 部署静态网站到函数计算。 前言 公司经常有一些网站需要发布上线,对比了几款不同的产品后,决定使用阿里云的函数计算(FC)来托管构建出来的静态网站。 FC 弹性实例自带的50…

一个好的科技公司logo长这样

简介:一个好的科技logo能体现出行业独有的专业性和技术优势,让你的公司科技感加满! 近年来,越来越多的初创公司崭露头角,其中科技互联网公司的比重非常高。小云也收到很多朋友的留言,询问科技类公司应该怎…

系列解读 SMC-R (二):融合 TCP 与 RDMA 的 SMC-R 通信 | 龙蜥技术

简介:本篇以 first contact (通信两端建立首个连接) 场景为例,介绍 SMC-R 通信流程。 文/龙蜥社区高性能网络SIG 一、引言 通过上一篇文章 《系列解读SMC-R:透明无感提升云上 TCP 应用网络性能(一)》我们了解到&…

北京大学、阿里巴巴成立联合实验室,聚焦人工智能理论和创新算法研究

9月17日,在北京大学智能学科建设20周年大会上,北京大学和阿里巴巴共同宣布成立“北大-阿里妈妈人工智能创新联合实验室” (以下简称实验室)。实验室将聚焦人工智能前沿领域的理论、方法与关键技术展开研究,为社会和企业…

智能开放搜索上线定制分词器

简介:智能开放搜索上线定制召回模型-定制分词器功能,满足各行业、垂类、业务特殊,对搜索有较高分词要求的客户,提升语义理解能力,精准召回用户搜索意图。 NLP算法在搜索链路中的应用 这是一个完整的从查询词到搜索结…

云端渲染时长1.58亿核小时,阿里云助力国漫巨制《新神榜:杨戬》提升视效

当前,追光动画新作《新神榜:杨戬》(以下简称“杨戬”)正在热映,制作水准再次升级。无论是“水墨特效太极图大战”,亦或神女婉罗的灵动舞姿,还是元神现身的超燃瞬间,都极具视觉震撼。…

如何开一场高效的迭代排期会 | 敏捷开发落地指南

简介:如何开一场高效的迭代排期会,高效落地敏捷开发,先从这3个关键活动着手,通过本文你将了解到什么是敏捷开发、什么是双周迭代、如何高效地开展排期会,以及如何在云效项目协作Projex 中落地排期会相关事宜。 摘要&a…

Linux 中如何获取文件的绝对路径

我们都知道,在命令行可以使用 pwd 命令来获取当前目录的完整路径(绝对路径):pwd那么,如何获取文件的绝对路径呢?有下列几种方法,可以打印文件的完整路径:readlinkrealpathfindls 和 …