为什么你需要自己写一个APM系统?

市面上的SkyWalking、Jaeger等工具固然强大,但在企业落地时往往面临定制化困难、黑盒调试成本高以及过度依赖开源组件的问题。这门课的核心价值在于“从零造轮子”,通过完整复现一个高性能的APM监控系统,帮你打通可观测性领域的底层逻辑。你将不再局限于使用工具,而是真正理解链路追踪、指标收集和日志系统这“三板斧”是如何协同工作的,以及OpenTelemetry标准背后的一致性协议设计哲学。

课程知识架构与学习路径建议

课程采用“业务侧模拟+监控侧采集”的双向架构。前半部分聚焦于Golang微服务开发,通过构建电商下单场景中的用户、商品、订单服务,配合Docker容器化部署Redis和MySQL,为APM系统提供真实的流量载体。这部分是后续数据采集的基础,务必掌握统一返回格式、日志封装及数据库交互规范。

后半部分进入核心监控架构,从综述开篇,对比主流链路监控工具与OpenTracing、OpenCensus的关系,深入讲解数据采集、传输至存储的全链路实现。建议先通读第二章建立全局视野,再进入第三章搭建业务环境,最后回到第一章梳理整体目标,避免陷入代码细节而丢失架构主线。

学完能独立做什么?

完成本课程后,你将具备独立设计并实现企业级可观测性平台的能力。具体包括:能够基于Go语言构建支持高并发的分布式追踪采集器;理解Trace、Metric、Log三者的关联与差异化处理策略;掌握在复杂微服务架构下定位性能瓶颈的方法论。配套的练习资料将引导你完成从服务桩代码到监控报表生成的全流程,确保每个知识点都有落地的代码验证,最终形成一套可复用的高性能监控解决方案。

课程目录

第10章 整体课程内容总结
10-1 课程总结.mp4 42.19M
第1章 课程整体介绍
1-1 课程导学.mp4 57.06M
第2章 【APM监控系统的综述和架构概览】 全方位认识apm系统
2-1 APM监控系统的整体介绍,了解apm系统的核心概念.mp4 17.03M
2-2 为什么需要开发一套APM系统?了解它在企业中的重要性.mp4 36.12M
2-3 APM系统的三板斧介绍--链路追踪,指标,日志.mp4 56.72M
2-4 APM工具选型(一)常见链路监控工具对比(1).mp4 64.79M
2-5 OpenTracing,OpenCensus,OpenTelemetry三者之间的联系.mp4 82.90M
2-6 APM工具选型(二) 指标和日志采集分析工具介绍-.mp4 39.36M
2-7 APM产品的最终成果.mp4 101.52M
第3章 基于Golang构建电商下单微服务,为APM系统提供基础代码框架
3-1 本章导学.mp4 6.75M
3-10 项目构建--服务启动逻辑优化.mp4 61.30M
3-11 项目构建--统一http服务返回格式.mp4 46.36M
3-12 项目构建--日志打印.mp4 39.04M
3-13 项目构建--封装sql 返回工具方法.mp4 15.87M
3-14 项目构建--实现订单服务业务逻辑.mp4 59.40M
3-15 项目构建--实现商品服务业务逻辑.mp4 70.78M
3-16 项目构建--实现用户服务业务逻辑.mp4 63.11M
3-2 docker以及docker compose 安装 优化版.mp4 13.51M
3-3 docker compose配置讲解.mp4 16.89M
3-4 docker compose 安装redis 和mysql 优化版.mp4 24.52M
3-5 项目构建--详解项目开发需求.mp4 18.00M
3-6 项目构建--项目代码结构与表结构介绍.mp4 66.36M
3-7 项目构建--创建db和redis连接.mp4 83.69M
3-8 项目构建--创建http服务器.mp4 48.93M
3-9 项目构建--创建grpc服务.mp4 96.40M
第4章 项目实战步骤一:【构建APM系统之分布式链路追踪技术】
4-1 本章导学.mp4 4.49M
4-10 确定有意义的调用链路.mp4 18.25M
4-11 【实战】对含有错误信息的链路进行跟踪.mp4 129.07M
4-12 【技术详解】go-mysql库源码剖析.mp4 117.16M
4-13 【实战】装饰器模式封装mysql驱动(1).mp4 78.81M
4-14 【实战】装饰器模式封装mysql(2).mp4 89.31M
4-15 【实战】装饰器模式封装mysql驱动(3).mp4 21.97M
4-16 【实战】对含有mysql慢查询的链路进行跟踪.mp4 105.47M
4-17 【实战】对含有长事务的链路进行跟踪.mp4 73.54M
4-18 【实战】对含有redis报错请求的链路进行跟踪.mp4 50.75M
4-19 【实战】对服务器慢http接口的链路进行跟踪.mp4 111.46M
4-2 【技术详解】链路追踪基本概念.mp4 67.78M
4-20 实战】对慢grpc接口的链路进行跟踪.mp4 87.71M
4-21 【实战】业务维度监控之下单成功数指标监控.mp4 68.35M
4-3 【问题分析】链路追踪系统落地过程中的挑战.mp4 58.91M
4-4 【技术详解】Opentelemetry 介绍.mp4 42.86M
4-5 【技术详解】OpenTelemetry Collector安装以及配置文件介绍.mp4 39.31M
4-6 【实战】OpenTelemetry Collector 实战, 掌握opentelemetry sdk用法.mp4 57.53M
4-7 【技术详解】Opentelemetry Collector Extension 插件介绍.mp4 37.71M
4-8 【实战】jaeger对追踪数据展示.mp4 44.43M
4-9 【实战】后置采样配置与实践.mp4 71.89M
第5章 项目实战步骤二:【构建APM系统之建设应用性能监控指标】
5-1 本章导学.mp4 9.47M
5-10 【实战】用grafana绘制监控面板(二).mp4 23.60M
5-11 【实战】对接口进行压测观察qps统计数据.mp4 29.41M
5-12 【实战】对grpc接口创建qps,错误数指标.mp4 66.22M
5-13 【实战】对grpc接口创建qps,错误数指标 监控面板.mp4 19.71M
5-14 【实战】创建应用服务维度mysql监控,sql语法分析.mp4 41.59M
5-15 【实战】创建应用服务维度mysql监控,代码实现.mp4 98.75M
5-16 【实战】创建应用服务维度mysql监控,绘制监控面板.mp4 64.38M
5-17 【实战】对应用服务runtime 指标的监控(一).mp4 102.90M
5-18 【实战】对应用服务runtime 指标的监控(二).mp4 43.33M
5-19 分支【实战】对应用服务内部流量进行分布监控.mp4 76.37M
5-2 【原理】建立性能监控指标的原则有哪些?.mp4 95.28M
5-20 【实战】业务维度监控之下单成功数指标监控.mp4 68.35M
5-3 【原理】建立性能监控指标的方法论-四大黄金指标原则,use red方法.mp4 42.35M
5-4 【原理】详解prometheus绘图原理.mp4 59.69M
5-5 【原理】详解prometheus 四大监控指标类型.mp4 75.65M
5-6 【原理】详解prometheus常用函数.mp4 33.25M
5-7 【实战】确定要建立的监控指标.mp4 46.54M
5-8 【实战】为http接口创建qps,错误数 统计指标.mp4 91.13M
5-9 【实战】用grafana绘制监控面板(一).mp4 108.23M
第6章 项目实战步骤三:【构建APM系统之精准定位问题代码】
6-1 【原理】golang中性能监控的大杀器--golang pprof.mp4 30.65M
6-10 【原理】go trace 分析延迟性问题.mp4 117.58M
6-11 【实战】自动化pprof机制的实现--holmes 库的使用.mp4 80.84M
6-12 【原理】自动化pprof机制的实现--holmes库源码解读.mp4 36.62M
6-13 【实战】电商项目优化--引入holmes实现自动化pprof.mp4 32.53M
6-14 【实战】终端一键生成生成pprof profile 之 gops的使用-.mp4 30.07M
6-15 【实战】巧用pprof工具分析内存泄漏问题.mp4 33.51M
6-2 【实战】如何使用 golang pprof 来进行性能排查(一)-排查cpu性能问题?.mp4 100.61M
6-3 【实战】如何使用 golang pprof 来进行性能排查(二)-排查内存性能问题?.mp4 78.14M
6-4 【实战】如何使用 golang pprof 来进行性能排查(三)-排查block阻塞问题?.mp4 60.67M
6-5 【实战】如何使用 golang pprof 来进行性能排查(四)-排查加锁性能问题?.mp4 29.54M
6-6 【实战】如何使用 golang pprof 来进行性能排查(五)-排查goroutine th.mp4 37.81M
6-7 【原理】golang pprof源码分析 -- cpu占用率统计原理【版权修正版】.mp4 46.86M
6-8 【原理】golang pprof源码分析 --memory,block,mutex 统计原理.mp4 167.85M
6-9 【原理】golang pprof源码分析 -- goroutine thread 统计原理.mp4 68.44M
第7章 项目实战步骤四:【构建APM系统之应用服务日志收集】
7-1 本章概述.mp4 6.24M
7-10 【实战】索引生命周期的配置.mp4 13.57M
7-11 【实战】mysql 审计日志打印.mp4 32.13M
7-12 【实战】kibana 分析日志.mp4 24.19M
7-2 【原理】详解日志收集架构模型.mp4 5.24M
7-3 【原理】通过ELK技术栈来解决日志收集-详解elasticsearch.mp4 105.11M
7-4 【原理】通过ELK技术栈来解决日志收集-详解kibana.mp4 35.65M
7-5 【实战】 服务器日志采用文件存储.mp4 72.58M
7-6 【实战】通过ELK技术栈来解决日志收集-filebeat收集日志.mp4 26.82M
7-7 【实战】通过ELK技术栈来解决日志收集-logstash收集日志.mp4 18.75M
7-8 【实战】kibana展示日志.mp4 46.26M
7-9 【实战】索引模板配置.mp4 37.60M
第8章 项目实战步骤五:【构建APM系统之自研告警系统】
8-1 【原理】 自研告警服务需求分析以及表结构介绍.mp4 44.30M
8-10 【实战】 手写代码进行监控埋点-.mp4 34.90M
8-11 【实战】 dogalarm 自监控面板 _denois.mp4 41.55M
8-12 【实战】保活机制自动重启应用服务.mp4 153.19M
8-2 【实战】 doglarm服务基础代码框架搭建.mp4 45.93M
8-3 【原理】grafana告警规则配置详解.mp4 111.14M
8-4 【实战】 实现grafana 指标告警接口_denois.mp4 93.22M
8-5 【实战】 实现错误等级Error的日志告警.mp4 39.22M
8-6 【实战】 接入电话告警.mp4 58.19M
8-7 【实战】 接入钉钉告警.mp4 27.41M
8-8 【实战】 对日志内容进行限流排重处理.mp4 102.57M
8-9 【实战】 增加应用服务保活探测机制_denois.mp4 99.95M
第9章 APM系统拓展:【APM系统组件做自监控】
9-1 如何衡量APM系统本身是正常运行的?.mp4 10.26M
9-2 衡量apm系统本身性能的通用手段的副本.mp4 104.69M
9-3 apm自监控及扩容思路之链路追踪系统容量瓶颈分析的副本.mp4 99.71M
9-4 apm自监控及扩容思路之日志手机系统容量分析及扩容思路的副本.mp4 60.48M
9-5 apm自监控及扩容思路之指标系统容量分析及扩容思路.mp4 36.13M
mksz883-高性能GO企业级APM监控系统实战/
1-1