系统的 QPS(Queries Per Second)可视化
1. 使用 Prometheus + Grafana(主流方案)
步骤:
-
采集数据(Prometheus)
-
在应用中集成 Prometheus Client(如
prometheus-clientfor Python/Java/Go)。 -
暴露
/metrics端点,Prometheus 定期拉取数据。 -
示例(Python Flask):
from prometheus_client import Counter, start_http_server REQUEST_COUNT = Counter('http_requests_total', 'Total HTTP Requests') @app.route("/") def home(): REQUEST_COUNT.inc() # 每次请求 +1 return "Hello World!"
-
-
存储 & 查询(Prometheus)
-
Prometheus 存储时间序列数据,支持 PromQL 查询:
rate(http_requests_total[1m]) # 计算 QPS(1 分钟内的平均请求率)
-
-
可视化(Grafana)
-
配置 Prometheus 数据源,创建 Dashboard:
-
QPS 曲线图:
rate(http_requests_total[1m]) -
峰值标记:设置告警阈值(如
QPS > 10,000触发告警)。 -
按接口/服务分组:
sum(rate(http_requests_total{path="/api"}[1m])) by (path)
-
![Grafana QPS Dashboard]()
-
2. 使用 ELK Stack(Elasticsearch + Logstash + Kibana)
适用于日志分析场景:
-
采集日志(如 Nginx/API 访问日志):
127.0.0.1 - GET /api/users 200 12ms
-
Logstash 解析日志:
filter { grok { match => { "message" => "%{IP:client} %{WORD:method} %{URIPATH:path} %{NUMBER:status} %{NUMBER:latency}ms" } } -
Kibana 可视化:
-
创建 Time Series 图表,按
path聚合 QPS。 -
使用 Dashboard 展示实时 QPS 趋势。
-
3. 使用 Datadog / New Relic(SaaS 方案)
适用于云服务或企业级监控:
-
自动采集:集成 APM(Application Performance Monitoring)探针。
-
开箱即用的 QPS 仪表盘:
-
按服务、接口、错误率分组。
-
结合 Latency、Error Rate 分析性能瓶颈。
-

4. 自定义方案(Python + Matplotlib / Plotly)
适合临时分析或小规模系统:
import time
import matplotlib.pyplot as plt
qps_history = []
timestamps = []
while True:
current_qps = get_qps_from_logs() # 从日志或数据库计算 QPS
qps_history.append(current_qps)
timestamps.append(time.time())
plt.plot(timestamps, qps_history)
plt.xlabel("Time")
plt.ylabel("QPS")
plt.pause(1) # 每秒刷新
-
可保存为动态 HTML(Plotly)或实时刷新(Matplotlib)。
5. 实时监控大屏(Apache Kafka + Flink + Superset)
适用于高并发实时系统:
-
Kafka:接收请求日志流。
-
Flink:实时计算 QPS(窗口统计)。
-
Superset:展示实时 QPS 热力图、地理分布等。
最佳实践建议
-
分层监控:
-
全局 QPS(负载均衡层,如 Nginx)。
-
服务级 QPS(微服务 API)。
-
数据库/缓存 QPS(如 Redis
INFO STATS)。
-
-
结合其他指标:
-
Latency(P90/P99):高 QPS 是否导致延迟上升?
-
Error Rate:QPS 激增时错误是否增多?
-
-
告警机制:
-
当 QPS 超过阈值时,触发企业微信/钉钉/Slack 通知。
-
最终推荐方案
| 场景 | 推荐工具 |
|---|---|
| 中小型系统 | Prometheus + Grafana |
| 日志分析为主 | ELK Stack |
| 企业级云服务 | Datadog / New Relic |
| 实时大数据 | Kafka + Flink + Superset |
选择适合你团队技术栈的方案,确保 QPS 可视化能帮助快速定位问题!


浙公网安备 33010602011771号