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

如何使用Prometheus/Grafana中的标签值制作折线图?,prometheus,grafana,Prometheus,Grafana,更新1: 我知道这不是时间序列数据。这样做的目的是避免使用度量的时间戳,因为我想指定过去的一个小时 我有一些指标表明在给定的时间内生产的产品数量 some_metric{"hour"="1" "product"="a"} 5 some_metric{"hour"="2" "product"="a"} 7 some_metric{&qu

更新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
第一个指标解释为产品“a”的5,以小时=1生产

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

有什么提示吗


非常感谢。

首先,你需要了解什么是

普罗米修斯是一个时间序列数据库,当数据刮取度量端点时,它会自动向数据添加时间戳

换句话说,有了普罗米修斯,你将免费获得“小时”标签。您应该从度量中删除“小时”标签,并且在度量模式设计期间不要担心它

现在转到格拉法纳。当您使用表示PromQL查询的Prometheus查询结果时,如下所示:

some_metric
默认情况下,Grafana将在X轴上放置时间戳,并根据查询返回的“product”=“a”和“product”=“b”的值绘制两条线

另一种解释方式是:

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向Prometheus查询“some_metric”时,Prometheus将返回两组键值对,一组用于“product”=“a”,一组用于“product”=“b”,键值为timestamp1,timestamp2,…,值为产品编号


我说得够清楚了吗?如果没有,那么您可以查看Grafana图示例。单击“查询检查器”按钮,您将看到从ProMQ查询返回的实际时间序列数据的样子。

您可能应该将数据存储在MySQL中,并使用Grafana MySQL数据源和Grafana表面板


谢谢你的建议。在本例中,目的是避免使用度量的时间戳,因为我想在历史记录中指定一个时间。我知道这不是时间序列数据。