ClickHouse Grafana插件4.20:查日志无需SQL
译文 AI 逐段翻译
在春天,我写了关于我们想要把 ClickHouse Grafana 插件带向何方。其中很大一部分现在已经发布了。最近的工作(与 Grafana Labs 紧密合作完成)重点在于让查找日志行、缩小到单个服务或检测部署这些常见场景在不使用 SQL 的情况下更快,同时始终确保对于更高级的需求,完整的 SQL 只需点击一下即可获得。
贡献者
一如既往,感谢我们的开源贡献者和用户,他们帮助改进插件,惠及所有人。
aangelisc, adamyeats, akkikumar72, alyssajoyner, bossinc, fabrizio-grafana, fleon, hkrutzer, itsgareth, itsmylife, iwysiu, karl-power, katebrenner, lwandz13, MattiasMTS, mattvella07, Orenico10, SaiPrasanna9, stackempty, Tarasusrus
在用户体验方面,我们的工作重点是优化我们看到的用户常见的采用路径——将 OpenTelemetry 日志和追踪发送到 ClickHouse,以及越来越多的指标,使用OpenTelemetry Collector 的 ClickHouse 导出器,然后再使用 Grafana 进行调查。
查询构建器自 v1 以来一直是插件的一部分,但对于新用户或希望快速过滤事件的用户来说,设计上的低效意味着通常手动编写 ClickHouse SQL 更快。最近的工作重点在于让查找日志行、缩小到单个服务或检测部署这些常见场景在不使用 SQL 的情况下更快,同时始终确保对于更高级的需求,完整的 SQL 只需点击一下即可获得。我们在每个功能后面都链接了 pull request,方便您深入查看。
搜索优先,SQL 一键可用
如果您只有一张包含日志的表,配置数据源不应该复杂。单表模式(#1832)正是为这种场景设计的。将数据源指向您的表,确认其列,编辑器就会让开——给您更简单、更专注的体验。
单表配置模式
配置单表模式后,紧凑查询模式(#1841)用更专注的体验取代了完整的构建器:输入日志消息,插件为您编写查询,同时类型感知过滤器、查询历史记录和实时 SQL 预览帮助您完善它。生成的 SQL 始终可复制或直接编辑。
虽然紧凑编辑器目前仅限于单表配置,但这与常见的 Grafana 模式完美契合,用户可以创建专门的数据源用于特定的日志或追踪流。例如,您可以轻松创建“日志 - 生产”、“日志 - 预发”等。这种方法不仅提供了专注的体验;要尝试它,只需为您的特定表创建一个目标数据源,打开 Explore,并告诉我们它如何适用于您的工作流程。
Explore 中的紧凑查询模式,包含搜索框、类型感知过滤器、查询历史记录和实时 SQL 预览
注意:早期用户反馈他们希望在紧凑模式中显示自定义字段/列,无论是使用 OpenTelemetry 还是自定义模式(例如查询日志)。这个问题已通过 PR #2108 中的一个新改进得到解决,并将在下一个插件版本中提供。
通过点击而非输入进行调查
大多数调查是迭代的:您以搜索开始,检查结果,然后通过应用和删除过滤器来缩小或扩大范围。最新的插件改进让您可以通过点击来遵循这一流程,无需编辑 SQL。
展开的日志行现在将 OpenTelemetry 属性组织成可折叠的 Resource、Scope 和 Log 部分(#1829)。在那里,您可以过滤或排除任何值;应用的过滤器会高亮显示,再次点击可移除(#1824)。您还可以在日志消息中选择文本,并直接对该子字符串进行过滤(#1738)。
在文本高亮上过滤以进行过滤
此外,对于仪表板,临时过滤器现在可以发现 ClickHouse Map 列中的键和值,并且可以跨多个表应用过滤器(#1793, #1757)。通过点击或通过查询构建器添加过滤器时,别名和 OpenTelemetry Map 键的解析保持一致。
开箱即用的仪表板 - 连接后即可使用
随着 OpenTelemetry 成为收集和存储日志与追踪的行业标准,ClickHouse 已经针对大规模处理此类数据进行了独特调优。为了确保您能立即从这些数据中获取价值,插件现在自带了三个 OpenTelemetry 仪表板(#1869):一个日志资源管理器、一个追踪资源管理器,以及一个将日志和追踪联系在一起的每服务深度分析。
这些面板完全可交互,包含过滤器、注释、每个服务的日志样本面板,以及追踪和服务仪表板的 KPI 和顶部错误。
更少的仪表板脚手架 SQL
构建更丰富的仪表板通常意味着添加变量和注释,但到目前为止,两者都需要用户编写底层 SQL。这给常见任务(如使仪表板可过滤或在图表上标记部署)增加了不必要的复杂性。
新的注释编辑器(#1922)提供了引导式体验:选择要监控的列,例如 service.version,插件自动生成变更检测 SQL。这样可以轻松检测变更和回滚,使部署和回滚显示为单独的标记。引导式变量编辑器(#1868)的工作方式类似:选择一列,包括 Map 列中的键,它会生成检索其不同值所需的 SQL。在这两个编辑器中,生成的 SQL 保持可见和可编辑,您所做的任何更改都优先。
注释编辑器的变更检测预设和引导式变量编辑器
立即开始
有兴趣看看 ClickHouse 如何在您的数据上工作吗?几分钟内开始使用 ClickHouse Cloud,并获得 $300 的免费额度。
尝试
要尝试该插件,请确保您使用的是 ClickHouse 数据源(从 Grafana 插件目录安装或更新),然后将数据源指向你的 OpenTelemetry 表。
所有这些改进背后的原则与我们春季提出的相同:常见任务不应需要 SQL,但当你需要时 SQL 应始终只需一键即可获得。如果你在 Grafana 中使用 ClickHouse,你能给我们的最有价值的反馈是体验仍然受阻的地方。紧凑查询模式特意从单表数据源开始,以便我们在进一步推广之前从实际使用中学习。
附录:其他所有发布内容
并非每项改进都值得成为头条。这些变化许多单独来看很小,但合在一起使插件更快、更可靠、更易于使用。
- 更智能的构建器。常规日志列会被自动检测(#1791);工具提示直接链接到相关文档(#1790);共享模式选择器现在驱动构建器、变量编辑器和注解编辑器(#1828)。时间列也合并为单个
ORDER BY(#1695)以更好地使用主键。Explore 可以在指标图表下方显示原始日志样本(#1744),并且属性列可以使用 JSON 以及 Map 类型(#1866)。 - 更好的性能。模式内省按数据源缓存(#1787),而快速追踪 ID 查找不再局限于 OpenTelemetry 模式(#1786)。
- Grafana 13 就绪。兼容性工作为 Grafana 13 扫清了道路,且不会改变 Grafana 11.6 或 12.x 上的行为(#1861、#1863)。
- 更高的可靠性。Span 链接打开正确的关联追踪(#1890),并且 SQL 验证现在使用 ClickHouse 自身词法分析器的移植版本(#1778)。
- 自我可观测性。插件后端使用 OpenTelemetry 进行仪器化,并为其 span 提供机器可读的契约(#1734、#1735)。
- 归属和身份。当启用标头转发时,查询可以将 Grafana 用户的身份带入 ClickHouse,用于行策略、配额和查询日志归属(#1797)。此版本还增加了对 Grafana SQL 抽象的基础支持(#1756)。