我在Grafana v5.4.2上使用了世界地图面板,我的数据源是mysql数据库,并且我有一些ip地址,城市和位置字符串以及经度和纬度,我想显示地图的城市名称ip地址,该值将是属于一个城市的ip地址计数,以下是我的sql:
SELECT
any_value(city.city) as metric,
count(ip.loc) as value,
CAST(substring(ip.loc, 1, INSTR(ip.loc, “,”) - 1) AS DECIMAL(10,6)) as latitude,
CAST(substring(ip.loc, INSTR(ip.loc, “,”) + 1) AS DECIMAL(10,6)) as longitude,
UNIX_TIMESTAMP(now()) as time_sec
FROM ip
inner join city on city.ctid = ip.ctid
WHERE ip.iptype & 2
group by ip.loc
我可以使用sql查询获得响应,响应类似于以下内容,但地图上没有任何显示:
xhrStatus:“complete”
request:Object
method:“POST”
url:“api/tsdb/query”
data:Object
from:“1541896435220”
to:“1547534884686”
queries:Array[1]
response:Object
results:Object
A:Object
refId:“A”
meta:Object
series:Array[516]
0:Object
1:Object
2:Object
3:Object
name:“巴西 巴西 value”
points:Array[1]
0:Array[1,1547534884000]
4:Object
5:Object
6:Object
7:Object
...
以下是mysql的裁决结果:
±--------±-------±----------±-----------±--------- -+
|指标|价值|纬度|经度| time_sec |
±--------±-------±----------±-----------±--------- -+
|巴西巴西| 1 | -14.242900 | -54.387798 | 1547535460 |
|巴西圣保罗州圣保罗| 1 | -23.550520 | -46.633309 | 1547535460 |
|新加坡新加坡| 16 | 1.352083 | 103.819836 | 1547535460 |
|越南越南| 1 | 10.768451 | 106.694363 | 1547535460 |
|柬埔寨柬埔寨| 7 | 12.547730 | 104.983856 | 1547535460 |
…
有人能告诉我发生了什么事吗?
答案 0 :(得分:1)
您的贡献帮助了WorldMap。 并且我会尽力为您解决问题(不幸的是,它仍然不完美,因为当鼠标指向该点时会显示“ n / a”)。
首先:我的源数据来自Postgresql。我有一张桌子,我在那里保持坐标 Coordinates Table
第二:我的SQL查询是: SQL query和查询结果:result
第三:我的世界地图设置 worldmap settings
决赛:可行的世界地图 REsULT
答案 1 :(得分:0)
在将“格式为”更改为“表格”,并从我的sql中删除“指标”后,它将在地图上打印点。 不幸的是,它仍然不是完美的,因为当鼠标点击这些点时会显示“ n / a”,我期望像城市名称这样的东西,这就是为什么我将城市作为度量标准...需要更多调查...