在 Grafana 上使用 InfluxDB 计算每秒请求数
Posted
技术标签:
【中文标题】在 Grafana 上使用 InfluxDB 计算每秒请求数【英文标题】:Calculating request per second using InfluxDB on Grafana 【发布时间】:2016-10-04 12:03:20 【问题描述】:我使用telegraf插件nginx读取Nginx的基本状态信息(ngx_http_stub_status_module)
这是我的查询
原始 sql:
SELECT derivative(mean("requests"), 1s) FROM "nginx" WHERE $timeFilter GROUP BY time($interval) fill(null)
这是我的数据
time accepts active handled host port reading requests server waitingwriting
1464921070000000000 7 1 7 hysm 80 0 17 localhost 0 1
1464921080000000000 8 1 8 hysm 80 0 19 localhost 0 1
1464921090000000000 8 1 8 hysm 80 0 20 localhost 0 1
1464921100000000000 8 1 8 hysm 80 0 21 localhost 0 1
但 requestPerSecond 是 0.083,我的查询有什么问题?
【问题讨论】:
你期望它是什么?我的第一个倾向是你取平均值,然后取它的导数,因为你的平均值会随着你的group by time($interval)
而变化。
您是否尝试将导数上的单位设置为等于GROUP BY time()
间隔? (通常在 Grafana 中默认为 10s)
@MichaelDesa,我想知道结果(requestPerSecond)是否正确
requests
代表什么?它只是一个计数器吗?如果是,那么您将需要运行derivative(max(requests))
,它应该会给您比mean
更准确的信息。
@MichaelDesa,只是一个柜台,谢谢
【参考方案1】:
假设你正在处理一个计数器,你想要的查询是
SELECT derivative(max(requests))
FROM "nginx"
WHERE $timeFilter
GROUP BY time($interval)
【讨论】:
如果您必须使用count
导出请求数怎么办?以上是关于在 Grafana 上使用 InfluxDB 计算每秒请求数的主要内容,如果未能解决你的问题,请参考以下文章
无法在包含测量的 influxDB 点上创建 Grafana 动态仪表板
使用 Telegraf 的 influxDB 数据在 Grafana 上绘制 CPU 使用率百分比
我应该如何让 grafana 知道安装在不同主机上的 telegraf 和 influxdb?