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

苏州建站推广公司安阳做网站公司

苏州建站推广公司,安阳做网站公司,重庆官方网站建设,怎么查询网站备案接入商1. 下载Agents https://archive.apache.org/dist/skywalking/java-agent/9.0.0/apache-skywalking-java-agent-9.0.0.tgz 2. 上传到服务器解压 在Spring Cloud项目中#xff0c;每部署一个服务时#xff0c;就拷贝一份skywalking的agent文件到该服务器上并解压。不管是部署…1. 下载Agents https://archive.apache.org/dist/skywalking/java-agent/9.0.0/apache-skywalking-java-agent-9.0.0.tgz 2. 上传到服务器解压 在Spring Cloud项目中每部署一个服务时就拷贝一份skywalking的agent文件到该服务器上并解压。不管是部署注册中心、网关、还是其它服务都这么做无论一个服务器部署多少个微服务有一份就行。 3. 集成链路追踪 3.1. 修改Spring Boot启动参数 springcloud/springboot 一般是通过 java -jar xxx.jar 进行启动。我们只需要在其中加上 -javaagent 参数即可格式如下面 java -javaagent:上一步解压目录/agent/skywalking-agent.jaragent.service_name自定义服务名,collector.backend_service服务ip:11800 -jar xxx.jar 说明 -javaagent后是skywalking-agent.jar的绝对路径在apache-skywalking-java-agent-9.0.0.tgz解压后的包中 -Dskywalking.agent.service_name是服务的名称自定义一般用spring.application.name -Dskywalking.collector.backend_service是指skywalking oap服务器的ip和端口号 示例 java -javaagent:F:\project\git\agent\skywalking-agent\skywalking-agent.jar -Dskywalking.agent.service_nameskywalking_demo_test -Dskywalking.collector.backend_service192.168.110.155:11800 -jar skywaking_demo.jar 启动springboot项目然后查看控制台或文件中的日志 bash start.sh 3.2. Gateway集成Skywalking链路追踪 其他服务已经完成链路追踪功能只有gateway服务需要特殊配置一下。 问题Spring Cloud Gateway是基于WebFlux实现的Skywalking默认不支持在链路上是不展示gateway组件的 链路图如下图所示 解决方案如下 把agent/optional-plugins下面的两个插件 apm-spring-cloud-gateway-x.x-plugin-x.0.0.jar、apm-spring-webflux-x.x-plugin-x.0.0.jar 根据你的Spring Cloud Gateway版本选择合适的版本拷贝到agent/plugin目录下 比如我的gateway版本为3.1.4则拷贝apm-spring-cloud-gateway-3.x-plugin-9.0.0.jar、apm-spring-webflux-5.x-plugin-9.0.0.jar到plugin目录下 然后重启gateway服务 重新发起请求链路图如下 4. 配置日志收集 需要先完成第三步 配置链路追踪不然无法打印日志。 4.1. 普通SpingBoot项目配置 这里的普通springboot项目是指除gateway服务以外的其他服务 参考SpringBoot集成Skywalking日志收集-CSDN博客 4.2. Spring Cloud Gateway日志收集配置 目前Spring Cloud Gateway服务日志会丢失TraceId现在的解决方案如下 4.2.1. 修改POM文件 日志更换为log4j2,引入skywalking相关的依赖包 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scopeexclusionsexclusionartifactIdspring-boot-starter-logging/artifactIdgroupIdorg.springframework.boot/groupId/exclusion/exclusions/dependency!--引入log4j2依赖--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-log4j2/artifactId/dependencydependencygroupIdorg.apache.skywalking/groupIdartifactIdapm-toolkit-log4j-2.x/artifactIdversion9.0.0/version/dependency!--apm 工具包--dependencygroupIdorg.apache.skywalking/groupIdartifactIdapm-toolkit-trace/artifactIdversion9.0.0/version/dependency 4.2.2. 增加如下两个配置类 LogHooks.java package com.szc.gateway.logconfig;import org.springframework.stereotype.Component; import reactor.core.publisher.Operators;import javax.annotation.PostConstruct; import javax.annotation.PreDestroy;Component public class LogHooks {private static final String KEY logMdc;PostConstructSuppressWarnings(unchecked)public void setHook() {reactor.core.publisher.Hooks.onEachOperator(KEY,Operators.lift((scannable, coreSubscriber) - new MdcSubscriber(coreSubscriber)));}PreDestroypublic void resetHook() {reactor.core.publisher.Hooks.resetOnEachOperator(KEY);}} MdcSubscriber.java package com.szc.gateway.logconfig;import org.reactivestreams.Subscription; import org.slf4j.MDC; import org.springframework.cglib.beans.BeanMap; import reactor.core.CoreSubscriber; import reactor.util.context.Context;import java.util.HashMap; import java.util.Map; import java.util.Optional;public class MdcSubscriber implements CoreSubscriber {private static final String TRACE_ID traceId;private static final String SKYWALKING_CTX_SNAPSHOT SKYWALKING_CONTEXT_SNAPSHOT;private final CoreSubscriberObject actual;public MdcSubscriber(CoreSubscriberObject actual) {this.actual actual;}Overridepublic void onSubscribe(Subscription s) {actual.onSubscribe(s);}Overridepublic void onNext(Object o) {Context c actual.currentContext();OptionalString traceIdOptional Optional.empty();if (!c.isEmpty() c.hasKey(SKYWALKING_CTX_SNAPSHOT)) {traceIdOptional Optional.of(c.get(SKYWALKING_CTX_SNAPSHOT)).map(MdcSubscriber::beanToMap).map(t - t.get(TRACE_ID)).map(MdcSubscriber::beanToMap).map(t - t.get(id)).map(Object::toString);}try (MDC.MDCCloseable cMdc MDC.putCloseable(TRACE_ID, traceIdOptional.orElse(N/A))) {actual.onNext(o);}}Overridepublic void onError(Throwable throwable) {actual.onError(throwable);}Overridepublic void onComplete() {actual.onComplete();}Overridepublic Context currentContext() {return actual.currentContext();}public static T MapString, Object beanToMap(T bean) {MapString, Object map new HashMap();if (bean ! null) {BeanMap beanMap BeanMap.create(bean);for (Object key : beanMap.keySet()) {if (key.equals(traceId) || key.equals(id)) {map.put(key.toString(), beanMap.get(key));}}}return map;}} 4.2.3. 增加log4j2日志配置文件 log4j2.xml内容 ?xml version1.0 encodingUTF-8? ConfigurationPropertiesProperty namePATTERN value[%d{yyyy-MM-dd HH:mm:ss.SSS}] [TID: %equals{%X{traceId}}{}{N/A}] [%logger{36}] [%thread] [%-5level] %msg%n//PropertiesAppendersConsole nameConsole targetSYSTEM_OUTPatternLayout pattern${PATTERN}//ConsoleAsync nameAsyncAppenderRef refConsole//Async!--输出到日志文件滚动分割日志文件自动打包gz --RollingFile nameINFO_FILE fileNamelogs/gateway-info1.log filePattern$logs/gateway-%d{yyyyMMdd}.log.%iPatternLayout pattern${PATTERN}/Policies!--默认一天一个文件 --TimeBasedTriggeringPolicy /!--一天内大于size就单独分隔--SizeBasedTriggeringPolicy size500MB//Policies/RollingFile!--skywalking 日志收集 --GRPCLogClientAppender nameAPM_LOGPatternLayout pattern${PATTERN}//GRPCLogClientAppender/AppendersLoggersRoot levelINFOAppenderRef refConsole/AppenderRef refINFO_FILE/AppenderRef refAPM_LOG//Root/Loggers /Configuration 4.2.4. 启动 启动gateway服务发起http请求可以看到日志中已经出现traceId 要注意的是在skywalking控制台看日志时是没有traceid的这一点和普通的springboot项目不同 如下图所示gateway服务的日志 traceId只能在内容里面查看 4.2.5. 完成
http://www.hkea.cn/news/14404308/

相关文章:

  • 手机版的学习网站php如何自学做网站
  • 查询关键词网站中国建设银行个人登录
  • 北京网站建设推广服务信息做美缝在哪个网站接单
  • 俄罗斯外贸网站破解网站后台账号密码
  • 高端网站开发公司网站开发工程师考试
  • 汕头高端网站开发沈阳网站设计开发公司
  • 厦门外贸网站建设玉溪seo
  • 网络推广企业网站推广策划书潍坊奎文住房和城乡建设局网站
  • 为什么 要建设网站重庆网站制作外包
  • 关于学校网站建设经费的申请报告做网站跟做APP哪个容易
  • 公司网站建设费计入什么科目做网站好用的cms
  • 网站建设广告费 科目wordpress快站
  • 新会网站设计wordpress播放百度云
  • 怎么把自己的网站做自适应网站常州平台网站建设
  • 济南传承网站建设公司网站维护需要做那些事
  • 哪个网站做logo好网站运营维护的基本工作
  • 浏览网站时弹出的广告是谁给做的做网站预付款 怎么做账
  • 中文logo设计网站沈阳seo
  • 网站 aspx 模板烟台建设集团招聘信息网站
  • 长尾关键词爱站新手小白怎样运营1688店铺
  • 迁安做网站中的cms润强河南省建设信息网站
  • 书店网站建设技术风险免费网站模版建设
  • 农业网站电子商务平台建设方案wordpress网站统计插件下载
  • 我的世界做弊端网站wordpress文章不能写入关键词
  • 网站推广营销策划方案长沙网站建设qq交流群
  • 北京网站制作公司招聘江门关键词优化广告
  • 通辽北京网站建设深圳专业制作网站哪个公司好
  • 福田网站设计公司哪家好做和别人一样的网站
  • 网站的注册江苏国智建设有限公司网站
  • 淘宝联盟怎么做网站做博客网站要怎么配置的服