Grafana Mysql毫秒值(13位数值)曲线配置

表结构
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小时会没有数据



©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容