v3.0
Grafana Labs 和 Loki 团队很高兴宣布发布 Loki 3.0。以下是新增强功能和重要修复的摘要。
有关所有更改和修复的完整列表,请参阅 CHANGELOG。
特性和增强功能
注意
请注意,Loki 3.0 默认使用 v13 schema。所有最新功能都是基于 TSDB 和 v13 Schema 构建的。此版本的 schema 与 Loki 2.9.x 和 Loki 3.0 均兼容。主要变化是增加了对 Structured Metadata 的支持,新 OTLP 原生端点使用了 Structured Metadata,并且默认启用。
Loki 3.0.0 的主要特性包括以下内容
使用 Bloom 过滤器加速查询(实验性):此功能旨在加速过滤查询,对于查找特定文本字符串(如错误消息或 UUID)的查询效果最佳。有关更多信息,请参阅 使用 Blooms 加速查询。
原生 OpenTelemetry 支持:简化的摄取管道(不再需要 Loki Exporter)和更直观的 OTel 日志查询体验。有关更多信息,请参阅 OTel 文档。
Helm Charts:Loki Helm Chart 的重大升级引入了对分布式模式(也称为微服务模式)的支持,默认包含 memcached,并对配置进行了一些更新,以改进 Loki 的操作。
模式匹配过滤器:LogQL 现在支持两种新的模式匹配过滤器运算符。只需一个控制字符即可匹配任何单词,比使用正则表达式更简单、速度快 10 倍。
缓存更新:此版本包括对缓存的多项更新,以提高性能、添加新的配置选项并支持新功能、弃用不再需要的功能以及添加自动后台检查。
Profiling 集成:将 Profiling 集成添加到链路追踪埋点中,以允许获取单个请求的 Profile。
文档改进:所有入门主题均已修订,包括新的快速入门,以帮助新用户更快地启动并运行 Loki。存储、配置参考和 API 文档已更新,以反映已弃用和移除的代码、配置选项和 API 端点。
弃用
Loki 3.0 的重点之一是清理未使用的代码和之前已弃用但未移除的旧功能。Loki 3.0 移除了一些先前的弃用功能并引入了一些新的弃用功能。一些主要更改领域包括
要了解此版本中的重大更改,请参阅升级指南。
注意
Grafana Alloy 是我们 OpenTelemetry Collector 分发版的新名称。Grafana Agent 已被弃用,并将提供长期支持 (LTS),直至 2025 年 10 月 31 日。Grafana Agent 将于 2025 年 11 月 1 日达到生命周期结束 (EOL)。阅读更多关于我们为何推荐迁移到Grafana Alloy。
升级注意事项
从 2.9 升级到 3.0 包含几个重大更改。有关重要的升级指导,请参阅升级指南和单独的Helm 升级指南。
Bug 修复
3.0.1 (2024-08-09)
- 依赖项:升级依赖项版本以解决 CVE (#13833) (e13011d)。
- 修复了 bloomstore 初始化中的 nil 指针解引用问题 (#12869) (167b468),关闭了 #12270。
3.0.0 (2024-04-08)
- 所有 lifecycler 配置都引用了有效的 IPv6 地址和端口组合 (#11121) (6385b19)。
- 依赖项:更新 github.com/c2h5oh/datasize digest 到 859f65c (main) (#10820) (c66ffd1)。
- 依赖项:更新 github.com/docker/go-plugins-helpers digest 到 6eecb7b (main) (#10826) (fb9c496)。
- 依赖项:更新 github.com/grafana/gomemcache digest 到 6947259 (main) (#10836) (2327789)。
- 依赖项:更新 github.com/grafana/loki/pkg/push digest 到 583aa28 (main) (#10842) (02d9418)。
- 依赖项:更新 github.com/grafana/loki/pkg/push digest 到 cfc4f0e (main) (#10946) (d27c4d2)。
- 依赖项:更新 github.com/grafana/loki/pkg/push digest 到 e523809 (main) (#11107) (09cb9ae)。
- 依赖项:更新 github.com/joncrlsn/dque digest 到 c2ef48c (main) (#10947) (1fe4885)。
- 依赖项:更新模块 google.golang.org/grpc [security] (main) (#11031) (0695424)。
- helm:升级 nginx-unprivilege 以修复 CVE (#10754) (dbf7dd4)。
- helm:后端 Sidecar 配置 (#10603) (c29ba97)。
- lambda-promtail 修复 lambda-promtail 中因空 DROP_LABELS 环境变量处理不当导致的 panic 问题。( #11074)。
- loki:在摄取器获取标签值时尊重查询匹配器 (#10375) (85e2e52)。
- loki 即使 using_boltdb_shipper 为 false,也生成 tsdb_shipper storage_config ( #11195)。
- loki 不在请求指标的“route”标签中反映标签名称。( 11551)。
- loki 修复 Docker 容器重复日志问题。( #11563)。
- loki Ruler:修复了在规则量大时,租户配置的并发读写访问可能导致的 panic 问题。( #11601)。
- loki 修复了向 HTTP 错误响应体添加换行符的回归问题,该问题可能破坏客户端集成。( #11606)。
- loki 日志结果缓存:基于服务的请求构建空响应,以避免返回不正确的限制或方向。( #11657)。
- loki 修复指标和日志查询的标签解析逻辑的语义问题。如果请求将多个提取结果放入同一标签,两者都只解析第一个标签。( #11587)。
- loki 后台缓存:修复了一个导致后台队列大小对每个入队项增加两次的 Bug。( #11776)。
- loki:解析:JSON 处理中未正确解析字符串数组元素 (#11921)。
- promtail:正确解析 YAML 中的 drop stage sources 列表 (#10848) (f51ee84)。
- promtail:防止重载后因重复指标注册导致的 panic 问题 (#10798) (47e2c58)。
- promtail:修复 Promtail excludepath 对新添加的文件未生效的问题。( #9831)。
- tools/lambda-promtail:不对 drop_labels 的空字符串进行评估 (#11074) (94169a0)。