作者 | Sergio De Simone
译者 | 明知山
策划 | 丁晓昀
作为即将发布的 Grafana Tempo 2.0 的一部分,TraceQ 是一种旨在简化交互式搜索和提取跟踪信息的查询语言。根据 Grafana 官方的说法,这将有助于加快诊断故障根源的过程。
分布式跟踪包含了丰富的信息,可以帮助开发者跟踪错误、确定故障根源、分析性能,等等。虽然一些自动增强检测工具也可以用于捕获这些数据,但从这些数据中提取有价值的信息却要困难得多。
根据 Grafana 官方的说法,如果你不知道你需要哪些跟踪信息,或者如果你想重建事件链的上下文,那么现有的跟踪解决方案在搜索跟踪信息时就没有那么灵活。这也就是为什么要从头设计 TraceQL 来处理跟踪信息。下面的示例展示了如何查找与耗时超过一秒的数据库插入操作相对应的跟踪信息:
{ .db.statement =~ "INSERT.*"} | avg(duration) > 1s
TraceQL 支持使用 span、时间点和时间段来选择跟踪信息,它可以聚合同一个跟踪信息中的多个 span 的数据,并利用 span 之间的结构关系。查询由一组被选中或被丢弃的 span 集合的链式表达式组成,例如:
{ .http.status = 200 } | by(.namespace) | count() > 3
它支持属性字段、包含字段的表达式、组合并聚合 span 集合、分组、管道,等等。下面的示例展示了如何过滤所有按照特定的顺序经过两个区域的跟踪信息:
{ .region = "eu-west-0" } >> { .region = "eu-west-1" }
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 的前世今生 (https://xie.infoq.cn/article/2723176da5693f6085c6b1e78)
Grafana、Loki 和 Tempo 更改开源协议,由 Apache License 2.0 转为 AGPL v3(https://www.infoq.cn/article/e2B77jUHkWSRmgN9G7uV )
Grafana 9 在警报和用户体验方面带来巨大改进 (https://www.infoq.cn/article/k2tWvtKrSIpKIxloqfdN)
声明:本文为 InfoQ 翻译,未经许可禁止转载。
4000520066 欢迎批评指正
All Rights Reserved 新浪公司 版权所有