Logstash 经 Cloudflare 写 OpenSearch,WAF 按内容拦下两批 _bulk,插件对同一批无限重发,背压传回 filebeat,qa 和 stg 的日志停了将近 29 小时。重启只能临时疏通,要在 Cloudflare 加跳过规则。
Posts for: #observability
ClickHouse 的 Keeper 故障和 part 过多
写入变慢或被拒时,先看 Keeper 和 part 数。lab 上 Keeper 停掉时副本立刻只读,INSERT 卡约 143 秒才报错;卡住时客户端 30 秒超时,服务端在 Keeper 回来后照样提交。part 过多则先拖慢、后拒绝,中间那段是预警窗口。
在 Cloudflare Tunnel 后面按 key 查 LiteLLM 的用量和来源 IP
LiteLLM 的 spend log 按 key 记了 token 和来源 IP,放在 Cloudflare Tunnel 后面时 IP 全是集群内地址。改用 pre-call hook 读 CF-Connecting-IP,对外的 key 另加别名和限流。
Spring Boot 4 的 OpenTelemetry 自动配置边界
官方 starter 只管 SDK 和 OTLP 日志 exporter:traces、metrics 还在 micrometer 的两个模块下,Logback appender 仍要手工装三步,profiles 整段落在应用之外。
ClickHouse 里的重复行来自 Kafka Connect 超时重投
同一个业务键在 ClickHouse 里出现两行完全一样的数据,写入时间相差 30 秒到两分钟。前一天吞吐掉到常态零头的十几个小时一行重复都没有,出重复的是第二天吞吐看着正常、Keeper 在途请求涨到几千的那三个小时。
Java 微服务在 K8s 上的运行时基线(2026):镜像、探针、滚动与可观测
Java 25 加 Spring Boot 3.5 的微服务上 Kubernetes,我给自己定了一份运行时基线,覆盖镜像、探针、优雅停机、滚动与回滚、可观测性,每块都同时写现状和差距。
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 项目里落地这些约定时的一些取舍。