数据技术篇之日志采集

news2025/1/13 17:43:46

第2章 日志采集

1.日志采集有哪些

在这里插入图片描述

  • 页面浏览日志
    页面浏览日志是指当一个页面被浏览器加载呈现时采集的日志。此类日志 也是最基础的互联网日志,也是目前所有互联网产品的两大基本指标:页面浏览量(Page View,PV)和访客数(Unique Visitors,UV)的统计基础
  • 页面交互日志
    页面交互日志是指用户在访问某个页面时具体的互动行为和特征。

移动端的采集根据不同的用户行为分成不同的事件。

  • 页面事件
    页面事件是指用户的浏览行为。每条页面事件日志记录三类信息:

    (1) 设备及用户的基本信息
    (2)被访问页面信息(这里主要是一些业务参数,比如商品详情页的商品ID,所属店铺等)
    (3) 访问的基本路径(如页面的来源、来源的来源等,用于还原用户完整的访问行为)

  • 控件点击及其他事件
    在阿里巴巴的无线客户端日志采集实践中,将交互日志采集从页面时间采集中剥离出来,这就是控件点击事件和其他事件。
    控件点击事件不仅记录了基本的设备信息、用户信息;它还记录了控件所在页面名称、控件名称、控件的业务参数等。
    其他事件,就是用户可以根据业务场景需求,使用自定义时间来采集相关信息。

  • 特殊场景
    页面事件和控件点击以及其他事件,均为一个行为产生一条日志,特殊场景则是针对特殊场景的事件。

2.怎样进行日志采集

  • 页面浏览日志采集
    页面浏览日志怎样进行采集,那就要从发送一个浏览器请求到服务器的响应说起了。
    在这里插入图片描述

(1)用户在浏览器中输入网址链接
(2)浏览器向目标服务器发起HTTP请求

HTTP请求:请求行、请求报头、请求正文

(3)服务器接收并解析请求

HTTP响应:状态行、响应报头、响应正文

(4)浏览器接收到服务器的响应内容,并按照文档规范展现给用户,从而完成一次请求

  要想完成页面浏览日志的采集,那我们肯定是从请求过程中的某一个步骤下手了。在第一步和第二步,用户的请求尚未到达服务器;而第三步,我们也只能认为服务器处理了请求,而不能保证浏览器是否正确的解析和渲染页面,尚不能保证用户已确实打开了页面,因此在第三步也是无法采集用户的浏览日志的。那么采集日志的动作,需要再第四步浏览器开始解析文档是才能进行。
  因此基本的思路:在HTML文档内的适应位置增加一个日志采集节点,当浏览器解析到这个节点时,将自动触发一个特定的HTTP请求到日志服务器。如此一来,当日志采集服务器接收到这个请求时,就可以确定浏览器已经成功地接收和打开了页面。下图为阿里巴巴页面浏览日志采集方案流程框架。
在这里插入图片描述

  • 页面交互日志采集
    在阿里巴巴,通过一套名为“黄金令箭”的采集方案来解决交互日志的采集问题。
    具体而言,“黄金令箭”是一个开放的基于HTTP协议的日志服务,需要采集交互日志的业务,经过一下步骤即可将自助采集的交互日志发送到日志服务器。
    在这里插入图片描述

(1)业务方在“黄金令箭”的元数据管理界面一次注册需要采集交互日志的业务、具体业务场景以及场景下的具体交互采集点,在注册完成之后,系统将生成与之对应的交互日志采集代码模板。(配置元数据
(2)业务方将交互日志采集代码植入目标页面,并将采集代码与需要监测的交互应为做绑定。
(3)当用户在页面上产生指定行为时,采集代码和正常的业务活动响应代码一起被触发和执行
(4)采集代码 在采集动作完成后将对应的日志通过HTTP协议发送到日志服务器,日志服务器接收到日志后,对于保存在HTTP请求参数部分的自定义数据,即用户上传的数据,原则上不做解析处理,只做简单的转存。

  • 无线客户端的日志采集
    无线客户端的日志采集采用采集SDK来完成,在阿里巴巴内部,多使用名为UserTrack的SDK来进行无线客户端的日志采集。

  • H5&Native日志统一
    在这里插入图片描述

(1)H5页面浏览和页面交互的数据,在执行时通过加载日志采集的JavaScript脚本,采集当前页面参数,包括浏览行为的上下文信息以及一些运行环境信息。在APP中打开H5页面和在浏览器中的处理完全一样,在前端页面的开发中无须做任何特殊的处理,只需在页面开发时手动植入日志采集的JavaScript脚本即可。
(2)在浏览器日志采集的JavaScript脚本中实现将所采集的数据打包到一个对象中,然后调用WebView框架的JSBridge接口,调用移动客户端对应的接口方法,将埋点数据对象当作参数传入。
(3)移动客户端日志采集SDK,封装提供接口,实现将传入的内容转换成移动客户端日志格式。采集SDK会根据日志类别来识别是页面浏览事件,还是控件点击事件,然后调用内部相应的接口进行处理,将埋点数据转换成移动客户端日志的统一格式。而后就同移动客户端的日志处理一样,先记录到本地日志缓存中,择机上传。通过日志类别的识别来做不同的日志格式转换,这样,未来如果要实现新的事件类别,比如自定义事件,就不需要改动WebView层的接口,只需改动JavaScript的部分内容及移动客户端日志采集SDK中对应的实现即可。

3.怎样保证日志信息的可用性

  • 针对浏览器页面采集的日志

(1)识别流量攻击、网络爬虫和流量作弊
(2)数据缺项补正
(3)无效数据剔除
(4)日志隔离分发

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/74658.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

谈一谈 IPA 上传到 App Store Connect 的几种方法

谈一谈​ 1、前言​ 关于上传​ 2、Xcode​ 利用​ 3、Application Loader​ 当然,Xcode 这种方式,是需要有源代码情况下,才能上传。所以,就会有没有源代码的情况,怎么上传的情况啦!​ Application L…

ET框架解读其一

ECS? 真正的ECS属于是entity-component-system组件里面只有数据没有方法,system里面是针对组件的方法,system通过查找只需要关注自己想关注的组件集合就可以。但是ET框架的代码在组件里面写满了方法,有数据又有方法的组件&#x…

Spire.Doc for Java 10.12.2 update Word to PDF/HTML to Word

谷歌找破解版Spire.Doc for Java is a professional Word API that empowers Java applications to create, convert, manipulate and print Word documents without dependency on Microsoft Word. By using this multifunctional library, developers are able to process co…

并发编程概述 和 并行编程(Parallel Framework)

任务(task) 异步编程(async&await) 并发编程概述 前言 说实话,在我软件开发的头两年几乎不考虑并发编程,请求与响应把业务逻辑尽快完成一个星期的任务能两天完成绝不拖三天(剩下时间各种…

HPPH-SiO2 NPs/PEG/DSPE光克洛修饰介孔二氧化硅纳米粒子/聚乙二醇/磷脂的研究

小编这里分享的科研知识是HPPH-SiO2 NPs/PEG/DSPE光克洛修饰介孔二氧化硅纳米粒子/聚乙二醇/磷脂的研究,来看! 光克洛修饰介孔二氧化硅纳米粒子的研究: 光敏剂的研发历经以卟吩姆钠为代表的第一代卟啉类光敏剂到以维替泊芬,他拉泊芬和替莫泊芬…

揭秘!女程序员为啥更赚钱?这4个大招,用Python做副业躺赚

关于穷,去年有了一个更学术的说法:隐形贫困人口。 就是因为有太多“种草达人”,让我们为了物质生活超前消费,再加上不理财的话,那简直是雪上加霜。 看到知乎上面最近有一个很火的问题: “90后的你&#…

为了学会更多炫酷的 canvas 效果,我熬夜复习了三角函数相关的知识点

稳定性建设之JavaScript代码不能被阻断 背景 js代码可能会因为某些原因,导致出错,进而整个后续代码有可能都被阻断。直接影响线上的稳定性 最常见的js被阻断的情况 console.log(111) // 预期 a {} // 结果 a undefined a.a 1 console.log(222) // …

web前端期末大作业 HTML游戏资讯网页设计制作 简单静态HTML网页作品 DW游戏资讯网页作业成品 游戏网站模板

🎉精彩专栏推荐👇🏻👇🏻👇🏻 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业…

CTO职位刚发布,一天收到100+份简历

IT行业卷可是没有想到这么卷,我们公司最近招聘CTO,一天收到100份简历,这里面有太多优秀的人,简直挑花了眼。这里面有英国毕业的,有北京大学的,还有各种985和211毕业的大学生,简历也是非常的丰富…

总结717

大三上半学期过去了。回想起当初那个暑假还在纠结的问题。如今,我也算是想通了。 回想起这样一个夜晚,我与好几位同学在谈论考研的事情。其中有一位同学问:“所以,你们为什么要考研呢?”有的同学说是“想到名校走走”…

【C++常用容器】STL基础语法学习stack容器

目录 ●stack基本概念 ●stack常用接口 ●构造函数 ●赋值操作 ●数据存取 ●大小操作 ●stack基本概念 简要介绍: stack是一种先进后出或后进先出的数据结构,它只有一个出口。栈中只有顶端元素才可以被外界使用,因此栈不允许有遍历行为。栈…

对vue的mixin的理解,有什么应用场景?

mixin是什么 Mixin是面向对象程序设计语言中的类,提供了方法的实现。 其他类可以访问mixin类的方法而不必成为其子类 当一段代码非常相似的时候就可以抽离成一个mixin mixins是一个js对象,它可以包含我们组件中script项中的任意功能选项,…

不是所有国产软件都像360一样流氓!这些良心国产软件不该被埋没

提到国产软件,很多人第一反应——360安全卫士。 但就像那句著名点评:“电脑上的常见问题有一半是安装360可以解决的,另一半是卸载360可以解决的。” 360可以说让人又爱又恨,强大的杀毒能力毋庸置疑,但是捆绑安装也是…

java计算机毕业设计基于安卓Android的学生个人支出管理APP

项目介绍 基于APP的学生个人支出管理系统主要针对广大学生,本设计分为用户客户端和管理员后台管理,前台用户管理使用Android Studio制作,使用了JS、HTML和uniapp开发框架,后台管理使用JAVA:MySQL数据库来保存数据以及上传数据。MySQL体积小、速度快,为数据的存储和…

用Python机器人监听微信群聊, 我看谁这么大的胆子敢调侃老板和前台小姐姐!

随着微信社交的兴起,我们加入的群也越来越多,一个不经意就被拉入好几个群,群是大家协同交流的平台,但是微信群却越来越泛滥,不知道大家有没有统计过自己浪费在毫无营养的群中的时间? 因为群质量太低或者群太…

Web页面测试

一、Web的功能测试 1、超链接测试 a、链接与链接的说明文字要匹配 (注:也可以是图片) b、链接的文字要描述正确 c、链接的文字要精简有效 d、链接的页面应该存在,不应该出现404找不到页面的错误 e、没有孤立页面,只有…

Android kotlin 基础知识codelab Fragment Summary

创建 fragment 在此 Codelab 中&#xff0c;您向 AndroidTrivia 应用添加了一个 fragment&#xff0c;在本课的后续两个 Codelab 中您将继续在此应用中执行操作。 fragment 是 activity 的模块化部分。fragment 有自己的生命周期&#xff0c;会接收自己的输入事件。使用 <…

宝宝经常吐奶,除了拍嗝,这6个细节也不容忽视,别因小失大

众所周知&#xff0c;宝宝吐奶是很常见的。不过&#xff0c;虽然很常见&#xff0c;但只要宝宝吐奶&#xff0c;尤其是宝宝吐奶时&#xff0c;家长们都会非常心疼&#xff0c;迫不及待地想代替宝宝承受这些不适。为什么宝宝这么容易吐奶&#xff1f;首先&#xff0c;宝宝的胃是…

JQuery 基础

JQuery对象和JS对象区别与转换 1. JQuery对象在操作时&#xff0c;更加方便。 2. JQuery对象和js对象方法不通用的. 3. 两者相互转换 * jq -- > js : jq对象[索引] 或者 jq对象.get(索引) * js -- > jq : $(js对象) <script>//1.通过…

定时执行专家 —— 模拟键盘按键、鼠标单击功能发布(可发送快捷键、热键、鼠标左键多次单击)

目录 ◆ 定时执行专家 —— 模拟键盘按键 ◆ 定时执行专家 —— 模拟鼠标单击 ◆ 定时执行专家 —— 模拟键盘按键 - 设置方法 &#xff08;1&#xff09;点击 “定时执行专家” 工具栏 “新建” 图标&#xff0c;打开 “任务对话框”&#xff08;图1&#xff09;&#xff1…