array(2) { ["docs"]=> array(10) { [0]=> array(10) { ["id"]=> string(3) "428" ["text"]=> string(77) "Visual Studio 2017 单独启动MSDN帮助(Microsoft Help Viewer)的方法" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(8) "DonetRen" ["tagsname"]=> string(55) "Visual Studio 2017|MSDN帮助|C#程序|.NET|Help Viewer" ["tagsid"]=> string(23) "[401,402,403,"300",404]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400964" ["_id"]=> string(3) "428" } [1]=> array(10) { ["id"]=> string(3) "427" ["text"]=> string(42) "npm -v;报错 cannot find module "wrapp"" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "zzty" ["tagsname"]=> string(50) "node.js|npm|cannot find module "wrapp“|node" ["tagsid"]=> string(19) "[398,"239",399,400]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400760" ["_id"]=> string(3) "427" } [2]=> array(10) { ["id"]=> string(3) "426" ["text"]=> string(54) "说说css中pt、px、em、rem都扮演了什么角色" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(12) "zhengqiaoyin" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511400640" ["_id"]=> string(3) "426" } [3]=> array(10) { ["id"]=> string(3) "425" ["text"]=> string(83) "深入学习JS执行--创建执行上下文(变量对象,作用域链,this)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "Ry-yuan" ["tagsname"]=> string(33) "Javascript|Javascript执行过程" ["tagsid"]=> string(13) "["169","191"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511399901" ["_id"]=> string(3) "425" } [4]=> array(10) { ["id"]=> string(3) "424" ["text"]=> string(30) "C# 排序技术研究与对比" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "vveiliang" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(8) ".Net Dev" ["catesid"]=> string(5) "[199]" ["createtime"]=> string(10) "1511399150" ["_id"]=> string(3) "424" } [5]=> array(10) { ["id"]=> string(3) "423" ["text"]=> string(72) "【算法】小白的算法笔记:快速排序算法的编码和优化" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(9) "penghuwan" ["tagsname"]=> string(6) "算法" ["tagsid"]=> string(7) "["344"]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511398109" ["_id"]=> string(3) "423" } [6]=> array(10) { ["id"]=> string(3) "422" ["text"]=> string(64) "JavaScript数据可视化编程学习(二)Flotr2,雷达图" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "chengxs" ["tagsname"]=> string(28) "数据可视化|前端学习" ["tagsid"]=> string(9) "[396,397]" ["catesname"]=> string(18) "前端基本知识" ["catesid"]=> string(5) "[198]" ["createtime"]=> string(10) "1511397800" ["_id"]=> string(3) "422" } [7]=> array(10) { ["id"]=> string(3) "421" ["text"]=> string(36) "C#表达式目录树(Expression)" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(4) "wwym" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(4) ".NET" ["catesid"]=> string(7) "["119"]" ["createtime"]=> string(10) "1511397474" ["_id"]=> string(3) "421" } [8]=> array(10) { ["id"]=> string(3) "420" ["text"]=> string(47) "数据结构 队列_队列实例:事件处理" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(7) "idreamo" ["tagsname"]=> string(40) "C语言|数据结构|队列|事件处理" ["tagsid"]=> string(23) "["246","247","248",395]" ["catesname"]=> string(12) "数据结构" ["catesid"]=> string(7) "["133"]" ["createtime"]=> string(10) "1511397279" ["_id"]=> string(3) "420" } [9]=> array(10) { ["id"]=> string(3) "419" ["text"]=> string(47) "久等了,博客园官方Android客户端发布" ["intro"]=> string(288) "目录 ECharts 异步加载 ECharts 数据可视化在过去几年中取得了巨大进展。开发人员对可视化产品的期望不再是简单的图表创建工具,而是在交互、性能、数据处理等方面有更高的要求。 chart.setOption({ color: [ " ["username"]=> string(3) "cmt" ["tagsname"]=> string(0) "" ["tagsid"]=> string(2) "[]" ["catesname"]=> string(0) "" ["catesid"]=> string(2) "[]" ["createtime"]=> string(10) "1511396549" ["_id"]=> string(3) "419" } } ["count"]=> int(200) } 222 cat监控平台环境搭建 专题 - 爱码网

项目地址:https://github.com/dianping/cat

编译步骤:

这个项目比较另类,把编译需要的jar包,单独放在git分支mvn-repo里了,而且官方文档里给了一个错误的命令提示:

 git git@github.com:dianping/cat.git mvn-repo

当你直接把这条命令贴到terminal里执行时,会提示命令无效,正确的姿势如下:

1、先安装jdk 1.7或Jdk1.8【现在已经支持jdk1.8了】

这点很重要,cat项目的开发时间比较早,当时估计jdk8还没有,在1.8下编译虽然能成功,但是最后运行时会报错。

注:对于已经安装了jdk1.8的mac,可以参考Mac下同时安装多个版本的JDK ,如果弄多版本jdk切换,不要在PATH变量里加$JAVA_HOME/bin,否则alias切换只切换了JAVA_HOME,但是PATH里的值不会变。

2、将分支mvn-repo下的jar包复制到本机maven仓库

1、git clone https://github.com/dianping/cat.git
2、cd cat
3、git checkout mvn-repo
4cp -R * ~/.m2/repository
5、git checkout master
6、mvn clean install -DskipTests


温馨提示:
3.0 移除了cat的maven插件
需要先切换到2.0 分支, 执行mvn cat:install 后再切回来,即可完成依赖包install

然后再编译就可以了,再次提醒:如果安装了多个版本的jdk,编译前先将jdk版本切换到jdk 1.7(包括编译成功后,运行时也要jdk 1.7环境) 

部署步骤:

mvn cat:install

安装过程中,会提示输入mysql的连接地址,输入格式严格按 jdbc:mysql://127.0.0.1:3306 这种格式来,后面不要加一些额外参数,然后输入用户名、密码(该用户要有创建database的权限),之后会自动在mysql中创建cat数据库,然后创建一堆表。

1、cd cat-home
2、mvn jetty:run  //启动cat服务

如果启动过程无错,

成功后,在浏览器打开http://localhost:2281/cat 就可以看到cat监控界面了 

或者在cat目录下输入 mvn eclipse:clean eclipse:eclipse 然后将项目导入到eclipse中,运行cat-home项目里得‘com.dianping.cat.TestServer’来启动CAT。

cat监控平台环境搭建  专题  



实时--》全部--》主机--》具体的Transaction
cat监控平台环境搭建  专题

windows下的注意事项:

Windows 则是对系统运行盘下的/data/appdatas/cat和/data/applogs/cat有读写权限 //这个地方要特别说明一下,如有cat的源文件在E盘,则相关配置文件就应该放在e:/data/appdatas/cat/下面

 

1、Web.xml中新增filter

注:如果项目是对外不提供URL访问,比如GroupService,仅仅提供Pigeon服务,则不需要。

Filter放在url-rewrite-filter 之后的第一个,如果不是会导致URL的个数无限多,比如search/1/2,search/2/3等等,无法监控,后端存储压力也变大。

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>

2.Pom.xml中更新jar包(点评内部公共组件,外部公司可以忽略)

       <dependency>
            <groupId>com.dianping.cat</groupId>
            <artifactId>cat-core</artifactId>   
            <version>1.2.7</version>
       </dependency>

cat-client的最新版本:

        <dependency>
            <groupId>com.dianping.cat</groupId>
            <artifactId>cat-client</artifactId>
            <version>1.4.0</version>
        </dependency>


3、配置domain (cat-core 1.1.3之后版本,优先读取A配置)

A) 在资源文件中新建app.properties文件

在resources资源文件META-INF下,注意是src/main/resources/META-INF/文件夹, 而不是webapps下的那个META-INF,添加app.properties,加上domain配置,如:app.name=tuangou-web

B) 在资源文件中新建client.xml文件

在resources资源文件META-INF下,新建cat文件夹,注意是src/main/resources/META-INF/cat/client.xml文件, 而不是webapps下的那个META-INF,domain id表示项目名称此处为CMDB申请的名字,比如

     <config mode="client">
         <domain id="tuangou-web"/>
     </config>

4./data/appdatas/cat/目录下,新建一个client.xml文件(线上环境是OP配置)

如果系统是windows环境,则在eclipse运行的盘,比如D盘,新建/data/appdatas/cat/目录,新建client.xml文件

项目文件中srouce中的client.xml,此文件代表了这个项目我是谁,比如项目的名字Cat。

/data/appdatas/cat/client.xml,此文件有OP控制,这里的Domain名字用来做开关,如果一台机器上部署了多个应用,可以指定把一个应用的监控关闭。

      <config mode="client">
          <servers>
             <server ip="192.168.213.115" port="2280" />
         </servers>
      </config>

alpha、beta这个配置需要自己在此目录添加

预发以及生产环境这个配置需要通知到对应OP团队,让他们统一添加,自己上线时候做下检查即可

a、192.168.213.115:2280端口是指向测试环境的cat地址

b、配置可以加入CAT的开关,用于关闭CAT消息发送,将enabled改为false,如下表示将mobile-api这个项目关闭

      <config mode="client">
          <servers>
             <server ip="192.168.213.115" port="2280" />
         </servers>
         <domain id="mobile-api" enabled="false"/>
      </config>


5.CAT的Log4j集成 【建议所有Log都打到CAT,这样才能更快发现问题】

业务程序的所有异常都通过记录到CAT中,方便看到业务程序的问题,建议在Root节点中添加次appendar

a)在Log4j的xml中,加入Cat的Appender>

<appender name="catAppender" class="com.dianping.cat.log4j.CatAppender"></appender>

b)在Root的节点中加入catAppender

     <root>
       <level value="error" />
       <appender-ref ref="catAppender" />
     </root>

c)注意有一些Log的是不继承root的,需要如下配置

      <logger name="com.dianping.api.location" additivity="false">
        <level value="INFO"/>
        <appender-ref ref="locationAppender"/>
        <appender-ref ref="catAppender"/>
      </logger>

https://github.com/dianping/cat/tree/master/%E6%A1%86%E6%9E%B6%E5%9F%8B%E7%82%B9%E6%96%B9%E6%A1%88%E9%9B%86%E6%88%90

java config:

    @Bean
    public FilterRegistrationBean catFilter() {
        FilterRegistrationBean registrationBean = new FilterRegistrationBean();
        registrationBean.setFilter(new CatFilter());
        registrationBean.addUrlPatterns("/*");
        registrationBean.setName("cat-filter");
        registrationBean.setDispatcherTypes(DispatcherType.FORWARD, DispatcherType.REQUEST);
        registrationBean.setOrder(1);
        return registrationBean;
    }

 

 

linux 安装maven:

apache源配置
wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
yum -y install apache-maven
yum -y install ant

 

 

cat监控平台
Problem报表可以查找一些异常操作,配置Transcation报表使用。如果发现Transaction报表中有些URL max时间太长,可以在Problem中查找到,然后进行分析

cat监控平台环境搭建  专题

FAQ:
Error when try connecting to /10.10.10.2:2280
原因是没有配置客户端路由导致

这时点击左上角的红色配置按钮,如出现登录窗口输入默认账号密码,catadmin/catadmin
进入配置界面后选择 全局告警配置-客户端路由
cat监控平台环境搭建  专题
Backup-server为当前服务器地址,端口固定2280

Default-server定义可跳转的路由地址,这里设置的是本机地址,enable设置true表示启用。设置完成后点击提交保存。


https://github.com/dianping/cat/blob/master/%E6%A1%86%E6%9E%B6%E5%9F%8B%E7%82%B9%E6%96%B9%E6%A1%88%E9%9B%86%E6%88%90/Cat%E6%8A%80%E6%9C%AF%E5%85%A5%E9%97%A8%E6%80%BB%E7%BB%93-0.1.0.doc






 

 

异常解决:

要按readme的要求,使用jdk1.8以下进行编译生成war。否则,就有下面的错:

[ERROR] [ServletHolder] Servlet initializing failed. org.unidal.lookup.LookupException: Component(org.unidal.web.lifecycle.RequestLifecycle) lookup failure. details: Unable to lookup component 'org.unidal.web.lifecycle.RequestLifecycle', it could not be started.

role: org.unidal.web.lifecycle.RequestLifecycle
roleHint: mvc

maven用的jdk环境和我编译的环境不一样,maven要依赖javahome

http://www.oschina.net/question/1463652_2152237

  

更改tomcat JDK:

经测试,更改catalina.bat设置也可以

@echo off

set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_13
set JRE_HOME=C:\Program Files\Java\jre7

 

1、windows下:
修改 tomcat/bin/setclasspath.bat
rem Otherwise either JRE or JDK are fine
之前加上
set JAVA_HOME = C:\....   jdk路径
set JRE_HOME = C:\....\jre  Jre路径
 
2、linux环境下
修改tomcat/bin/setclasspath.sh
# First clear out the user classpath
CLASSPATH=
下面添加上
export JAVA_HOME=/home/tool/jdk1.6.0_18  --jdk路径
export JRE_HOME=/home/tool/jdk1.6.0_18/jre --jre路径
 
保存,重新启动tomcat
 
 
 

mvn编译cat的代码进报下面的错:

A required class is missing:com/thoughtworks/xstream/io/HierarchicalStreamDriver

解决办法:

在mvn本地仓库中com\thoughtworks\xstream这个文件夹。重新执行mvn clean install -DskipTests即可

因为没有这个文件夹,相关的jar都会重新下载,然后就下载到了。

http://www.myexception.cn/xml-soap/1898572.html

 
 
mvn jetty:run
报错:

[INFO] Final Memory: 11M/307M
[INFO] ------------------------------------------------------------------------
[ERROR] No plugin found for prefix 'jetty' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories
[local (e:\m2repository), central (http://repo.maven.apache.org/maven2)] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit
ch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please rea
d the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/NoPluginFoundF
orPrefixException

 

原因:

settings.xml没有配置插件应此需要

mvn org.mortbay.jetty:maven-jetty-plugin:run

这样来运行。

如果需要使用jetty:run,那么必须在maven的setting.xml下配置

 

解决办法:

在.m2的settings.xml文件的pluginGroups节点添加关于jetty的信息:

  <!-- pluginGroups
   | This is a list of additional group identifiers that will be searched when resolving plugins by their prefix, i.e.
   | when invoking a command line like "mvn prefix:goal". Maven will automatically add the group identifiers
   | "org.apache.maven.plugins" and "org.codehaus.mojo" if these are not already contained in the list.
   |-->
  <pluginGroups>
    <!-- pluginGroup
     | Specifies a further group identifier to use for plugin lookup.
    <pluginGroup>com.your.plugins</pluginGroup>
    -->
     <pluginGroup>org.mortbay.jetty</pluginGroup>  
  </pluginGroups>

http://www.xuebuyuan.com/1115208.html

 

 

相关文章:

  • 2018-03-10
  • 2018-08-17
  • 2017-12-14
  • 2019-01-30
  • 2017-12-18
  • 2021-11-02
  • 2021-12-22
  • 2018-10-17
猜你喜欢
  • 2019-10-20
  • 2020-03-14
  • 2019-12-25
  • 2018-07-08
  • 2020-02-28
  • 2018-07-24
  • 2022-01-02
  • 2021-11-05
相关资源
相似解决方案