Grafana仪表板在缩小时不显示数据

Grafana仪表板在缩小时不显示数据,grafana,prometheus,Grafana,Prometheus,我有一个普罗米修斯服务器,它使用我们的aws计费数据作为度量。我每6小时刮一次账单,以限制请求。Grafana服务器使用这些数据构建一些仪表盘 当我选择“最近24小时” 但是如果我在本月将范围更改为,图形将绘制无数据点 我没有找到任何方法让Grafana在缩小时显示数据。 这是配置 { "aliasColors": {}, "bars": true, "dashLength": 10, "dashes": false, "fill": 1, "gridPos": {

我有一个普罗米修斯服务器,它使用我们的aws计费数据作为度量。我每6小时刮一次账单,以限制请求。Grafana服务器使用这些数据构建一些仪表盘

当我选择“最近24小时”

但是如果我在本月将范围更改为
,图形将绘制
无数据点

我没有找到任何方法让Grafana在缩小时显示数据。 这是配置

{
  "aliasColors": {},
  "bars": true,
  "dashLength": 10,
  "dashes": false,
  "fill": 1,
  "gridPos": { "h": 12, "w": 5, "x": 5, "y": 16 },
  "id": 12,
  "legend": {
    "alignAsTable": true,
    "avg": false,
    "current": true,
    "hideEmpty": false,
    "hideZero": false,
    "max": false,
    "min": false,
    "rightSide": false,
    "show": true,
    "total": false,
    "values": true
  },
  "lines": false,
  "linewidth": 1,
  "links": [],
  "nullPointMode": "connected",
  "percentage": false,
  "pointradius": 2,
  "points": false,
  "renderer": "flot",
  "seriesOverrides": [],
  "spaceLength": 10,
  "stack": true,
  "steppedLine": false,
  "targets": [
    {
      "expr": "topk(5 ,aws_billing_estimated_charges_sum{linked_account=\"1234567890\"})",
      "format": "time_series",
      "intervalFactor": 1,
      "legendFormat": "{{service_name}}",
      "refId": "A"
    }
  ],
  "thresholds": [],
  "timeFrom": null,
  "timeRegions": [],
  "timeShift": null,
  "title": "Prod: Top 5 Services ",
  "tooltip": {
    "shared": true,
    "sort": 0,
    "value_type": "individual"
  },
  "type": "graph",
  "xaxis": {
    "buckets": null,
    "mode": "time",
    "name": null,
    "show": true,
    "values": []
  },
  "yaxes": [
    {
      "format": "currencyUSD",
      "label": null,
      "logBase": 1,
      "max": null,
      "min": null,
      "show": true
    },
    {
      "format": "short",
      "label": null,
      "logBase": 1,
      "max": null,
      "min": null,
      "show": false
    }
  ],
  "yaxis": {
    "align": false,
    "alignLevel": null
  }
}

如何让Grafana显示我的图表?

我没有任何分辨率如此低的指标,因此我无法实际测试。但我认为问题在于缩小时的结果步骤超过5分钟(普罗米修斯的默认“lookback delta”,可通过
--query.lookback delta
命令行标志配置)

这个回溯增量的意思是,如果您在某个时间点查询时间序列的值(通过即时查询,或通过范围查询,将在不同的时间点检索所述时间序列的值,以固定的步长时间分隔),则只有在采样时间少于5分钟时,您才会返回值。因此,如果步骤远大于5分钟,样本之间的距离远大于5分钟,则查询在样本之后不到5分钟就命中时间戳的可能性较小,而在前5分钟内没有样本的情况下命中时间戳的可能性较大

所以你需要做的是延长这5分钟的时间范围。通过上面的命令行标志(不推荐,因为它可能会打破其他假设,用于具有更合理刮取间隔的时间序列);或者使用其中一个函数。与Grafana的
$\u interval
变量相结合,类似的功能应该可以工作:

topk(5, max_over_time(aws_billing_estimated_charges_sum{linked_account="1234567890"}[$__interval]))
这将“迫使”普罗米修斯回首
$\u interval
(即格拉法纳查询的样本之间的间隔),而不是5分钟。时间范围为一个月(以及屏幕截图中的图表大小),我猜大概是1小时左右,因此Grafana会每1小时查询一次样本,最大值超过前1小时


如果您希望这些示例生成第一个图形中的线条,而不是不相交的点,那么您还应该在Grafana中设置
6h
的最小步长。或者在您的查询中使用固定的
6h
,但是您会得到一个只会更改每个
6h

的步长函数。我没有任何分辨率如此低的度量,因此我无法实际测试它。但我认为问题在于缩小时的结果步骤超过5分钟(普罗米修斯的默认“lookback delta”,可通过
--query.lookback delta
命令行标志配置)

这个回溯增量的意思是,如果您在某个时间点查询时间序列的值(通过即时查询,或通过范围查询,将在不同的时间点检索所述时间序列的值,以固定的步长时间分隔),则只有在采样时间少于5分钟时,您才会返回值。因此,如果步骤远大于5分钟,样本之间的距离远大于5分钟,则查询在样本之后不到5分钟就命中时间戳的可能性较小,而在前5分钟内没有样本的情况下命中时间戳的可能性较大

所以你需要做的是延长这5分钟的时间范围。通过上面的命令行标志(不推荐,因为它可能会打破其他假设,用于具有更合理刮取间隔的时间序列);或者使用其中一个函数。与Grafana的
$\u interval
变量相结合,类似的功能应该可以工作:

topk(5, max_over_time(aws_billing_estimated_charges_sum{linked_account="1234567890"}[$__interval]))
这将“迫使”普罗米修斯回首
$\u interval
(即格拉法纳查询的样本之间的间隔),而不是5分钟。时间范围为一个月(以及屏幕截图中的图表大小),我猜大概是1小时左右,因此Grafana会每1小时查询一次样本,最大值超过前1小时


如果您希望这些示例生成第一个图形中的线条,而不是不相交的点,那么您还应该在Grafana中设置
6h
的最小步长。或者在您的查询中使用固定的
6h
,但是您会得到一个只会每
6h
更改一次的step函数。感谢您的解释,我最终得到了max_over_time(aws_billing_estimate_charges_sum{linked_account=“1234567890”}[$_interval])因为topk和max加班并没有产生我所期望的结果。感谢您的解释,我最终得到了max_over_time(aws_billing_估计费用{linked_account=“1234567890”}[$_interval]),因为topk和max加班并没有产生我所期望的结果。