springmvc+dubbo+mybatis 接入大众点评 CAT 监控平台

CAT(Central Application Tracking)是基于Java开发的实时应用监控平台,包括实时应用监控,业务监控。关于CAT的具体介绍可移步到CAT官网进行查阅。

CAT平台的搭建可移步到「搭建大众点评CAT监控平台」。

1. 开发环境

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:applicationworkspaceideaspringmvc-dubbo-mybatis-with-cat-sample。那么,你需要在此项目所在的盘符(即这里的D盘)创建dataappdatascat目录,并将client.xml配置文件存放在这个路径中。如作者的客户端配置文件D:dataappdatascatclient.xml:

<?xml version="1.0" encoding="utf-8"?>

<config mode="client" xmlns:xsi="http://www.w3.org/2001/XMLSchema" xsi:noNamespaceSchemaLocation="config.xsd">

<servers>

<server ip="10.10.10.121" port="2280" http-port="8080" />

<server ip="10.10.10.122" port="2280" http-port="8080" />

<server ip="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 配置参考方式):

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

<property name="dataSource" ref="dataSource"/>

<property name="typeAliasesPackage" value="org.fanlychie.entity"/>

<property name="configLocation" value="classpath:mybatis-config.xml"/>

<property name="mapperLocations" value="classpath*:mapper/*.xml"/>

<!-- MyBatis 接入 CAT -->

<property name="plugins">

<array>

<bean class="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:consumer filter="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

原文地址:http://blog.51cto.com/13902811/2155442

时间: 2024-11-05 20:36:01

springmvc+dubbo+mybatis 接入大众点评 CAT 监控平台的相关文章

搭建大众点评CAT监控平台

AT(Central Application Tracking)是基于Java开发的实时应用监控平台,包括实时应用监控,业务监控.关于CAT的具体介绍可移步到CAT官网进行查阅. 环境清单CentOS 7 Java 8 Maven 3.5 MySQL 5.7 CAT 2.0.0 Tomcat 7.0 安装 CAT下载CAT安装包: # wget -O cat-home-2.0.0.war http://unidal.org/nexus/service/local/repositories/rel

大众点评实时监控系统CAT的那些坑

首先,感谢大众点评开源监控系统CAT.CAT是一款非常使用的功能建全的监控系统.作为一个知名的开源软件,真的是太差了. 想把CAT用起来,没有多年的Java经验是不行的.先吐槽一下,再写一篇如何用的文章. 从 https://github.com/dianping/cat 开始,就会碰到种种"坑". 第一坑,https://github.com/dianping/cat 上显示持续集成是失败的.(因为build的使用要用aliyun 的 maven 源才行.) 尝试用master编译成

Centos6.5部署大众点评CAT

CAT (Central Application Tracking) 简介: CAT 是大众点评开源的一套基于java的实时应用监控平台,主要应用于服务中间件框架(MVC 框架.RPC 框架.持久层框架.分布式缓存框架)的监控,为开发和运维提供各项性能指标.健康检查.自动报警等可视化服务. 最近在公司部署大众点评的CAT,中间遇到点问题,下面是我的部署过程: 系统和软件: cat下载地址:https://github.com/dianping/cat Centos6.5 apache-maven

部署点评Cat监控项目

在项目中监控代码运行的状况,可以采用点评的Cat项目来监控整个项目,但是按照官方的文档来部署cat,总会遇到各种问题,讲解的也不够简明清楚,现在用一个单机来部署运行cat监控项目. 首先,到项目的Git网页下载整个项目: https://github.com/dianping/cat 接着就是进入这个项目的目录,运行打包安装命令: mvn clean install -DskipTests  (需要maven) 执行完成后,运行 CAT 安装插件命令: mvn cat:install 会提示输入

部署点评Cat监控项目(转)

原文地址: 在项目中监控代码运行的状况,可以采用点评的Cat项目来监控整个项目,但是按照官方的文档来部署cat,总会遇到各种问题,讲解的也不够简明清楚,现在用一个单机来部署运行cat监控项目. 首先,到项目的git网页下载整个项目: https://github.com/dianping/cat 接着就是进入这个项目的目录,运行打包安装命令: mvn clean install -DskipTests  (需要maven) 执行完成后,运行 CAT 安装插件命令: mvn cat:install

cat监控平台环境搭建

项目地址:https://github.com/dianping/cat 编译步骤: 这个项目比较另类,把编译需要的jar包,单独放在git分支mvn-repo里了,而且官方文档里给了一个错误的命令提示: git [email protected]:dianping/cat.git mvn-repo 当你直接把这条命令贴到terminal里执行时,会提示命令无效,正确的姿势如下: 1.先安装jdk 1.7 这点很重要,cat项目的开发时间比较早,当时估计jdk8还没有,在1.8下编译虽然能成功,

大众点评开源监控CAT概览

1. CAT介绍 CAT是一个实时和接近全量的监控系统,它侧重于对Java应用的监控,除了与点评RPC组件融合的很好之外,他将会能与Spring.MyBatis.Dubbo 等框架以及Log4j 等结合 , 它提供系统的性能指标.健康状况.监控告警等,在微服务监控领域也是非常有用的一套组件. 1.1 CAT特性 实时处理:信息的价值会随时间锐减,尤其是事故处理过程中. 全量数据:最开始的设计目标就是全量采集,全量的好处有很多. 故障容忍:CAT本身故障不应该影响业务正常运转,CAT挂了,应用不该

深入详解美团点评CAT跨语言服务监控(一) CAT简介与部署

前言: CAT是一个实时和接近全量的监控系统,它侧重于对Java应用的监控,除了与点评RPC组件融合的很好之外,他将会能与Spring.MyBatis.Dubbo 等框架以及Log4j 等结合,支持PHP.C++.Go等多语言应用,基本接入了美团点评上海侧所有核心应用.目前在中间件(MVC.RPC.数据库.缓存等)框架中得到广泛应用,为美团点评各业务线提供系统的性能指标.健康状况.监控告警等,在微服务监控领域也是非常有用的一套组件.支撑这美团每天450亿的消息,50TB的数据监控,应用于 700

Android 大众点评的接入

这里介绍的是大众点评的团购中的一个接口,就是所有团购信息,其他的接口的实现是大同小异的. 首先,登录大众点评的开发平台->大众点评 .然后获取到自己的应用的appkey和secret,这个是开发必备的.可以下载大众点评提供的demo->demo . 获取所有的团购信息: DZDPApiTool.java 大众点评提供的Api工具类(请求api -> requestApi这个方法) public class DZDPApiTool { /** * 获取请求字符串 * * @param a