Grafana Cloud Adaptive Logs 丢弃规则

概述

在现代云原生架构和可观测性实践中,日志数据是诊断问题、理解系统行为的宝贵资源。然而,海量的日志流中常常夹杂着大量低价值、高频率的“噪音”,例如频繁的健康检查日志、冗长的调试日志或来自非关键服务的冗余信息。这些噪音不仅会迅速消耗宝贵的日志存储预算,还会增加查询和分析的复杂性,干扰运维团队定位真正的问题。

Grafana Cloud 的 Adaptive Logs 功能提供了一套智能化的日志管理方案。其最新的 丢弃规则(Drop Rules) 特性,允许平台和可观测性团队在日志写入存储之前,根据自定义规则主动丢弃或采样这些已知的噪音数据。这为团队提供了一种快速、集中化且无需繁琐基础设施变更的手段,来优化日志摄入量、降低成本,同时确保关键日志得到完整保留。

核心概念

Adaptive Logs 通过一个有序的评估管道来管理传入的日志行,其核心由三个机制协同工作,按顺序对日志进行处理:

  1. 豁免 (Exemptions):首先被评估。任何匹配豁免规则的日志行都将受到完全保护,直接通过,不会被任何采样或丢弃。这确保了业务关键日志(如审计日志、支付错误日志)的完整性和可审计性。
  2. 丢弃规则 (Drop Rules):在豁免评估之后,按优先级顺序评估。日志行将与用户自定义的丢弃规则进行匹配,第一个匹配到的规则生效,并应用其定义的丢弃率(可以是 100% 完全丢弃,也可以是部分采样)。
  3. 模式优化建议 (Patterns):最后,对于未被豁免或未被丢弃规则过滤的日志行,Adaptive Logs 会分析其查询模式。系统可以基于分析结果,建议对那些未被使用的日志模式进行优化(如降低采样率或丢弃)。

这三个机制共同构成了一个完整的日志成本控制系统,从不同维度解决日志噪音问题:

  • 丢弃规则 针对团队已知的噪音源。
  • 优化建议 帮助发现团队尚未察觉的浪费。
  • 豁免规则 保护不可妥协的关键日志。

实践

配置丢弃规则

创建和管理丢弃规则的界面位于 Grafana Cloud 的管理后台。具体步骤如下:

  1. 导航至管理界面:进入 Grafana Cloud 控制台,依次点击 Adaptive Telemetry -> Adaptive Logs -> Drop rules 选项卡。
  2. 创建新规则:点击 Create a new drop rule 按钮。
  3. 定义规则条件:使用 标签选择器(Label Selector)、日志级别 和 行内容匹配 的组合来定义规则作用范围。
    • 按级别丢弃:例如,创建规则丢弃所有 level:debug 的日志。
    • 采样重复日志:为特定流设置一个丢弃百分比(如 90%),仅保留具有代表性的样本。
    • 定位特定生产者:通过标签(如 service=“checkout-api”)结合日志级别或文本字符串,精确过滤来自某个嘈杂服务的日志。
  4. 立即生效与监控:规则保存后会立即生效。可以在 Drop rules 页面监控每条规则丢弃的日志量,评估其影响。

管理与权限

  • 权限控制:创建和管理丢弃规则需要 Adaptive Logs 管理员角色 (plugins:grafana-adaptivelogs-app:admin)。该角色默认授予 Grafana 管理员和组织管理员,确保规则管理由负责可观测性成本和策略的团队集中控制。
  • CLI 支持:除了 Web UI,也可以使用 Grafana 提供的 gcx 命令行工具来创建和管理丢弃规则,便于自动化集成。
  • 应急覆盖:在紧急情况下(如故障排查、重要部署期间),可以暂停 Adaptive Logs 功能长达一小时,临时覆盖所有丢弃规则,以获取完整的日志可见性。这与持久化的豁免规则相结合,提供了必要的灵活性。

SRE 要点

与可靠性、可观测性及事件响应的关联

丢弃规则直接服务于 SRE 的核心目标:在成本和可靠性之间取得平衡。通过剔除无用日志,团队可以更高效地查询和分析真正重要的数据,提升故障定位的效率和准确性。当发生事件时,能够快速回溯关键日志是 MTTR(平均修复时间)的关键。Adaptive Logs 的豁免和暂停机制确保了在事件响应期间,关键日志的完整可观测性不会丢失。

最佳实践与常见反模式

最佳实践:

  • 循序渐进:从简单的规则开始,例如“丢弃 90% 来自特定嘈杂服务的 DEBUG 级别日志”。观察效果后再制定更复杂的策略。
  • 集中管理:利用其管理员角色特性,由 SRE 或平台团队集中制定和管理丢弃策略,而非分散给各个业务团队,确保策略的一致性和可控性。
  • 组合使用:将丢弃规则与系统推荐的模式优化建议结合使用。丢弃规则处理已知问题,优化建议挖掘未知浪费。
  • 明确豁免:对合规审计、核心业务错误等日志,务必设置豁免规则,这是成本优化的底线。

常见反模式:

  • 过度丢弃:为了避免成本而盲目丢弃大量日志,可能丢弃了日后对根因分析有用的信息。应基于数据和业务影响进行决策。
  • 忽视监控:设置规则后不再查看其影响数据。应持续监控各规则的丢弃量,确保其符合预期,且没有意外丢弃关键数据。
  • 绕过流程:由于此功能便捷,个别团队可能试图自行创建规则来“解决”自己服务的日志问题。应坚持通过中心化的平台团队进行管理,以维护整体可观测性策略。

相关指标

虽然丢弃规则本身不直接定义 SLI/SLO,但它影响着成本和查询性能等运营指标:

  • 日志摄入量 (GB/天):这是丢弃规则最直接降低的指标,与存储成本直接挂钩。
  • 日志查询延迟/性能:数据量减少后,日志查询速度通常会提升,这可以间接优化开发者的体验和故障排查效率。
  • 关键日志完整性:确保被豁免规则保护的业务关键日志(如支付失败日志)的采样率维持在 100%,这可以作为一项 SLI 来监控合规性与可靠性。