构建端到端可观测全景丨云栖大会可观测分享实录

原创
01/24 18:16
阅读数 61

作者:周洋

技术不断演进,端到端可观测需求愈发强烈

随着 Kubernetes 、Serverless 等云原生技术引领研发、运维模式变革。应用架构从单体架构逐步演进为分布式、微服务化应用。生产关系不断变化,DevOps / 运维自动化、业务中台化让可观测不止于大促保障与日常轮值。同时,Prometheus、Grafana、Opentelemetry 等可观测标准也逐渐形成。SRE / DevSecOps / BizOps / FinOps / ChatOps 新范式出现。可以看到,随着开源技术、应用架构、生产关系进一步发展,企业对于可观测体系的业务要求更多元,对产品使用需求更统一,可观测正式进入端到端时代。

在与千行百业共同成长的过程中,我们注意到企业要端到端落地可观测,还存在着诸多技术挑战。首先,浏览器、移动端、应用、服务、容器、物理机、网络设备、网络流量等不同层级,每层都有各自采集工具,导致可观测工具分散且数据对象多。其次,Trace、Metric、Log、Profile、Event、Exception、Metadata 等不同模型数据缺少关联标准和最佳实践,模型不一致导致数据孤岛现象加剧。再次,生产关系的不断演进催生出多环境可观测、压测 & 演练 & 发布场景视图、计量计费、权限划分、超大热点等企业级落地场景。最后,企业需要平衡自研技术和开源技术的路线选择,从而实现封闭、开源技术选择及运维统一,提升可观测系统本身的运维效率和可用性。

更高效、更具性价比阿里云云原生可观测焕新发布

为了更好地解决上述行业痛点,帮助企业更高效、更具成本的构建与使用可观测,云原生可观测针对应用实时监控服务 ARMS 进行了全面焕新升级。

周洋在云栖现场

▶︎ 1. 面向数据分析的新一代前端监控,用户体验监控 RUM 2.0 发布

用户体验监控 RUM 2.0 作为新一代以真实用户体验为核心的前端应用性能观测产品,提供更全面的观测终端覆盖,包括 iOS/Android 移动应用、浏览器应用、微信/钉钉小程序及混合应用等多端应用类型。重点对数据采集、存储、查询三项核心能力进行全面升级,推出 OpenRUM 统一数据处理模型,并基于 Grafana 强大的可视化能力与 Prometheus 指标聚合告警能力,提供更丰富的监控告警大盘。同时,用户级链路和指标数据存储,可独立查询检索,控制台具备多维的检索、聚合、分析、探索能力,使用企业获得更灵活的数据探索与分析。面向开发和运维同学,提供跨平台的应用监控、丰富的监控告警、灵活的数据探索、统一的操作体验。

▶︎ 2. 更便宜、更丰富的拨测类型,云拨测 2.0 发布

为了更好的应对企业的全球化、精细化体验管理需求,云拨测 2.0 能力全新升级。现有拨测类型与拨测点范围进一步提升,新增云主机拨测点、移动端拨测点。移动端拨测点覆盖 100 多个城市,支持上万真实手机终端发起拨测。同时,扩充流媒体拨测类型,满足更丰富的用户体验场景。在丰富拨测点的同时,云拨测 2.0 全面融合了 Prometheus、Grafana、OpenTelemetry 等可观测服务,企业可以获得开箱即用的任务可视化与任务下钻分析能力,获得更加全面的拨测报告。最后,为了进一步降低云拨测使用成本,云主机终端的上线,使得拨测费用大幅度降低,单次拨测费用降至 1 厘钱。

▶︎ 3. 无侵入、更优性能,应用监控 eBPF 版发布 

作为 2023 年最热门的可观测话题,eBPF 作为运行在 Linux 内核中的沙盒程序,无需修改任何代码,即可提供应用无关、语言无关、框架无关的应用可观测能力。Kubernetes 监控全新升级到应用监控 eBPF 版,新的应用监控 eBPF 版,无需要修改任何业务代码,企业无需关注语言、框架、协议,实现一键接入。应用监控 eBPF 版全新升级 Agent 和 Otel Collector 组件,Agent 性能提升 20%, Otel Collector 性能提升 80%,并基于 Grafana 构建指标大盘完全兼容开源标准,并提供网络监控能力,覆盖如 TCP Drop、TCP 重传等基础观测指标,同时还支持无侵入的 On CPU 持续剖析能力。

▶︎ 4. 全面统一,智能加持,可观测链路 OpenTelemetry 版 2.0 发布

链路数据作为可观测三大支柱之一,可观测链路 OpenTelemetry 版 2.0 全新升级为企业提供更便捷、统一的链路分析能力。首先,从数据层面实现阿里云链路追踪生态的全面统一,全面兼容各种开发语言与主流开源链路协议的接入,实现与 ARMS Trace 和日志服务 SLS Trace 的产品融合,一键打通 ALB 网关、MSE 网关、FC 函数计算等各种云服务的内部链路,真正实现了端到端全链路追踪。

其次,可视化层面全面升级交互体验,新版大盘兼容 Grafana 标准,支持自定义 PromQL 与大盘导出,用户可以根据自身场景需求进行定制修改;新版控制台还支持 Explorer 探索式交互,通过 Traces 与 Metircs、Logs 等数据的关联跳转,帮助用户快速挖掘数据间的关联特征,提升数据分析效率。

最后,全面增强链路数据的智能化诊断能力,通过阿里云沉淀多年的 Trace 模型异常检测算法,结合上下游的全栈观测数据,帮助用户实现错慢调用根因定位、容量或依赖瓶颈分析等经典场景的主动智能诊断。

▶︎ 5. 持续剖析能力全新发布

除了提供 Tracing 和 Metrics 以及 Logging 主流的可观测解决方案,ARMS 提供了开箱即用的持续剖析解决方案,持续剖析通过动态实时采集应用程序 CPU /内存等资源申请的堆栈信息,来观测和定位应用程序的性能瓶颈。在持续剖析产品能力方面,目前提供 CPU & 内存诊断通过持续剖析可实现低开销条件下常态化采集应用 CPU & 内存申请方法栈信息帮助定位 CPU & 内存申请热点问题。另外,还提供了代码热点通过持续剖析关联 TraceId & SpanId 信息提供针对调用链级的 On & Off-CPU 方法栈信息,可帮助解决慢调用链耗时定位问题。具备开销低、粒度细和所采集的方法栈完备特点的持续剖析能力,为用户提供一种新的应用性能观测与诊断视角。

▶︎ 6. 智能洞察 Insights 能力全新升级

随着 AIOps 的行业实践逐步落地,为了进一步降低企业构建 AIOps 成本,ARMS 提供智能洞察 Insights 能力作为面向可观测数据的智能分析服务,以 ARMS 可观测数据为基础,支持对阿里云产品的可观测数据集成。在数据集建设上,智能洞察 Insights 在时序异常检测、日志异常检测、微服务故障分析及可观测领域通用和专属问答知识库积累丰富的数据集。在模型建设上,智能洞察 Insights 基于自研+开源的智能运维算法模型和通义千问模型、构建了可观测领域的智能运维大模型能力, 为各类场景提供原子化算法支撑。在业务流程上,智能洞察 Insights 通过对可观测数据的汇聚关联、对各可观测产品和场景的算法编排、和对深入到代码方法栈的专家分析插件的支持,构建了从关联-->检测-->分析-->定位的特色智能洞察路径。

智能洞察 Insights 支持对可观测各类产品和场景的洞察分析, 例如支持对应用监控下的调用的智能归因分析,在内部基准测试集达到:95% 的异常检测准确率,支持对 PTS 压测过程中的智能报告分析, 助力全链路视角分析应用系统整体性能瓶颈,支持 Trace Explorer 中的一键异常 Trace 和 Span 分析、助力快速定位到异常 Span、异常 Host。

▶︎ 7. 更具性价比,GB 写入量计费模式重磅发布

过往由于可观测领域不同数据模型都有着不同的计费模型,导致企业进行成本规划时存在较高门槛。同时,计费模型与探针、实例等特定概念锚定,不能合理反应实际使用量,对于弹性及小流量业务不够友好。基于上述背景,全新计费模式统一 ARMS 各子产品不同计费项,按可观测数据写入量进行统一计费,单位计费 0.4 元 /GB。同时,为了进一步降低中小企业使用可观测的成为,ARMS 每月提供共计 200G 免费额度,降低企业成本担忧。新计费模式将于近期开启公测,支持新用户开通使用并逐步支持老用户升级到新计费,公测期间免费。

可靠技术是好产品的基石,可观测技术架构全面升级

可靠、完整的技术架构是云原生可观测产品的基石,也是云原生可观测产研团队一直以来的追求。为了进一步帮助企业构建更完整的可观测数据全景,云原生可观测对数据采集、数据链路、告警等不同层面进行了统一与升级。

▶︎ 1. 统一数据采集,全面兼容开源

ARMS 应用监控探针 4.0.0 以 OpenTelemetry Java Agent 为底座兼容 OpenTelemetry,定期同步开源代码中新插件支持,保持与开源版本的一致性;在性能方面相比老版探针大幅度提升,挂载探针启动时间消耗降低 50%,探针包大小减小 40%,降低到 50M,挂载探针后 RT 增长不超过 5%。同时,提供性能数据、事件以及插件状态数据等监控数据快速定位线上探针问题。并提供更加细粒度的动态功能降级满足不同企业观测需求。针对企业级场景,ARMS 应用监控探针提供丰富的采样策略,应用安全数据及性能诊断等功能。

▶︎ 2. 统一数据链路,构建可观测数据标准生态

为构建可观测数据的标准生态,ARMS 构建可观测统一数据链路。如整体架构图所示,各类型数据上报到网关后写入数据缓冲,由单独应用来消费,经过解压缩、反序列化、降采样、数据规整等业务处理后,按照标准化模型写入对应存储中。并实现资源调度中心来协调整个数据链路的处理,并通过自监控来观测分析数据链路自身质量。但在实际落地过程中,遇到了三个核心技术难点:

1)如何设计通用架构来提升数据吞吐: 通用性要求高度抽象,高吞吐要求业务拆分简单高效,如何抽象及拆分是统一数据链路的基础

2)如何融合多源数据形成统一可观测数据标准: 开源客户端种类丰富,如何通过一套数据链路支撑开源、自研 10 余种协议,如何定义数据模型和底层存储,实现“兼收并蓄,开放统一”,是数据链路的核心

3)如何降低运维成本,提升数据链路稳定性: 稳定性是数据链路的基石,通过自研二级调度和底层容器调度相结合,精细化控制资源。整个链路实现全面云原生化,面向容灾设计。

为了解决上述三个问题,实现统一的数据链路,我们进行三个方面建设:

第一步:线性化处理架构,海量数据稳定吞吐

从局部视角, 一个数据密集型应用,本质上可以拆分为 CPU 密集任务和 IO 密集任务,任务之间按照某种关联串联便形成了完整的数据链路。对于 CPU 密集型任务 我们实现了一种通用计算框架,达到线性化处理。对于 IO 密集任务 结合实际数据特征来做深度优化提升吞吐。

从全局视角来看, 核心解决的问题除了限流降级以及用户主动限制的业务逻辑之外,还解决了消费任务整体逻辑隔离,开发了二级调度,更灵活快速的调度任务、平衡负载,达到了节点故障时秒级任务切换。

从业务视角来看, 支持业务逻辑拆分成积木块的能力,默认提供:上下文相关和上下文无关两种能力。典型的应用场景,比如:上下游关系计算和应用指标计算。

通过数据统计,单租户每分钟吞吐在 5GB 以上,单租户 QPS 可达 10万+。

第二步:标准化可观测模型和存储,构建数据全景

在抽象和拆分的基础上,基于 OpenTelemetry 标准定义了一套标准模型来统一多元数据。并针对各种类型的数据实现统一格式存储,并结合数据特征来进行存储优化,比如 Trace 数据做冷热存储分离,来减少服务端存储成本,提升单位数据价值。针对 Metric 数据降采样,显著提升长期存储场景下的大跨度查询可用性和性能。同时,为了充分发挥可观测数据价值,我们在数据开放方面更加重视,通过多种措施致力于建设可观测数据的中台。比如明细数据正在从集中式存储演变为分散存储,每个用户直接可查询并二次分析。除此之外,提供丰富的 API 来查询各种类型数据,这些基于 OpenTelemetry 标准的数据可无缝对接如 Grafana 等各种开源组件。

第三步:云原生运维架构,建设高可靠可观测平台

整个数据链路全面云原生化,完全运行在阿里云容器服务上,通过业务混部,共享资源池的方式来提升机器使用率。相比之前旧链路减少 70% 资源占用。基于 K8s 的拓扑分布约束及节点亲和性实现多 AZ 部署和数据链路的容灾。自研二级调度组件来实现业务层资源分配、负载均衡,结合 K8s 资源调度实现快速扩缩、故障隔离等,进一步提升数据链路可靠性。对比旧架构,单区域全组件发布从 2 天缩短到 2 小时,开服周期从 2 周缩短到 2 天,全球版本拉齐,从 3 个月缩短到 1 个月;数据链路整体 SLA 可以达到 99.95%。

▶︎ 3. 统一告警,全栈数据源的标准化告警 

基于统一数据链路的数据获取,能够获得高质量数据,数据存储一致性确保从一个数据源获取到全栈指标的可靠性。此外,还提供更多告警类型并减少数据处理和转换需求,加快告警触发速度。指标定义一致性确保告警含义和计算方法在不同场景下保持一致,从而减少误报。在面对不断涌现的告警事件时,为企业提供抑制和静默等降噪手段,以确保告警在第一时间得到准确触达和处理。同时,在保证告警及时响应同时,提供基于多种策略的 ChatOps 服务,保证告警处理的闭环和流程的可控性。

除此之外,我们还利用智能算法提供了多种告警策略,如区间检测、阈值推荐和影响数评估等。这些策略不仅可以帮助用户降低配置成本,同时也为用户提供了更加丰富和高效的告警处理手段。

▶︎ 4. 统一界面,端端到产品的一致性体验

为了提升产品体验,我们基于开源技术进行全方位优化,通过自定义微应用接收开源框架内的事件,进一步拓展筛选交互、关联告警和指标等其他产品的展示,扩展了代理并提升了页面访问性能。同时,优化 Grafana 协议的兼容,确保全部开源能力的完全兼容的同时,享受到定制化带来的丰富插件和功能。并对开源架构进行改进以提升性能和稳定性。此外,引入模板方式来高效查询,从而消除原生大盘多副本的复杂性,实现更高效的查询效果。通过改进单 region 部署方式,提升跨地域查询速度和可靠性。改进冗余代码,删除无用资源并通过全球 CDN 加速,提高页面加载速度。为了实现更高效的业务产品接入,我们采用了适配器模式,支持多种数据源接入和面板展示,通过复用开源技术的插件市场提供的插件,实现更丰富的展示效果。通过多种采集上报方式,确保接入的高效性。

▶︎ 5. 构建全局数据图谱,消除数据孤岛 

面对异构数据类型所带来的挑战,为了实现数据间的关联和可视化,采用统一的元数据模型,对不同监控系统中的监控对象进行管理和跟踪,以实现实时变化的跟踪和监控。此外,通过拓扑信息将基础设施、容器、应用、云服务等不同观测组件的数据关联起来,形成一张系统的高级视图,从而更好的理解不同组件之间的依赖关系、通信路径和层次结构,并识别出原始数据中隐藏的模式和因果关系。

在构建数据图谱系统的过程中,融合多种观测对象的数据源,利用 Schema 定义和开放、自动化的方式从数据源中提取丰富的数据实体及关系,以满足观测数据处理流程中所需的上下文信息。并在 Trace、Metric 等观测数据处理流程中消费数据上下文信息,将其融入到应用全景图构建、运维知识图谱的构建以及问题的更准确定位中,发挥重要的价值。这样做有助于消除多种观测工具所带来的数据孤岛,并促进可观测体系的成熟度演化。

全面推动千行百业落地可观测

阿里云作为国内可观测领域的引领者,阿里云提供自研产品应用实时监控服务 ARMS 的同时,积极拥抱开源生态,提供可观测监控 Prometheus 版、可观测可视化 Grafana 版、可观测链路 Opentelemetry 版等诸多可观测产品,全面兼容主流可观测开源项目,使用标准化技术向下连接存量、碎片化可观测数据,向上帮助客户形成自己独有、无厂商锁定的可观测解决方案,实现真正的客户成功。

阿里云云原生可观测凭借其完备产品能力与良好的生态集成能力以及出色的成本优势,收获了国内外行业机构的高度认可。阿里云应用实时监控服务 ARMS 多次获得中国信通院可观测产品先进级认证 同时,阿里云连续多年进入 Gartner 应用性能管理与可观测魔力象限。

万物皆云的时代,可观测性让云计算更易用高效,也将可观测数据的业务价值最大程度释放。不止于观测,可观测帮助企业分析、洞察并实现高质量的决策与业务创新。而阿里云云原生可观测将不断推动可观测技术演进与落地实践,帮助企业真正实现高质量数字化转型与创新。

目前,云原生可观测提供诸多免费使用、Demo 体验及场景试用,满足不同角色、不同职能全面了解可观测产品价值。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部