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

安阳做网站公司lamp 做网站

安阳做网站公司,lamp 做网站,wordpress 字体类型,百度seo教程网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.dnsts.com.cn/news/155464.html

相关文章:

  • 自适应网站好还是东莞市外贸网站建设企业
  • 怎样做个人网站成都网站建设市场分析
  • excel做注册网站wordpress自助广告
  • 汽车网站模版国企建筑公司有哪些
  • 兰州网站seo服务网站导航栏一般有什么内容
  • 国内虚拟助手网站网站建设昆山
  • 网站开发系统需求说明书网页翻译脚本
  • 程序员自学网站弄个网站需要多少钱
  • 帮做网站的公司万家灯火营销型网站
  • 兴义市 网站建设建设局合同备案是哪个网站
  • 渭南公司做网站做网站需要执照吗
  • 湖北省建设工程质量安全协会网站wordpress 微站
  • 沭阳城乡建设局网站深圳网站搭建哪里好
  • 电子商务网站问题与解决方案广东广州电脑个人建站
  • 网站做优化有几种方式ICP备案和实际网站不是一个名字
  • 做网站网关备案网站设计实训心得
  • 选择网站设计公司佛山代理ip免费
  • 网站的搜索功能一般怎么做wordpress信息收集表单制作
  • 如何做网站赚钱6电子商务网站有哪些
  • 网站如何做推广旅游最好的网站建设
  • 视频网站开发问题北京百度推广官网首页
  • 广东省建设工程合同备案网站网站服务器怎么做
  • 如何看网站做没做推广网页设计结构
  • 如何开 网站建设公司高新区网站建设的建议
  • 代做网站优化物业公司网站建设
  • php做网站用什么软件好洛阳电商网站建设公司排名
  • 做响应式网站最大宽度陕西建设网站
  • 监控系统网站开发网站备案到公司名称
  • 网站推广代运营公司注册在上海的好处
  • 有了域名如何建立网站太原网站建设列表网