机器学习在基于 URL 的客户端监控分析中的优化和实践

本文首发于“Shopee技术团队

摘要

传统的客户端监控分析场景中,采用按照具体的 URL 进行统计分析的方法,在面对一个应用可能会访问成千上万条 URL 时,结果就差强人意,不能明显地标识出应用访问的哪些 URL 存在潜在问题。

MDAP 平台在进行客户端监控分析时,通过使用概率统计和机器学习的方案,将若干条相似的 URL 归一化成同一条规则模型,然后基于该规则模型进行相关统计分析,从而提高了基于 URL 的客户端监控分析的可用性及准确性,进而提高了 MDAP 用户对自己应用质量的监控分析。

这是 MDAP 系列的第二篇文章,前文回顾:《MDAP:可观测性数据分析平台设计与实践

1. 引言

URL 作为客户端监控分析的一个重要元素,传统的基于 URL 的统计分析方式直接使用原始 URL 值进行统计分析,比如:

    SELECT `url`, count(1) as `cnt` 
    FROM `web_analysis_tab`
    WHERE `app_name` = 'app_1'
    GROUP BY `url`;

使用上述查询语句进行统计分析的结果是非常糟糕的,主要表现在以下几个方面:

  • 应用开发者无法快速地、准确地通过分析结果定位、发现潜在的应用问题、风险;
  • 统计结果过于分散,用户可能会失去查看统计分析结果的兴趣;
  • 平台处理过滤离散数据的统计分析,可能存在较大的系统开销,包括:查询效率、网络传输、页面展示等。

比如,假设 app_1 访问过 1,000,000 个不同值的 URL,而其 URL 规则模型不足 100 个

初版的 MDAP(Multi-Dimension Analysis Platform,多维度分析平台)用户和开发者同样面对此类问题的困扰。为了更好地服务 MDAP 用户,协助 MDAP 用户快速、有效地分析自己的应用质量。MDAP 平台基于概率统计理论和机器学习技术,根据应用上报的 URL,自动学习出相应的 URL 模型,利用衍生字段 url_pattern 而非原始 url 进行统计分析,从而大幅度减少了基于 URL 统计分析过于散列的情况,使得统计分析结果更加收敛,进而更方便用户使用 MDAP 对自己的应用质量进行分析查看。

本文剩余部分的结构安排如下:在第 2 节中,结合具体例子讲解 MDAP 对解决 URL 归一化问题的思考。第 3 节,介绍 MDAP 是如何对 URL 进行归一化处理的总体框架,并在第 4 节中进行详细的算法描述。优化效果的测试与评估在第 5 节中进行阐述。最后,在第 6 节中,进行总结并对未来进行展望。

2. 问题思考

本章节将解释这项工作的详细动机和思考。针对三种不同方案进行分析,阐述配置/上传 URL 模型规则的不可行性;通过一个具体的例子,展示自底向上的成对策略如何工作以及何时失败;并解释模式树为何有效。

2.1 用户配置方案

配置/上传 URL 模型规则

为了将 URL 转换成对应的 URL 模型规则,最先考虑的方案是在平台中,允许用户配置/上传应用相关的 URL 模型规则,但随即我们发现该方案存在几点问题:

  • 繁琐的用户配置。MDAP 平台的宗旨是为了协助平台用户监控、统计、分析自己的应用质量。为了进行 URL 模型匹配而需要平台用户配置/上传 URL 模型规则,无疑增加了平台用户的负担。同时,平台用户极有可能遗忘进行新的 URL 模型规则变更,从而严重影响 URL 模型匹配效果,进而回退到传统的基于 URL 统计分析模型。
  • 差异化的 URL 模型规则。不同语言、框架的 URL 路由规则差异大,巨大的风格差异不利于平台进行 URL 规则模型的统一管理,比如下面三种获取某一具体用户详情信息的 URL 模型规则:
    • golang/gin: GET http://example.com/users/:user_name
    • golang/grpc-gateway: GET http://example.com/{name=users/*},遵守
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值