内容简介:客户端应用程序接入如果你的客户端程序是运行在
Windows Java 8 Maven 3.5 MySQL 5.7 CAT 2.0.0 Dubbo 2.6 Spring 4.3
2. 客户端配置
客户端应用程序接入 CAT 需要在系统的特定路径中部署 client.xml 配置文件。 Windows 系统和 Linux 系统的部署路径不一样,但其内容是一样的。
2.1 Windows 客户端配置
如果你的客户端程序是运行在 Windows 系统中,例如你的应用程序项目所在的目录路径是 D:\application\workspace\idea\springmvc-dubbo-mybatis-with-cat-sample 。那么,你需要在此项目所在的盘符(即这里的 D 盘)创建 data\appdatas\cat 目录,并将 client.xml 配置文件存放在这个路径中。如作者的客户端配置文件 D:\data\appdatas\cat\client.xml :
<?xml version="1.0" encoding="utf-8"?>
<configmode="client"xmlns:xsi="http://www.w3.org/2001/XMLSchema"xsi:noNamespaceSchemaLocation="config.xsd">
<servers>
<serverip="10.10.10.121"port="2280"http-port="8080"/>
<serverip="10.10.10.122"port="2280"http-port="8080"/>
<serverip="10.10.10.123"port="2280"http-port="8080"/>
</servers>
</config>
2.1 Linux 客户端配置
如果你的客户端程序是运行在 Linux 系统中,那么你需要创建 /data/appdatas/cat 目录,并确保运行程序的用户对此目录有读写权限。然后将 client.xml 配置文件存放在这个路径中。配置文件的内容与上同。
3. 配置监控的项目名
在需要接入 CAT 监控平台的项目中新建属性配置文件 src/main/resources/META-INF/app.properties 。其内容如下:
################## CAT会自动加载此文件 ################## # 应用的名称(可以根据此名称在CAT的管理控制台查找对应的信息) app.name=service-article
4. URL 监控埋点
客户端程序接入 CAT 需要依赖 cat-client 包。由于 cat-client 没有加入 maven 远程中央仓库,因此需要指定 CAT 专用的远程仓库。在需要接入 CAT 监控平台的 web 项目的 pom.xml 中加入如下配置:
<repositories>
<!-- CAT client 仓库 -->
<repository>
<id>unidal-nexus-repo</id>
<url>http://unidal.org/nexus/content/repositories/releases</url>
</repository>
</repositories>
<dependencies>
<!-- 客户端接入CAT的依赖 -->
<dependency>
<groupId>com.dianping.cat</groupId>
<artifactId>cat-client</artifactId>
<version>${cat-client.version}</version>
</dependency>
</dependencies>
然后在 web 项目的 web.xml 配置文件中加入如下配置即可:
<filter>
<filter-name>cat-filter</filter-name>
<filter-class>com.dianping.cat.servlet.CatFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>cat-filter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
接入后,在 Transaction 中会生成 URL 信息。效果图(缩略图,可右键在新标签页打开图片查看):
5. mybatis 接入
项目地址: https://github.com/fanlychie/cat-client-mybatis
你可以检出项目手工执行安装到本地的 maven 仓库。或者使用博主托管在 github 的 maven 仓库:
<!-- CAT mybatis和dubbo 仓库 -->
<repositories>
<repository>
<id>fanlychie-maven-repo</id>
<url>https://raw.github.com/fanlychie/maven-repo/releases</url>
</repository>
</repositories>
<dependencies>
<!-- mybatis接入CAT的依赖 -->
<dependency>
<groupId>com.dianping.cat</groupId>
<artifactId>cat-client-mybatis</artifactId>
<version>2.0.0</version>
</dependency>
</dependencies>
接入方式(这里仅给出 spring 的 xml 配置参考方式):
<beanid="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">
<propertyname="dataSource"ref="dataSource"/>
<propertyname="typeAliasesPackage"value="org.fanlychie.entity"/>
<propertyname="configLocation"value="classpath:mybatis-config.xml"/>
<propertyname="mapperLocations"value="classpath*:mapper/*.xml"/>
<!-- MyBatis 接入 CAT -->
<propertyname="plugins">
<array>
<beanclass="com.wanda.cat.sample.plugins.CatMybatisPlugin"></bean>
</array>
</property>
</bean>
接入后,在 Transaction 中会生成 SQL 信息。效果图(缩略图,可右键在新标签页打开图片查看):
6. dubbo 接入 (生产者端)
项目地址: https://github.com/fanlychie/cat-dubbo-monitor
你可以检出项目手工执行安装到本地的 maven 仓库。或者使用博主托管在 github 的 maven 仓库:
<!-- CAT mybatis和dubbo 仓库 -->
<repositories>
<repository>
<id>fanlychie-maven-repo</id>
<url>https://raw.github.com/fanlychie/maven-repo/releases</url>
</repository>
</repositories>
<dependencies>
<!-- dubbo接入CAT的依赖 -->
<dependency>
<groupId>net.dubboclub</groupId>
<artifactId>cat-dubbo-monitor</artifactId>
<version>0.0.6</version>
</dependency>
</dependencies>
接入方式:只需要声明依赖包,不需要做任何配置。接入后,在cat中会出现cross报表,dependency,服务端的matrix以及调用链路的trace信息。
效果图(缩略图,可右键在新标签页打开图片查看):
7. dubbo 接入 (web消费者端)
项目地址: https://github.com/fanlychie/cat-client-dubbo
你可以检出项目手工执行安装到本地的 maven 仓库。或者使用博主托管在 github 的 maven 仓库:
<!-- CAT mybatis和dubbo 仓库 -->
<repositories>
<repository>
<id>fanlychie-maven-repo</id>
<url>https://raw.github.com/fanlychie/maven-repo/releases</url>
</repository>
</repositories>
<dependencies>
<!-- 客户端dubbo接入CAT -->
<dependency>
<groupId>org.fanlychie</groupId>
<artifactId>cat-client-dubbo</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
接入方式为,在 web 项目的消费者端 dubbo 配置文件中加入如下配置:
<dubbo:consumerfilter="CatClientFilter"/>
接入后,在 Transaction 的 URL 中会生成 dubbo 调用链路的 trace 信息。
接入前的效果图(缩略图,可右键在新标签页打开图片查看):
接入后的效果图(缩略图,可右键在新标签页打开图片查看):
8. log4j 接入
异常日志信息接入将异常日志上报到 CAT 服务器,方便查看异常日志。
log4j.rootCategory = INFO, ...xxx... , CAT # 异常日志上报到CAT log4j.appender.CAT = com.dianping.cat.log4j.CatAppender log4j.appender.CAT.Threshold = ERROR
9. 项目启动报错问题
当启动两个或以上依赖 cat-client 包的项目的时候,会报出如下错误,致使服务无法正常提供服务:
2018-08-05 23:14:01:326 [main] ERROR [Server:102] - [DUBBO] qos-server can not bind localhost:22222, dubbo version: 2.6.0, current host: 127.0.0.1 java.net.BindException: Address already in use: bind
这是 dubbo 的 qos 服务端口冲突引起的,其默认使用 22222 端口。可以在项目的 dubbo.properties 属性配置文件中修改此端口:
# 避免端口冲突, 默认端口22222 dubbo.qos.port=20221
完整示例项目链接: springmvc-dubbo-mybatis-with-cat-sample
参考文档文献链接: https://github.com/dianping/cat
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- springboot应用接入druid监控
- Fundebug发布Vue插件,简化BUG监控接入代码
- 监控全覆盖,接入只需 5 分钟:爱奇艺内容中台基于 CAT 的服务监控实践
- 云转码接入视频网站解决方案 express-ffmpeg接入discuz方案
- 数据接入治理平台
- 【Netty】如何接入新连接
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Head First Python
Paul Barry / O'Reilly Media / 2010-11-30 / USD 49.99
Are you keen to add Python to your programming skills? Learn quickly and have some fun at the same time with Head First Python. This book takes you beyond typical how-to manuals with engaging images, ......一起来看看 《Head First Python》 这本书的介绍吧!