- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Prometheus 服务器,它使用 this exporter 将我们的 aws 账单数据抓取为指标。我每 6 小时抓取一次计费指标以限制请求。然后 Grafana 服务器使用这些数据构建一些仪表板。
当我选择 Last 24 hours
时,仪表板按预期显示数据
但如果我将范围更改为本月
,图表将绘制无数据点
我还没有找到任何方法让 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 分钟(Prometheus 的默认“回溯增量”,可通过 --query.lookback-delta
命令行标志配置)。
此回溯增量意味着,如果您在某个时间点查询时间序列的值(通过即时查询,或通过将在不同时间点检索所述时间序列的值的范围查询, 以固定的步长时间分隔)如果样本少于 5 分钟之前,你只会得到一个值。因此,如果步长远大于 5 分钟且样本间隔远大于 5 分钟,则您的查询在样本后不到 5 分钟内命中时间戳的可能性较小,而更有可能命中前 5 分钟内没有样本的时间戳.
所以你需要做的是延长这个5分钟的时间范围。通过上面的命令行标志(不推荐,因为它可能会破坏其他假设,对于具有更合理的抓取间隔的时间序列);或者使用 <aggregation>_over_time
函数之一。结合 Grafana 的 $__interval
变量,像这样的东西应该可以工作:
topk(5, max_over_time(aws_billing_estimated_charges_sum{linked_account="1234567890"}[$__interval]))
这将“强制”Prometheus 回顾 $__interval
(这是 Grafana 查询的样本之间的间隔)而不是 5 分钟。如果时间范围为一个月(以及屏幕截图中的图形大小),我猜这将在 1 小时左右,因此 Grafana 将每 1 小时查询一次样本,其中最大值为前 1 小时。
如果您希望这些样本产生第一个图形中的线而不是不相交的点,那么您还应该在 Grafana 中设置 6h
的 Min step。或者在您的查询中使用固定间隔的 6h
,但随后您会得到一个仅更改每个 6h
的阶跃函数。
关于缩小时 Grafana 仪表板不显示数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56882734/
我有一个具有可变数量子元素的固定大小的 div。我不知道 children 的大小。目标是缩小它们以适合父级。 例子: .parent { width: 100px; height: 100p
我是一名优秀的程序员,十分优秀!