use*_*999 6 metrics time-series grafana prometheus promql
 我试图使用 Prometheus 作为时间序列数据库在 Grafana 可视化中获取事件的准确计数。但是计数器显示不正确的记录。我得到的 2 天的计数比我得到的 7 天要高,这肯定表明出现了问题。
我试图使用 Prometheus 作为时间序列数据库在 Grafana 可视化中获取事件的准确计数。但是计数器显示不正确的记录。我得到的 2 天的计数比我得到的 7 天要高,这肯定表明出现了问题。
首先,我在这个 promql 查询中使用了一个统计可视化:
sum(increase(http_server_requests_seconds_count[$__range])). 
聚苯乙烯
我也试过如下:
 sum(increase(http_server_requests_seconds_count[1m]))。这也给出了不正确的计数。
我已经对图表进行了相同的尝试,并使用图例在表格中显示总数。这也给出了不正确的计数。
请让我知道显示随着时间范围变化而可靠的计数的最佳方式是什么。
我的json:
{
    "colorMode": "value",
    "fieldOptions": {
        "calcs": [
            "lastNotNull"
        ],
        "defaults": {
            "mappings": [],
            "thresholds": {
                "mode": "absolute",
                "steps": [{
                    "color": "green",
                    "value": null
                }]
            }
        },
        "overrides": [],
        "values": false
    },
    "graphMode": "area",
    "justifyMode": "auto",
    "orientation": "auto"
},
"pluginVersion": "6.6.1",
"targets": [{
    "expr": " sum(increase(http_server_requests_seconds_count[$__range]))",
    "hide": false,
    "instant": true,
    "refId": "A"
}],
"timeFrom": null,
"timeShift": null,
"title": "Total Number of Requests",
"type": "stat"
}
这对我有用:
sum(increase(http_request_duration_seconds_count{ecs_cluster=~"$ecs_cluster", instance_id=~"$instance_id"}[$__range]))
激活instant query并将计算设置为last not null
这是窗格 JSON:
{
  "cacheTimeout": null,
  "datasource": "Prometheus",
  "description": "",
  "fieldConfig": {
    "defaults": {
      "custom": {},
      "unit": " requests",
      "decimals": 0,
      "thresholds": {
        "mode": "absolute",
        "steps": [
          {
            "color": "blue",
            "value": null
          }
        ]
      },
      "mappings": [],
      "nullValueMode": "connected"
    },
    "overrides": []
  },
  "gridPos": {
    "h": 2,
    "w": 5,
    "x": 0,
    "y": 4
  },
  "id": 4,
  "interval": null,
  "links": [],
  "maxDataPoints": 100,
  "options": {
    "reduceOptions": {
      "values": false,
      "calcs": [
        "lastNotNull"
      ],
      "fields": ""
    },
    "orientation": "horizontal",
    "textMode": "auto",
    "colorMode": "value",
    "graphMode": "none",
    "justifyMode": "auto",
    "fieldOptions": {
      "calcs": [
        "lastNotNull"
      ]
    }
  },
  "pluginVersion": "7.1.0",
  "targets": [
    {
      "expr": "sum(increase(http_request_duration_seconds_count{ecs_cluster=~\"$ecs_cluster\", instance_id=~\"$instance_id\"}[$__range]))",
      "hide": false,
      "instant": true,
      "interval": "",
      "intervalFactor": 1,
      "legendFormat": "",
      "refId": "A"
    }
  ],
  "timeFrom": null,
  "timeShift": null,
  "title": "",
  "type": "stat"
}
increase()由于所选的数据模型,Prometheus 可能会从函数返回不准确的结果- 有关详细信息,请参阅此问题。
如果您需要准确的结果,则存在以下选项:
offset. 尝试如下操作:sum(http_server_requests_seconds_count - http_server_requests_seconds_count offset $__range)。请注意,此方法仅在给定指标在给定时间范围内http_server_requests_seconds_count未重置为 0(又名)时才有效。counter resetincrease()MetricsQL 中的函数。它返回准确的值 -有关详细信息,请参阅这些文档。| 归档时间: | 
 | 
| 查看次数: | 5955 次 | 
| 最近记录: |