阿里十年链路追踪与应用可观测实战

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1. 阿里里里十十年年链路路追踪与应用用可观测实战 夏明(涯海海) - 2021/11/27
2. 个人人简介 • 夏明(涯海海),硕士士毕业于华中科技大大学。 • 2016年年加入入阿里里里巴巴中间件 EagleEye 团队。 • 2019年年发起 GitHub 稳定性专栏 StabilityGuide。 • 2020年年担任阿里里里中间件双十十一一大大促队⻓长。 • 目目前从事阿里里里云 ARMS 产品的开发与设计。 EagleEye StabilityGuide 中间件大大促队⻓长 ARMS 国内最早的链路路追踪系统之一一 GitHub 稳定性领域知识库 业务视⻆角观察大大促稳定性与备战 阿里里里云全栈可观测产品 2016年年 2019年年 2020年年 2021年年
3. 阿里里里巴巴服务端架构与应用用可观测能力力力演进 2011- 2013 微服务化 2013- 2016 2019- 2021 核心心能力力力 EagleEye 1.0 单请求回溯能力力力,基于单请求的分析能力力力. EagleEye 2.0 具备无无侵入入的业务埋点与染色色能力力力,基础 APM 能力力力。 EagleEye 3.0 / ARMS 1.0 实现完备的应用用侧事前预防、事中监控、事后复盘功能; 具备日日志、指标、链路路三位一一体的能力力力。 DevOps/运维自自动化 2016- 2017 2017- 2019 代表产品 业务中台化 核心心系统 IaaS 上云 云原生生全面面升级 ARMS 2.0 向上连接用用户体验、向下连接容器器与云服务基础设施。 ARMS 3.0 具备自自动化诊断能力力力,多语言言无无侵入入埋点,以及全面面升级的 去中心心化计算能力力力。
4. 分享大大纲 • 微服务架构下的分布式链路路追踪挑战,在中大大型企业如何进行行行冷启动和规模化推广广? (EagleEye 1.0 - EagleEye 2.0 建设经验) • 如何向上赋能业务,通过应用用可观测技术更更好解决业务稳定性挑战。 (ARMS 1.0 - ARMS 2.0 建设经验) • 云原生生时代可观测技术的趋势和技术选型。 (ARMS 3.0 建设经验)
5. 微服务架构下的分布式链路路追踪挑战 • 在中大大型企业如何进行行行冷启动和规模化推广广? • 如何解决大大规模探针的持续管理理以及随之而而来的稳定性问题? • 如何解决项目目初期成本与收益问题? • 如何解决最后一一公里里里问题定位? • 如何建立立告警响应与协同机制?
6. 大大规模探针管理理与稳定性保证,以及与微服务管控面面的集成 • 大大规模探针管理理挑战 • • • 为应对中间件客户端、微服务治理理技术演进,平均每个月月要对探针做一一次升级。 80% 探针引发的故障来自自于埋点造成的内存泄漏漏或异常。 全链路路微服务治理理能力力力,高高度依赖链路路标记透传,高高质量量埋点是基础。 • 第一一代 Fat Jar 技术:Pandora • • • 解决大大规模场景下的 Java 中间件安装、配置管理理与升级问题。 仅限于阿里里里中间件客户端,受限的开源客户端支支持能力力力。 支支持批量量版本检测与发布卡点。 • 第二二代 Java Agent 技术:ARMS • 通过字节码增强,植入入中间件埋点、微服务路路由,实现端侧 监管控一一体化。 • • 对近五年年的主流中间件客户端全面面兼容。 • • • 集成应用用级别安全防护能力力力(RASP)。 与应用用托管服务的高高度集成,如容器器服务(ACK, ASK) 函数计算(FC),应用用托管(SAE,EDAS)。 通过 InitContainer 实现探针自自动注入入与升级。 通过灰度规则实现多版本管控。
7. 如何解决项目目初期成本与收益问题? • 识别什什么是有价值的数据? 热数据(默认30分钟) 链 路路 数 据 价 值 链 路路 数 据 价 值 分钟 小小时 天 月月 • 热数据短时全量量存储 • 冷数据错慢定制存储 分钟 小小时 天 月月 分钟 小小时 天 月月 数 据 存 储 费 用用 数 据 存 储 费 用用 分钟 小小时 天 常规存储 月月 冷数数据分离存储
8. 边缘计算(预聚合+Tail-based Sampling) + 冷热数据分离 • 全量量存储 vs 按需存储,成本约下降 3~10 倍! • 热数据实时分析:30分钟全量量调用用链实时查询&分析,满足足在线诊断需求。 • 冷数据精准采样:根据链路路特征自自定义采样策略略(Tail-based Sampling),只持久化存储需要的调用用链(比比如错慢调用用),大大幅降低存储成本。 • 监控指标客户端预聚合:在业务应用用容器器内进行行行指标预聚合,监控告警的数据准确度不不受调用用链采样率影响,低成本实现精准统计。
9. 最后一一公里里里问题定位 生生产环境的复杂性,无无法仅通过调用用链定位根因,需要结合关联的指标、日日志、事件、方方法栈等多维度数据综合分析。 1. 多维条件过滤 • 根据多维组合条件,筛选影响性能或稳定性的关键链路路特征, 比比如特定接口口、IP、业务标签等。 2. 上下游请求回溯 • 查看调用用链详情(含参数、SQL语句句等),分析上下游调用用关系, 定位瓶颈节点。 3. 关联业务日日志 • 查看异常调用用相关联的业务日日志,比比如业务错误码、订单ID等, 分析业务行行行为或轨迹。 4. 方方法栈追踪 • 查看慢调用用本地方方法堆栈,定位耗时高高的代码行行行,及时优化。 5. 综合诊断定位 • 如果上述信息还不不足足以定位根因,还可以通过内存诊断、GC 日日志 分析、线程池监控、在线 Profiling(如 Arthas)等工工具结合定位。
10. 建立立告警响应与协同机制 • 告警建设的的“三个阶段” • 起步阶段:沉淀通用用的应用用/容器器/中间件告警模板,一一键快速构建预警能力力力,解决 “0到1” 的问题。 • 爆发阶段:集成多种告警源数据,提炼⻛风险信息,简化应急流程,解决 “N到1” 的问题。 • 提效阶段:基于 ChatOps 的线上协同运维支支持实时信息同步,解决系统和人人员快速膨胀导致复杂度指数级增⻓长的 “应急协同” 问题。 起步阶段:通过告警模板快速构建预警能力力力 爆发阶段:通过告警集成管理理多种告警源 提效阶段:通过 ChatOps 实现“应急协同” 消息堆积量量超过 5w,持续时 间 2分钟,可能影响 xxxxxx 告警模板 告警集成管理理 通知 升级 接手手 转交 修复 扩容 值班 主管 ChatOps 协同运维 已接手手,处理理中 已扩容恢复
11. 面面向业务场景的应用用可观测技术拓拓展 • 如何向上赋能业务,更更好的解决业务稳定性问题? • 以业务场景为中心心的染色色链路路 • 面面向业务视⻆角的自自定义监控大大盘 • 保障业务安全的运行行行时⻛风险识别
12. 以业务场景为中心心的染色色链路路 • 无无侵入入业务染色色 • 将 RPC 流量量打上业务标签,染出不不同场景的业务链路路。 • 染色色规则动态下发、即时生生效,无无需修改代码或重启应用用。 • Tail-based Sampling • 逆向采样保证上游链路路完整性。 染色色规则 应用用1 应用用2 应用用3 逆向采样 采样决策点 染色色标记 应用用4 染色色标记 应用用5
13. 自自定义监控大大盘 双十十一一实时监控大大盘 交易易笔数 w/s 各区域性能监控 Top 业务错误码 地域 耗时 成功率 错误码 张家口口 496ms 99.9% 库存不不足足 266 387 419 上海海 488ms 99.9% 优惠失效 23 26 32 杭州 492ms 99.9% 下单超时 22 24 28 北北京 486ms 99.9% 下单失败 16 18 21 2 0 4 1 0 2 支支付笔数 w/s 深圳 495ms 99.9% 支支付失败 ⻘青岛 712ms 82.1% 支支付超时 00:10 00:09 00:08 Prometheus + Grafana = See what you want ! • Metrics 格式统一一,支支持 PromQL 语法 • 业务指标来源:支支持 Prometheus 自自定义 Exporter;APM 染色色链路路数据等。 • 应用用指标来源:APM 探针,包括 HTTP/RPC/DB/Cache/MQ/JVM 等。 • 中间件指标来源:Prometheus 云产品监控。 • 基础设施监控:Prometheus 容器器监控。 核心心应用用A 限流 w/s 耗时 核心心应用用C 核心心应用用B 成功率 限流 w/s 耗时 成功率 限流 w/s 耗时 成功率 限流 w/s 耗时 中间件 & 基础设施监控 慢SQL 缓存命中率 消息堆积 配置推送时延 • Grafana 自自定义大大盘 核心心应用用D 网网络重传率 …… 成功率 • 支支持多种数据源,灵活定义监控大大盘。
14. 保障业务安全的运行行行时⻛风险识别 很多性能问题只是表象,背后其实是业务安全问题。比比如机器器被入入侵后执行行行“挖矿任务”,处理理此类⻛风险的同学其实是同一一拨人人,承担了了 DevSecOps 的职责。 目目前比比较流行行行的 RASP(Runtime Application Self-Protection) 技术,可以实现应用用程序运行行行时攻击检测与自自我保护,是可观测探针技术在安全领域的延展。 功能强大大 性能优异 便便捷安全 0day防御 CPU 开销 < 1% 代码无无侵入入 攻击溯源 内存开销 < 30M 软熔断逃生生 危险组件探测 RT < 1ms 观察模式 代码审计 IDC ( ) APPs Running Anywhere 漏漏洞洞定位分析
15. 云原生生时代可观测技术的趋势与技术选型 • 基础软件架构 • 分布式云、混合云 • 容器器化、微服务、DevOps 成为主流 • 可观测技术趋势 • 标准逐渐成型 • 技术栈逐渐收敛(OpenTelemetry、Prometheus) • 自自动诊断成为可能 • 监控逐渐立立体化 • 无无侵入入可观测技术逐渐成熟(eBPF) • 去中心心化趋势 • 数据去中心心化(Observability Federation) • 协同去中心心化(ChatOps)
16. 容器器场景下的全景监控能力力力 • 多源数据接入入:覆盖从基础设施到应用用的全链路路数据 (Prometheus、Loki、eBPF、APM、RUM、拨测等) • 全方方位数据可视:支支持 2D/3D 拓拓扑全景展示,支支持端到端链路路 下钻分析。 • 快速问题发现:定时检查集群的资源状态,问题节点自自动上报。
17. THANKS /感谢聆听 -------- Q&A Section -------- StabilityGuide ,欢迎大大家参与共建! GitHub 稳定性领域知识库:
18. 附录1:从 0 到 1 建设可观测体系 1. 异构应用用全链路路上下文文透传 2. 冷热数据按需存储,大大幅降低成本 3. 开源格式统一一,免费开箱即用用 4. 最佳实践沉淀,灵活扩展 统一一监控 前端 ARMS Trace Framework CDN 探针 Grafana 统一一展示大大盘 TraceCtx Go 应用用 采集上报 开源 SDK 全球部署 全托管免运维 Metrics 指标数据 预置图表 自自定义图表 (K8S容器器/应用用基础指标免费) 统一一告警 TraceCtx PromQL 自自定义告警 数据加工工 Nginx 网网关 告警模板 ChatOps 开源 SDK 热存储 TraceCtx Java 应用用 Java Agent TraceCtx Java 应用用 开源标准 格式统一一 Traces 链路路数据 (调用用链基础采样免费) 30分钟 二二次开发 开源数据标准,存储开放 Java Agent OpenAPI 冷存储 错慢精准采样 数据投递 30天 Logs 日日志数据 冷热数据,按需存储,成本下降 3~10倍! (日日志限额免费) 根因定位 Application Insights 自自动诊断 云组件(DB、Cache、MQ等) Arthas 单机诊断 微服务/ 数据库治理理
19. 附录2:阿里里里云 ARMS APM 全球领先、国内第一一 2021 Magic Quadrant 入入选 Gartner APM 象限,国内唯一一云厂厂商 Gartner 评价阿里里里云 APM: • 中国影响力力力最强:阿里里里云是中国最大大的云服务提供商,阿里里里云用用户可以使用用 云上监控工工具来满足足其可观测需求。 • 开源集成:阿里里里云非非常重视将开源标准和产品(例例如 Prometheus)集成到其 平台中。 • 成本优势:与在阿里里里云上使用用第三方方 APM 产品相比比,阿里里里云 APM 产品具有 更更高高的成本收益。

Accueil - Wiki
Copyright © 2011-2024 iteam. Current version is 2.137.1. UTC+08:00, 2024-11-18 06:15
浙ICP备14020137号-1 $Carte des visiteurs$