表结构
CREATE TABLE `monitor_metric_record` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`target_id` varchar(50) NOT NULL COMMENT '目标id',
`code` varchar(100) NOT NULL COMMENT '指标编码',
`value` decimal(20,4) DEFAULT NULL COMMENT '指标值',
`create_time` bigint(20) NOT NULL COMMENT '指标写入时间,13位毫秒值') ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
SQL
使用自定义的sql, time和metric是内定的别名, 会自动渲染曲线图
,这里使用内置变量$__from和$__to来筛选时间
SELECT create_time AS time,targer_id AS metric,value FROM monitor_metric_record WHERE create_time >= $__from AND create_time <= $__to and code='lag';

SQL不正确时的现象
1. 使用$__timeFilter函数, 时间过滤不生效
下图本意是要筛选6小时内的数据, 但是却出现了7天前的数据
点击Query inspetor查看执行详情, 发现生成的sql不正确, $__timeFilter函数将mysql中的FROM_UNIXTIME(), 作为一整个条件了


2. SELECT的time字段使用了FROM_UNIXTIME(create_time/1000), 导致时区不正确
如果时间的条件小于8小时, 图表渲染会报错Data outside time range, 但是如果大于8小时, 前面8小时会没有数据


