如何在Prometheus/Grafana中使用标签值制作折线图?



更新1:

我知道这不是时间序列数据。这样做的目的是为了避免使用度量的时间戳,因为我想指定过去的一个小时。

我有一些指标可以表示给定小时内生产的产品数量。

some_metric{"hour"="1" "product"="a"}  5
some_metric{"hour"="2" "product"="a"}  7
some_metric{"hour"="1" "product"="b"}  3
some_metric{"hour"="2" "product"="b"}  2

第一个度量解释为5的产品"生产时间=1

现在我想在Grafana中制作一个图表,使用小时作为x轴,度量值作为y轴。在本例中,我希望在同一个图表上有两行(每一行分别表示a和b的生产)。

提示吗?

谢谢你。

首先,你需要理解什么是时间序列。

Prometheus,作为一个时间序列数据库,当它刮擦你的度量端点时,会自动为数据添加时间戳。

换句话说,有了普罗米修斯,你将得到"小时";标签免费。你应该省略"小时"。从您的度量中标记,并且在您的度量模式设计期间不必担心它。

现在来看Grafana。当您使用Grafana Graph面板来表示Prometheus查询结果时,如:

some_metric

默认情况下,Grafana将时间戳放在x轴上,并根据"product"="a"的值绘制两条线。而value "product"="从查询返回。

另一种解释方法是:

Prometheus TSDB以

格式存储时间序列数据
time series #1: some_metric{"product"="a"}  5@timestamp1, 7@timestamp2, ...
time series #2: some_metric{"product"="b"}  3@timestamp1, 2@timestamp2, ...

当Grafana查询" some_metrics "从普罗米修斯,普罗米修斯将返回两组键值对,一组为"product"="a"还有一组为"product"="b",键为timestamp1, timestamp2,…,而价值是你的产品数量。

我说得够清楚吗?如果没有,那么你可以在这里查看一个Grafana Graph的例子。点击"查询检查器"。按钮,您将看到从PromQL查询返回的实际时间序列数据是什么样子的。

你可能应该把你的数据存储在MySQL中,并使用Grafana MySQL数据源和Grafana Table Panel。

https://grafana.com/docs/grafana/latest/datasources/mysql/表查询

最新更新