头图

场景概述

随着公司规模的扩大和业务的扩展,越来越多的企业更关注用户体验情况,因此,为了衡量和提升用户体验,我们通常采用观测云的用户体验监控的观测手段,简称 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 字段值在内网段定义地理位置时的名称或代号书写。

图片


观测云
21 声望85 粉丝

云时代的系统可观测平台