Java 25 加 Spring Boot 3.5 的微服务上 Kubernetes,我给自己定了一份运行时基线,覆盖镜像、探针、优雅停机、滚动与回滚、可观测性,每块都同时写现状和差距。
Posts for: #observability
Spring Boot 3.4+ 的结构化日志:5 行配置启用 ECS,用 Fluent API 写出 OpenSearch 可查的字段
Spring Boot 3.4+ 内建了 ECS 结构化日志支持,5 行配置能替掉大部分手写的 logback-spring.xml,再用 SLF4J Fluent API 把字段写成 OpenSearch 查得到、聚得起来的样子。
GitHub 用 eBPF 限制部署脚本的对外网络访问
InfoQ 总结 GitHub Engineering 2026 年 4 月那篇文章:修复系统的部署链路自己依赖着待修的系统,eBPF 挂在部署进程的 cGroup 网络出口上把这条隐性依赖管住,笔记里还过了一遍 eBPF 在 Cloud Native 项目里别的落地点。
Spring Boot 3.5 Tracing:接完之后,PII 和采样怎么管
结合一次 Spring Boot 3.5 tracing 接入:自动配置覆盖范围、自定义埋点、Kafka/Redis/DB 组件接入、采样策略、PII 处理,以及用 ArchUnit 约束常见误用。
Java 日志开发约定:记什么、不记什么、message 与结构化字段怎么写
Java 日志里记什么、不记什么、message 怎么写、结构化字段如何设计;也整理我在 Spring Boot 项目里落地这些约定时的一些取舍。
Homelab OTel 实践:从日志采集到双集群全链路追踪
双集群 K3s Homelab 补齐 OpenTelemetry traces 之后的样子:OTel Collector 收数据,跨集群写进 Tempo,Grafana 联动数据源,各语言 SDK 按同一套约定接入。
Spring Boot 应用的 Metrics 埋点:自动埋点覆盖了什么,什么时候要自己埋(2026)
以 Spring Boot 3.5 + Micrometer 为基础,整理一次应用层 Metrics 埋点实践:自动埋点覆盖范围、@Observed 注解用法、高低基数字段设计、手动 Observation API,以及与 Prometheus 和 OTel 的关系。
SLO 与多窗口多 burn-rate 告警:14.4× 和 6× 怎么来的,Prometheus 规则怎么写
SLO、error budget 和 multi-burn-rate 告警的工程实现,按问答一节节推进:为什么传统阈值告警噪声大或滞后、burn rate 14.4× 和 6× 怎么来的,Prometheus 的 recording rules 与 alert 又怎么写。
Spring Boot 3.5 接 OpenTelemetry:尽量少写手动接入,把四个信号串起来(2026)
基于当前项目的一次接入记录,整理 Spring Boot 3.5 + Java 25 下接入 OpenTelemetry 的一些做法:尽量依赖自动配置、启用虚拟线程、结合 JFR 持续性能分析,并把 Traces / Metrics / Logs / Profiles 串起来。
K8s CPU 配置:requests/limits 各管什么、Throttling 怎么发生、谁先被驱逐
结合 Homelab 场景整理 Kubernetes 的 CPU requests/limits、CFS throttling、QoS 类别与节点压力驱逐机制,以及我当前采用的资源配置思路。