Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦中观雨
cat
提交
6c746cbe
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,发现更多精彩内容 >>
提交
6c746cbe
编写于
5月 31, 2013
作者:
A
ainilife
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Bug Fix & Cat log
上级
5822b0fb
变更
5
显示空白变更内容
内联
并排
Showing
5 changed file
with
42 addition
and
17 deletion
+42
-17
abtest-sample/src/main/java/com/dianping/abtest/sample/ABTestSampleServlet.java
.../java/com/dianping/abtest/sample/ABTestSampleServlet.java
+3
-3
abtest-sample/src/main/java/com/dianping/abtest/sample/IPDistributionStrategy.java
...va/com/dianping/abtest/sample/IPDistributionStrategy.java
+1
-1
cat-core/src/main/java/com/dianping/cat/abtest/spi/internal/DefaultABTestContextManager.java
.../cat/abtest/spi/internal/DefaultABTestContextManager.java
+0
-1
cat-core/src/main/java/com/dianping/cat/abtest/spi/internal/DefaultABTestEntityManager.java
...g/cat/abtest/spi/internal/DefaultABTestEntityManager.java
+4
-0
cat-core/src/main/java/com/dianping/cat/servlet/CatFilter.java
...ore/src/main/java/com/dianping/cat/servlet/CatFilter.java
+34
-12
未找到文件。
abtest-sample/src/main/java/com/dianping/abtest/sample/ABTestSampleServlet.java
浏览文件 @
6c746cbe
...
...
@@ -20,18 +20,18 @@ public class ABTestSampleServlet extends HttpServlet {
@Override
public
void
service
(
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
ServletException
,
IOException
{
if
(
m_abtest
.
isGroupA
())
{
RequestDispatcher
rd
=
getServletContext
().
getRequestDispatcher
(
"/index
2
.jsp"
);
RequestDispatcher
rd
=
getServletContext
().
getRequestDispatcher
(
"/index
1
.jsp"
);
rd
.
forward
(
request
,
response
);
// Cat.logMetric(...);
}
else
{
RequestDispatcher
rd
=
getServletContext
().
getRequestDispatcher
(
"/index
1
.jsp"
);
RequestDispatcher
rd
=
getServletContext
().
getRequestDispatcher
(
"/index
2
.jsp"
);
rd
.
forward
(
request
,
response
);
// Cat.logMetric(...);
}
}
public
static
enum
MyABTestId
implements
ABTestId
{
CASE1
(
2
);
CASE1
(
11
);
private
int
m_id
;
...
...
abtest-sample/src/main/java/com/dianping/abtest/sample/IPDistributionStrategy.java
浏览文件 @
6c746cbe
...
...
@@ -52,7 +52,7 @@ public class IPDistributionStrategy implements ABTestGroupStrategy {
}
if
(
StringUtils
.
isEmpty
(
ip
)
||
"unknown"
.
equalsIgnoreCase
(
ip
))
{
ip
=
req
.
getRemoteAddr
();
if
(
ip
.
equals
(
"127.0.0.1"
)
&&
ip
.
startsWith
(
"0:0:0:0:0:0:0:1"
)){
if
(
ip
.
equals
(
"127.0.0.1"
)
||
ip
.
startsWith
(
"0:0:0:0:0:0:0:1"
)){
ip
=
IPUtils
.
getFirstNoLoopbackIP4Address
();
}
}
...
...
cat-core/src/main/java/com/dianping/cat/abtest/spi/internal/DefaultABTestContextManager.java
浏览文件 @
6c746cbe
...
...
@@ -38,7 +38,6 @@ public class DefaultABTestContextManager extends ContainerHolder implements ABTe
ABTestEntity
entity
=
m_entityManager
.
getEntity
(
testId
);
ctx
=
createContext
(
entity
,
entry
.
getHttpServletRequest
());
map
.
put
(
id
,
ctx
);
}
...
...
cat-core/src/main/java/com/dianping/cat/abtest/spi/internal/DefaultABTestEntityManager.java
浏览文件 @
6c746cbe
...
...
@@ -29,6 +29,10 @@ public class DefaultABTestEntityManager extends ContainerHolder implements ABTes
entity
.
setDisabled
(
true
);
m_repository
.
getEntities
().
put
(
id
.
getValue
(),
entity
);
StringBuilder
sb
=
new
StringBuilder
();
sb
.
append
(
"id "
).
append
(
id
.
getValue
()).
append
(
" doesn't exsit"
);
Cat
.
getProducer
().
logEvent
(
"ABTest.IDMiss"
,
"id-miss"
,
sb
.
toString
(),
""
);
}
return
entity
;
...
...
cat-core/src/main/java/com/dianping/cat/servlet/CatFilter.java
浏览文件 @
6c746cbe
...
...
@@ -25,22 +25,32 @@ public class CatFilter implements Filter {
}
@Override
public
void
doFilter
(
ServletRequest
request
,
ServletResponse
response
,
FilterChain
chain
)
throws
IOException
,
ServletException
{
public
void
doFilter
(
ServletRequest
request
,
ServletResponse
response
,
FilterChain
chain
)
throws
IOException
,
ServletException
{
HttpServletRequest
req
=
(
HttpServletRequest
)
request
;
String
sessionToken
=
getSessionIdFromCookie
(
req
);
boolean
isRoot
=
!
Cat
.
getManager
().
hasContext
(
);
// setup for thread local data
if
(
isRoot
)
{
String
sessionToken
=
getSessionIdFromCookie
(
req
);
Cat
.
setup
(
sessionToken
);
ABTestManager
.
onRequestBegin
(
req
);
}
MessageProducer
cat
=
Cat
.
getProducer
();
Transaction
t
=
cat
.
newTransaction
(
CatConstants
.
TYPE_URL
,
getOriginalUrl
(
request
))
;
Transaction
t
=
null
;
if
(
isRoot
)
{
t
=
Cat
.
newTransaction
(
getTypeName
(),
getOriginalUrl
(
request
));
logRequestClientInfo
(
cat
,
req
);
ABTestManager
.
onRequestBegin
(
req
);
}
else
{
t
=
Cat
.
newTransaction
(
getTypeName
()
+
".Forward"
,
getOriginalUrl
(
request
));
}
logRequestPayload
(
cat
,
req
);
try
{
chain
.
doFilter
(
request
,
response
);
doNextFilter
(
request
,
response
,
chain
);
Object
catStatus
=
request
.
getAttribute
(
"cat-state"
);
if
(
catStatus
!=
null
)
{
...
...
@@ -66,10 +76,17 @@ public class CatFilter implements Filter {
throw
e
;
}
finally
{
t
.
complete
();
if
(
isRoot
)
{
Cat
.
reset
();
ABTestManager
.
onRequestEnd
();
}
}
}
protected
void
doNextFilter
(
ServletRequest
request
,
ServletResponse
response
,
FilterChain
chain
)
throws
IOException
,
ServletException
{
chain
.
doFilter
(
request
,
response
);
}
protected
String
getOriginalUrl
(
ServletRequest
request
)
{
return
((
HttpServletRequest
)
request
).
getRequestURI
();
...
...
@@ -89,6 +106,10 @@ public class CatFilter implements Filter {
return
null
;
}
protected
String
getTypeName
()
{
return
CatConstants
.
TYPE_URL
;
}
@Override
public
void
init
(
FilterConfig
filterConfig
)
throws
ServletException
{
}
...
...
@@ -112,7 +133,7 @@ public class CatFilter implements Filter {
sb
.
append
(
"&Referer="
).
append
(
req
.
getHeader
(
"referer"
));
sb
.
append
(
"&Agent="
).
append
(
req
.
getHeader
(
"user-agent"
));
cat
.
logEvent
(
"URL"
,
"ClientInfo"
,
Message
.
SUCCESS
,
sb
.
toString
());
cat
.
logEvent
(
getTypeName
()
,
"ClientInfo"
,
Message
.
SUCCESS
,
sb
.
toString
());
}
protected
void
logRequestPayload
(
MessageProducer
cat
,
HttpServletRequest
req
)
{
...
...
@@ -127,6 +148,7 @@ public class CatFilter implements Filter {
sb
.
append
(
'?'
).
append
(
qs
);
}
cat
.
logEvent
(
CatConstants
.
TYPE_URL
,
CatConstants
.
NAME_PAYLOAD
,
Event
.
SUCCESS
,
sb
.
toString
());
cat
.
logEvent
(
getTypeName
()
,
CatConstants
.
NAME_PAYLOAD
,
Event
.
SUCCESS
,
sb
.
toString
());
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录