网站广告推广技巧分享,win服务器对于wordpress的支持,招标网站开发文档,手机做网站软件为什么要用分布式链路追踪
实际生产中#xff0c;面对几十个、甚至成百上千个的微服务实例#xff0c;如果一旦某个实例发生宕机#xff0c;如果不能快速定位、提交预警#xff0c;对实际生产造成的损失无疑是巨大的。所以#xff0c;要对微服务进行监控、预警#xff0…为什么要用分布式链路追踪
实际生产中面对几十个、甚至成百上千个的微服务实例如果一旦某个实例发生宕机如果不能快速定位、提交预警对实际生产造成的损失无疑是巨大的。所以要对微服务进行监控、预警对微服务的调用链路进行监控迅速定位问题
分布式链路追踪框架 Skywalking分布式链路追踪 SkyWalking下载
SkyWalking官网
elasticsearch下载
SkyWalking在GitHub的仓库
SkyWalking安装使用 Windows使用教程、Centos 7使用教程
SkyWalking 搭建及简单使用
分布式服务调用链路追踪——Skywalking
apache-skywalking-apm-6.6.0版本适合入门一般可以直接点击进行启动不需要进行其他配置分布式链路追踪跨服务请求对请求工具有一定要求如果是原生HttpConnection可能无法正常被skywalking追踪可以将skywalking通过自身的配置注册到微服务注册中心
skywalking安装
1.下载skywalking6.6这个版本适合入门
2.解压apache-skywalking-apm-6.6.0.tar.gz 修改这个文件夹下的文件webapp.yml文件默认端口默认为8080
3.改为18120
server:port: 18120collector:path: /graphqlribbon:ReadTimeout: 10000# Point to all backends restHost:restPort, split by ,listOfServers: 127.0.0.1:128004.返回bin目录直接点startup.bat启动
注意没有配置MySQL、es等不能持久化存储 MySQL数据存储需要将connector-java-5.1.49.jar包放在oap-libs目录下即可
启动idea部署探针
只使用springboot项目就行在启动时配置一下启动参数就可以部署探针不用专门去打jar包运行如果是已经打了jar包的给jar包指定启动参数就行了 编辑配置 -javaagent:E:\Z00Packages\DevelopTools\Others\apache\skywalking\apache-skywalking-apm-6.6.0\apache-skywalking-apm-bin\agent\skywalking-agent.jar -Dskywalking.agent.service_nameservice-admin -Dskywalking.collector.backend_servicelocalhost:11800 -javaagent用于指定探针路径 -Dskywalking.agent.service_name用于重写 agent/config/agent.config 配置文件中的服务名名称是自定义的 -Dskywalking.collector.backend_service用于重写 agent/config/agent.config 配置文件中的服务地址端口是grpc默认端口11800 按照这个方法对项目进行部署然后启动项目项目的探针就部署好了这个时候可以去看项目拓扑图
运行jar方式部署探针
将上面部署的参数给jvm赋值一下就行了 jar -jar 参数 jar包 链路请求追踪截图
仪表盘
拓扑图
追踪
告警
获取skywalking的traceid
引入依赖 !-- https://mvnrepository.com/artifact/org.apache.skywalking/apm-toolkit-trace --dependencygroupIdorg.apache.skywalking/groupIdartifactIdapm-toolkit-trace/artifactIdversion6.5.0/version/dependency使用TraceContext获取traceId
import org.apache.skywalking.apm.toolkit.trace.TraceContext;
String traceId TraceContext.traceId(); 使请求可以在skywalking可以查询
ActiveSpan.tag(test, test);
ActiveSpan.tag(username, username);