Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦中观雨
cat
提交
d7cbeab0
C
cat
项目概览
梦中观雨
/
cat
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
cat
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d7cbeab0
编写于
4月 21, 2015
作者:
Y
youyong205
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor broker-service
上级
28784efd
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
554 addition
and
188 deletion
+554
-188
cat-broker/pom.xml
cat-broker/pom.xml
+179
-163
cat-broker/src/main/java/com/dianping/cat/broker/api/app/proto/AppDataProto.java
...a/com/dianping/cat/broker/api/app/proto/AppDataProto.java
+9
-1
cat-broker/src/main/java/com/dianping/cat/broker/api/log/AppLogManager.java
...n/java/com/dianping/cat/broker/api/log/AppLogManager.java
+61
-0
cat-broker/src/main/java/com/dianping/cat/broker/api/log/ErrorLogManager.java
...java/com/dianping/cat/broker/api/log/ErrorLogManager.java
+5
-5
cat-broker/src/main/java/com/dianping/cat/broker/api/log/LogServlet.java
...main/java/com/dianping/cat/broker/api/log/LogServlet.java
+3
-3
cat-broker/src/main/java/com/dianping/cat/broker/api/page/batch/Handler.java
.../java/com/dianping/cat/broker/api/page/batch/Handler.java
+27
-5
cat-broker/src/main/resources/META-INF/plexus/components.xml
cat-broker/src/main/resources/META-INF/plexus/components.xml
+7
-0
cat-broker/src/main/resources/config/log4j.dtd
cat-broker/src/main/resources/config/log4j.dtd
+227
-0
cat-broker/src/main/resources/config/log4j.xml
cat-broker/src/main/resources/config/log4j.xml
+16
-0
cat-broker/src/main/webapp/WEB-INF/web.xml
cat-broker/src/main/webapp/WEB-INF/web.xml
+1
-1
cat-home/src/main/webapp/jsp/report/home/interface/userMonitor.jsp
...src/main/webapp/jsp/report/home/interface/userMonitor.jsp
+19
-10
未找到文件。
cat-broker/pom.xml
浏览文件 @
d7cbeab0
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
>
<parent>
<groupId>
com.dianping.cat
</groupId>
<artifactId>
parent
</artifactId>
<version>
1.3.3
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
broker-service
</artifactId>
<name>
broker-service
</name>
<packaging>
war
</packaging>
<dependencies>
<dependency>
<groupId>
com.dianping.cat
</groupId>
<artifactId>
cat-core
</artifactId>
</dependency>
<dependency>
<groupId>
com.google.code.gson
</groupId>
<artifactId>
gson
</artifactId>
<version>
1.6
</version>
</dependency>
<dependency>
<groupId>
org.unidal.framework
</groupId>
<artifactId>
dal-jdbc
</artifactId>
</dependency>
<dependency>
<groupId>
org.unidal.webres
</groupId>
<artifactId>
WebResServer
</artifactId>
</dependency>
<dependency>
<groupId>
org.unidal.framework
</groupId>
<artifactId>
web-framework
</artifactId>
</dependency>
<dependency>
<groupId>
javax.servlet
</groupId>
<artifactId>
servlet-api
</artifactId>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
javax.servlet
</groupId>
<artifactId>
jstl
</artifactId>
<version>
1.2
</version>
</dependency>
<dependency>
<groupId>
org.mortbay.jetty
</groupId>
<artifactId>
jsp-api-2.1
</artifactId>
<version>
6.1.14
</version>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
org.mortbay.jetty
</groupId>
<artifactId>
jsp-2.1
</artifactId>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
<scope>
runtime
</scope>
</dependency>
<dependency>
<groupId>
org.freemarker
</groupId>
<artifactId>
freemarker
</artifactId>
<version>
2.3.9
</version>
</dependency>
<dependency>
<groupId>
junit
</groupId>
<artifactId>
junit
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
org.mortbay.jetty
</groupId>
<artifactId>
jetty
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
org.unidal.framework
</groupId>
<artifactId>
test-framework
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-email
</artifactId>
<version>
1.1
</version>
</dependency>
<dependency>
<groupId>
javax.mail
</groupId>
<artifactId>
mail
</artifactId>
<version>
1.4.4
</version>
</dependency>
<dependency>
<groupId>
com.google.code.javaparser
</groupId>
<artifactId>
javaparser
</artifactId>
<version>
1.0.8
</version>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>
${basedir}/src/main/resources
</directory>
<filtering>
true
</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>
org.unidal.maven.plugins
</groupId>
<artifactId>
plexus-maven-plugin
</artifactId>
<executions>
<execution>
<id>
generate plexus component descriptor
</id>
<phase>
process-classes
</phase>
<goals>
<goal>
plexus
</goal>
</goals>
<configuration>
<className>
com.dianping.cat.broker.build.ComponentsConfigurator
</className>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-war-plugin
</artifactId>
<version>
2.1.1
</version>
<configuration>
<warName>
broker-service-${env}-${version}
</warName>
<webResources>
<resource>
<directory>
src/main/resources
</directory>
<filtering>
false
</filtering>
<targetPath>
WEB-INF/classes
</targetPath>
</resource>
<resource>
<directory>
src/main/webapp
</directory>
<filtering>
false
</filtering>
<includes>
<include>
WEB-INF/web.xml
</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
<plugin>
<groupId>
org.mortbay.jetty
</groupId>
<artifactId>
maven-jetty-plugin
</artifactId>
<version>
6.1.26
</version>
<configuration>
<scanIntervalSeconds>
10
</scanIntervalSeconds>
<contextPath>
/cat
</contextPath>
<defaultsDescriptor>
src/main/webapp/WEB-INF/web.xml
</defaultsDescriptor>
<connectors>
<connector
implementation=
"org.mortbay.jetty.nio.SelectChannelConnector"
>
<port>
2281
</port>
<maxIdleTime>
500000
</maxIdleTime>
</connector>
</connectors>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<packaging>
war
</packaging>
<env>
alpha
</env>
<project.build.sourceEncoding>
utf-8
</project.build.sourceEncoding>
</properties>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
>
<parent>
<groupId>
com.dianping.cat
</groupId>
<artifactId>
parent
</artifactId>
<version>
1.3.3
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
broker-service
</artifactId>
<name>
broker-service
</name>
<packaging>
war
</packaging>
<dependencies>
<dependency>
<groupId>
com.dianping.cat
</groupId>
<artifactId>
cat-core
</artifactId>
</dependency>
<dependency>
<groupId>
com.google.code.gson
</groupId>
<artifactId>
gson
</artifactId>
<version>
1.6
</version>
</dependency>
<dependency>
<groupId>
org.unidal.framework
</groupId>
<artifactId>
dal-jdbc
</artifactId>
</dependency>
<dependency>
<groupId>
org.unidal.webres
</groupId>
<artifactId>
WebResServer
</artifactId>
</dependency>
<dependency>
<groupId>
org.unidal.framework
</groupId>
<artifactId>
web-framework
</artifactId>
</dependency>
<dependency>
<groupId>
javax.servlet
</groupId>
<artifactId>
servlet-api
</artifactId>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
javax.servlet
</groupId>
<artifactId>
jstl
</artifactId>
<version>
1.2
</version>
</dependency>
<dependency>
<groupId>
org.mortbay.jetty
</groupId>
<artifactId>
jsp-api-2.1
</artifactId>
<version>
6.1.14
</version>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
org.mortbay.jetty
</groupId>
<artifactId>
jsp-2.1
</artifactId>
<scope>
provided
</scope>
</dependency>
<dependency>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
<scope>
runtime
</scope>
</dependency>
<dependency>
<groupId>
org.freemarker
</groupId>
<artifactId>
freemarker
</artifactId>
<version>
2.3.9
</version>
</dependency>
<dependency>
<groupId>
junit
</groupId>
<artifactId>
junit
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
org.mortbay.jetty
</groupId>
<artifactId>
jetty
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
org.unidal.framework
</groupId>
<artifactId>
test-framework
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-email
</artifactId>
<version>
1.1
</version>
</dependency>
<dependency>
<groupId>
javax.mail
</groupId>
<artifactId>
mail
</artifactId>
<version>
1.4.4
</version>
</dependency>
<dependency>
<groupId>
com.google.code.javaparser
</groupId>
<artifactId>
javaparser
</artifactId>
<version>
1.0.8
</version>
</dependency>
<dependency>
<groupId>
commons-logging
</groupId>
<artifactId>
commons-logging
</artifactId>
<version>
1.1.1
</version>
</dependency>
<dependency>
<groupId>
log4j
</groupId>
<artifactId>
log4j
</artifactId>
<version>
1.2.14
</version>
</dependency>
<dependency>
<groupId>
org.slf4j
</groupId>
<artifactId>
slf4j-log4j12
</artifactId>
<version>
1.4.3
</version>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>
${basedir}/src/main/resources
</directory>
<filtering>
true
</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>
org.unidal.maven.plugins
</groupId>
<artifactId>
plexus-maven-plugin
</artifactId>
<executions>
<execution>
<id>
generate plexus component descriptor
</id>
<phase>
process-classes
</phase>
<goals>
<goal>
plexus
</goal>
</goals>
<configuration>
<className>
com.dianping.cat.broker.build.ComponentsConfigurator
</className>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-war-plugin
</artifactId>
<version>
2.1.1
</version>
<configuration>
<warName>
broker-service-${env}-${version}
</warName>
<webResources>
<resource>
<directory>
src/main/resources
</directory>
<filtering>
false
</filtering>
<targetPath>
WEB-INF/classes
</targetPath>
</resource>
<resource>
<directory>
src/main/webapp
</directory>
<filtering>
false
</filtering>
<includes>
<include>
WEB-INF/web.xml
</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
<plugin>
<groupId>
org.mortbay.jetty
</groupId>
<artifactId>
maven-jetty-plugin
</artifactId>
<version>
6.1.26
</version>
<configuration>
<scanIntervalSeconds>
10
</scanIntervalSeconds>
<contextPath>
/cat
</contextPath>
<defaultsDescriptor>
src/main/webapp/WEB-INF/web.xml
</defaultsDescriptor>
<connectors>
<connector
implementation=
"org.mortbay.jetty.nio.SelectChannelConnector"
>
<port>
2281
</port>
<maxIdleTime>
500000
</maxIdleTime>
</connector>
</connectors>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<packaging>
war
</packaging>
<env>
alpha
</env>
<project.build.sourceEncoding>
utf-8
</project.build.sourceEncoding>
</properties>
</project>
cat-broker/src/main/java/com/dianping/cat/broker/api/app/proto/AppDataProto.java
浏览文件 @
d7cbeab0
...
...
@@ -28,7 +28,7 @@ public class AppDataProto extends ProtoData {
public
AppDataProto
()
{
}
public
AppDataProto
addCount
(
int
count
)
{
m_count
=
m_count
+
count
;
return
this
;
...
...
@@ -156,4 +156,12 @@ public class AppDataProto extends ProtoData {
m_version
=
version
;
return
this
;
}
@Override
public
String
toString
()
{
StringBuffer
sb
=
new
StringBuffer
();
return
sb
.
toString
();
}
}
cat-broker/src/main/java/com/dianping/cat/broker/api/log/AppLogManager.java
0 → 100644
浏览文件 @
d7cbeab0
package
com.dianping.cat.broker.api.log
;
import
java.net.URL
;
import
java.util.concurrent.BlockingQueue
;
import
java.util.concurrent.LinkedBlockingQueue
;
import
java.util.concurrent.TimeUnit
;
import
org.apache.log4j.Logger
;
import
org.apache.log4j.xml.DOMConfigurator
;
import
org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable
;
import
org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException
;
import
org.unidal.helper.Threads
;
import
org.unidal.helper.Threads.Task
;
import
com.dianping.cat.broker.api.app.proto.AppDataProto
;
public
class
AppLogManager
implements
Initializable
{
protected
Logger
m_logger
=
Logger
.
getLogger
(
AppLogManager
.
class
);
private
BlockingQueue
<
AppDataProto
>
m_datas
=
new
LinkedBlockingQueue
<
AppDataProto
>(
2000
);
@Override
public
void
initialize
()
throws
InitializationException
{
URL
file
=
this
.
getClass
().
getClassLoader
().
getResource
(
"config/log4j.xml"
);
DOMConfigurator
.
configure
(
file
);
Threads
.
forGroup
(
"cat"
).
start
(
new
StoreManager
());
}
public
boolean
offer
(
AppDataProto
proto
)
{
return
m_datas
.
offer
(
proto
);
}
public
class
StoreManager
implements
Task
{
@Override
public
String
getName
()
{
return
"store-app-log"
;
}
@Override
public
void
run
()
{
while
(
true
)
{
try
{
AppDataProto
proto
=
m_datas
.
poll
(
5
,
TimeUnit
.
MICROSECONDS
);
if
(
proto
!=
null
)
{
}
}
catch
(
InterruptedException
e
)
{
break
;
}
}
}
@Override
public
void
shutdown
()
{
}
}
}
cat-broker/src/main/java/com/dianping/cat/broker/api/log/LogManager.java
→
cat-broker/src/main/java/com/dianping/cat/broker/api/log/
Error
LogManager.java
浏览文件 @
d7cbeab0
...
...
@@ -18,9 +18,9 @@ import com.dianping.cat.helper.TimeHelper;
import
com.dianping.cat.message.Event
;
import
com.dianping.cat.message.Transaction
;
public
class
LogManager
{
public
class
Error
LogManager
{
public
volatile
static
LogManager
s_manager
;
public
volatile
static
Error
LogManager
s_manager
;
private
BlockingQueue
<
Entity
>
m_datas
=
new
LinkedBlockingQueue
<
Entity
>(
2000
);
...
...
@@ -30,11 +30,11 @@ public class LogManager {
private
SimpleDateFormat
m_sdf
=
new
SimpleDateFormat
(
"yyyyMMddHH"
);
public
static
LogManager
getInstance
()
{
public
static
Error
LogManager
getInstance
()
{
if
(
s_manager
==
null
)
{
synchronized
(
LogManager
.
class
)
{
synchronized
(
Error
LogManager
.
class
)
{
if
(
s_manager
==
null
)
{
s_manager
=
new
LogManager
();
s_manager
=
new
Error
LogManager
();
s_manager
.
initialize
();
}
}
...
...
cat-broker/src/main/java/com/dianping/cat/broker/api/log/LogServlet.java
浏览文件 @
d7cbeab0
...
...
@@ -12,15 +12,15 @@ import javax.servlet.http.HttpServletRequest;
import
org.unidal.helper.Files
;
import
com.dianping.cat.broker.api.log.LogManager
;
import
com.dianping.cat.broker.api.log.
Error
LogManager
;
public
class
LogServlet
implements
Servlet
{
private
LogManager
m_instance
;
private
Error
LogManager
m_instance
;
@Override
public
void
init
(
ServletConfig
config
)
throws
ServletException
{
m_instance
=
LogManager
.
getInstance
();
m_instance
=
Error
LogManager
.
getInstance
();
}
public
ServletConfig
getServletConfig
()
{
...
...
cat-broker/src/main/java/com/dianping/cat/broker/api/page/batch/Handler.java
浏览文件 @
d7cbeab0
...
...
@@ -23,6 +23,7 @@ import com.dianping.cat.Cat;
import
com.dianping.cat.broker.api.app.AppConsumer
;
import
com.dianping.cat.broker.api.app.proto.AppDataProto
;
import
com.dianping.cat.broker.api.app.proto.ProtoData
;
import
com.dianping.cat.broker.api.log.AppLogManager
;
import
com.dianping.cat.broker.api.page.RequestUtils
;
import
com.dianping.cat.config.app.AppConfigManager
;
import
com.dianping.cat.message.Event
;
...
...
@@ -46,9 +47,14 @@ public class Handler implements PageHandler<Context>, LogEnabled {
@Inject
private
UrlParser
m_parser
;
@Inject
private
AppLogManager
m_logManager
;
private
Logger
m_logger
;
private
volatile
int
m_error
;
private
volatile
int
m_analyzerError
;
private
volatile
int
m_logError
;
public
static
final
String
TOO_LONG
=
"toolongurl.bin"
;
...
...
@@ -56,6 +62,8 @@ public class Handler implements PageHandler<Context>, LogEnabled {
private
static
final
String
VERSION_THREE
=
"3"
;
private
static
final
int
LONG
=
30
*
1000
;
@Override
public
void
enableLogging
(
Logger
logger
)
{
m_logger
=
logger
;
...
...
@@ -95,7 +103,7 @@ public class Handler implements PageHandler<Context>, LogEnabled {
int
responseTime
=
appData
.
getResponseTime
();
if
(
responseTime
<
60
*
1000
&&
responseTime
>=
0
)
{
if
(
responseTime
<
LONG
&&
responseTime
>=
0
)
{
offerQueue
(
appData
);
Cat
.
logEvent
(
"Command"
,
formatCommand
,
Event
.
SUCCESS
,
null
);
...
...
@@ -110,12 +118,26 @@ public class Handler implements PageHandler<Context>, LogEnabled {
}
else
{
Cat
.
logEvent
(
"Batch.ResponseTimeError"
,
formatCommand
,
Event
.
SUCCESS
,
String
.
valueOf
(
responseTime
));
}
logAppInfo
(
appData
);
}
}
else
{
Cat
.
logEvent
(
"UnknownCommand"
,
urlBack
,
Event
.
SUCCESS
,
items
[
4
]);
}
}
private
void
logAppInfo
(
AppDataProto
appData
)
{
boolean
success
=
m_logManager
.
offer
(
appData
);
if
(!
success
)
{
m_logError
++;
if
(
m_logError
%
1000
==
0
)
{
Cat
.
logEvent
(
"Discard"
,
"Log"
,
Event
.
SUCCESS
,
null
);
m_logger
.
error
(
"Error when offer appData to queue , discard number "
+
m_logError
);
}
}
}
@Override
@PayloadMeta
(
Payload
.
class
)
@InboundActionMeta
(
name
=
"batch"
)
...
...
@@ -152,11 +174,11 @@ public class Handler implements PageHandler<Context>, LogEnabled {
boolean
success
=
m_appDataConsumer
.
enqueue
(
appData
);
if
(!
success
)
{
m_
e
rror
++;
m_
analyzerE
rror
++;
if
(
m_
e
rror
%
1000
==
0
)
{
if
(
m_
analyzerE
rror
%
1000
==
0
)
{
Cat
.
logEvent
(
"Discard"
,
"Batch"
,
Event
.
SUCCESS
,
null
);
m_logger
.
error
(
"Error when offer appData to queue , discard number "
+
m_
e
rror
);
m_logger
.
error
(
"Error when offer appData to queue , discard number "
+
m_
analyzerE
rror
);
}
}
}
...
...
cat-broker/src/main/resources/META-INF/plexus/components.xml
浏览文件 @
d7cbeab0
...
...
@@ -212,6 +212,9 @@
<requirement>
<role>
com.dianping.cat.broker.api.page.batch.UrlParser
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.broker.api.log.AppLogManager
</role>
</requirement>
</requirements>
</component>
<component>
...
...
@@ -234,6 +237,10 @@
<role>
com.dianping.cat.broker.api.page.batch.UrlParser
</role>
<implementation>
com.dianping.cat.broker.api.page.batch.UrlParser
</implementation>
</component>
<component>
<role>
com.dianping.cat.broker.api.log.AppLogManager
</role>
<implementation>
com.dianping.cat.broker.api.log.AppLogManager
</implementation>
</component>
<component>
<role>
com.dianping.cat.broker.api.page.js.Handler
</role>
<implementation>
com.dianping.cat.broker.api.page.js.Handler
</implementation>
...
...
cat-broker/src/main/resources/config/log4j.dtd
0 → 100644
浏览文件 @
d7cbeab0
<?xml version="1.0" encoding="UTF-8" ?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- Authors: Chris Taylor, Ceki Gulcu. -->
<!-- Version: 1.2 -->
<!-- A configuration element consists of optional renderer
elements,appender elements, categories and an optional root
element. -->
<!ELEMENT log4j:configuration (renderer*, appender*,plugin*, (category|logger)*,root?,
(categoryFactory|loggerFactory)?)>
<!-- The "threshold" attribute takes a level value below which -->
<!-- all logging statements are disabled. -->
<!-- Setting the "debug" enable the printing of internal log4j logging -->
<!-- statements. -->
<!-- By default, debug attribute is "null", meaning that we not do touch -->
<!-- internal log4j logging settings. The "null" value for the threshold -->
<!-- attribute can be misleading. The threshold field of a repository -->
<!-- cannot be set to null. The "null" value for the threshold attribute -->
<!-- simply means don't touch the threshold field, the threshold field -->
<!-- keeps its old value. -->
<!ATTLIST log4j:configuration
xmlns:log4j CDATA #FIXED "http://jakarta.apache.org/log4j/"
threshold (all|trace|debug|info|warn|error|fatal|off|null) "null"
debug (true|false|null) "null"
reset (true|false) "false"
>
<!-- renderer elements allow the user to customize the conversion of -->
<!-- message objects to String. -->
<!ELEMENT renderer EMPTY>
<!ATTLIST renderer
renderedClass CDATA #REQUIRED
renderingClass CDATA #REQUIRED
>
<!-- Appenders must have a name and a class. -->
<!-- Appenders may contain an error handler, a layout, optional parameters -->
<!-- and filters. They may also reference (or include) other appenders. -->
<!ELEMENT appender (errorHandler?, param*,
rollingPolicy?, triggeringPolicy?, connectionSource?,
layout?, filter*, appender-ref*)>
<!ATTLIST appender
name CDATA #REQUIRED
class CDATA #REQUIRED
>
<!ELEMENT layout (param*)>
<!ATTLIST layout
class CDATA #REQUIRED
>
<!ELEMENT filter (param*)>
<!ATTLIST filter
class CDATA #REQUIRED
>
<!-- ErrorHandlers can be of any class. They can admit any number of -->
<!-- parameters. -->
<!ELEMENT errorHandler (param*, root-ref?, logger-ref*, appender-ref?)>
<!ATTLIST errorHandler
class CDATA #REQUIRED
>
<!ELEMENT root-ref EMPTY>
<!ELEMENT logger-ref EMPTY>
<!ATTLIST logger-ref
ref CDATA #REQUIRED
>
<!ELEMENT param EMPTY>
<!ATTLIST param
name CDATA #REQUIRED
value CDATA #REQUIRED
>
<!-- The priority class is org.apache.log4j.Level by default -->
<!ELEMENT priority (param*)>
<!ATTLIST priority
class CDATA #IMPLIED
value CDATA #REQUIRED
>
<!-- The level class is org.apache.log4j.Level by default -->
<!ELEMENT level (param*)>
<!ATTLIST level
class CDATA #IMPLIED
value CDATA #REQUIRED
>
<!-- If no level element is specified, then the configurator MUST not -->
<!-- touch the level of the named category. -->
<!ELEMENT category (param*,(priority|level)?,appender-ref*)>
<!ATTLIST category
class CDATA #IMPLIED
name CDATA #REQUIRED
additivity (true|false) "true"
>
<!-- If no level element is specified, then the configurator MUST not -->
<!-- touch the level of the named logger. -->
<!ELEMENT logger (level?,appender-ref*)>
<!ATTLIST logger
name CDATA #REQUIRED
additivity (true|false) "true"
>
<!ELEMENT categoryFactory (param*)>
<!ATTLIST categoryFactory
class CDATA #REQUIRED>
<!ELEMENT loggerFactory (param*)>
<!ATTLIST loggerFactory
class CDATA #REQUIRED>
<!ELEMENT appender-ref EMPTY>
<!ATTLIST appender-ref
ref CDATA #REQUIRED
>
<!-- plugins must have a name and class and can have optional parameters -->
<!ELEMENT plugin (param*, connectionSource?)>
<!ATTLIST plugin
name CDATA #REQUIRED
class CDATA #REQUIRED
>
<!ELEMENT connectionSource (dataSource?, param*)>
<!ATTLIST connectionSource
class CDATA #REQUIRED
>
<!ELEMENT dataSource (param*)>
<!ATTLIST dataSource
class CDATA #REQUIRED
>
<!ELEMENT triggeringPolicy ((param|filter)*)>
<!ATTLIST triggeringPolicy
name CDATA #IMPLIED
class CDATA #REQUIRED
>
<!ELEMENT rollingPolicy (param*)>
<!ATTLIST rollingPolicy
name CDATA #IMPLIED
class CDATA #REQUIRED
>
<!-- If no priority element is specified, then the configurator MUST not -->
<!-- touch the priority of root. -->
<!-- The root category always exists and cannot be subclassed. -->
<!ELEMENT root (param*, (priority|level)?, appender-ref*)>
<!-- ==================================================================== -->
<!-- A logging event -->
<!-- ==================================================================== -->
<!ELEMENT log4j:eventSet (log4j:event*)>
<!ATTLIST log4j:eventSet
xmlns:log4j CDATA #FIXED "http://jakarta.apache.org/log4j/"
version (1.1|1.2) "1.2"
includesLocationInfo (true|false) "true"
>
<!ELEMENT log4j:event (log4j:message, log4j:NDC?, log4j:throwable?,
log4j:locationInfo?, log4j:properties?) >
<!-- The timestamp format is application dependent. -->
<!ATTLIST log4j:event
logger CDATA #REQUIRED
level CDATA #REQUIRED
thread CDATA #REQUIRED
timestamp CDATA #REQUIRED
time CDATA #IMPLIED
>
<!ELEMENT log4j:message (#PCDATA)>
<!ELEMENT log4j:NDC (#PCDATA)>
<!ELEMENT log4j:throwable (#PCDATA)>
<!ELEMENT log4j:locationInfo EMPTY>
<!ATTLIST log4j:locationInfo
class CDATA #REQUIRED
method CDATA #REQUIRED
file CDATA #REQUIRED
line CDATA #REQUIRED
>
<!ELEMENT log4j:properties (log4j:data*)>
<!ELEMENT log4j:data EMPTY>
<!ATTLIST log4j:data
name CDATA #REQUIRED
value CDATA #REQUIRED
>
cat-broker/src/main/resources/config/log4j.xml
0 → 100644
浏览文件 @
d7cbeab0
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" "log4j.dtd">
<log4j:configuration
xmlns:log4j=
"http://jakarta.apache.org/log4j/"
>
<appender
name=
"CONSOLE_FILE"
class=
"org.apache.log4j.DailyRollingFileAppender"
>
<param
name=
"File"
value=
"/data/applogs/broker-service/app/app.log"
/>
<param
name=
"Append"
value=
"true"
/>
<param
name=
"datePattern"
value=
"'.'yyyy-MM-dd.HH"
/>
<layout
class=
"org.apache.log4j.PatternLayout"
>
<param
name=
"ConversionPattern"
value=
"%d - %c -%-4r [%t] %-5p %x - %m%n"
/>
</layout>
</appender>
<root>
<level
value=
"INFO"
/>
<appender-ref
ref=
"CONSOLE_FILE"
/>
</root>
</log4j:configuration>
\ No newline at end of file
cat-broker/src/main/webapp/WEB-INF/web.xml
浏览文件 @
d7cbeab0
...
...
@@ -23,7 +23,7 @@
</init-param>
<load-on-startup>
2
</load-on-startup>
</servlet>
<filter-mapping>
<filter-name>
cat-filter
</filter-name>
<url-pattern>
/api/*
</url-pattern>
...
...
cat-home/src/main/webapp/jsp/report/home/interface/userMonitor.jsp
浏览文件 @
d7cbeab0
...
...
@@ -198,20 +198,29 @@
sample如下:
v=1
&
c=
1400037748182
<span
class=
"text-danger"
>
TAB
</span>
http://dianping.com/shop
<span
class=
"text-danger"
>
TAB
</span>
300
<span
class=
"text-danger"
>
TAB
</span>
200
<span
class=
"text-danger"
>
TAB
</span>
300
<span
class=
"text-danger"
>
TAB
</span>
300
<span
class=
"text-danger"
>
ENTER
</span>
1400037748182
<span
class=
"text-danger"
>
TAB
</span>
http://dianping.com/shop
<span
class=
"text-danger"
>
TAB
</span>
300
<span
class=
"text-danger"
>
TAB
</span>
200
<span
class=
"text-danger"
>
TAB
</span>
300
<span
class=
"text-danger"
>
TAB
</span>
300
<span
class=
"text-danger"
>
ENTER
</span>
1400037748182
<span
class=
"text-danger"
>
TAB
</span>
http://dianping.com/shop
<span
class=
"text-danger"
>
TAB
</span>
300
<span
class=
"text-danger"
>
TAB
</span>
200
<span
class=
"text-danger"
>
TAB
</span>
300
<span
class=
"text-danger"
>
TAB
</span>
300
<span
class=
"text-danger"
>
ENTER
</span>
1400037748182
<span
class=
"text-danger"
>
TAB
</span>
cdn-resource1
<span
class=
"text-danger"
>
TAB
</span>
300
<span
class=
"text-danger"
>
TAB
</span>
200
<span
class=
"text-danger"
>
TAB
</span>
300
<span
class=
"text-danger"
>
TAB
</span>
300
<span
class=
"text-danger"
>
ENTER
</span>
1400037748182
<span
class=
"text-danger"
>
TAB
</span>
cdn-resource2
<span
class=
"text-danger"
>
TAB
</span>
300
<span
class=
"text-danger"
>
TAB
</span>
200
<span
class=
"text-danger"
>
TAB
</span>
300
<span
class=
"text-danger"
>
TAB
</span>
300
<span
class=
"text-danger"
>
ENTER
</span>
1400037748182
<span
class=
"text-danger"
>
TAB
</span>
cdn-resource3
<span
class=
"text-danger"
>
TAB
</span>
300
<span
class=
"text-danger"
>
TAB
</span>
200
<span
class=
"text-danger"
>
TAB
</span>
300
<span
class=
"text-danger"
>
TAB
</span>
300
<span
class=
"text-danger"
>
ENTER
</span>
</pre>
<p>
参数说明
</p>
<table
style=
"width:70%"
class=
"table table-bordered table-striped table-condensed "
>
<tr><th>
query名
</th><th>
实际名称
</th><th>
描述
</th><th>
类型
</th></tr>
<tr><td>
v
</td><td>
version
</td><td>
API版本号
</td><td>
暂定为1
</td></tr>
<tr><td>
t
</td><td>
timestamp
</td><td>
发生时间
</td><td>
long型,1970到现在的毫秒数
</td></tr>
<tr><td>
dl
</td><td>
dnslookup
</td><td>
dns寻址时间
</td><td>
int
</td></tr>
<tr><td>
tc
</td><td>
tcpConnect
</td><td>
tcp连接建立
</td><td>
int
</td></tr>
<tr><td>
rq
</td><td>
request
</td><td>
请求时间
</td><td>
int
</td></tr>
<tr><td>
rs
</td><td>
response
</td><td>
接受时间
</td><td>
int
</td></tr>
<tr><th>
实际名称
</th><th>
描述
</th><th>
类型
</th></tr>
<tr><td>
v
</td><td>
API版本号
</td><td>
暂定为1
</td></tr>
<tr><td>
c
</td><td>
具体内容
</td><td>
content内容
</td></tr>
</table>
<p>
content内容说明
</p>
<pre>
timstamp
<span
class=
"text-danger"
>
TAB
</span>
targetUrl
<span
class=
"text-danger"
>
TAB
</span>
dnslookup
<span
class=
"text-danger"
>
TAB
</span>
tcpconnect
<span
class=
"text-danger"
>
TAB
</span>
request
<span
class=
"text-danger"
>
TAB
</span>
response
<span
class=
"text-danger"
>
ENTER
</span>
</pre>
<table
style=
"width:70%"
class=
"table table-bordered table-striped table-condensed "
>
<tr><th>
实际名称
</th><th>
描述
</th><th>
类型
</th></tr>
<tr><td>
timestamp
</td><td>
发生时间
</td><td>
long型,1970到现在的毫秒数
</td></tr>
<tr><td>
targetUrl
</td><td>
具体的cdn资源
</td><td>
cdn资源的一个定义
</td></tr>
<tr><td>
dnslookup
</td><td>
dns寻址时间
</td><td>
int
</td></tr>
<tr><td>
tcpConnect
</td><td>
tcp连接建立
</td><td>
int
</td></tr>
<tr><td>
request
</td><td>
请求时间
</td><td>
int
</td></tr>
<tr><td>
response
</td><td>
接受时间
</td><td>
int
</td></tr>
</table>
<br/>
<h4
class=
"text-success"
>
URL规则配置
<a
target=
"_blank"
href=
"/cat/s/config?op=urlPatternUpdate"
>
链接
</a></h4>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录