网站建设介绍会发言稿,一个微信小程序大概多少钱,50款app软件免费下载,百科网站程序实现目标
采集指标信息采集链路信息采集日志信息采集 RUM 信息会话重放 即用户访问前端的一系列过程的会话录制信息#xff0c;包括点击某个按钮、操作界面、停留时间等#xff0c;有助于客户真是意图、操作复现
版本信息
Tomcat (9.0.81)Springboot(2.6.2)JDK (8)DDT…实现目标
采集指标信息采集链路信息采集日志信息采集 RUM 信息会话重放 即用户访问前端的一系列过程的会话录制信息包括点击某个按钮、操作界面、停留时间等有助于客户真是意图、操作复现
版本信息
Tomcat (9.0.81)Springboot(2.6.2)JDK (8)DDTrace (1.0) 特别说明如果是 Springboot 项目Tomcat 大版本需与 Springboot 内置的 Tomcat 大版本一致否则可能会存在启动异常。 若依的单体应用
下载源码
若依的单体应用RuoYi: 基于SpringBoot的权限管理系统 易读易懂、界面简洁美观。 核心技术采用Spring、MyBatis、Shiro没有任何其它重度依赖。直接运行即可用 - Gitee.com
git clone https://gitee.com/y_project/RuoYi.git移除内部 tomcat
调整项目根目录的 pom.xml
......dependencyManagementdependencies!-- SpringBoot的依赖配置--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-dependencies/artifactIdversion2.5.15/versiontypepom/typescopeimport/scope!-- 移除内部 tomcat --exclusionsexclusionartifactIdspring-boot-starter-tomcat/artifactIdgroupIdorg.springframework.boot/groupId/exclusion/exclusions/dependency
......war 输出
调整 ruoyi-admin 模块下的 pom.xml 文件
packagingwar/packaging调整日志
在 ruoyi-admin/src/main/resources 新增 logback-spring.xml原文如下
?xml version1.0 encodingUTF-8?
configuration!-- 日志存放路径 --property namelog.path value/home/root/ruoyi/logs /!-- 日志输出格式 --property namelog.pattern value%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - [%method,%line] %X{dd.service} %X{dd.trace_id} %X{dd.span_id} - %msg%n /!-- 控制台输出 --appender nameconsole classch.qos.logback.core.ConsoleAppenderencoderpattern${log.pattern}/pattern/encoder/appender!-- 系统日志输出 --appender namefile_info classch.qos.logback.core.rolling.RollingFileAppenderfile${log.path}/sys-info.log/file!-- 循环政策基于时间创建日志文件 --rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy!-- 日志文件名格式 --fileNamePattern${log.path}/sys-info.%d{yyyy-MM-dd}.log/fileNamePattern!-- 日志最大的历史 60天 --maxHistory60/maxHistory/rollingPolicyencoderpattern${log.pattern}/pattern/encoderfilter classch.qos.logback.classic.filter.LevelFilter!-- 过滤的级别 --levelINFO/level!-- 匹配时的操作接收记录 --onMatchACCEPT/onMatch!-- 不匹配时的操作拒绝不记录 --onMismatchDENY/onMismatch/filter/appenderappender namefile_error classch.qos.logback.core.rolling.RollingFileAppenderfile${log.path}/sys-error.log/file!-- 循环政策基于时间创建日志文件 --rollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy!-- 日志文件名格式 --fileNamePattern${log.path}/sys-error.%d{yyyy-MM-dd}.log/fileNamePattern!-- 日志最大的历史 60天 --maxHistory60/maxHistory/rollingPolicyencoderpattern${log.pattern}/pattern/encoderfilter classch.qos.logback.classic.filter.LevelFilter!-- 过滤的级别 --levelERROR/level!-- 匹配时的操作接收记录 --onMatchACCEPT/onMatch!-- 不匹配时的操作拒绝不记录 --onMismatchDENY/onMismatch/filter/appender!-- 用户访问日志输出 --appender namesys-user classch.qos.logback.core.rolling.RollingFileAppenderfile${log.path}/sys-user.log/filerollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicy!-- 按天回滚 daily --fileNamePattern${log.path}/sys-user.%d{yyyy-MM-dd}.log/fileNamePattern!-- 日志最大的历史 60天 --maxHistory60/maxHistory/rollingPolicyencoderpattern${log.pattern}/pattern/encoder/appender!-- 系统模块日志级别控制 --logger namecom.ruoyi levelinfo /!-- Spring日志级别控制 --logger nameorg.springframework levelwarn /root levelinfoappender-ref refconsole //root!--系统操作日志--root leveldebugappender-ref reffile_info /appender-ref reffile_error //root!--系统用户操作日志--logger namesys-user levelinfoappender-ref refsys-user//logger
/configuration 编译
进入项目根目录执行以下命令进行编译
mvn clean package如果没有安装 Maven则需要先安装 Maven 再进行编译。
[INFO] --- spring-boot:2.5.15:repackage (default) ruoyi-admin ---
[INFO] Replacing main artifact with repackaged archive
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for ruoyi 4.7.7:
[INFO]
[INFO] ruoyi .............................................. SUCCESS [ 0.179 s]
[INFO] ruoyi-common ....................................... SUCCESS [ 4.622 s]
[INFO] ruoyi-system ....................................... SUCCESS [ 0.770 s]
[INFO] ruoyi-framework .................................... SUCCESS [ 0.950 s]
[INFO] ruoyi-quartz ....................................... SUCCESS [ 0.388 s]
[INFO] ruoyi-generator .................................... SUCCESS [ 0.378 s]
[INFO] ruoyi-admin ........................................ SUCCESS [ 4.554 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12.287 s
[INFO] Finished at: 2023-10-13T16:30:1208:00
[INFO] ------------------------------------------------------------------------DataKit
安装 DataKit开启采集器
安装 DataKit
参考 DataKit 安装文档主机安装 - 观测云文档
DataKit 开启 DDTrace 采集器
DDTrace 采集器用于采集应用链路信息参考 DDTrace 采集器接入文档DDTrace - 观测云文档
DataKit 开启 Log 采集器
Log 采集器用于采集日志信息参考 Log 采集器接入文档日志采集 - 观测云文档
需要调整以下信息 logfiles [/home/liurui/ruoyi/logs/*.log,]## Add service tag, if its empty, use $source.service ruoyi## Grok pipeline script name.pipeline ruoyi.plogfiles需要采集的日志文件路径service: 服务名称pipeline 日志解析
Pipeline 配置
Pipeline 用于数据治理这里主要是将日志信息进行提取以便与链路信息关联。
在 datakit/pipeline/ 目录下创建 ruoyi.p 文件内容如下
grok(_, %{TIMESTAMP_ISO8601:time} %{NOTSPACE:thread_name} %{LOGLEVEL:status}%{SPACE}%{NOTSPACE:class_name} - \\[%{NOTSPACE:method_name},%{NUMBER:line}\\] %{DATA:service_name2} %{DATA:trace_id} %{DATA:span_id} - %{GREEDYDATA:msg})default_time(time,Asia/Shanghai)DataKit 开启 StatsD 采集器
StatsD 采集器用于采集指标信息参考StatsD 采集器接入文档StatsD - 观测云文档
DataKit 开启 RUM 采集器
RUM 采集器: RUMReal User Monitor采集器用于收集网页端或移动端上报的用户访问监测数据。参考RUM 采集器接入文档RUM - 观测云文档
重启 DataKit
重启 DataKit服务管理 - 观测云文档
DDTrace
下载 dd-trace-java尽量下载最新版本Releases · GuanceCloud/dd-trace-java · GitHub
创建 RUM
登陆观测云选择 用户访问检测选择 应用列表点击 新建应用应用名称 填写 ruoyi-admin应用 ID 可以自定义也可以点击 随机生成 按钮应用类型 选择 web右边 SDK 配置 有几个类型这里我们选择 CDN 同步载入复制对应的脚本内容后续会用到。点击 创建 按钮完成创建。
Tomcat
下载 Tomcat
下载对应版本的 TomcatApache Tomcat® - Apache Tomcat 9 Software Downloads
配置 DDTrace
在 Tomcat bin 目录下新增脚本 setenv.sh 文件。
export CATALINA_OPTS-javaagent:/home/root/agent/dd-java-agent-1.14.0-guance.jar \-Ddd.tagsenv:test \-Ddd.jmxfetch.enabledtrue \-Ddd.jmxfetch.statsd.hostlocalhost \-Ddd.jmxfetch.statsd.port8125 \-Ddd.jmxfetch.tomcat.enabledtrue\-Dlogging.configclasspath:logback-spring.xmljavaagent: 指定 ddtace 目录Dlogging.config: 指定应用的日志以 logback 日志输出。如果应用内部使用的是 log4j指定对应的文件即可。
部署应用
将已经打包好的应用 RuoYi/ruoyi-admin/target/ruoyi-admin.war 复制到 Tomcat 的 webapps 下。
启动 Tomcat
执行 bin/startup.sh
apache-tomcat-9.0.81/bin$ ./startup.sh
Using CATALINA_BASE: /home/root/middleware/apache-tomcat-9.0.81
Using CATALINA_HOME: /home/root/middleware/apache-tomcat-9.0.81
Using CATALINA_TMPDIR: /home/root/middleware/apache-tomcat-9.0.81/temp
Using JRE_HOME: /home/root/middleware/jdk/jdk-11.0.18
Using CLASSPATH: /home/root/middleware/apache-tomcat-9.0.81/bin/bootstrap.jar:/home/root/middleware/apache-tomcat-9.0.81/bin/tomcat-juli.jar
Using CATALINA_OPTS: -javaagent:/home/root/agent/dd-java-agent-1.14.0-guance.jar -Ddd.tagsenv:test -Ddd.jmxfetch.enabledtrue -Ddd.jmxfetch.statsd.hostlocalhost -Ddd.jmxfetch.statsd.port8125 -Ddd.jmxfetch.tomcat.enabledtrue -Dlogging.configclasspath:logback-spring.xml
Tomcat started.加入 RUM
Tomcat 启动完成后自动解压 war 应用进入到 /webapps/ruoyi-admin/WEB-INF/classes/templates 目录下调整 include.html将上一步复制的脚本代码粘贴到 head。
head th:fragmentheader(title)
...
script srchttps://static.guance.com/browser-sdk/v3/dataflux-rum.js typetext/javascript/script
scriptwindow.DATAFLUX_RUM window.DATAFLUX_RUM.init({applicationId: APP_ID,datakitOrigin: http://localhost:9529, // 协议包括//域名或IP地址[和端口号]env: production,version: 1.0.0,service: browser,sessionSampleRate: 100,sessionReplaySampleRate: 70,trackInteractions: true,traceType: ddtrace, // 非必填默认为ddtrace目前支持 ddtrace、zipkin、skywalking_v3、jaeger、zipkin_single_header、w3c_traceparent 6种类型allowedTracingOrigins: [http://localhost:8080,http://localhost:8080/ruoyi-admin], // 非必填允许注入trace采集器所需header头部的所有请求列表。可以是请求的origin也可以是是正则});window.DATAFLUX_RUM window.DATAFLUX_RUM.startSessionReplayRecording()
/script
...
/headapplicationId复制过来的就不需要调整。datakitOrigin: 用于接收 RUM 数据上报的 DataKit 地址allowedTracingOrigins 与后端 APM 串联前端调用 API 接口会在对应的接口新增 Trace 所需的 Header 信息
效果
访问 http://localhost:8080/ruoyi-admin默认用户名admin密码admin123。 日志 进入日志详情可以查看到当前日志对应的链路信息 链路信息 也可以通过链路查看日志和指标信息 指标信息 RUM 看板 会话重放