接下来编写一个简单的springboot与Cat整合的案例
1 新建springboot项目
首先创建一个Spring Boot的初始化工程。只需要勾选web依赖即可。
2 添加 Maven 添加依赖
<dependency>
<groupId>com.dianping.cat</groupId>
<artifactId>cat-client</artifactId>
<version>3.0.0</version>
</dependency>
这个maven上没有,需要通过源码install到本地maven,或者去官网下载后手动安装的本地maven
源码安装如下:
3 启动 cat 客户端前的准备工作
以下所有文件,如果在windows下,需要创建在启动项目的盘符下。
(1)创建 /data/appdatas/cat 目录
确保你具有这个目录的读写权限。
(2)创建 /data/applogs/cat 目录 (可选)
这个目录是用于存放运行时日志的,这将会对调试提供很大帮助,同样需要读写权限。
(3)创建 /data/appdatas/cat/client.xml ,内容如下
<?xml version="1.0" encoding="utf-8"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema" xsi:noNamespaceSchemaLocation="config.xsd">
<servers>
<server ip="192.168.222.153" port="2280" http-port="8080" />
</servers>
</config>
4 初始化
在你项目中创建 src/main/resources/META-INF/app.properties 文件, 并添加如下内容:
app.name={appkey}
appkey 只能包含英文字母 (a-z, A-Z)、数字 (0-9)、下划线 (_) 和中划线 (-)
5 编写代码
在com.example.demo.controller包下创建CatController
package com.example.demo.controller;
import com.dianping.cat.Cat;
import com.dianping.cat.message.Event;
import com.dianping.cat.message.Transaction;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class CatController {
@RequestMapping("test")
public String test(){
Transaction t = Cat.newTransaction("URL", "pageName");
try {
Cat.logEvent("URL.Server", "serverIp", Event.SUCCESS, "ip=192.168.222.153");
Cat.logMetricForCount("metric.key");
Cat.logMetricForDuration("metric.key", 5);
//让代码抛出异常
int i = 1/0;
t.setStatus(Transaction.SUCCESS);
} catch (Exception e) {
t.setStatus(e);
Cat.logError(e);
} finally {
t.complete();
}
return "hello cat";
}
}
6 运行SpringBoot
启动SpringBoot项目,访问接口 http://[ip:端口]/test。然后在Cat中查看结果。
如上图所示,已经出现了一笔调用,我们来看下调用的细节。
查看具体的错误信息:
很显然看出上图所示其实是一个除0异常,到此为止SpringBoot客户端集成Cat就完成了。
版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: