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支持动态刷新地图,其原理是:

  1. Grafana支持周期性自动的query,周期可以在worldmap的右上角选择设置。


2. 在select的时间,在where语句里面添加对时间戳的过滤,只把上一个周期的数据选择出来进行绘制即可。这个时间过滤可以由grafana自动完成(WHERE $__timeFilter(timestamp) 就是这个作用。这个周期一样在Panel的右上角可以选择:

  1. 其它服务往mysql数据源插入带时间戳的记录即可。

Grafana的Worldmap使用,添加Mysql 数据源相关推荐

  1. saiku添加mysql数据源_Saiku连接mysql数据库(二)

    Saiku连接Mysql数据库展示数据 前提:Saiku已安装好,mysql已安装好 1.添加Saiku的数据库驱动: mysql-connect-java-5.1.17.jar 下载相应的数据库驱动 ...

  2. mysql mybatis多库查询_SpringBoot2.0.3整合Mybatis添加动态数据源实现多库查询(DynamicDataSource)...

    最近由于项目使用了spring boot 2.0.3版本,业务从多个数据查询,必须支持动态数据源,由于2.0.3的版本与之前的版本有了较大的改动其实现上有些不同,再采坑以后在此记录 1.需要Java类 ...

  3. grafana在项目中添加datasource(数据源)

    因公司最近使用grafana,需要添加一个新的数据源,网上并没有在源码中添加数据源的中文文档,在此我整理了在页面中添加数据源和代码中添加数据源的方法. 本文先写在页面中如何添加数据源. 在源码中如何添 ...

  4. Grafana的Worldmap插件使用方法

    Worldmap插件的数据源的数据形式有两种,表数据和时间序列数据.表数据形式,需要每条记录都有geohash格式的经纬度坐标:时间序列数据形式,要求数据库表内的数据需要有指定的国家或城市的代码(如中 ...

  5. springboot添加多数据源连接池并配置Mybatis

    springboot添加多数据源连接池并配置Mybatis 转载请注明出处:https://www.cnblogs.com/funnyzpc/p/9190226.html May 12, 2018  ...

  6. biee mysql_BIEE 11g linux下连接mysql数据源

    对于连接MySQL数据源,BIEE提供两种不同的方式,一是使用自带的Datadirect ODBC驱动,二是使用MySQL原生的ODBC驱动(Connector/ODBC). 不过遗憾的是本人未能将使 ...

  7. EF选择Mysql数据源

    EF添加ADO.NET实体模型处直接选择Mysql数据源 最近想到EF是连接多数据库的orm框架,于是就想测试下.查了一堆网上资料后,测试连接mysql成功.步骤如下: 1.在你项目Model层中nu ...

  8. netbeans 源文件_具有NetBeans,嵌入式GlassFish,JPA和MySQL数据源的Arquillian

    netbeans 源文件 这是一个偶然的帖子. 我一直在研究交易CDI观察者,并尝试使用嵌入式GlassFish对它进行一些集成测试. 但是令人惊讶的是,这种方法不能很好地工作,我仍在弄清楚,使用普通 ...

  9. netbeans 源文件_具有NetBeans,WebLogic 12c,JPA和MySQL数据源的Arquillian

    netbeans 源文件 您可能已关注我的文章,该文章介绍了如何使用嵌入式GlassFish测试更复杂的场景( 第I部分/第II部分 ). 在我要做的事情上,下一步是使此设置与最新的WebLogic ...

最新文章

  1. python字符串find函数实现_python中实现查找字符串的find函数
  2. html自适应pc窗口大小_自适应技术很难吗?为什么Shopyy平台将网站分为PC端和移动端...
  3. 【错误记录】布局组件加载错误 ( Attempt to invoke virtual method ‘xxx$Callback android.view.Window.getCallback()‘ )
  4. SetRegistryKey的作用
  5. ExtJs之Ext.view.View
  6. 7-4 是否同一棵二叉搜索树 (25 分)
  7. 《GPUPro》笔记
  8. Cookie 、Session、Token理解以及常见问题总结
  9. 多线程中抛异常的这个面试题你会吗?
  10. 21. Don't try to return a reference when you must return an object
  11. kuangbin专题
  12. js实现身份证号查询相关信息
  13. Nvidia驱动支持的linux版本,完善支持 NVIDIA显卡Linux驱动275.19正式版
  14. 计算机应用技术要学java吗,计算机应用技术专业主要学什么
  15. uni-app 获取手机类型
  16. pytorch 目标检测数据增强 详细讲解
  17. web技术分析| 一篇前端图像处理秘籍
  18. 多目标优化详解【转载】
  19. iOS-Core-Animation-Advanced-Techniques(三)
  20. STM32使用SDIO进行SD卡读写关于库函数获取SD卡信息

热门文章

  1. Ubuntu18.04 命令行打开计算器
  2. 向程序发送命令时出现错误 解决办法
  3. linux中常用文件系统介绍——cramfs、 JFFS2、 NFS、 initrd、 yaffs2、 Ext4、 squashfs
  4. r语言绘制雷达图_用r绘制雷达蜘蛛图
  5. 西门子PLC 的特殊功能寄存器
  6. 傲娇Android二三事之古古怪怪的Margin
  7. 2021年低压电工模拟试题及低压电工模拟考试题库
  8. 基于 BERT 掩码语言的指代消解--论文笔记
  9. 基于Python(sklearn)计算PLS中的VIP值
  10. STM32学习笔记二:命令行工具安装