背景
grafana展示mysql源数据,且以折线形式展示。
MySQL表内数据格式如下:
折线图 只需要各个接口的point_time对应的rps和99分位响应时间,其他字段可忽略。
添加折线图
Dashboard 添加panel,右侧菜单选择 Time Series,添加Query,选择MySQL数据源,
选择SQL Edit模式,输入SQL语句
SQL如下:
SELECT
date_sub(point_time, interval +8 hour) AS "time",
'每秒请求数' as metric,
ROUND(rps) AS RPS
FROM report_flow_data
WHERE path = "$path"
AND service = "$service"
AND $__timeFilter(point_time)
ORDER BY point_time asc
$__timeFilter(point_time)的含义是,将sql语句的where条件的时间段,替换成grafana中的用户自定义选择的时间段.
ROUND(rps) AS RPS
也可以写做ROUND(rps) AS value
添加多折线图
添加两个Query,选择SQL Edit模式,输入下面的SQL语句
---折线1 Query A---
SELECT
date_sub(point_time, interval +8 hour) AS "time",
'每秒请求数' as metric,
ROUND(rps) AS RPS
FROM report_flow_data
WHERE path = "$path"
AND service = "$service"
AND $__timeFilter(point_time)
ORDER BY point_time asc
---折线2 Query B---
SELECT
date_sub(point_time, interval +8 hour) AS "time",
'p99响应时间(ms)' as metric,
ROUND(p99_response_time) AS P99RT
FROM report_flow_data
WHERE path = "$path"
AND service = "$service"
AND $__timeFilter(point_time)
ORDER BY point_time asc
效果如下: