在 Grafana 上使用 InfluxDB 计算平均请求时间
Posted
技术标签:
【中文标题】在 Grafana 上使用 InfluxDB 计算平均请求时间【英文标题】:Calculation average request time using InfluxDB on Grafana 【发布时间】:2021-03-06 18:08:25 【问题描述】:我正在使用 influx 来保存指标。 我正在尝试在 grafana 中创建一个仪表板,它将显示一个方法每小时的平均执行时间。
这是我计算方法执行时间的查询:
原始 sql:
计算平均时间的查询。
SELECT MEAN("sum") FROM "autogen"."pfr_timed_http_request"
WHERE "method"='request' AND $timeFilter
GROUP BY time(1h) fill(null)
但如果执行时间图看起来像事实,那么平均执行时间图看起来很奇怪。 平均值应该是4s左右,但比1还要小很多。可能是计算中包含null为0的原因,可以排除在计算之外吗? 我究竟做错了什么? ![在此处输入图片说明
【问题讨论】:
【参考方案1】:我猜sum
字段(不是很直观的字段名称)持有响应时间,所以平均响应时间计算:
SELECT MEAN("sum")
FROM "autogen"."pfr_timed_http_request"
WHERE "method"='request'
AND $timeFilter
GROUP BY time(1h) fill(null)
【讨论】:
谢谢!图表变得更加真实,但平均值仍然计算得非常小。我已经更新了我的问题,请参阅 @NeverSleeps 我会说原始记录查询是错误的。为什么你需要 SUM 聚合?为什么不简单SELECT "sum" FROM "autogen"."pfr_timed_http_request" WHERE "method"='request' AND $timeFilter
。可能有数百万个响应时间为 1 毫秒的请求,显示为 X 秒响应时间和 SUM 聚合。不要责怪图表,使用表格并在那里列出原始记录/聚合指标来证明记录计数/值/聚合。以上是关于在 Grafana 上使用 InfluxDB 计算平均请求时间的主要内容,如果未能解决你的问题,请参考以下文章
无法在包含测量的 influxDB 点上创建 Grafana 动态仪表板
使用 Telegraf 的 influxDB 数据在 Grafana 上绘制 CPU 使用率百分比
我应该如何让 grafana 知道安装在不同主机上的 telegraf 和 influxdb?