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

    banner.png

    场景概述

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

    联系我们

    加入社区

    微信扫码
    加入官方交流群

    立即体验

    在线开通,按量计费,真正的云服务!

    立即开始

    选择观测云版本

    代码托管平台