SRE Weekly
w41
Managing Datadog with Terraform: 使用 terraform,直接创建datadog 的监控、仪表盘;也可以在创建 IaaS 资源的时候,顺便创建对应的 datadog 监控。terraform 是纯文本描述的、通过声明式配置文件来管理和供应基础设施资源的工具,因此适合管理大型基础设施。
Demystifying Automatic Instrumentation: How the Magic Actually Works: 介绍自动插桩的一些常用技术方案。即:猴子补丁、字节码插桩、编译时插桩、eBPF 和语言运行时 API。每种技术都利用了不同编程语言和运行时环境的独特特性,无需更改代码即可添加可观察性。
- 猴子补丁:常用于 js、python、ruby 等动态语言。比如 js 的 require-in-the-middle 库允许我们在模块加载时执行此替换,拦截模块加载过程,在应用程序使用之前修改导出的函数
- 字节码插桩:对于运行在虚拟机上的语言,字节码插桩提供了一种强大的方法。这种技术通过修改虚拟机加载编译后的字节码来实现,使我们能够在指令级别注入代码。典型示例如 Java 的 Instrumentation API
- 编译时插桩:对于 Go 等静态编译语言,编译时 instrumentation 提供了一种不同的方法。它不是在运行时修改代码,而是在构建过程中使用抽象语法树(AST)操作转换源代码。缺点是,必须要嵌入到源码构建和 CI/CD 流程中
- eBPF 插桩:eBPF 代表了一种完全不同的自动插桩方法。它不是修改应用程序代码或字节码,而是在内核级别工作,将探针附加到运行应用程序中的函数入口和出口点。
- 语言运行时 API:一些语言提供内置的 instrumentation API,提供更集成的方案。PHP 8.0 中引入的 Observer API 就是这种方案的典型例子
Amazon CloudWatch Application Signals new enhancements for application monitoring: AWS CloudWatch 的一些更新,提到了他们使用大模型来做根因分析的一些实践;提到了 SLO/SLI 视图。
PagerDuty H2 2025 Release: 150+ Customer-Driven Features, AI Agents, and More: PagerDuty 的 H2 2025 功能更新,包含值班排程、事件管理;智能化方面包含
- Shift Agent:排班助手,该系统在后台主动运行——监控日历、检测潜在冲突、识别合格替岗人员、协调排班变更
- Scribe Agent:转录助手,可以将 zoom 会议的内容转录到 im 中,还可以进一步进行分析,更新相关的事件状态和进度等
- SRE Agent:PagerDuty 的 SRE Agent 提供了具有人工监督的全面端到端事件自动化,可以运行诊断、呈现关键上下文、提供分析、建议修复操作,并在获得批准后自动运行这些操作。它还从每个事件中学习,为将来使用生成智能手册。
- Insights Agent: 基于 Incidents、Services 和 Teams 分析,提供主动建议和按需对话式洞察。该 AI 代理可以轻松揭示运营风险、趋势和模式,继而赋能数据驱动的决策,并构建更具弹性的运营。
- AI Orchestrations:将通过利用在历史事件和故障数据上训练的机器学习,建议可操作的事件编排规则,从而将工作从被动响应转变为主动出击。
除此之外还提供了 MCP 服务,并支持和一些工具集成。
Keep stakeholders informed with Datadog Status Pages datadog 的状态页(status page)设计。
AI-powered observability: Resolve incidents faster, reduce alert fatigue, and expand access: Grafana Assistant 是 Grafana Cloud 中的一个 AI 驱动的智能体,它使用自然语言帮助你更快地查询、构建和排除故障。它简化了常见的工作流程,如编写 PromQL、LogQL 或 TraceQL 查询、创建仪表盘和执行引导式根因分析。Assistant investigations 是一个直接构建在 Grafana Assistant 中的 SRE agent。它通过分析你的可观测性堆栈、发现异常并连接整个系统中的信号,帮助你更快地找到根本原因。你将获得清晰、有指导意义的修复建议——并且由于它嵌入在 Assistant 中,它为解决复杂事件提供了无缝的端到端工作流程。
w42
Remediating CVE-2025-3248: How Dynatrace Application Security protects Agentic AI applications: 介绍了CVE-2025-3248 漏洞的攻防,攻击者可以将代码注入到 AI agent 中,例如 Langflow 中的 AI agent,从而导致远程代码执行和后门。Dynatrace 的云应用程序检测和响应 (CADR) 通过检测漏洞、识别错误配置和调查可疑活动来防御此类攻击。这种多层方法包括
- 运行时漏洞分析:支持在运行时检测 Python 漏洞,可以提供关于攻击者潜在攻击途径的即时信息
- 安全态势管理和深度日志调查:比如检查缺失的网络策略
以保护基于 agent 的 AI 环境。(话说 langchain 的问题还真多……)
Introduction to the knowledge graph 介绍了 grafana cloud 的知识图谱工具,它为可观测性工具栈增加了一个关键层:使用基于 SLO 的分析,自动洞察服务健康状况、性能和可靠性。与显示所有内容的仪表板不同,知识图谱仅在出现问题时显示相关上下文,帮助用户专注于最重要的内容。重要概念:
- entities(实体):环境中的对象及其属性,例如服务、节点或 Pod
- entity catalog(实体目录):提供了知识图谱自动监控元素的综合列表视图
- entity graph(实体图):知识图谱通过检测系统中的实体及其相关属性来构建实体图。实体图帮助用户查看服务和系统之间的依赖关系,并了解任何问题的来源。
- insights(洞察):洞察持续跟踪资源饱和度、更正(例如,部署和扩展事件)、请求、资源、延迟异常、系统故障以及用户的黄金信号和健康指标上的错误。Insights 是精简的时间序列数据,专门捕获系统中的重大事件。与传统的警报相比,Insights 具有独特的用途,因为它们并非设计用来通知值班人员。相反,它们是知识图谱提供的自动化生命体征,随时可用于故障排查。
- RCA workbench(根因分析工作台):RCA 工作台提供对特定问题随时间推移的潜在原因和依赖关系的全面探索,可访问相关指标、日志和跟踪信息,以实现高效的故障排除和分析。
- workbench AI:工作台 AI 帮助用户根据根因分析形成假设,并提供解决性能问题的推荐步骤。
Failure is inevitable: Learning from a large outage, and building for reliability in depth at Datadog 这是datadog对2023年的一个故障的思考:一个没有经过审查的全局变更,导致相互重启,继而导致生产环境中大约 50–60% 的 Kubernetes 节点失去了连接。在用户层面的行为表现是监控、日志、告警、链路等功能都不可用。
- datadog的思考1: 从datadog的视角来看,即使在高峰期,大约 40–50% 的 Kubernetes 节点仍在运行并保持连接。但从用户的角度来看,该平台似乎完全瘫痪。一个重要的原因是,datadog为了保证数据的准确性,会等待数据完全处理完成才给出监控指标结果。但在该故障下,因故障导致不完整=>数据等待完整性计算=>完整性计算排队处理=>处理必然失败,导致永远加载不出数据。datadog认为之前的设计有问题,为了实现数据完整性,忽略了相关的降级方案。
- 蚂蚁的监控系统在这方面的实践不错:监控给数据的时候,顺便也会给出数据齐全度报告,即使数据一直不齐全,监控数据仍然可以持续输出。
- datadog的思考2: datadog 在故障复盘中也提出,数据应该有优先级(比如实时数据优于历史数据),在定时任务处理时,应基于优先级分配任务。
- datadog的思考3: 系统的自动恢复动作(处理积压数据、重试等)在故障恢复的时候有可能会使恢复速度变慢。这些都需要在架构设计时做出优化,如1)重试应尽量分布在不同机器上,且使用强退避机制来减少过载,并更快地回退到死信队列,以避免在单个“坏”数据包上hang住;2)对积压数据的恢复处理进行限流,确保旧数据不会抢占实时数据处理。
- datadog的思考4: 引入混沌工程,实现持续、全自动的混沌测试。
- datadog的思考5: 故障一定会发生,要按照这个思路来构建系统。
w43
datadog 推出 updog,它展示了 30 多家热门 SaaS 提供商(例如 OpenAI、Zoom 和 GitHub)以及 13 项 AWS 服务的实时运行状况。这个功能还是挺厉害的,需要为掌握不了的基础设施提供可用性观测。datadog 自述他们通过如下方法实现该目的
- 聚合了来自数千个组织的匿名 APM 遥测数据
- 一个贝叶斯模型,用于推断跨独立客户环境的异常错误率
- 确认跨客户和区域的关联,以确认降级是否具有系统性
这种方法使 Datadog 能够比供应商控制的页面更快地检测到问题。例如,Updog.ai 最近在亚马逊 DynamoDB 降级 32 分钟前就发现了这个问题,而 AWS 尚未更新其自己的状态页面。 这个结果是一个可靠的、人工智能驱动的信号,反映了全球用户的真实体验。
RD weekly
w41
Python 3.14更新: Python 3.14 是 Python 编程语言的最新稳定发布版,包含多项针对语言、实现和标准库的改变。 最大的变化包括 模板字符串字面值, 标注的迟延求值,以及在标准库中对 子解释器 的支持。
个人比较看好安全的 CPython 外部调试器接口和自由线程这2个功能。预计开源社区会陆续带来相关功能更新和优化。
Java for AI: 介绍了 java 在 AI 时代的一些动作,重点是 Foreign Function and Memory API 和 Vector API。后者可以利用 CPU 的 SIMD 特性,前者可以方便快速的接入 c/c++ 的 GPU 库,使用体验要强于 JNI。
w42
What’s New in Java 25 in 2 Minutes - Sip of Java](https://inside.java/2025/10/17/new-in-jdk-25-2-mins/) JDK 25 于 9 月 16 日发布,包括 18 个 JEP,并有多个功能已最终确定。个人觉得比较重要的 JEP 有:
- JEP 506 - Scoped Values: 提供了一种新的线程局部数据共享机制,允许在方法调用链中安全地传递不可变数据,比ThreadLocal更高效且内存友好。
- JEP 511 - Module Import Declarations: 简化模块系统的使用,允许在模块声明中直接导入其他模块的所有导出包,减少重复的import语句。
- JEP 513 - Flexible Constructor Bodies放宽构造函数的语法限制,允许在调用super()或this()之前执行一些语句,提供更灵活的构造函数编写方式。
- JEP 519 - Compact Object Headers: 优化对象头部结构以减少内存占用,通过重新设计对象布局来提高内存效率和性能。
w43
jetbrains tools and trends 2025 年 jetbrains 的语言承诺指数和其他社区统计指标。一些看点:1)Python和Java是最主要的编程语言;2)从2025年开始,Postgres 超越 MySQL 成为最受欢迎的数据库;3)TypeScript是过去五年增长最迅速的语言。
Go torch Go 语言实现的 Torch 风格深度学习框架 — 一个完全用 Go 语言从头构建的开源深度学习框架。
Go echarts 使用 Apache ECharts 的图表和数据可视化库。
Andrej Karpathy 评 DeepSeek OCR 也许图片比 token 更适合作为 LLM 的输入。DeepSeek OCR