Skip to content

使用及配置

robin edited this page Jan 2, 2020 · 8 revisions

jspy使用步骤大致如下:

  1. 下载当前应用
  2. 在工程目录下执行mvn clean install命令完成打包编译
  3. 启动jspy-server;
  4. 添加应用,并获取appCode;
  5. 在应用中添加jspy-client依赖,完成配置,启动服务即可。

启动jspy-server

jspy-server是一个spring-boot应用,默认配置使用了h2数据库(如条件允许建议改用mysql数据库)来存储指标数据。

jspy-server服务的默认端口是8190,如需要可以在jspy-server工程的resources/application.yml文件中进行修改:

server:
  port: 8190

将jspy-server.jar上传到服务器指定位置,执行如下命令启动:

java -jar jspy-server.jar

输入jspy-server所在服务器IP和端口号,进入jspy-console首页:

JSPY CONSOLE

首页为应用列表,点击列表右上角“增加”按钮新增应用。新增应用完成后会自动为该应用分配一个appCode(应用码)。

配置jspy-client

记住在jspy-console的IP、端口及添加的应用的appCode

根据监控的目的和应用可以选择不同的jspy-client依赖。

spring-boot服务

如果是spring-boot服务,建议使用jspy-spring-boot-starter,添加依赖如下:

	<dependency>
		<groupId>org.chobit.jspy</groupId>
		<artifactId>jspy-spring-boot-starter</artifactId>
		<version>x.x.x</version>
	</dependency>

并在application.yml添加配置如下:

jspy:
  enable: true
  app-code: jSpyCons
  server-host: 127.0.0.1
  serverPort: 8190
  use-ssl: false
  watcher:
    enable: true

通过这里的配置,可以自动启动jspy-client。此外还启动了JSpyWatcher来统计指定方法的执行时长,以及该方法发生异常的次数。

:使用@JSpyWatcher注解可以用来标注需要统计执行效率的方法,使用时最好配置name属性(需要采用唯一值)。

普通Java服务

对于普通Java服务,有两种选择,直接使用jspy-client或使用jspy-agent。

使用jspy-client,需要添加如下依赖:

	<dependency>
		<groupId>org.chobit.jspy</groupId>
		<artifactId>jspy-client</artifactId>
		<version>x.x.x</version>
	</dependency>

然后在代码中配置并启动JSpyClient实例:

	JSpyClientBuilder builder = JSpyClientBuilder.builder();

	JSpyClient client = builder.appCode("appCode0")
			.serverHost("127.0.0.1")
			.serverPort(8190)
			.build();
	
	client.start();

JSpyClient本身就是异步启动的,不需嵌套在独立线程中启动。

这种方式的不足之处在于无法获取方法指标数据。

要在普通java应用中获取方法数据,可以使用jspy-agent。这需要通过javaagent方式启动应用及jspy-agent支持。

比如启动一个普通的java服务可以使用如下命令:

java -jar myapp.jar

要在启动该服务时同时启动jspy-agent支持可以使用如下命令:

java -javaagent:../path_to_jspy_agent.jar -jar myapp.jar

也可以在启动命令上添加启动参数,如

java -javaagent:../path_to_jspy_agent.jar --h=serverHost,--p=serverPort,--c=appCode -jar myapp.jar