找回密码
 会员注册
查看: 32|回复: 0

准实时前端监控探索

[复制链接]

6

主题

0

回帖

19

积分

新手上路

积分
19
发表于 2024-9-19 20:10:42 | 显示全部楼层 |阅读模式
实时数据能立即反映线上业务情况,对业务来说能很快看到业务变化带来的实时影响,对技术人员来说能实时观察线上出现的一些波动,有利于及时发现线上问题。数据埋点上报经过数据部门处理后,有两个离线表,天表和小时表,天表是第二天才能看到前一天的数据,小时表是可以看到当天过去的时间内的数据,为了更早看到数据效果,尝试采用小时表来进行数据监控。流程基本如下:unsetunset过程介绍unsetunset架设服务基于Egg.js,Egg对定时任务支持很好,新建一个定时任务文件在app/schedule下即可,每个文件都是一个独立的定时任务。const Subscription = require('egg').Subscription;class ScheduleTask extends Subscription { static get schedule() {  return {   interval: '5m', // 每5分钟执行一次任务   type: 'worker',  };  } // subscribe 是真正定时任务执行时被运行的函数 async subscribe() {  const pageTypes = getConfig(); // 加载录入的埋点  await this.ctx.service.task.runData(pageTypes);  this.ctx.service.task.refreshTask(); // 刷新任务,获取查询结果 }}module.exports = ScheduleTask;查询结果查询每个小时埋点结果前,先要确定从哪个时间节点开始查询,这里手动指定一个,查询当前时间2个小时前的数据,比如当前是12点,我们就从10点开始查。注意用这个时间作为游标,需要缓存起来,后面移动游标的时候需要用到。在task这个service中,执行sql查询,sql如下:const sql = `SELECT  pagetype,  hour,  count(token) as cFROM  page_action_1hWHERE  pagetype in ('${pageTypes.join('\',\'')}')  and actiontype='pv'  and dt='${dateCursor.format('YYYY-MM-DD')}'  and hour='${queryHour 
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-26 23:02 , Processed in 1.042211 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表