Grafana的Worldmap使用,添加Mysql 数据源
Worldmap使用文档
一、 安装
在安装grafana服务器运行:
grafana-cli plugins install grafana-worldmap-panel
然后重启服务:service grafana-server restart
二、 使用
Worldmap可以以Mysql做为数据源。为了使Worldmap可以使用Mysql数据源,首先需要在Grafana的data source中添加mysql连接串。
选择Mysql:
配置好连接信息即可:
2.1 Mysql侧设置
要让worldmap能够基于mysql的数据在地图上绘制出特定的坐标点,需要定义格式特定的表。
建立表:
CREATE TABLE `worldmap_latlng` (`id` int(11) NOT NULL AUTO_INCREMENT,`lat` FLOAT NOT NULL,`lng` FLOAT NOT NULL,`name` VARCHAR(20) NOT NULL,`value` FLOAT NOT NULL,`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`id`)) AUTO_INCREMENT=7 DEFAULT CHARSET=latin1;
对于每一条记录,worldmap会基于记录中的经纬度绘制一个特定半径、带标注信息的圆。
其中value表示在地图上显示的这个圈圈的半径多大,value越大,半径越大。
lat和lng是这个记录需要绘制在地图的什么位置。
name是给这个点打上的label,当鼠标移到这个圈圈的时候,就会显示这个字段的值。
timestamp是时间戳,它的类型是timestamp,而不是datetime!!!
插入测试数据:
INSERT INTO `worldmap_latlng`
(`lat`,`lng`,`name`,
`value`,
`timestamp`)
VALUES
(39.234,116.3234,
'Beijing',
1.0,
now());INSERT INTO `testdb`.`worldmap_latlng`
(`lat`,`lng`,`name`,
`value`,
`timestamp`)
VALUES
(34.234,121.3234,
'Shanghai',
3.0,
now());INSERT INTO `worldmap_latlng`
(`lat`,`lng`,`name`,
`value`,
`timestamp`)
VALUES
(39.234,121.3234,
'Tianjing',
5.23,
now());
2.2 worldmap Panel构建查询
首先新建panel:
选择Worldmap Panel.
先构建查询语句:
选择Query的数据源为刚刚引入的Mysql数据库。
把查询结果Format as设置为Table,同时点击“Edit SQL”直接编辑SQL。
输入以下SQL语句:表示从数据源中select数据出来,然后使用时间戳来过滤一些数据。
SELECTUNIX_TIMESTAMP(`timestamp`) as time_sec,`value` as value,`lat` as latitude,`lng` as longitude,`name` as name
FROM worldmap_latlng
WHERE $__timeFilter(`timestamp`)
ORDER BY `timestamp` ASC
2.3 worldmap的配置
首先最后的查询语句应该类似如下:(注意里面的Format as Tabel)
其次,设置Worldmap 的属性:
Center: 可以在这里设置地图的中心,(39,116)是北京的经纬度。
Map Data Options : 把Location Data设置为Tabel,因 为worldmap的数据源是从mysql中select出来的结果。同时把Aggregation设置为total.
设置字段映射:
Table Query Format: 选择coordinates,表示位置是以经纬度来定位的。
Location Name Field : 对应于上面select语句里面的 name,
Metric Field :对应select语句里面的value,
Latitude Field:对应select语句里面的latitude,注意这里是使用as后的别名而不是mysql数据表本身的列表。
Longitude Field :对应select语句中的Longitude
注意,Worldmap里面使用的field并不是直接来自表的定义,而是来自Select语句的列!!!
因此,FieldMapping里面的各个字段其实是对应于:
SELECTUNIX_TIMESTAMP(`timestamp`) as time_sec,`value` as value,`lat` as latitude,`lng` as longitude,`name` as name
•••
2.4 示例结果
可以看到,上海就已经在地图上标注出来了。
三、 其它注意事项
3.1 worldmap不可离线使用
根据https://github.com/grafana/worldmap-panel/issues/48 解释,worldmap在使用过程中需要从特定的服务器cartodb-basemaps-a.global.ssl.fastly.net 下载地图图片,因此worldmap暂时不支持离线使用。这种连接是由浏览器侧发出的,并不是grafana服务器。
因此,只需要访问worldmap的浏览器能够连接到特定服务器即可。
3.2 worldmap的正常使用需要fq
cartodb-basemaps-a.global.ssl.fastly.net 站点被block了,在国内无法访问,会导致使用worldmap过程中数据点能正常绘制,但是背景地图是空的,其效果类似于下图。
解决方法:设置 合适的代理 即可。
3.3 动态绘制
Worldmap支持动态刷新地图,其原理是:
- Grafana支持周期性自动的query,周期可以在worldmap的右上角选择设置。
2. 在select的时间,在where语句里面添加对时间戳的过滤,只把上一个周期的数据选择出来进行绘制即可。这个时间过滤可以由grafana自动完成(WHERE $__timeFilter(timestamp
) 就是这个作用。这个周期一样在Panel的右上角可以选择:
- 其它服务往mysql数据源插入带时间戳的记录即可。
Grafana的Worldmap使用,添加Mysql 数据源相关推荐
- saiku添加mysql数据源_Saiku连接mysql数据库(二)
Saiku连接Mysql数据库展示数据 前提:Saiku已安装好,mysql已安装好 1.添加Saiku的数据库驱动: mysql-connect-java-5.1.17.jar 下载相应的数据库驱动 ...
- mysql mybatis多库查询_SpringBoot2.0.3整合Mybatis添加动态数据源实现多库查询(DynamicDataSource)...
最近由于项目使用了spring boot 2.0.3版本,业务从多个数据查询,必须支持动态数据源,由于2.0.3的版本与之前的版本有了较大的改动其实现上有些不同,再采坑以后在此记录 1.需要Java类 ...
- grafana在项目中添加datasource(数据源)
因公司最近使用grafana,需要添加一个新的数据源,网上并没有在源码中添加数据源的中文文档,在此我整理了在页面中添加数据源和代码中添加数据源的方法. 本文先写在页面中如何添加数据源. 在源码中如何添 ...
- Grafana的Worldmap插件使用方法
Worldmap插件的数据源的数据形式有两种,表数据和时间序列数据.表数据形式,需要每条记录都有geohash格式的经纬度坐标:时间序列数据形式,要求数据库表内的数据需要有指定的国家或城市的代码(如中 ...
- springboot添加多数据源连接池并配置Mybatis
springboot添加多数据源连接池并配置Mybatis 转载请注明出处:https://www.cnblogs.com/funnyzpc/p/9190226.html May 12, 2018 ...
- biee mysql_BIEE 11g linux下连接mysql数据源
对于连接MySQL数据源,BIEE提供两种不同的方式,一是使用自带的Datadirect ODBC驱动,二是使用MySQL原生的ODBC驱动(Connector/ODBC). 不过遗憾的是本人未能将使 ...
- EF选择Mysql数据源
EF添加ADO.NET实体模型处直接选择Mysql数据源 最近想到EF是连接多数据库的orm框架,于是就想测试下.查了一堆网上资料后,测试连接mysql成功.步骤如下: 1.在你项目Model层中nu ...
- netbeans 源文件_具有NetBeans,嵌入式GlassFish,JPA和MySQL数据源的Arquillian
netbeans 源文件 这是一个偶然的帖子. 我一直在研究交易CDI观察者,并尝试使用嵌入式GlassFish对它进行一些集成测试. 但是令人惊讶的是,这种方法不能很好地工作,我仍在弄清楚,使用普通 ...
- netbeans 源文件_具有NetBeans,WebLogic 12c,JPA和MySQL数据源的Arquillian
netbeans 源文件 您可能已关注我的文章,该文章介绍了如何使用嵌入式GlassFish测试更复杂的场景( 第I部分/第II部分 ). 在我要做的事情上,下一步是使此设置与最新的WebLogic ...
最新文章
- python字符串find函数实现_python中实现查找字符串的find函数
- html自适应pc窗口大小_自适应技术很难吗?为什么Shopyy平台将网站分为PC端和移动端...
- 【错误记录】布局组件加载错误 ( Attempt to invoke virtual method ‘xxx$Callback android.view.Window.getCallback()‘ )
- SetRegistryKey的作用
- ExtJs之Ext.view.View
- 7-4 是否同一棵二叉搜索树 (25 分)
- 《GPUPro》笔记
- Cookie 、Session、Token理解以及常见问题总结
- 多线程中抛异常的这个面试题你会吗?
- 21. Don't try to return a reference when you must return an object
- kuangbin专题
- js实现身份证号查询相关信息
- Nvidia驱动支持的linux版本,完善支持 NVIDIA显卡Linux驱动275.19正式版
- 计算机应用技术要学java吗,计算机应用技术专业主要学什么
- uni-app 获取手机类型
- pytorch 目标检测数据增强 详细讲解
- web技术分析| 一篇前端图像处理秘籍
- 多目标优化详解【转载】
- iOS-Core-Animation-Advanced-Techniques(三)
- STM32使用SDIO进行SD卡读写关于库函数获取SD卡信息