目录
分布式请求链路追踪_SkyWalking服务环境搭建
分布式请求链路追踪_微服务接入SkyWalking探针
分布式请求链路追踪_Docker搭建Elasticsearch环境
分布式请求链路追踪_SkyWalking使用Elasticsearch持久化
分布式请求链路追踪_SkyWalking自定义链路追踪
分布式请求链路追踪_SkyWalking服务环境搭建
下载SkyWalking包
解压SkyWalking包
tar -zxvf apache-skywalking-apm-es7-8.5.0.tar.gz -C /usr/local/
SkyWalking包目录介绍
介绍:
1、webapp: Ul前端(web 监控页面)的jar包和配置文件
2、oap-libs:后台应用的jar包,以及它的依赖jar包
3、config:启动后台应用程序的配置文件,是使用的各种配置
4、bin:各种启动脚本,一般使用脚本startup.*来启动web页面和对应的后台应用
5、agent:代理服务jar包
修改端口号
vim /usr/local/apache-skywalking-apm-bin-es7/webapp/webapp.yml
启动服务
注意:
启动成功后会启动两个服务,一个是skywalking-oap-server, 一个是skywalking-web-ui : 8868,skywalkng-oap-server服务 启动后会暴露11800和12800两个端口,分别为收集监控数据的 端口11800和接受前端请求的端口12800,修改端口可以修改 config/applicaiton.yml。
测试服务
请求http://192.168.66.100:8068
实时效果反馈
1.分布式链路追踪SkyWalking如何修改UI服务端口号_____。
A appcation.yml
B webapp.yml
C app.yml
D 以上都是错误
2.分布式链路追踪SkyWalking在___文件配置持久化方式。
A appcation.yml
B webapp.yml
C app.yml
D 以上都是错误
分布式请求链路追踪_微服务接入SkyWalking探针
探针,用来收集和发送数据到归集器。
下载官方提供探针
网址 https://skywalking.apache.org/downloads/
拷贝探针文件到项目中
修改项目的VM运行参数
点击菜单栏中的 Run -> EditConfigurations... ,此处我们以 cloud-gateway-gateway9527 项目为例,修改参数如下:
添加参数
java -
javaagent:C:\Users\wangc\IdeaProjects\cloud\agent\skywalking-agent.jar
-DSW_AGENT_NAME=consumer-order
-
DSW_AGENT_COLLECTOR_BACKEND_SERVICES=192.168.66.101:11800
参数:
1、-javaagent:用于指定探针路径。
2、-DSW_AGENT_NAME:服务名字
3、-DSW_AGENT_COLLECTOR_BACKEND_SERVICES:连接地址
Java 命令行启动方式
java -javaagent:/path/to/skywalkingagent/skywalking-agent.jar -
DSW_AGENT_NAME=nacos-provider -
DSW_AGENT_COLLECTOR_BACKEND_SERVICES=localhost:11800 -jar yourApp.jar
测试监控
实时效果反馈
1.微服务通过____参数接入Skywalking探针。
A -javapath
B -agent
C -javaagent
D -jar
2.微服务通过____参数指定Skywalking服务端地址。
A -COLLECTOR_BACKEND_SERVICES
B -DSW_AGENT__SERVICES
C -DSW_COLLECTOR_BACKEND_SERVICES
D -DSW_AGENT_COLLECTOR_BACKEND_SERVICES
分布式请求链路追踪_Docker搭建Elasticsearch环境
拉取镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.1.1
启动容器
docker run -d --name es -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms512m -Xmx512m"
-e "discovery.type=single-node"
docker.elastic.co/elasticsearch/elasticsearch:7.1.1
参数:
1、 -d:守护进程运行
2、 ES_JAVA_OPTS:设置堆内存
3、 discovery.type:设置单节点启动
测试
访问地址: http://192.168.66.101:9200
分布式请求链路追踪_SkyWalking使用Elasticsearch持久化
修改config目录下application.yml
/usr/local/apache-skywalking-apm-bin-es7/config
修改命名空间
修改ES数据连接地址
重启服务
[root@localhost bin]# ./startup.sh SkyWalking OAP started successfully! SkyWalking Web Application started successfully!
实时效果反馈
1.分布式链路追踪Skywalking官方推荐_______数据库。
A Elasticsearch
B MySQL
C H2
D TIDB
分布式请求链路追踪_SkyWalking自定义链路追踪
当我们工程中,有些重要的方法,没有添加在链路中,而我们又需要时,就可以添加自定义链路追踪的Span。
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.49</version></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version></dependency><dependency><groupId>org.apache.skywalking</groupId><artifactId>apm-toolkit-trace</artifactId><version>8.5.0</version></dependency><!--数据库连接池 HikariCP--><dependency><groupId>com.zaxxer</groupId><artifactId>HikariCP</artifactId><version>2.7.8</version></dependency>
YML文件添加配置
eureka:client:# 表示是否将自己注册到Eureka Serverregister-with-eureka: true# 示是否从Eureka Server获取注册的服务信息fetch-registry: true# Eureka Server地址service-url:defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eurekainstance:instance-id: payment8003prefer-ip-address: true
spring:application:# 设置应用名词name: cloud-payment-provider# 数据库配置datasource:name: sonice1024driver-class-name: com.mysql.jdbc.Driverurl:
jdbc:mysql://192.168.66.101:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf8&useSSL=false&useTimezone=true&serverTimezone=GMT%2B8username: rootpassword: 123456type: com.zaxxer.hikari.HikariDataSourcehikari:minimum-idle: 3auto-commit: trueidle-timeout: 10000max-lifetime: 1800000connection-timeout: 30000connection-test-query: SELECT 1
server:port: 8003
编写主启动类
/**
* 主启动类
*/
@EnableEurekaClient
@MapperScan("com.tong.mapper")
@SpringBootApplication
@Slf4j
public class PaymentMain8003 {public static void main(String[] args) {SpringApplication.run(PaymentMain8003.class,args);log.info("********* 服务提供者启动成功******");}
}
编写实体类
@Data
public class User {private Long id;private String name;private Integer age;private String email;}
编写UserMapper
public interface UserMapper extends BaseMapper<User> {}
编写UserService接口
public interface UserService {List<User> findByAllUser();
}
编写接口实现类
@Service
public class UserServiceImpl implements UserService {@Autowiredprivate UserMapper userMapper;@Trace@Overridepublic List<User> findByAllUser() {return userMapper.selectList(null);}
}
编写用户控制层
@RequestMapping("user")
@RestController
public class UserController {@Autowiredprivate UserService userService;@GetMapping("findByAll")public List<User> findByAll(){return userService.findByAllUser();}
}
测试 http://localhost:8003/user/findByAll