日志与错误聚合:在五分钟内找到那一次失败
出事后最贵的不是修,是找。本文给出四个必记字段、请求 ID 的串联方式、1200 条错误归成 4 组的聚合规则,并按 1.2 GB/月、采样 10%、保留 30 天复算存储与查询成本,让一次失败能在五分钟内被定位与归组。
tag
出事后最贵的不是修,是找。本文给出四个必记字段、请求 ID 的串联方式、1200 条错误归成 4 组的聚合规则,并按 1.2 GB/月、采样 10%、保留 30 天复算存储与查询成本,让一次失败能在五分钟内被定位与归组。
日志里能放什么、该留多久、量有多大,是三个独立问题。本节用 libraryd 的真实输出演示邮箱与令牌脱敏、CRLF 日志注入、按比例采样与 Logback TurboFilter,并算清不同请求量下的日志体积,最后给出一份可执行的级别与保留策略。
文本日志无法按 requestId 聚合一次借阅的多个步骤。本节用 logstash-logback-encoder 9.0 把 libraryd 的日志输出成 JSON,讲清 MDC 的线程绑定与泄漏、requestId 与 traceId 的生命周期、StructuredArguments 字段,以及线程池之间的上下文传递。
libraryd 的日志一度混着 Javalin 自带的 slf4j-simple,格式和级别都不受控。本节用 SLF4J 2.0.20 与 Logback 1.6.6 的真实输出讲清门面与绑定的关系、级别继承、Appender 与 encoder、参数化日志和异常打印,最后落到 libraryd 的两份配置文件。
本节为图书服务建立生产可用的日志基线:讲清 SLF4J 门面与 Logback 实现的分工,以及为什么不要直接依赖 Log4j2 API;给出六个级别的选择依据与 logging.level.<包名> 的精确控制;解读 4.1.1 的真实启动日志;讲透 logging.file.name 与 path 的差别、轮转配置、4.1 的 Log4j 文件轮转与 logging.group 分组。
日志既是排障的第一现场,也是性能的隐形杀手。本文拆解 spdlog 的 logger/sink/formatter 架构,讲清同步与异步日志的队列模型与丢日志边界,演示结构化 JSON 日志与字段设计,并给出编译期级别裁剪、backtrace 环形缓冲与 OpenTelemetry 集成的落地方案。
系统梳理 Docker 日志的两条路径:日志驱动直发与落盘后采集。逐个对比 json-file、local、journald、fluentd 等驱动的适用场景与配置参数,剖析 max-size/max-file 轮转、非阻塞模式与背压丢日志的机制,并给出采集管道、多行日志处理与容器日志排障的完整实践。
系统讲解 logrotate 的策略指令与 postrotate 钩子、压缩延迟与保留期计算、归档到对象存储的生命周期与校验,以及 rename 加 reopen 与 copytruncate 两种模型下的写入安全、竞态规避、容器场景差异与常见踩坑速查。
以 ClickHouse 构建可观测性后端,覆盖日志表设计、指标 rollup 预聚合、Kafka 摄入管道、Grafana 数据源与查询模式、索引与投影加速、冷热分层与 TTL 成本治理,以及高基数与查询熔断防护,并给出可落地的生产容量规划方法。
系统讲解 TypeScript/Node 服务的可观测性建设:可观测性三支柱、OpenTelemetry SDK 与自动/手动埋点、Span 与上下文传播、pino 结构化日志与 trace 关联、Counter/Histogram/Gauge 指标、W3C TraceContext、采样策略与 OTLP Collector 接入,以及生产排错实践。
讲解多层代理下真实客户端 IP 的还原方法,涵盖 X-Forwarded-For 信任链与伪造风险、ngx_http_realip_module 的 set_real_ip_from 配置、PROXY protocol 在四层的传递,以及与访问日志和限流的联动。
讲解如何用 grep/awk/sed 按模式提取日志字段、按时间窗口做滚动统计与去重、计算错误率并触发阈值告警,并给出与 sort/uniq 组合的实战套路。
系统讲解 .NET 应用的可观测性建设,覆盖 ILogger 与日志级别、结构化日志、Serilog 管道、OpenTelemetry 链路追踪与指标采集、健康检查,以及日志治理与容量管控的最佳实践。
可观测性是现代分布式系统的核心能力。本文系统讲解 Zig 中 std.log 接口的自定义扩展、JSON 结构化日志输出、日志轮转策略、OpenTelemetry trace 与 metric 的 SDK 集成、Prometheus Pull 模型端点实现,以及 gauge/counter/histogram 指标类型的工程实践,帮助开发者构建完整的 Zig 服务可观测体系。
Erlang/Elixir 可观测性:日志系统(Logger 配置/处理器/格式化/结构化日志)、Telemetry 事件与指标(attach/detach/execute/计数器/直方图/最后值)、分布式追踪(OpenTelemetry/Span 上下文传播)、Observer/CLI 诊断工具(observer_cli/recon/vmstats)、监控告警(Prometheus/Grafana 集成)、BEAM VM 内部指标(reductions/内存/进程/ETS)、日志聚合与 ELK/Loki 集成、可观测性最佳实践。
PHP 可观测性实战:日志系统选型(Monolog 处理器/格式化/上下文)、结构化日志(JSON/ECS)、分布式链路追踪(OpenTelemetry/OpenTracing)、APM 工具集成(Laravel Telescope/New Relic/Datadog/Blackfire)、自定义指标与性能埋点、日志聚合(ELK/Loki)、健康检查与告警、可观测性三支柱(Metrics/Logs/Traces)的工程落地。
Flutter 生产级错误处理全解:Dart 异常体系与 try/catch/async 错误捕获、Flutter 全局错误捕获(FlutterError.onError/runZonedGuarded)与未捕获异常兜底、错误上报与崩溃分析(Crashlytics/Sentry)、超时重试与指数退避、网络断线降级与离线容错、用户可感知的错误提示与重试、以及可观测性(日志/链路/性能监控)与可靠性测试。
系统覆盖 Scala 服务的可观测性三支柱:结构化日志(SLF4J/Logback、JSON 日志、字段规范)、链路追踪(OpenTelemetry、trace/span 上下文、跨服务传播)、指标(Micrometer/Prometheus、业务指标与资源指标)、可观测性与 Effect/Fiber 的集成(追踪上下文贯穿异步)、以及日志与追踪的工程实践(采样、脱敏、告警联动),帮助读者把「看日志猜问题」升级为「三支柱协同定位」。
系统覆盖日志处理的工程全景:日志格式设计(文本 vs 结构化、字段约定)、解析器构建(正则/流式/多行拼接)、日志管道(采集/清洗/聚合/路由)、采样与脱敏、日志轮转与保留、以及可观测性场景下日志解析的常见陷阱与性能优化。
系统讲解现代应用可观测性体系:日志、指标与链路追踪(三支柱)、结构化日志与上下文注入、OpenTelemetry 集成、边缘函数与 Serverless 的可观测性挑战(日志聚合/冷启动/分布式追踪)、错误追踪与 Sourcemap 还原、告警规则与 SLO、以及可观测性闭环与成本控制。