博客/工程

在Grafana Cloud中引入范例支持,将跟踪与度量紧密耦合

2022年2月23日5分钟

我们已经在以前的职位为什么我们认为范例的概念是如此有价值:它们使我们很容易从指标跳到正确的轨迹,消除了大海捞针的问题。

我们对这个想法非常热心,我们为这个想法做出了贡献必要的代码更改把这个功能带到普罗米修斯生态系统。现在我们很高兴地宣布,我们已经扩展了这个功能Grafana云度量,我们的水平可扩展,长期普罗米修斯存储后端Grafana云

什么是范例?

范例允许您从一个度量转向一个“举例说明”该度量的跟踪,提供了在各种遥测数据类型之间移动的另一种方法。

在下面的截图中,您将看到一个Prometheus数据源,它显示了应用程序请求延迟的第99个百分位。示例是线状图上的点。

高延迟的普罗米修斯情节。

通过研究这张图,我发现我的p99延迟会周期性地上升。我自然会问为什么?这些缓慢的请求是怎么回事?

有了示例,我可以立即进入这些缓慢的请求中的一个,开始回答我的问题。我只是把鼠标悬停在我感兴趣的一个点上——即一个有高延迟的点——然后点击有节奏的查询.屏幕拆分并显示一个代表性轨迹的甘特图。

在Grafana Explore中的Grafana Tempo查询。

范例是如何工作的?

在底层,范例通过将跟踪id附加到度量来工作。借用我同事理查德·哈特曼的之前的帖子,带有范例注释的直方图度量可能是这样的:

# TYPE request_duration_seconds histogram request_duration_seconds_bucket{le="0.1"} 8 # {trace_id="AAA5S4ois0o"} 0.054 request_duration_seconds_bucket{le="1"} 11 # {trace_id="KOO5S4vxi0o"} 0.67 request_duration_seconds_bucket{le="10"} 17 # {trace_id="oHg5SJYRHA0"} 9.8

示例注释是#之后的所有内容。在上面的例子中,如果您想查看请求持续时间小于或等于0.1秒的跟踪,您可以查看trace_idAAA5S4ois0o耗时0.054秒。

工作是使直方图普罗米修斯重点是创建一种存储和查询这些注释的方法。将直方图支持扩展到Grafana Cloud Metrics需要引入Prometheus更改并使其在那里工作。

如何开始使用范例

利用范例的力量有以下几个要求:

  1. 您的应用程序需要发出跟踪。
  2. 您的应用程序需要在调用中包含这些跟踪id,以发出指标。
  3. 您需要一个地方来存储您的度量(例如,普罗米修斯)和你的踪迹(例如,Grafana节奏),以及Grafana实例,该实例被配置为与两者通信。

如果听起来很多,不要害怕!请到TNS-Demo,它提供了一个关于这一切如何协同工作的惊人例子。

TNS(“新栈”)应用程序是一个简单的三层应用程序,用于公开指标(使用示例)、日志(与本文的目的无关)和跟踪。演示部署一个Grafana代理收集所有的遥测数据,并将其推送到度量、日志和跟踪后端进行存储——即普罗米修斯,Grafana洛基,Grafana节奏.它还部署了Grafana通过预先构建的仪表板,已经分层放入了示例。

具有范例支持的可观察性堆栈的基本架构。

上图显示了一个样本可观察性堆栈,它从一个样本应用程序(TNS应用程序)收集遥测数据。Prometheus存储度量,Grafana Loki存储日志,Grafana Tempo存储痕迹。Grafana提供了一个可视化层来查询所有信息。

(题外话,虽然Prometheus主要是一个基于拉力的架构,但我们正在利用它的能力接收远程写入通过这个演示)。

现在我们已经启用了范例Grafana云,很容易调整这个演示,看看在我们完全管理的可观察性堆栈中范例是什么样子的。

具有范例支持的Grafana云堆栈的体系结构。

Grafana Cloud用户可以将由Grafana Agent收集的遥测数据直接发送到我们托管的日志、度量和跟踪服务,因此他们不再需要维护OSS Prometheus、Grafana Loki和Grafana Tempo。这种转换的开销是最小的,因为Grafana Cloud与OSS 100%兼容。

你要做的就是更新remote_write在演示的Grafana Agent配置中指向Grafana Cloud,而不是本地Prometheus和Tempo实例,发送一个简短的注释support@www.tubolov.com在您的Grafana Cloud帐户上启用范例(这包括所有帐户层),然后离开!

metrics: configs:—name: kubernetes-metrics remote_write:—send_exemplars: true url: https://prometheus-us-central1.grafana.net/api/prom basic_auth: username: 密码: . txt
traces: config: remote_write: - endpoint: tempo-us-central1.grafana.net:443 basic_auth: username: 密码: .net

范例如何在Grafana企业堆栈中工作

Grafana企业堆栈用户将在Grafana企业指标(GEM)将在下一个版本中引入,所需的更改将几乎相同。只需更新Grafana代理的URL和基本认证信息指标配置以指向您的GEM集群,并为其提供适当的令牌和租户名称。

由于我们的堆栈是完全兼容OSS的,因此范例工作流也适用于那些使用GEM +的人OSS节奏,以及那些使用GEM +的Grafana企业痕迹(得到)。

具有范例支持的Grafana企业堆栈体系结构。

上面的图表显示了用户如何运行Grafana企业度量(我们的自托管解决方案,用于用户寻找可伸缩的、长期的与Prometheus兼容的度量存储)将能够在下一个版本中存储由Grafana Agent或Prometheus发送的示例。

结论

我们很高兴将范例支持添加到Grafana云度量因为它为我们的用户提供了一种从指标转移到跟踪的新方法。我们相信,您的度量、日志和跟踪之间的联系越好,您就越容易利用每种遥测类型所提供的独特优势。因此,您还可以更容易地找到事件的根本原因并更快地解决它们。

准备好给我们寄样品了吗?看看的文档了解更多关于如何开始使用Grafana Cloud的信息

如果您还没有使用Grafana Cloud—开始可观察性最简单的方法—现在就注册,免费试用Grafana Cloud Pro 14天,具有无限的度量、日志、跟踪和用户、长期留存和高级团队协作功能。