Grafana探索使相关指标和日志变得容易。普罗米修斯查询自动转换为洛基查询.我们将在Grafana 8.0中扩展这一特性,以支持平滑的日志关联,不仅来自Prometheus,而且来自石墨指标。
普罗米修斯和洛基具有几乎相同的查询语法,因此它们之间的转换非常自然。但是,用于查询的Graphite语法是不同的,为了将其映射到Loki,需要进行一些额外的设置。这听起来很简单:您只需要决定Graphite度量名称的哪一部分应该成为Loki标签值。
有点困惑?让我们看一个例子。
下面是用于测量部署在两个不同环境(测试环境和生产环境)的两个应用程序各自处理的请求总数的Graphite指标:
apps.prod.application1.requests.count应用程序.刺激.application2.requests.count应用程序.测验.application1.requests.count应用程序.test.application2.requests.count
石墨公制名称按等级结构组织。名称被分成多个部分,也称为“节点”。节点之间用句号(“。”)分隔。
有些节点可能表示一组被监控项的名称空间(例如:应用程序
)或系统的特定部分(例如:application1
,application2
).度量名称末尾的节点通常定义度量的内容(例如。requests.count
).
这只是一个例子。石墨度量名称非常灵活,可以遵循不同的约定。如果您对如何组织石墨指标的最佳实践感兴趣,请参阅以下内容石墨的文档.
在上面的例子中,每个指标名称中有5个节点:
应用程序
-与所有应用程序相关的指标的名称空间刺激
,测验
-环境名称application1
,application2
—应用的唯一标识符请求
-被测量的东西数
-测量值。在本例中,它是给定环境和应用程序的请求总数,但也可以用于跟踪平均值、中位数或百分位数
参数只是故事的一部分。应用程序(application1
而且application2
)生成更深入了解度量值的日志。让我们假设Loki使用标签存储元数据来收集应用程序日志。例如:
{environment="prod", application="application2"}请求已处理!
请注意标签是如何与来自Graphite度量节点的唯一名称密切相关的。标签值(如刺激
而且application1
)也是石墨公制名称的一部分。然而,标签名称(环境
而且应用程序
)不是度量名称的一部分,而是所选约定的一部分。
那么,如何让Loki知道正确地将标签名称与来自Graphite查询的值匹配的约定呢?中的石墨数据源配置中添加了该信息标签的映射部分:
映射定义了石墨查询的哪个节点被捕获为标签值。节点被替换为括号中的标签名。当数据源从Graphite更改为Loki时,映射中的标签名称将与从查询中提取的标签值进行匹配,如下例所示:
- 映射:
应用。(环境)(应用程序).requests.count
- 石墨查询:
apps.prod.application1.requests.count
- 洛基查询:
{环境=“刺激”,应用程序= " application1 "}
石墨查询可能包含函数,但它们不包含在映射配置中。通过跳过函数从查询中提取度量路径,例如:
movingAverage (aliasByNode (apps.prod.application1.requests。Count, 1, 2), 10)→apps.prod.application1.requests.count
这是所有!用它就更容易了石墨的标签.带有标记的查询同时包含名称和值,允许Graphite查询在没有任何额外映射配置的情况下转换为Loki。例如:
- 石墨查询:
seriesByTag(“环境=刺激”,“应用程序= application1”)
- 洛基查询:
{环境=“刺激”,应用程序= " application1 "}
请继续关注更多民主化指标的功能!如果你想从Grafana, Graphite和Loki开始,请点击查看Grafana云.我们有免费和付费的Grafana云计划,以适应每一个用例-现在免费注册.
此外,要了解更多关于即将发布的Grafana 8.0令人兴奋的新功能,更不用说有来自世界各地的70位不同演讲者的30多个会议,请注册GrafanaCONline该会议将于6月7日至17日举行。