借助观测云,快速完成Django网站的数据收集

最近在研究前端的页面数据收集,踩了一些坑,现在分享一下接入过程。

注册观测云账号

先注册一个账号, 注册地址

注册流程很简单,按照提示点点点就完事了

安装采集器Datakit

登录观测云页面,选择「集成」 - 「DataKit」,选择适合自己环境的安装指令,复制。 我这里是linux环境,其他小伙伴可以按照提示选择对应的安装脚本。

1 复制安装指令

2 在服务器上安装 DataKit

shell 复制代码
DK_DATAWAY="https://openway.guance.com?token=**************" bash -c "$(curl -L https://static.guance.com/datakit/install.sh)" 

安装完成,服务会自动启动,程序默认安装在/usr/local/datakit/

3 查询 DataKit 状态

执行命令 systemctl status datakit

4 查看数据

Datakit 安装好后,默认会采集一些数据,可在 「观测云」 - 「基础设施」 - 「主机」查看相关数据

RUM接入

开启前端RUM监控,在目录 /usr/local/datakit/conf.d/rum/ 复制 rum.conf.samplerum.conf,重启 datakit 服务 datakit service --restart

打开 datakit 服务监控页面,执行datakit monitor,在左侧窗口可以看到 rum, 表明 rum 采集器已成功开启。

配置 RUM 采集参数

在观测云控制台,进入用户访问监测 页面,点击左上角 新建应用,创建一个应用。

1 复制 JS 代码

2 嵌入 JS 放在django前端页面 templates/index.html 的 head 中粘贴 JS

html 复制代码
<script src="https://static.guance.com/browser-sdk/v3/dataflux-rum.js" type="text/javascript"></script>
<script>
  window.DATAFLUX_RUM &&
    window.DATAFLUX_RUM.init({
      applicationId: 'wu_test_font',
      datakitOrigin: 'http://ip:port', // datakit的ip和端口号,也可以是域名
      env: 'test',
      version: '1.0',
      service: 'django_test',
      sessionSampleRate: 100,
      sessionReplaySampleRate: 100,
      trackInteractions: true,
      traceType: 'ddtrace', // 非必填,默认为ddtrace,目前支持 ddtrace、zipkin、skywalking_v3、jaeger、zipkin_single_header、w3c_traceparent 6种类型
      allowedTracingOrigins: ['http://域名:port'],  // 非必填,允许注入trace采集器所需header头部的所有请求列表。请求的服务域名和端口号
    });
    window.DATAFLUX_RUM && window.DATAFLUX_RUM.startSessionReplayRecording()
</script>

3 发布django服务 打开浏览器访问目标页面,通过 F12 检查者模式,查看页面网络请求中是否有 rum 相关的请求,状态码是否是 200

若 F12 检查者模式发现数据无法上报,显示端口 refused,可 telnet IP:9529 验证端口是否通畅。 若不通,需要修改 /usr/local/datakit/conf.d/datakit.conf ,将首行的 http_listen 修改为 0.0.0.0; 如若还不通,请检查安全组是否已打开 9529 端口。

4 查看 RUM 数据

在「用户访问监测」可查看 RUM 相关数据

分析看板内容

查看器内容可以根据session、view、resource等内容展示,非常nice

还可以点击请求,查看里面的详细内容,性能中可以看到加载了哪些资源,Fetch/XHR可以看到请求了哪些后端接口

还有一点非常棒,可以直接看到js的error

相关推荐
2501_920931702 小时前
React Native鸿蒙跨平台采用ScrollView的horizontal属性实现横向滚动实现特色游戏轮播和分类导航
javascript·react native·react.js·游戏·ecmascript·harmonyos
东东5164 小时前
智能社区管理系统的设计与实现ssm+vue
前端·javascript·vue.js·毕业设计·毕设
catino4 小时前
图片、文件的预览
前端·javascript
2501_920931706 小时前
React Native鸿蒙跨平台实现推箱子游戏,完成玩家移动与箱子推动,当所有箱子都被推到目标位置时,玩家获胜
javascript·react native·react.js·游戏·ecmascript·harmonyos
AI老李6 小时前
PostCSS完全指南:功能/配置/插件/SourceMap/AST/插件开发/自定义语法
前端·javascript·postcss
方也_arkling7 小时前
Element Plus主题色定制
javascript·sass
2601_949809597 小时前
flutter_for_openharmony家庭相册app实战+我的Tab实现
java·javascript·flutter
Up九五小庞7 小时前
开源埋点分析平台 ClkLog 本地部署 + Web JS 埋点测试实战--九五小庞
前端·javascript·开源
摘星编程8 小时前
React Native + OpenHarmony:UniversalLink通用链接
javascript·react native·react.js
qq_177767378 小时前
React Native鸿蒙跨平台数据使用监控应用技术,通过setInterval每5秒更新一次数据使用情况和套餐使用情况,模拟了真实应用中的数据监控场景
开发语言·前端·javascript·react native·react.js·ecmascript·harmonyos