Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦中观雨
cat
提交
c2eafd8f
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,体验更适合开发者的 AI 搜索 >>
提交
c2eafd8f
编写于
10月 22, 2013
作者:
Y
yong.you
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
modify the map to ConcurrentHashMap
上级
902da1ae
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
37 addition
and
15 deletion
+37
-15
cat-consumer/src/main/java/com/dianping/cat/consumer/RealtimeConsumer.java
...main/java/com/dianping/cat/consumer/RealtimeConsumer.java
+25
-0
cat-consumer/src/main/java/com/dianping/cat/consumer/state/StateAnalyzer.java
...n/java/com/dianping/cat/consumer/state/StateAnalyzer.java
+3
-5
cat-core/src/main/java/com/dianping/cat/statistic/ServerStatistic.java
...main/java/com/dianping/cat/statistic/ServerStatistic.java
+9
-10
未找到文件。
cat-consumer/src/main/java/com/dianping/cat/consumer/RealtimeConsumer.java
浏览文件 @
c2eafd8f
...
...
@@ -346,6 +346,8 @@ public class RealtimeConsumer extends ContainerHolder implements MessageConsumer
startPeriod
(
value
);
}
else
{
endPeriod
(-
value
);
// last period is over,make it asynchronous
Threads
.
forGroup
(
"Cat"
).
start
(
new
EndTaskThread
(-
value
));
}
}
catch
(
Throwable
e
)
{
Cat
.
logError
(
e
);
...
...
@@ -374,5 +376,28 @@ public class RealtimeConsumer extends ContainerHolder implements MessageConsumer
m_periods
.
add
(
period
);
period
.
start
();
}
private
class
EndTaskThread
implements
Task
{
private
long
m_startTime
;
public
EndTaskThread
(
long
startTime
)
{
m_startTime
=
startTime
;
}
@Override
public
void
run
()
{
endPeriod
(
m_startTime
);
}
@Override
public
String
getName
()
{
return
"End-Consumer-Task"
;
}
@Override
public
void
shutdown
()
{
}
}
}
}
\ No newline at end of file
cat-consumer/src/main/java/com/dianping/cat/consumer/state/StateAnalyzer.java
浏览文件 @
c2eafd8f
...
...
@@ -45,18 +45,15 @@ public class StateAnalyzer extends AbstractMessageAnalyzer<StateReport> implemen
long
minute
=
1000
*
60
;
long
start
=
m_startTime
;
long
end
=
m_startTime
+
minute
*
60
;
int
size
=
0
;
double
maxTps
=
0
;
if
(
end
>
System
.
currentTimeMillis
())
{
end
=
System
.
currentTimeMillis
();
}
int
size
=
0
;
double
maxTps
=
0
;
for
(;
start
<
end
;
start
+=
minute
)
{
Statistic
state
=
m_serverStateManager
.
findState
(
start
);
Message
temp
=
machine
.
findOrCreateMessage
(
start
);
Map
<
String
,
AtomicLong
>
totals
=
state
.
getMessageTotals
();
long
messageTotal
=
state
.
getMessageTotal
();
temp
.
setTotal
(
messageTotal
);
...
...
@@ -78,6 +75,7 @@ public class StateAnalyzer extends AbstractMessageAnalyzer<StateReport> implemen
long
value
=
entry
.
getValue
().
get
();
ProcessDomain
domain
=
machine
.
findOrCreateProcessDomain
(
key
);
Detail
detail
=
domain
.
findOrCreateDetail
(
start
);
if
(
totals
.
containsKey
(
key
))
{
domain
.
setTotal
(
value
+
domain
.
getTotal
());
detail
.
setTotal
(
value
);
...
...
cat-core/src/main/java/com/dianping/cat/statistic/ServerStatistic.java
浏览文件 @
c2eafd8f
package
com.dianping.cat.statistic
;
import
java.util.HashMap
;
import
java.util.LinkedHashMap
;
import
java.util.Map
;
import
java.util.concurrent.atomic.AtomicLong
;
import
org.jboss.netty.util.internal.ConcurrentHashMap
;
public
class
ServerStatistic
{
private
Map
<
Long
,
Statistic
>
m_statistics
=
new
Linked
HashMap
<
Long
,
Statistic
>(
100
);
private
Map
<
Long
,
Statistic
>
m_statistics
=
new
Concurrent
HashMap
<
Long
,
Statistic
>(
100
);
public
Statistic
findOrCreate
(
Long
time
)
{
Statistic
state
=
m_statistics
.
get
(
time
);
...
...
@@ -34,11 +34,11 @@ public class ServerStatistic {
private
long
m_messageDumpLoss
;
private
Map
<
String
,
AtomicLong
>
m_messageTotals
=
new
HashMap
<
String
,
AtomicLong
>(
256
);
private
Map
<
String
,
AtomicLong
>
m_messageTotals
=
new
Concurrent
HashMap
<
String
,
AtomicLong
>(
256
);
private
Map
<
String
,
AtomicLong
>
m_messageTotalLosses
=
new
HashMap
<
String
,
AtomicLong
>(
256
);
private
Map
<
String
,
AtomicLong
>
m_messageTotalLosses
=
new
Concurrent
HashMap
<
String
,
AtomicLong
>(
256
);
private
Map
<
String
,
Double
>
m_messageSizes
=
new
HashMap
<
String
,
Double
>(
256
);
private
Map
<
String
,
Double
>
m_messageSizes
=
new
Concurrent
HashMap
<
String
,
Double
>(
256
);
private
double
m_processDelaySum
;
...
...
@@ -85,7 +85,7 @@ public class ServerStatistic {
public
void
addMessageTotal
(
String
domain
,
long
messageTotal
)
{
AtomicLong
value
=
m_messageTotals
.
get
(
domain
);
if
(
value
!=
null
)
{
value
.
set
(
value
.
get
()
+
messageTotal
);
value
.
set
(
value
.
get
()
+
messageTotal
);
}
else
{
m_messageTotals
.
put
(
domain
,
new
AtomicLong
(
messageTotal
));
}
...
...
@@ -94,9 +94,9 @@ public class ServerStatistic {
public
void
addMessageTotalLoss
(
String
domain
,
long
messageTotalLoss
)
{
AtomicLong
value
=
m_messageTotalLosses
.
get
(
domain
);
if
(
value
!=
null
)
{
value
.
set
(
value
.
get
()
+
messageTotalLoss
);
value
.
set
(
value
.
get
()
+
messageTotalLoss
);
}
else
{
m_messageTotalLosses
.
put
(
domain
,
new
AtomicLong
(
messageTotalLoss
));
m_messageTotalLosses
.
put
(
domain
,
new
AtomicLong
(
messageTotalLoss
));
}
}
...
...
@@ -220,7 +220,6 @@ public class ServerStatistic {
public
double
getMessageSize
()
{
return
m_messageSize
;
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录