当前位置: 首页 > news >正文

React 应用实现监控可观测性最佳实践

前言

React 是一个用于构建用户界面的 JavaScript 框架。它采用了虚拟 DOM 和 JSX,提供了一种声明式的、组件化的编程模型,以便更高效地构建用户界面。无论是简单还是复杂的界面,React 都可以胜任。

YApi 是使用 React 编写的高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务,官网地址:YApi-高效、易用、功能强大的可视化接口管理平台 ,以下以 YApi 为例来接入如何实现 React 应用的可观测性。

环境信息

  • nodejs(7.6+)

接入方案

准备工作

  • 注册观测云账号( Guance )
  • 安装 yapi( 内网部署 )
第一步:在观测云创建应用

这里面的就是配置代码,后面会用到。

第二步:下载 yapi 管理后台

可以使用可视化部署(推荐)或者命令行部署,按需选择其中之一都可以。

//以下两种方式选择一种即可//1 可视化部署
npm install -g yapi-cli --registry https://registry.npm.taobao.org
yapi server// 2 命令行部署
mkdir yapi
cd yapi
git clone https://github.com/YMFE/yapi.git vendors //或者下载 zip 包解压到 vendors 目录(clone 整个仓库大概 140+ M,可以通过 `git clone --depth=1 https://github.com/YMFE/yapi.git vendors` 命令减少,大概 10+ M)
cp vendors/config_example.json ./config.json //复制完成后请修改相关配置
cd vendors
npm install --production --registry https://registry.npm.taobao.org
npm run install-server //安装程序会初始化数据库索引和管理员账号,管理员账号名可在 config.json 配置
node server/app.js //启动服务器后,请访问 127.0.0.1:{config.json配置的端口},初次运行会有个编译的过程,请耐心等候

这里我们采用第一种方式,以下是运行的过程。

安装后的目录结构如下:

接入观测云 SDK

接入观测云 SDK 有两种方式:npm 或者 cdn,选择其中一种即可。

npm 方式接入

在项目根目录执行以下脚本安装 sdk 。

npm install @cloudcare/browser-rum

安装脚本后,找到入口文件,并粘贴如下代码,注意修改。

//引入观测云rum的sdk
import { datafluxRum } from '@cloudcare/browser-rum'
cdn 方式接入

在当前目录下找到 index.hml 并把观测云接入代码拷贝到 head 标签内,如下图所示。

配置启动参数

通过配置的参数能设置应用名称、版本、环境、采样率等。

cdn 方式接入

cdn 方式接入有同步或异步,如果选择同步方式,可以按照如下接入。

npm 方式接入
//初始化sdk
datafluxRum.init({applicationId: 'react_yapi',//应用idsite: 'https://rum-openway.guance.com',clientToken:"***" // 请在3.1的第一步中创建的内容查看clientTokenenv: 'production',version: '1.0.0',sessionSampleRate: 100,sessionReplaySampleRate: 70,trackInteractions: true,traceType: 'ddtrace', // 非必填,默认为ddtrace,目前支持 ddtrace、zipkin、skywalking_v3、jaeger、zipkin_single_header、w3c_traceparent 6种类型allowedTracingOrigins: ['https://api.example.com', /https:\/\/.*\.my-api-domain\.com/],  // 非必填,允许注入trace采集器所需header头部的所有请求列表。可以是请求的origin,也可以是正则
})

启动项目

我们启动项目,命令如下:

node server/app.js

检查是否有数据上报,如果在 network 看到有 rum 的数据,则说明上报成功。

实践效果

  • 用户会话、轨迹

  • 页面报错、性能以及设备等信息

  • 录制回放效果,包括能直接看到报错的详情

  • 概览信息

  • 性能看板

  • 资源分析

  • 报错分析

总结

通过观测云 SDK 接入 React 应用,能有效的实现实时监测和分析,优化性能,简化错误追踪,增进开发、测试、产品协作。

相关文章:

  • 【中间件】docker数据卷
  • 使用Docker搭建YesPlayMusic网易云音乐播放器并发布至公网访问
  • 小米汽车正式发布:开启智能电动新篇章
  • MongoDB内存过高问题分析解决
  • ChatGPT与传统搜索引擎的区别:智能对话与关键词匹配的差异
  • |行业洞察·趋势报告|《2024旅游度假市场简析报告-17页》
  • VSCode 如何同步显示网页在手机或者平板上
  • C语言数据结构基础——排序
  • 影视文件数字指纹签名检验系统的用户操作安全大多数
  • 数据库管理开发工具Navicat for MySQL Mac版下载
  • 在js中push的使用方法总结;
  • webpack源码分析——makeCacheable函数和weakMap的缓存应用场景
  • 自动化测试 —— Pytest fixture及conftest详解
  • CentOS常用功能命令集合
  • 怎样去保证 Redis 缓存与数据库双写一致性?
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • Computed property XXX was assigned to but it has no setter
  • EventListener原理
  • Java IO学习笔记一
  • JavaScript DOM 10 - 滚动
  • javascript从右向左截取指定位数字符的3种方法
  • react 代码优化(一) ——事件处理
  • vue-router 实现分析
  • 动手做个聊天室,前端工程师百无聊赖的人生
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 区块链技术特点之去中心化特性
  • 使用 Docker 部署 Spring Boot项目
  • 应用生命周期终极 DevOps 工具包
  • 正则与JS中的正则
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​决定德拉瓦州地区版图的关键历史事件
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #14vue3生成表单并跳转到外部地址的方式
  • #laravel 通过手动安装依赖PHPExcel#
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (2.2w字)前端单元测试之Jest详解篇
  • (27)4.8 习题课
  • (4)STL算法之比较
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (七)理解angular中的module和injector,即依赖注入
  • (转) Android中ViewStub组件使用
  • (转)大道至简,职场上做人做事做管理
  • .NET大文件上传知识整理
  • @TableLogic注解说明,以及对增删改查的影响
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...
  • [ vulhub漏洞复现篇 ] AppWeb认证绕过漏洞(CVE-2018-8715)
  • [2021]Zookeeper getAcl命令未授权访问漏洞概述与解决
  • [ACL2022] Text Smoothing: 一种在文本分类任务上的数据增强方法
  • [emacs] CUA的矩形块操作很给力啊
  • [hihocoder1395] 最大权闭合子图
  • [linux学习]apt-get参数解析
  • [MICROSAR Adaptive] --- autosar官方文档阅读建议
  • [NOI2005]月下柠檬树[计算几何(simpson)]
  • [PHP] 算法-顺时针打印矩阵的PHP实现
  • [Spring Cloud] gateway全局异常捕捉统一返回值