从一个 Issue 谈 PID 1 与 Reaping 机制
基于 Categraf GitHub Issue #1261,解释容器中 PID 1 为什么会导致僵尸进程泄漏,以及如何通过 Go reapDaemon、SIGCHLD、wait4 和 PR_SET_CHILD_SUBREAPER 清理子进程。
围绕可观测性、AI SRE、告警治理、On-call、Nightingale、Categraf、Prometheus、Kubernetes、Zabbix、用户案例和产品更新,沉淀一线工程实践、选型参考和稳定性治理方法。
基于 Categraf GitHub Issue #1261,解释容器中 PID 1 为什么会导致僵尸进程泄漏,以及如何通过 Go reapDaemon、SIGCHLD、wait4 和 PR_SET_CHILD_SUBREAPER 清理子进程。
具备产品思维的工程师关注用户、业务目标、产品决策和工程取舍。本文总结产品思维工程师的 9 个特质,并给出工程师培养产品思维的实践建议。
深入解析 Kubernetes OOM 和 CPU Throttling 问题:理解 limits/requests 配置、内存过量分配、CPU shares 机制,以及如何通过 Prometheus 指标监控和预防资源耗尽导致的 Pod 被杀或限流。
Kubernetes 必备 10 个告警配置及处置方法:涵盖 CPU 过高、Kubelet 卷管理器故障、API Server 错误、节点资源压力、Pod 状态异常、ETCD leader 变更等关键场景的监控与排查命令。
Prometheus 14 点最佳实践:包括 USE/RED 方法论、标签基数控制、指标命名规范、告警症状而非原因、rate 和 sum 顺序等核心经验,来自 PromCon 2017 的经典分享。
SRE 解决的核心问题是研发不懂运维、运维不懂研发的割裂问题。它用软件工程、自动化工具和可靠性方法,使系统增长时运维人力不必线性增加,并以运维敏捷支撑研发敏捷。
解读微软 Pingmesh 论文:一套大规模数据中心网络延迟监控系统,通过 Controller-Agent 架构实现每天 2000 亿次 ping 探测,用于网络故障判定、SLA 追踪和静默丢包检测。
非 Google 公司落地 SRE 的实践指南:解释 SRE 与 DevOps 的关系、团队职责、成熟度模型、自动化能力、SLI/SLO/SLA 设计,以及如何从监控和事件响应开始推进可靠性工程。
使用 eBPF 实现云网络可观测性:对比 Ring Buffer、Hash Map、Array 等数据结构在流量指标收集中的性能差异,分析 Skydive、Cilium、Falco 等开源工具的实现方案。
OpenTelemetry 入门指南:介绍 OTel 的 API、SDK、Collector 组件,以及 Traces、Metrics、Logs 三大可观测性支柱,通过购物车示例应用演示分布式链路追踪实现。
OpenTelemetry 埋点详解:讲解手动埋点创建 Span、设置属性和事件,以及使用 Flask、MySQL 自动埋点零代码获取链路追踪数据,快速实现应用可观测性。
OpenTelemetry SDK 导出详解:介绍 TracerProvider 链路追踪生产者、Resource 资源元数据、OTLP Exporter 导出器的配置,实现遥测数据从应用到收集器的传输。
OpenTelemetry Collector 详解:介绍接收器、处理器、导出器组件,DaemonSet 和 Sidecar 两种 Kubernetes 部署方式,以及使用 ocb 工具构建自定义收集器分发版。
OpenTelemetry 传播与行李机制详解:通过 Propagation 传递 TraceID 和 SpanID 实现分布式链路追踪,使用 Baggage 在微服务间传递自定义上下文数据。
OpenTelemetry 生态系统入门指南:介绍 OTel 官网、项目博客、CNCF Slack、社区仓库、核心 GitHub 仓库、Collector 仓库、语言 SDK 仓库和 OpenTelemetry Registry。
介绍 VSCode 插件 insertisodate:在 Hugo Markdown 中一键插入 ISO 8601 时间,方便维护 date 和 lastmod 字段,并说明核心实现代码和适用场景。
详解 Prometheus 实验性 info 函数,告别复杂的 group_left join 语法实现标签 Enrichment。info 函数简化 PromQL 写法,并解决标签变化导致的 Churn Problem 和 many-to-many 匹配问题。
记录 Categraf http_response 插件报错 remote error: tls: handshake failure 的排查过程,说明 IPv4/IPv6 入口 TLS 配置差异、Go 1.24 默认加密套件变化,以及 tls_cipher_suites 兼容配置方案。
排查 Flashduty monitor 监控告警数据不符合预期的方法:理解 Prometheus query lookback 影响,模拟 /api/v1/query 查询告警时刻数据,并用脚本按告警频率回放 PromQL 结果。
夜莺监控机器告警配置指南:说明 PUSH 模式下如何做机器存活监控,以及普通指标告警如何在标签过滤、业务组变量、通知规则分派之间取舍。