← Back
Dynamic-Tracing

不改代码、不重启服务:OpenResty XRay 如何对生产环境做全栈动态追踪

  • 现有动态追踪框架的技术权衡与生产环境局限性
  • OpenResty XRay 的动态追踪架构级突破
  • 全栈火焰图
  • 能力边界的持续扩展
  • 现有动态追踪框架的技术权衡与生产环境局限性
  • OpenResty XRay 的动态追踪架构级突破
  • 全栈火焰图
  • 能力边界的持续扩展

动态追踪的瑞士军刀:Y 语言如何让动态追踪不再复杂

  • 行业痛点:为什么我们迫切需要一门全新的追踪语言?
  • 技术硬实力:Y 语言凭什么敢说“革命性”?
  • Y 语言语法:熟悉的 C,更强大的追踪能力
  • 杀手级应用场景:解决传统工具无法解决的问题
  • 全平台支持:没有 Y 语言到不了的地方
  • 行业痛点:为什么我们迫切需要一门全新的追踪语言?
  • 技术硬实力:Y 语言凭什么敢说“革命性”?
  • Y 语言语法:熟悉的 C,更强大的追踪能力
  • 杀手级应用场景:解决传统工具无法解决的问题
  • 全平台支持:没有 Y 语言到不了的地方

日志、埋点、A/B 测试都不够用了?你该了解”动态追踪”

  • 传统方法 vs 动态追踪:效率与控制力的革命
  • 动态追踪:系统的“透视眼”
  • 从火焰图到系统全景
  • 为什么选择 OpenResty XRay?
  • 动态追踪的新边界
  • 传统方法 vs 动态追踪:效率与控制力的革命
  • 动态追踪:系统的“透视眼”
  • 从火焰图到系统全景
  • 为什么选择 OpenResty XRay?
  • 动态追踪的新边界

使用 C++ 动态追踪 C++ 应用

  • 设置目标 C++ 程序
  • 编写 C++(或 Y++)分析器
  • 将目标和分析器投入运行
  • 支持复杂 C++ 应用的进展
  • 关于调试符号
  • 结论
Photo by 章亦春
  • 设置目标 C++ 程序
  • 编写 C++(或 Y++)分析器
  • 将目标和分析器投入运行
  • 支持复杂 C++ 应用的进展
  • 关于调试符号
  • 结论

自动分析 Core Dump(使用 OpenResty XRay)

  • 定位崩溃的 OpenResty/Nginx worker 进程产生的 core dump 文件
  • 在 OpenResty XRay 中启动自动(引导式)core dump 分析
  • 解读崩溃时的信号、CPU 寄存器和 C 调用栈
  • 沿着 Lua 调用栈定位到精确的崩溃代码行
  • 针对线上 core dump 的自动 Insights 报告
  • 定位崩溃的 OpenResty/Nginx worker 进程产生的 core dump 文件
  • 在 OpenResty XRay 中启动自动(引导式)core dump 分析
  • 解读崩溃时的信号、CPU 寄存器和 C 调用栈
  • 沿着 Lua 调用栈定位到精确的崩溃代码行
  • 针对线上 core dump 的自动 Insights 报告

Envoy CPU 性能分析:用火焰图定位 C++ 热路径

  • 场景:Envoy 进程 CPU 占用超 90%
  • 用 C++ 火焰图分析 Envoy CPU 消耗
  • 持续 CPU 监控与自动化报告
  • 关于 OpenResty XRay
  • FAQ:Envoy CPU 性能分析
  • 场景:Envoy 进程 CPU 占用超 90%
  • 用 C++ 火焰图分析 Envoy CPU 消耗
  • 持续 CPU 监控与自动化报告
  • 关于 OpenResty XRay
  • FAQ:Envoy CPU 性能分析

Ylang 生产实战:容器追踪、栈回溯与 Core Dump 分析(第四集,全四集)

  • 透明的跨容器追踪
    • 高效的栈展开
    • 分析已终止进程(core dumps)
    • 极低的追踪开销
    • 标准 Y 语言库和工具
    • 网络过滤和控制
    • Y 语言编译器的实现
    • 操作系统支持
    • 对开源社区的贡献
    • 结论
    • 致谢
Photo by 章亦春
  • 透明的跨容器追踪
    • 高效的栈展开
    • 分析已终止进程(core dumps)
    • 极低的追踪开销
    • 标准 Y 语言库和工具
    • 网络过滤和控制
    • Y 语言编译器的实现
    • 操作系统支持
    • 对开源社区的贡献
    • 结论
    • 致谢

Ylang:正则表达式、完整控制流与透明调试符号处理(第三集,全四集)

  • Y 语言的语法(接上文)
    • 字符串
    • 内置的正则表达式支持
    • 完整控制流支持
    • 浮点数支持
    • 与开源工具链的比较
  • 清晰的调试符号方式
    • 调试符号:无运行期系统开销
    • 集中的软件包数据库
    • 模糊匹配调试符号
Photo by 章亦春
  • Y 语言的语法(接上文)
    • 字符串
    • 内置的正则表达式支持
    • 完整控制流支持
    • 浮点数支持
    • 与开源工具链的比较
  • 清晰的调试符号方式
    • 调试符号:无运行期系统开销
    • 集中的软件包数据库
    • 模糊匹配调试符号

Ylang: 适用于 eBPF、SystemTap、GDB 等框架的动态追踪语言(第一集,全四集)

  • 什么是动态追踪
  • 为什么命名为 “Y”
  • Ylang 入门
  • 动态追踪后端:eBPF+、Stap+、GDB 和 ODB
  • 为什么动态追踪需要一个统一的前端语言
  • Ylang 语法:真正兼容 C
  • 常见问题
Photo by 章亦春
  • 什么是动态追踪
  • 为什么命名为 “Y”
  • Ylang 入门
  • 动态追踪后端:eBPF+、Stap+、GDB 和 ODB
  • 为什么动态追踪需要一个统一的前端语言
  • Ylang 语法:真正兼容 C
  • 常见问题

Nginx 正则性能:用动态追踪定位最慢的正则模式

  • 前提条件与环境
  • 用 CPU 火焰图定位慢正则
  • 正则优化后的性能对比
  • 用 lua_regex_match_limit 限制 PCRE 回溯
  • 非回溯引擎:RE2 与 OpenResty Regex
  • Lua 内置模式作为正则替代
  • 在 Docker 和 Kubernetes 中追踪正则性能
  • 动态追踪工具的实现原理
  • 工具开销:非采样时为零
  • FAQ:Nginx 正则性能
  • 前提条件与环境
  • 用 CPU 火焰图定位慢正则
  • 正则优化后的性能对比
  • 用 lua_regex_match_limit 限制 PCRE 回溯
  • 非回溯引擎:RE2 与 OpenResty Regex
  • Lua 内置模式作为正则替代
  • 在 Docker 和 Kubernetes 中追踪正则性能
  • 动态追踪工具的实现原理
  • 工具开销:非采样时为零
  • FAQ:Nginx 正则性能

Lua CPU 火焰图实战:在线定位 LuaJIT 性能瓶颈

  • 什么是 Lua CPU 火焰图
  • 分析简单 LuaJIT 应用:验证火焰图精度
  • 生产环境实战:复杂 LuaJIT 应用
  • 采样开销
  • 生产安全性:不修改目标进程
  • 兼容性
  • 常见问题
Photo by Guido Jansen
  • 什么是 Lua CPU 火焰图
  • 分析简单 LuaJIT 应用:验证火焰图精度
  • 生产环境实战:复杂 LuaJIT 应用
  • 采样开销
  • 生产安全性:不修改目标进程
  • 兼容性
  • 常见问题

LuaJIT GC64 模式

  • 老的内存限制
    • 何时会碰到这个内存限制
    • 内存限制是每进程的
    • GC 管理的内存
    • 不由 GC 管理的内存
    • 提升 x64 模式的内存上限到 4 GB
  • 新的 GC64 模式
    • 如何开启 GC64 模式
    • 性能影响
    • 调试分析工具链
  • 老的内存限制
    • 何时会碰到这个内存限制
    • 内存限制是每进程的
    • GC 管理的内存
    • 不由 GC 管理的内存
    • 提升 x64 模式的内存上限到 4 GB
  • 新的 GC64 模式
    • 如何开启 GC64 模式
    • 性能影响
    • 调试分析工具链

动态追踪技术漫谈

  • 什么是动态追踪
  • 动态追踪的优点
  • DTrace 与 SystemTap
  • SystemTap 在生产上的应用
  • 火焰图
  • 方法论
  • 知识就是力量
  • 开源与调试符号
  • Linux 内核的支持
  • 硬件追踪
  • 死亡进程的遗骸分析
  • 传统的调试技术
  • 凌乱的调试世界
  • OpenResty XRay
Photo by Philip Brown
  • 什么是动态追踪
  • 动态追踪的优点
  • DTrace 与 SystemTap
  • SystemTap 在生产上的应用
  • 火焰图
  • 方法论
  • 知识就是力量
  • 开源与调试符号
  • Linux 内核的支持
  • 硬件追踪
  • 死亡进程的遗骸分析
  • 传统的调试技术
  • 凌乱的调试世界
  • OpenResty XRay
联系我们

很乐意听到您的反馈,请与我们联系 👋

成功发送消息!

我们的专家团队将在 24 小时之内与您联系。
x