Grafana的Worldmap插件使用方法

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

Worldmap可以支持多种数据源,不同的数据源支持的数据形式不同。支持时间序列数据显示的数据库有:Graphite、InfluxDB、OpenTSDB和Prometheus。支持表数据显示的数据库有InfluxDB和ElasticSearch。本篇文档以InfluxDB作为数据源为例,说明Worldmap插件的使用方法。

一、以表数据形式显示的使用方法

1.1  InfluxDB数据存储格式

InfluxDB存储的每一条数据的tag必须带有geohash格式的经纬度坐标,用于显示标记点的位置,host的数据用于显示标记点的名称,内容与geohash一一对应。Worldmap插件支持的最大坐标精度为7位数。示例数据如图1-1所示。

Grafana的Worldmap插件使用方法

图1-1 InfluxDB示例数据

1.2  Metrics数据查询设置

在Grafana的Data Sources中添加InfluxDB数据源。Panel Data Source 选择相应InfluxDB数据源。添加查询语句,以经纬度坐标geohash和对应的城市名称host分组,对InfluxDB的数据进行count、sum等查询计算,查询内容设置别名为“metric”,作为面板显示的数据,数据显示格式Format as为Table。示例如图1-2所示。

Grafana的Worldmap插件使用方法

图1-2 Metrics设置示例

1.3  MapData Options设置

Location Data选择table;Table Label Field 设置标记点的名称为host(城市代码)。示例设置如图1-3所示。

Grafana的Worldmap插件使用方法

图1-3 Map Data Options设置示例

至此,地图上可以显示数据库中的标记点,示例如图1-4所示。如果数据不显示,其原因可能是数据库中的数据时间不在时间选择器设置的范围,修改时间选择器范围即可。

 Grafana的Worldmap插件使用方法

图1-4 标记点显示示例

1.4  Threshold Option设置

该选项设置不同数据量时,标记点显示的颜色。

1.5  Map Visual Options设置

Center设置地图的默认中心点;Initial Zoom设置地图的默认放大倍数;Min Circle Size设置标记点显示的最小尺寸;Max Circle Size设置标记点显示的最大尺寸;Sticky Labels 设置标记点上显示的信息是否自动消失; Unit设置标记点显示数据的单位,第一个设置单位的单数形式,第二个设置单位的复数形式;Show Legend设置Threshold 的显示与否。

 

二、以时间序列数据显示的使用方法

以时间序列数据显示的标记点可以为国家、城市、或指定的地点。

2.1  数据存储格式

Worldmap插件内嵌了世界各个国家、美国各个州、世界部分城市的经纬度和代码。详情请见Worldmap插件的源代码,文档所在文件夹为worldmap-panel/src/dataworldmap-panel/dist/data,分别为countries.json、countries_3letter.json、states.json和probes.json,对应的Map Data Options的Location Data的选项为countriescountries_3letterstatesprobes。可根据需求在相应文档添加或修改地点的代码、经纬度等信息。数据格式如下:

{

   "key": "beijing",

   "latitude": 39.92,

   "longitude": 116.46,

   "name": "BeiJing"

 }

注意:添加修改地点信息时,请慎重,修改以后,可能影响已有的面板数据显示。推荐,通过json endpoint 外部添加json信息文档,文档格式参考插件内嵌文档格式。

根据需求,为InfluxDB数据库表内的每条记录设置相应格式和地点的代码,用于设置标记点的位置。显示国家标记点示例格式如图2-1所示。

Grafana的Worldmap插件使用方法

图2-1显示国家标记点的数据库内容示例

2.2  Metrics数据查询设置

在Grafana的Data Sources中添加InfluxDB数据源。Panel Data Source 选择相应InfluxDB数据源。添加查询语句,以country_code列名分组,对InfluxDB的数据进行count、sum等查询计算,ALIAS BY 设置数据库表内记录的代码列名,其格式为$tag_列名。Format as设置为Time series。示例如图2-2所示。

Grafana的Worldmap插件使用方法

图2-2 Metrics设置示例

2.3  Map DataOptions设置

根据InfluxDB数据库选择的代码格式不同,Map Data Options的设置不同。Location Data可选择countriescountries_3letterstatesprobesjson endpointjsonp endpoint。根据数据库悬着的代码信息,选择相应选项。对于countriescountries_3letterstatesprobes四个选项,设置比较简单。json endpointjsonp endpoint 需要外部添加访问json文档信息的url,文档格式参考插件内嵌文档格式。

至此,地图上可以显示数据库中的标记点,如图2-3所示。如果数据不显示,其原因可能是数据库中的数据时间不在时间选择器设置的范围,修改时间选择器范围即可

 Grafana的Worldmap插件使用方法

图 2-3 以国家代码进行显示数据示例

2.4  Threshold Option设置

详情请见1.4章节。

2.5  Map Visual Options设置

详情请见1.5章节。