写点什么

RUM 最佳实践:内网 IP 地址映射地图地理位置场景

作者:观测云
  • 2024-11-01
    上海
  • 本文字数:1257 字

    阅读完需:约 4 分钟

RUM最佳实践:内网IP地址映射地图地理位置场景

场景概述

随着公司规模的扩大和业务的扩展,越来越多的企业更关注用户体验情况,因此,为了衡量和提升用户体验,我们通常采用观测云的用户体验监控的观测手段,简称 RUM 。对于中大型的集团公司,业务分布在全国各地,乃至世界各地,有些业务是对外开放的,公网地址是可以直接映射成地理位置的,但是也有很多业务是供内部员工的生产运作使用的,在这种场景下,为了更好的衡量和查看内部不同基地的用户访问体验,我们需要对内网用户体验的监控数据进行处理,使内网地址映射到地图上的地理位置,从而在地图上展示像公网一样的地理位置,更好的查看各个站点基地用户访问的性能体验情况。

前提条件

  • 使用观测云产品的 RUM 监控,即用户体验监控。

  • 对内网地址进行划分,内网网段分别代表哪个地理位置

场景实现

  • 实现方式:使用观测云用户访问 pipeline 处理

  • 实现原理:对用户访问的内网 ip 地址进行 pipeline 处理,定义好内网 cidr 网段代表某个地理位置,为了能与地图匹配上,需要填正确的 city,country,province 地址名称或代号,经过 pipeline 处理后,即可在地图上进行展示不同基地的用户访问体验情况了。

操作步骤

1、编写 pipeline 处理脚本

#内网代表地理位置定义,如下只定义了两个网段(示例为随便写的公网网段),请自行添加更多内网网段idr_data = {"178.237.236.0/24": {"city": "Shenzhen", "province": "Guangdong", "country": "CN"},"202.168.78.0/24": {"city": "Shanghai", "province": "Shanghai", "country": "CN"},}
#将用户体验的IP字段匹配到对应的地理位置for x in cidr_data { if cidr(ip, x) { location=cidr_data[x] add_key(city, location["city"]) add_key(province, location["province"]) add_key(country,location["country"]) }}
复制代码

2、设置用户访问的 pipeline 来处理用户访问的视图,资源,操作,会话等数据,如下图,设置好 pipeline 后通过一键获取样本查看岩本数据处理情况,看到内网 ip 处理后,出现对应的 city,province,country 字段值即为成功。



3、地图上用户访问性能展示



IP 工具使用

通常,在我们定义内网 IP 网段代表某个地理位置时,不知道地理位置的 city,province,country 字段值具体名称或者代号是什么,此时可以使用 DataKit IP 工具,DataKit 是观测云统一的数据采集探针,同时在安装了 DataKit 后,可通过 datakit install --ipdb iploc 命令安装/更新 IP 地理信息库,如果查看某个 IP 的地理位置信息,可使用 datakit tool --ipinfo 1.2.3.4 ,如下输出:

datakit tool --ipinfo 1.2.3.4        ip: 1.2.3.4      city: Brisbane  province: Queensland   country: AU       isp: unknown
复制代码

举例,若我想知道中国 广东省深圳市的 country,province,city 字段值或代号是什么,即可随便找一深圳的公网 IP 来输出其名称或代号,如随便找一深圳的公网 IP:183.238.104.98 ,通过 datakit tool --ipinfo 183.238.104.98 输出如下图,即可知道 country,province,city 字段值在内网段定义地理位置时的名称或代号书写。



用户头像

观测云

关注

还未添加个人签名 2021-02-08 加入

云时代的系统可观测平台

评论

发布
暂无评论
RUM最佳实践:内网IP地址映射地图地理位置场景_RUM_观测云_InfoQ写作社区