作为即将发布的Grafana Tempo 2.0的一部分,TraceQL是一种旨在简化交互式搜索和提取跟踪信息的查询语言。根据 Grafana 官方的说法,这将有助于加快诊断故障根源的过程。
分布式跟踪包含了丰富的信息,可以帮助开发者跟踪错误、确定故障根源、分析性能,等等。虽然一些自动增强检测工具也可以用于捕获这些数据,但从这些数据中提取有价值的信息却要困难得多。
根据 Grafana 官方的说法,如果你不知道你需要哪些跟踪信息,或者如果你想重建事件链的上下文,那么现有的跟踪解决方案在搜索跟踪信息时就没有那么灵活。这也就是为什么要从头设计 TraceQL 来处理跟踪信息。下面的示例展示了如何查找与耗时超过一秒的数据库插入操作相对应的跟踪信息:
TraceQL 支持使用span、时间点和时间段来选择跟踪信息,它可以聚合同一个跟踪信息中的多个 span 的数据,并利用 span 之间的结构关系。查询由一组被选中或被丢弃的 span 集合的链式表达式组成,例如:
它支持属性字段、包含字段的表达式、组合并聚合 span 集合、分组、管道,等等。下面的示例展示了如何过滤所有按照特定的顺序经过两个区域的跟踪信息:
TraceQL 可感知数据类型,这意味着你可以使用文本、整数和其他数据类型来表示查询。此外,TraceQL 兼容 Tempo 2.0 中的Apache Parquet存储格式。Parquet 是一种列式数据文件格式,许多数据库和分析工具都支持这种格式。
如上所述,TraceQL 将成为 Tempo 2.0 的一部分,后者将在未来几周内发布,Grafana 9.3.1中已经内置了其预览版本。
原文链接:
https://www.infoq.com/news/2022/12/grafana-traceql/
相关阅读:
一文带你了解 Grafana 最新开源项目 Mimir 的前世今生
评论