更新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/表查询