Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦中观雨
cat
提交
3baf867c
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,发现更多精彩内容 >>
提交
3baf867c
编写于
8月 31, 2012
作者:
F
Frankie Wu
浏览文件
操作
浏览文件
下载
差异文件
resolve the conflicts
上级
eb840558
fe22f2bb
变更
33
隐藏空白更改
内联
并排
Showing
33 changed file
with
598 addition
and
125 deletion
+598
-125
bee-engine/src/main/java/com/dianping/bee/engine/spi/Statement.java
.../src/main/java/com/dianping/bee/engine/spi/Statement.java
+11
-2
bee-engine/src/main/java/com/dianping/bee/engine/spi/StatementManager.java
...in/java/com/dianping/bee/engine/spi/StatementManager.java
+8
-2
bee-engine/src/main/java/com/dianping/bee/engine/spi/handler/AbstractCommandHandler.java
...anping/bee/engine/spi/handler/AbstractCommandHandler.java
+1
-5
bee-engine/src/main/java/com/dianping/bee/engine/spi/handler/internal/PrepareHandler.java
...nping/bee/engine/spi/handler/internal/PrepareHandler.java
+54
-4
bee-engine/src/main/java/com/dianping/bee/engine/spi/handler/internal/PreparePacket.java
...anping/bee/engine/spi/handler/internal/PreparePacket.java
+66
-0
bee-engine/src/main/java/com/dianping/bee/engine/spi/handler/internal/PrepareParameterPacket.java
...e/engine/spi/handler/internal/PrepareParameterPacket.java
+66
-0
bee-engine/src/main/java/com/dianping/bee/engine/spi/internal/DefaultStatementManager.java
...ping/bee/engine/spi/internal/DefaultStatementManager.java
+19
-14
bee-engine/src/main/java/com/dianping/bee/engine/spi/internal/SingleTableStatement.java
...ianping/bee/engine/spi/internal/SingleTableStatement.java
+41
-18
bee-engine/src/main/java/com/dianping/bee/engine/spi/internal/SingleTableStatementVisitor.java
.../bee/engine/spi/internal/SingleTableStatementVisitor.java
+10
-0
bee-engine/src/main/java/com/dianping/bee/server/SimpleServerConnection.java
.../java/com/dianping/bee/server/SimpleServerConnection.java
+61
-1
bee-engine/src/main/java/com/dianping/bee/server/SimpleServerQueryHandler.java
...ava/com/dianping/bee/server/SimpleServerQueryHandler.java
+20
-4
bee-engine/src/test/java/com/dianping/bee/jdbc/PreparedStatementTest.java
...est/java/com/dianping/bee/jdbc/PreparedStatementTest.java
+6
-4
cat-consumer/src/main/java/com/dianping/cat/consumer/event/EventAnalyzer.java
...n/java/com/dianping/cat/consumer/event/EventAnalyzer.java
+0
-1
cat-consumer/src/main/java/com/dianping/cat/consumer/heartbeat/HeartbeatAnalyzer.java
...om/dianping/cat/consumer/heartbeat/HeartbeatAnalyzer.java
+0
-1
cat-consumer/src/main/java/com/dianping/cat/consumer/problem/ProblemAnalyzer.java
...va/com/dianping/cat/consumer/problem/ProblemAnalyzer.java
+2
-3
cat-consumer/src/main/java/com/dianping/cat/consumer/transaction/TransactionAnalyzer.java
...ianping/cat/consumer/transaction/TransactionAnalyzer.java
+0
-2
cat-home/src/main/java/com/dianping/cat/build/ServiceComponentConfigurator.java
.../com/dianping/cat/build/ServiceComponentConfigurator.java
+6
-6
cat-home/src/main/java/com/dianping/cat/report/page/cache/Model.java
...c/main/java/com/dianping/cat/report/page/cache/Model.java
+9
-2
cat-home/src/main/java/com/dianping/cat/report/page/cross/Model.java
...c/main/java/com/dianping/cat/report/page/cross/Model.java
+23
-16
cat-home/src/main/java/com/dianping/cat/report/page/event/Model.java
...c/main/java/com/dianping/cat/report/page/event/Model.java
+9
-2
cat-home/src/main/java/com/dianping/cat/report/page/heartbeat/Model.java
...in/java/com/dianping/cat/report/page/heartbeat/Model.java
+10
-2
cat-home/src/main/java/com/dianping/cat/report/page/matrix/Model.java
.../main/java/com/dianping/cat/report/page/matrix/Model.java
+10
-2
cat-home/src/main/java/com/dianping/cat/report/page/model/Handler.java
...main/java/com/dianping/cat/report/page/model/Handler.java
+9
-10
cat-home/src/main/java/com/dianping/cat/report/page/model/cross/LocalCrossService.java
...anping/cat/report/page/model/cross/LocalCrossService.java
+16
-3
cat-home/src/main/java/com/dianping/cat/report/page/model/event/LocalEventService.java
...anping/cat/report/page/model/event/LocalEventService.java
+16
-3
cat-home/src/main/java/com/dianping/cat/report/page/model/heartbeat/LocalHeartbeatService.java
...at/report/page/model/heartbeat/LocalHeartbeatService.java
+16
-3
cat-home/src/main/java/com/dianping/cat/report/page/model/matrix/LocalMatrixService.java
...ping/cat/report/page/model/matrix/LocalMatrixService.java
+16
-3
cat-home/src/main/java/com/dianping/cat/report/page/model/problem/LocalProblemService.java
...ng/cat/report/page/model/problem/LocalProblemService.java
+16
-3
cat-home/src/main/java/com/dianping/cat/report/page/model/transaction/LocalTransactionService.java
...eport/page/model/transaction/LocalTransactionService.java
+16
-3
cat-home/src/main/java/com/dianping/cat/report/page/monthreport/Model.java
.../java/com/dianping/cat/report/page/monthreport/Model.java
+6
-2
cat-home/src/main/java/com/dianping/cat/report/page/problem/Model.java
...main/java/com/dianping/cat/report/page/problem/Model.java
+10
-2
cat-home/src/main/java/com/dianping/cat/report/page/transaction/Model.java
.../java/com/dianping/cat/report/page/transaction/Model.java
+9
-2
cat-home/src/main/resources/META-INF/plexus/components.xml
cat-home/src/main/resources/META-INF/plexus/components.xml
+36
-0
未找到文件。
bee-engine/src/main/java/com/dianping/bee/engine/spi/Statement.java
浏览文件 @
3baf867c
...
...
@@ -3,15 +3,24 @@ package com.dianping.bee.engine.spi;
import
com.dianping.bee.engine.spi.meta.ColumnMeta
;
import
com.dianping.bee.engine.spi.meta.IndexMeta
;
import
com.dianping.bee.engine.spi.meta.RowSet
;
import
com.dianping.bee.engine.spi.row.RowFilter
;
public
interface
Statement
{
public
IndexMeta
getIndex
();
public
int
getParameterSize
();
public
RowFilter
getRowFilter
();
public
ColumnMeta
[]
getSelectColumns
();
public
RowSet
query
();
public
void
setIndex
(
IndexMeta
index
);
public
void
set
SelectColumns
(
ColumnMeta
[]
selectColumns
);
public
void
set
ParameterSize
(
int
m_parameterSize
);
public
RowSet
query
();
public
void
setRowFilter
(
RowFilter
rowFilter
);
public
void
setSelectColumns
(
ColumnMeta
[]
selectColumns
);
}
bee-engine/src/main/java/com/dianping/bee/engine/spi/StatementManager.java
浏览文件 @
3baf867c
...
...
@@ -3,7 +3,13 @@ package com.dianping.bee.engine.spi;
import
java.sql.SQLSyntaxErrorException
;
public
interface
StatementManager
{
public
Statement
parseSQL
(
String
sql
)
throws
SQLSyntaxErrorException
;
public
Statement
build
(
String
sql
)
throws
SQLSyntaxErrorException
;
public
Statement
prepare
(
String
sql
)
throws
SQLSyntaxErrorException
;
public
long
stmtPrepare
(
Statement
stmt
);
public
Statement
stmtExecute
(
long
stmtId
);
public
void
stmtClose
(
long
stmtId
);
}
bee-engine/src/main/java/com/dianping/bee/engine/spi/handler/AbstractCommandHandler.java
浏览文件 @
3baf867c
...
...
@@ -78,27 +78,25 @@ public abstract class AbstractCommandHandler extends ContainerHolder implements
}
public
void
write
(
MySQLPacket
packet
)
{
packet
.
packetId
=
m_packetId
++;
m_buffer
=
packet
.
write
(
m_buffer
,
m_conn
);
}
public
void
writeEOF
()
{
EOFPacket
eof
=
new
EOFPacket
();
eof
.
packetId
=
m_packetId
++;
write
(
eof
);
}
public
void
writeField
(
String
name
,
int
fieldType
)
{
FieldPacket
field
=
PacketUtil
.
getField
(
name
,
fieldType
);
field
.
packetId
=
m_packetId
++;
write
(
field
);
}
public
void
writeHeader
(
int
fieldCount
)
{
ResultSetHeaderPacket
header
=
PacketUtil
.
getHeader
(
fieldCount
);
header
.
packetId
=
m_packetId
++;
write
(
header
);
}
...
...
@@ -114,7 +112,6 @@ public abstract class AbstractCommandHandler extends ContainerHolder implements
row
.
add
(
StringUtil
.
encode
(
values
[
i
],
m_charset
));
}
row
.
packetId
=
m_packetId
++;
write
(
row
);
}
...
...
@@ -161,7 +158,6 @@ public abstract class AbstractCommandHandler extends ContainerHolder implements
}
}
packet
.
packetId
=
m_packetId
++;
write
(
packet
);
}
}
...
...
bee-engine/src/main/java/com/dianping/bee/engine/spi/handler/internal/PrepareHandler.java
浏览文件 @
3baf867c
...
...
@@ -18,10 +18,11 @@ import java.sql.SQLSyntaxErrorException;
import
java.util.List
;
import
com.alibaba.cobar.ErrorCode
;
import
com.alibaba.cobar.Fields
;
import
com.alibaba.cobar.server.ServerConnection
;
import
com.dianping.bee.engine.spi.Statement
;
import
com.dianping.bee.engine.spi.StatementManager
;
import
com.dianping.bee.engine.spi.handler.AbstractCommandHandler
;
import
com.site.helper.Joiners
;
import
com.site.lookup.annotation.Inject
;
/**
...
...
@@ -33,11 +34,60 @@ public class PrepareHandler extends AbstractCommandHandler {
@Override
protected
void
handle
(
ServerConnection
c
,
List
<
String
>
parts
)
{
String
stmt
=
Joiners
.
by
(
' '
).
join
(
parts
);
// String stmt = Joiners.by(' ').join(parts);
// try {
// m_manager.stmtPrepare(stmt);
// } catch (SQLSyntaxErrorException e) {
// error(c, ErrorCode.ER_SYNTAX_ERROR, e.getMessage());
// }
}
/**
* @param sql
* @param c
* @param offset
*/
public
void
close
(
String
sql
,
ServerConnection
c
,
int
offset
)
{
}
/**
* @param sql
* @param c
* @param offset
*/
public
void
execute
(
String
sql
,
ServerConnection
c
,
int
offset
)
{
}
/**
* @param sql
* @param c
* @param offset
*/
public
void
prepare
(
String
sql
,
ServerConnection
c
,
int
offset
)
{
Statement
stmt
=
null
;
try
{
m_manager
.
prepare
(
stmt
);
stmt
=
m_manager
.
parseSQL
(
sql
);
}
catch
(
SQLSyntaxErrorException
e
)
{
error
(
c
,
ErrorCode
.
ER_SYNTAX_ERROR
,
e
.
getMessage
());
}
long
stmtId
=
m_manager
.
stmtPrepare
(
stmt
);
CommandContext
ctx
=
new
CommandContext
(
c
);
int
columnSize
=
stmt
.
getSelectColumns
().
length
;
int
parameterSize
=
stmt
.
getParameterSize
();
PreparePacket
packet
=
new
PreparePacket
(
stmtId
,
columnSize
,
parameterSize
);
ctx
.
write
(
packet
);
// FIXME: just some sample code here
for
(
int
i
=
0
;
i
<
parameterSize
;
i
++)
{
PrepareParameterPacket
parameterPacket
=
new
PrepareParameterPacket
(
Fields
.
FIELD_TYPE_STRING
,
Fields
.
NOT_NULL_FLAG
,
(
byte
)
0
,
50
);
ctx
.
write
(
parameterPacket
);
}
ctx
.
complete
();
}
}
}
\ No newline at end of file
bee-engine/src/main/java/com/dianping/bee/engine/spi/handler/internal/PreparePacket.java
0 → 100644
浏览文件 @
3baf867c
/**
* Project: bee-engine
*
* File Created at 2012-8-31
*
* Copyright 2012 dianping.com.
* All rights reserved.
*
* This software is the confidential and proprietary information of
* Dianping Company. ("Confidential Information"). You shall not
* disclose such Confidential Information and shall use it only in
* accordance with the terms of the license agreement you entered into
* with dianping.com.
*/
package
com.dianping.bee.engine.spi.handler.internal
;
import
java.nio.ByteBuffer
;
import
com.alibaba.cobar.net.FrontendConnection
;
import
com.alibaba.cobar.net.util.BufferUtil
;
import
com.alibaba.cobar.protocol.MySQLPacket
;
/**
* @author <a href="mailto:yiming.liu@dianping.com">Yiming Liu</a>
*/
public
class
PreparePacket
extends
MySQLPacket
{
public
static
final
byte
FIELD_COUNT
=
0x00
;
private
byte
m_fieldCount
=
FIELD_COUNT
;
private
long
m_statementId
;
private
int
m_columnSize
;
private
int
m_parameterSize
;
public
PreparePacket
(
long
statementId
,
int
columnSize
,
int
parameterSize
)
{
this
.
m_statementId
=
statementId
;
this
.
m_columnSize
=
columnSize
;
this
.
m_parameterSize
=
parameterSize
;
}
@Override
public
ByteBuffer
write
(
ByteBuffer
buffer
,
FrontendConnection
c
)
{
int
size
=
calcPacketSize
();
buffer
=
c
.
checkWriteBuffer
(
buffer
,
c
.
getPacketHeaderSize
()
+
size
);
BufferUtil
.
writeUB3
(
buffer
,
size
);
buffer
.
put
(
packetId
);
buffer
.
put
(
m_fieldCount
);
BufferUtil
.
writeUB4
(
buffer
,
m_statementId
);
BufferUtil
.
writeUB2
(
buffer
,
m_columnSize
);
BufferUtil
.
writeUB2
(
buffer
,
m_parameterSize
);
return
buffer
;
}
@Override
public
int
calcPacketSize
()
{
return
9
;
// 1+4+2+2
}
@Override
protected
String
getPacketInfo
()
{
return
"MySQL Prepare Packet"
;
}
}
\ No newline at end of file
bee-engine/src/main/java/com/dianping/bee/engine/spi/handler/internal/PrepareParameterPacket.java
0 → 100644
浏览文件 @
3baf867c
/**
* Project: bee-engine
*
* File Created at 2012-8-31
*
* Copyright 2012 dianping.com.
* All rights reserved.
*
* This software is the confidential and proprietary information of
* Dianping Company. ("Confidential Information"). You shall not
* disclose such Confidential Information and shall use it only in
* accordance with the terms of the license agreement you entered into
* with dianping.com.
*/
package
com.dianping.bee.engine.spi.handler.internal
;
import
java.nio.ByteBuffer
;
import
com.alibaba.cobar.net.FrontendConnection
;
import
com.alibaba.cobar.net.util.BufferUtil
;
import
com.alibaba.cobar.protocol.MySQLPacket
;
/**
* @author <a href="mailto:yiming.liu@dianping.com">Yiming Liu</a>
*/
public
class
PrepareParameterPacket
extends
MySQLPacket
{
private
int
m_fieldType
;
private
int
m_columnFlag
;
private
byte
m_decimal
;
private
int
m_length
;
public
PrepareParameterPacket
(
int
fieldType
,
int
columnFlag
,
byte
decimal
,
int
length
)
{
this
.
m_fieldType
=
fieldType
;
this
.
m_columnFlag
=
columnFlag
;
this
.
m_decimal
=
decimal
;
this
.
m_length
=
length
;
}
@Override
public
ByteBuffer
write
(
ByteBuffer
buffer
,
FrontendConnection
c
)
{
int
size
=
calcPacketSize
();
buffer
=
c
.
checkWriteBuffer
(
buffer
,
c
.
getPacketHeaderSize
()
+
size
);
BufferUtil
.
writeUB3
(
buffer
,
size
);
buffer
.
put
(
packetId
);
BufferUtil
.
writeUB2
(
buffer
,
m_fieldType
);
BufferUtil
.
writeUB2
(
buffer
,
m_columnFlag
);
buffer
.
put
(
m_decimal
);
BufferUtil
.
writeUB4
(
buffer
,
m_length
);
return
buffer
;
}
@Override
public
int
calcPacketSize
()
{
return
9
;
// 2+2+1+4
}
@Override
protected
String
getPacketInfo
()
{
return
"MySQL Prepare Parameter Packet"
;
}
}
bee-engine/src/main/java/com/dianping/bee/engine/spi/internal/DefaultStatementManager.java
浏览文件 @
3baf867c
...
...
@@ -13,7 +13,9 @@ import com.site.lookup.ContainerHolder;
public
class
DefaultStatementManager
extends
ContainerHolder
implements
StatementManager
{
private
Map
<
String
,
Statement
>
m_statements
=
new
HashMap
<
String
,
Statement
>();
private
Map
<
String
,
Statement
>
m_prepares
=
new
HashMap
<
String
,
Statement
>();
private
Map
<
Long
,
Statement
>
m_prepares
=
new
HashMap
<
Long
,
Statement
>();
private
static
long
stmtId
=
0
;
@Override
public
Statement
build
(
String
sql
)
throws
SQLSyntaxErrorException
{
...
...
@@ -33,7 +35,7 @@ public class DefaultStatementManager extends ContainerHolder implements Statemen
return
statement
;
}
p
rivate
Statement
parseSQL
(
String
sql
)
throws
SQLSyntaxErrorException
{
p
ublic
Statement
parseSQL
(
String
sql
)
throws
SQLSyntaxErrorException
{
SQLStatement
statement
=
SQLParserDelegate
.
parse
(
sql
);
DefaultStatementVisitor
defaultVisitor
=
new
DefaultStatementVisitor
();
...
...
@@ -49,20 +51,23 @@ public class DefaultStatementManager extends ContainerHolder implements Statemen
}
@Override
public
Statement
prepare
(
String
sql
)
throws
SQLSyntaxErrorException
{
Statement
statement
=
m_prepares
.
get
(
sql
);
public
long
stmtPrepare
(
Statement
stmt
)
{
synchronized
(
m_prepares
)
{
m_prepares
.
put
(
stmtId
++
%
Long
.
MAX_VALUE
,
stmt
);
}
if
(
statement
==
null
)
{
synchronized
(
m_prepares
)
{
statement
=
m_prepares
.
get
(
sql
);
return
stmtId
;
}
if
(
statement
==
null
)
{
statement
=
parseSQL
(
sql
);
m_prepares
.
put
(
sql
,
statement
);
}
}
}
@Override
public
Statement
stmtExecute
(
long
stmtId
)
{
return
m_prepares
.
get
(
stmtId
);
}
return
statement
;
@Override
public
void
stmtClose
(
long
stmtId
)
{
synchronized
(
m_prepares
)
{
m_prepares
.
remove
(
stmtId
);
}
}
}
bee-engine/src/main/java/com/dianping/bee/engine/spi/internal/SingleTableStatement.java
浏览文件 @
3baf867c
...
...
@@ -21,36 +21,27 @@ public class SingleTableStatement extends ContainerHolder implements Statement {
private
ColumnMeta
[]
m_selectColumns
;
private
int
m_parameterSize
;
@Override
public
IndexMeta
getIndex
()
{
return
m_index
;
}
@Override
public
ColumnMeta
[]
getSelectColumns
()
{
return
m_
selectColumns
;
public
int
getParameterSize
()
{
return
m_
parameterSize
;
}
@Override
public
void
setIndex
(
IndexMeta
index
)
{
m_index
=
index
;
}
public
void
setRowFilter
(
RowFilter
rowFilter
)
{
m_rowFilter
=
rowFilter
;
public
RowFilter
getRowFilter
()
{
// TODO Auto-generated method stub
return
null
;
}
@Override
public
void
setSelectColumns
(
ColumnMeta
[]
selectColumns
)
{
if
(
selectColumns
!=
null
&&
selectColumns
.
length
>
0
)
{
m_selectColumns
=
selectColumns
;
}
else
{
m_selectColumns
=
m_table
.
getColumns
();
}
}
public
void
setTable
(
TableProvider
table
)
{
m_table
=
table
;
public
ColumnMeta
[]
getSelectColumns
()
{
return
m_selectColumns
;
}
@Override
...
...
@@ -70,4 +61,36 @@ public class SingleTableStatement extends ContainerHolder implements Statement {
throw
new
RuntimeException
(
e
);
}
}
@Override
public
void
setIndex
(
IndexMeta
index
)
{
// TODO Auto-generated method stub
}
@Override
public
void
setParameterSize
(
int
m_parameterSize
)
{
// TODO Auto-generated method stub
}
@Override
public
void
setRowFilter
(
RowFilter
rowFilter
)
{
// TODO Auto-generated method stub
}
@Override
public
void
setSelectColumns
(
ColumnMeta
[]
selectColumns
)
{
if
(
selectColumns
!=
null
&&
selectColumns
.
length
>
0
)
{
m_selectColumns
=
selectColumns
;
}
else
{
m_selectColumns
=
m_table
.
getColumns
();
}
}
public
void
setTable
(
TableProvider
table
)
{
m_table
=
table
;
}
}
bee-engine/src/main/java/com/dianping/bee/engine/spi/internal/SingleTableStatementVisitor.java
浏览文件 @
3baf867c
...
...
@@ -5,6 +5,7 @@ import java.util.List;
import
com.alibaba.cobar.parser.ast.expression.Expression
;
import
com.alibaba.cobar.parser.ast.expression.primary.Identifier
;
import
com.alibaba.cobar.parser.ast.expression.primary.ParamMarker
;
import
com.alibaba.cobar.parser.ast.fragment.tableref.TableRefFactor
;
import
com.alibaba.cobar.parser.ast.fragment.tableref.TableReference
;
import
com.alibaba.cobar.parser.ast.stmt.dml.DMLSelectStatement
;
...
...
@@ -41,6 +42,8 @@ public class SingleTableStatementVisitor extends EmptySQLASTVisitor {
private
String
m_databaseName
;
private
int
m_parameterSize
;
private
Clause
m_clause
;
private
List
<
ColumnMeta
>
m_selectColumns
=
new
ArrayList
<
ColumnMeta
>();
...
...
@@ -135,6 +138,8 @@ public class SingleTableStatementVisitor extends EmptySQLASTVisitor {
}
else
{
m_stmt
.
setIndex
(
m_helper
.
findIndex
(
m_databaseName
,
m_tableName
,
m_whereColumns
));
}
m_stmt
.
setParameterSize
(
m_parameterSize
);
}
}
...
...
@@ -174,4 +179,9 @@ public class SingleTableStatementVisitor extends EmptySQLASTVisitor {
m_databaseName
=
node
.
getTable
().
getParent
().
getIdTextUpUnescape
();
}
}
@Override
public
void
visit
(
ParamMarker
node
)
{
m_parameterSize
++;
}
}
bee-engine/src/main/java/com/dianping/bee/server/SimpleServerConnection.java
浏览文件 @
3baf867c
...
...
@@ -93,7 +93,67 @@ public class SimpleServerConnection extends ServerConnection {
// 执行查询
if
(
queryHandler
!=
null
)
{
((
SimpleServerQueryHandler
)
queryHandler
).
prepare
(
sql
);
((
SimpleServerQueryHandler
)
queryHandler
).
stmtPrepare
(
sql
);
}
else
{
writeErrMessage
(
ErrorCode
.
ER_YES
,
"Empty QueryHandler"
);
}
}
finally
{
m_sessionManager
.
removeSession
();
}
}
@Override
public
void
stmtExecute
(
byte
[]
data
)
{
m_sessionManager
.
getSession
().
setDatabase
(
getSchema
());
try
{
// 取得查询语句
MySQLMessage
mm
=
new
MySQLMessage
(
data
);
mm
.
position
(
5
);
String
sql
=
null
;
try
{
sql
=
mm
.
readString
(
charset
);
}
catch
(
UnsupportedEncodingException
e
)
{
writeErrMessage
(
ErrorCode
.
ER_UNKNOWN_CHARACTER_SET
,
"Unknown charset '"
+
charset
+
"'"
);
return
;
}
if
(
sql
==
null
||
sql
.
length
()
==
0
)
{
writeErrMessage
(
ErrorCode
.
ER_NOT_ALLOWED_COMMAND
,
"Empty Prepared SQL"
);
return
;
}
// 执行查询
if
(
queryHandler
!=
null
)
{
((
SimpleServerQueryHandler
)
queryHandler
).
stmtExecute
(
sql
);
}
else
{
writeErrMessage
(
ErrorCode
.
ER_YES
,
"Empty QueryHandler"
);
}
}
finally
{
m_sessionManager
.
removeSession
();
}
}
@Override
public
void
stmtClose
(
byte
[]
data
)
{
m_sessionManager
.
getSession
().
setDatabase
(
getSchema
());
try
{
// 取得查询语句
MySQLMessage
mm
=
new
MySQLMessage
(
data
);
mm
.
position
(
5
);
String
sql
=
null
;
try
{
sql
=
mm
.
readString
(
charset
);
}
catch
(
UnsupportedEncodingException
e
)
{
writeErrMessage
(
ErrorCode
.
ER_UNKNOWN_CHARACTER_SET
,
"Unknown charset '"
+
charset
+
"'"
);
return
;
}
if
(
sql
==
null
||
sql
.
length
()
==
0
)
{
writeErrMessage
(
ErrorCode
.
ER_NOT_ALLOWED_COMMAND
,
"Empty Prepared SQL"
);
return
;
}
// 执行查询
if
(
queryHandler
!=
null
)
{
((
SimpleServerQueryHandler
)
queryHandler
).
stmtClose
(
sql
);
}
else
{
writeErrMessage
(
ErrorCode
.
ER_YES
,
"Empty QueryHandler"
);
}
...
...
bee-engine/src/main/java/com/dianping/bee/server/SimpleServerQueryHandler.java
浏览文件 @
3baf867c
...
...
@@ -84,12 +84,28 @@ public class SimpleServerQueryHandler implements FrontendQueryHandler {
}
}
public
void
prepare
(
String
sql
)
{
public
void
setServerConnection
(
ServerConnection
c
)
{
m_conn
=
c
;
}
/**
* @param sql
*/
public
void
stmtClose
(
String
sql
)
{
ServerConnection
c
=
m_conn
;
m_prepareHandler
.
handl
e
(
sql
,
c
,
-
1
);
m_prepareHandler
.
clos
e
(
sql
,
c
,
-
1
);
}
public
void
setServerConnection
(
ServerConnection
c
)
{
m_conn
=
c
;
/**
* @param sql
*/
public
void
stmtExecute
(
String
sql
)
{
ServerConnection
c
=
m_conn
;
m_prepareHandler
.
execute
(
sql
,
c
,
-
1
);
}
public
void
stmtPrepare
(
String
sql
)
{
ServerConnection
c
=
m_conn
;
m_prepareHandler
.
prepare
(
sql
,
c
,
-
1
);
}
}
bee-engine/src/test/java/com/dianping/bee/jdbc/PreparedStatementTest.java
浏览文件 @
3baf867c
...
...
@@ -20,6 +20,7 @@ import java.sql.PreparedStatement;
import
java.sql.ResultSet
;
import
java.sql.ResultSetMetaData
;
import
java.sql.SQLException
;
import
java.util.Properties
;
import
org.junit.Assert
;
import
org.junit.Test
;
...
...
@@ -39,14 +40,15 @@ public class PreparedStatementTest extends ComponentTestCase {
String
url
=
"jdbc:mysql://localhost:2330/"
;
String
dbName
=
"cat"
;
String
driver
=
"com.mysql.jdbc.Driver"
;
String
userName
=
"test"
;
String
password
=
"test"
;
String
arg
=
"?useServerPrepStmts=true"
;
Properties
props
=
new
Properties
();
props
.
setProperty
(
"user"
,
"test"
);
props
.
setProperty
(
"password"
,
"test"
);
props
.
setProperty
(
"useServerPrepStmts"
,
"true"
);
String
sql
=
"select type, sum(failures) from transaction where domain=? and starttime=?"
;
Class
.
forName
(
driver
).
newInstance
();
DriverManager
.
setLoginTimeout
(
600
);
Connection
conn
=
DriverManager
.
getConnection
(
url
+
dbName
+
(
arg
==
null
?
""
:
arg
),
userName
,
password
);
Connection
conn
=
DriverManager
.
getConnection
(
url
+
dbName
,
props
);
PreparedStatement
stmt
=
conn
.
prepareStatement
(
sql
);
Assert
.
assertNotNull
(
stmt
);
stmt
.
setString
(
1
,
"MobiApi"
);
...
...
cat-consumer/src/main/java/com/dianping/cat/consumer/event/EventAnalyzer.java
浏览文件 @
3baf867c
...
...
@@ -271,7 +271,6 @@ public class EventAnalyzer extends AbstractMessageAnalyzer<EventReport> implemen
task
.
setReportPeriod
(
period
);
task
.
setStatus
(
1
);
// status todo
m_taskDao
.
insert
(
task
);
m_logger
.
info
(
"insert event task:"
+
task
.
toString
());
}
catch
(
Throwable
e
)
{
Cat
.
getProducer
().
logError
(
e
);
}
...
...
cat-consumer/src/main/java/com/dianping/cat/consumer/heartbeat/HeartbeatAnalyzer.java
浏览文件 @
3baf867c
...
...
@@ -301,7 +301,6 @@ public class HeartbeatAnalyzer extends AbstractMessageAnalyzer<HeartbeatReport>
task
.
setReportPeriod
(
period
);
task
.
setStatus
(
1
);
// status todo
m_taskDao
.
insert
(
task
);
m_logger
.
info
(
"insert heartbeat task:"
+
task
.
toString
());
}
catch
(
Throwable
e
)
{
Cat
.
getProducer
().
logError
(
e
);
}
...
...
cat-consumer/src/main/java/com/dianping/cat/consumer/problem/ProblemAnalyzer.java
浏览文件 @
3baf867c
...
...
@@ -209,10 +209,9 @@ public class ProblemAnalyzer extends AbstractMessageAnalyzer<ProblemReport> impl
task
.
setReportDomain
(
domain
);
task
.
setReportName
(
"problem"
);
task
.
setReportPeriod
(
period
);
task
.
setStatus
(
1
);
// status todo
task
.
setStatus
(
1
);
m_taskDao
.
insert
(
task
);
m_logger
.
info
(
"insert event task:"
+
task
.
toString
());
}
catch
(
Throwable
e
)
{
}
catch
(
Throwable
e
)
{
Cat
.
getProducer
().
logError
(
e
);
}
}
...
...
cat-consumer/src/main/java/com/dianping/cat/consumer/transaction/TransactionAnalyzer.java
浏览文件 @
3baf867c
...
...
@@ -366,13 +366,11 @@ public class TransactionAnalyzer extends AbstractMessageAnalyzer<TransactionRepo
task
.
setReportPeriod
(
period
);
task
.
setStatus
(
1
);
// status todo
m_taskDao
.
insert
(
task
);
m_logger
.
info
(
"insert transaction task:"
+
task
.
toString
());
}
catch
(
Throwable
e
)
{
Cat
.
getProducer
().
logError
(
e
);
}
}
}
t
.
setStatus
(
Message
.
SUCCESS
);
}
catch
(
Exception
e
)
{
Cat
.
getProducer
().
logError
(
e
);
...
...
cat-home/src/main/java/com/dianping/cat/build/ServiceComponentConfigurator.java
浏览文件 @
3baf867c
...
...
@@ -49,7 +49,7 @@ class ServiceComponentConfigurator extends AbstractResourceConfigurator {
List
<
Component
>
all
=
new
ArrayList
<
Component
>();
all
.
add
(
C
(
ModelService
.
class
,
"transaction-local"
,
LocalTransactionService
.
class
)
//
.
req
(
BucketManager
.
class
)
//
.
req
(
BucketManager
.
class
,
ReportDao
.
class
)
//
.
req
(
MessageConsumer
.
class
,
"realtime"
));
all
.
add
(
C
(
ModelService
.
class
,
"transaction-historical"
,
HistoricalTransactionService
.
class
)
//
.
req
(
BucketManager
.
class
,
ReportDao
.
class
));
...
...
@@ -58,7 +58,7 @@ class ServiceComponentConfigurator extends AbstractResourceConfigurator {
.
req
(
ModelService
.
class
,
new
String
[]
{
"transaction-historical"
},
"m_services"
));
all
.
add
(
C
(
ModelService
.
class
,
"event-local"
,
LocalEventService
.
class
)
//
.
req
(
BucketManager
.
class
)
//
.
req
(
BucketManager
.
class
,
ReportDao
.
class
)
//
.
req
(
MessageConsumer
.
class
,
"realtime"
));
all
.
add
(
C
(
ModelService
.
class
,
"event-historical"
,
HistoricalEventService
.
class
)
//
.
req
(
BucketManager
.
class
,
ReportDao
.
class
));
...
...
@@ -67,7 +67,7 @@ class ServiceComponentConfigurator extends AbstractResourceConfigurator {
.
req
(
ModelService
.
class
,
new
String
[]
{
"event-historical"
},
"m_services"
));
all
.
add
(
C
(
ModelService
.
class
,
"problem-local"
,
LocalProblemService
.
class
)
//
.
req
(
BucketManager
.
class
)
//
.
req
(
BucketManager
.
class
,
ReportDao
.
class
)
//
.
req
(
MessageConsumer
.
class
,
"realtime"
));
all
.
add
(
C
(
ModelService
.
class
,
"problem-historical"
,
HistoricalProblemService
.
class
)
//
.
req
(
BucketManager
.
class
,
ReportDao
.
class
));
...
...
@@ -76,7 +76,7 @@ class ServiceComponentConfigurator extends AbstractResourceConfigurator {
.
req
(
ModelService
.
class
,
new
String
[]
{
"problem-historical"
},
"m_services"
));
all
.
add
(
C
(
ModelService
.
class
,
"heartbeat-local"
,
LocalHeartbeatService
.
class
)
//
.
req
(
BucketManager
.
class
)
//
.
req
(
BucketManager
.
class
,
ReportDao
.
class
)
//
.
req
(
MessageConsumer
.
class
,
"realtime"
));
all
.
add
(
C
(
ModelService
.
class
,
"heartbeat-historical"
,
HistoricalHeartbeatService
.
class
)
//
.
req
(
BucketManager
.
class
,
ReportDao
.
class
));
...
...
@@ -85,7 +85,7 @@ class ServiceComponentConfigurator extends AbstractResourceConfigurator {
.
req
(
ModelService
.
class
,
new
String
[]
{
"heartbeat-historical"
},
"m_services"
));
all
.
add
(
C
(
ModelService
.
class
,
"matrix-local"
,
LocalMatrixService
.
class
)
//
.
req
(
BucketManager
.
class
)
//
.
req
(
BucketManager
.
class
,
ReportDao
.
class
)
//
.
req
(
MessageConsumer
.
class
,
"realtime"
));
all
.
add
(
C
(
ModelService
.
class
,
"matrix-historical"
,
HistoricalMatrixService
.
class
)
//
.
req
(
BucketManager
.
class
,
ReportDao
.
class
));
...
...
@@ -94,7 +94,7 @@ class ServiceComponentConfigurator extends AbstractResourceConfigurator {
.
req
(
ModelService
.
class
,
new
String
[]
{
"matrix-historical"
},
"m_services"
));
all
.
add
(
C
(
ModelService
.
class
,
"cross-local"
,
LocalCrossService
.
class
)
//
.
req
(
BucketManager
.
class
)
//
.
req
(
BucketManager
.
class
,
ReportDao
.
class
)
//
.
req
(
MessageConsumer
.
class
,
"realtime"
));
all
.
add
(
C
(
ModelService
.
class
,
"cross-historical"
,
HistoricalCrossService
.
class
)
//
.
req
(
BucketManager
.
class
,
ReportDao
.
class
));
...
...
cat-home/src/main/java/com/dianping/cat/report/page/cache/Model.java
浏览文件 @
3baf867c
...
...
@@ -2,6 +2,7 @@ package com.dianping.cat.report.page.cache;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.Set
;
import
com.dianping.cat.report.page.AbstractReportModel
;
import
com.dianping.cat.report.view.StringSortHelper
;
...
...
@@ -28,9 +29,15 @@ public class Model extends AbstractReportModel<Action, Context> {
@Override
public
Collection
<
String
>
getDomains
()
{
if
(
m_report
==
null
)
{
return
new
ArrayList
<
String
>();
ArrayList
<
String
>
arrayList
=
new
ArrayList
<
String
>();
arrayList
.
add
(
getDomain
());
return
arrayList
;
}
else
{
return
StringSortHelper
.
sortDomain
(
m_report
.
getDomainNames
());
Set
<
String
>
domainNames
=
m_report
.
getDomainNames
();
domainNames
.
add
(
getDomain
());
return
StringSortHelper
.
sortDomain
(
domainNames
);
}
}
...
...
cat-home/src/main/java/com/dianping/cat/report/page/cross/Model.java
浏览文件 @
3baf867c
...
...
@@ -2,6 +2,7 @@ package com.dianping.cat.report.page.cross;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.Set
;
import
com.dianping.cat.consumer.cross.model.entity.CrossReport
;
import
com.dianping.cat.report.page.AbstractReportModel
;
...
...
@@ -11,21 +12,21 @@ import com.dianping.cat.report.page.cross.display.ProjectInfo;
import
com.dianping.cat.report.view.StringSortHelper
;
public
class
Model
extends
AbstractReportModel
<
Action
,
Context
>
{
private
String
m_callSort
;
private
String
m_queryName
;
private
HostInfo
m_hostInfo
;
private
MethodInfo
m_methodInfo
;
private
ProjectInfo
m_projectInfo
;
private
CrossReport
m_report
;
private
String
m_serviceSort
;
public
Model
(
Context
ctx
)
{
super
(
ctx
);
}
...
...
@@ -38,9 +39,9 @@ public class Model extends AbstractReportModel<Action, Context> {
public
Action
getDefaultAction
()
{
return
Action
.
HOURLY_PROJECT
;
}
@Override
public
String
getDomain
()
{
public
String
getDomain
()
{
if
(
m_report
==
null
)
{
return
getDisplayDomain
();
}
else
{
...
...
@@ -49,19 +50,26 @@ public class Model extends AbstractReportModel<Action, Context> {
}
@Override
public
Collection
<
String
>
getDomains
()
{
public
Collection
<
String
>
getDomains
()
{
if
(
m_report
==
null
)
{
return
new
ArrayList
<
String
>();
ArrayList
<
String
>
arrayList
=
new
ArrayList
<
String
>();
arrayList
.
add
(
getDomain
());
return
arrayList
;
}
else
{
return
StringSortHelper
.
sortDomain
(
m_report
.
getDomainNames
());
Set
<
String
>
domainNames
=
m_report
.
getDomainNames
();
domainNames
.
add
(
getDomain
());
return
StringSortHelper
.
sortDomain
(
domainNames
);
}
}
public
HostInfo
getHostInfo
()
{
return
m_hostInfo
;
}
public
Collection
<
String
>
getIps
(){
public
Collection
<
String
>
getIps
()
{
if
(
m_report
==
null
)
{
return
new
ArrayList
<
String
>();
}
else
{
...
...
@@ -84,7 +92,6 @@ public class Model extends AbstractReportModel<Action, Context> {
public
CrossReport
getReport
()
{
return
m_report
;
}
public
String
getServiceSort
()
{
return
m_serviceSort
;
...
...
@@ -117,5 +124,5 @@ public class Model extends AbstractReportModel<Action, Context> {
public
void
setServiceSort
(
String
serviceSort
)
{
m_serviceSort
=
serviceSort
;
}
}
cat-home/src/main/java/com/dianping/cat/report/page/event/Model.java
浏览文件 @
3baf867c
...
...
@@ -2,6 +2,7 @@ package com.dianping.cat.report.page.event;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Set
;
import
com.dianping.cat.consumer.event.model.entity.EventReport
;
import
com.dianping.cat.report.page.AbstractReportModel
;
...
...
@@ -60,9 +61,15 @@ public class Model extends AbstractReportModel<Action, Context> {
@Override
public
List
<
String
>
getDomains
()
{
if
(
m_report
==
null
)
{
return
new
ArrayList
<
String
>();
ArrayList
<
String
>
arrayList
=
new
ArrayList
<
String
>();
arrayList
.
add
(
getDomain
());
return
arrayList
;
}
else
{
return
StringSortHelper
.
sortDomain
(
m_report
.
getDomainNames
());
Set
<
String
>
domainNames
=
m_report
.
getDomainNames
();
domainNames
.
add
(
getDomain
());
return
StringSortHelper
.
sortDomain
(
domainNames
);
}
}
...
...
cat-home/src/main/java/com/dianping/cat/report/page/heartbeat/Model.java
浏览文件 @
3baf867c
...
...
@@ -2,6 +2,7 @@ package com.dianping.cat.report.page.heartbeat;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Set
;
import
com.dianping.cat.consumer.heartbeat.model.entity.HeartbeatReport
;
import
com.dianping.cat.report.page.AbstractReportModel
;
...
...
@@ -116,9 +117,16 @@ public class Model extends AbstractReportModel<Action, Context> {
public
List
<
String
>
getDomains
()
{
if
(
m_report
==
null
)
{
return
new
ArrayList
<
String
>();
ArrayList
<
String
>
arrayList
=
new
ArrayList
<
String
>();
arrayList
.
add
(
getDomain
());
return
arrayList
;
}
else
{
return
StringSortHelper
.
sortDomain
(
m_report
.
getDomainNames
());
Set
<
String
>
domainNames
=
m_report
.
getDomainNames
();
domainNames
.
add
(
getDomain
());
return
StringSortHelper
.
sortDomain
(
domainNames
);
}
}
...
...
cat-home/src/main/java/com/dianping/cat/report/page/matrix/Model.java
浏览文件 @
3baf867c
...
...
@@ -2,6 +2,7 @@ package com.dianping.cat.report.page.matrix;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.Set
;
import
com.dianping.cat.consumer.matrix.model.entity.MatrixReport
;
import
com.dianping.cat.report.page.AbstractReportModel
;
...
...
@@ -29,9 +30,16 @@ public class Model extends AbstractReportModel<Action, Context> {
@Override
public
Collection
<
String
>
getDomains
()
{
if
(
m_report
==
null
)
{
return
new
ArrayList
<
String
>();
ArrayList
<
String
>
arrayList
=
new
ArrayList
<
String
>();
arrayList
.
add
(
getDomain
());
return
arrayList
;
}
else
{
return
StringSortHelper
.
sortDomain
(
m_report
.
getDomainNames
());
Set
<
String
>
domainNames
=
m_report
.
getDomainNames
();
domainNames
.
add
(
getDomain
());
return
StringSortHelper
.
sortDomain
(
domainNames
);
}
}
...
...
cat-home/src/main/java/com/dianping/cat/report/page/model/Handler.java
浏览文件 @
3baf867c
...
...
@@ -305,7 +305,7 @@ public class Handler extends ContainerHolder implements PageHandler<Context> {
private
String
m_name
;
private
String
m_type
;
public
TransactionReportFilter
(
String
type
,
String
name
,
String
ip
)
{
m_type
=
type
;
m_name
=
name
;
...
...
@@ -325,12 +325,14 @@ public class Handler extends ContainerHolder implements PageHandler<Context> {
@Override
public
void
visitMachine
(
com
.
dianping
.
cat
.
consumer
.
transaction
.
model
.
entity
.
Machine
machine
)
{
if
(
m_ipAddress
==
null
||
m_ipAddress
.
equals
(
CatString
.
ALL_IP
))
{
super
.
visitMachine
(
machine
);
}
else
if
(
machine
.
getIp
().
equals
(
m_ipAddress
))
{
super
.
visitMachine
(
machine
);
}
else
{
// skip it
synchronized
(
machine
)
{
if
(
m_ipAddress
==
null
||
m_ipAddress
.
equals
(
CatString
.
ALL_IP
))
{
super
.
visitMachine
(
machine
);
}
else
if
(
machine
.
getIp
().
equals
(
m_ipAddress
))
{
super
.
visitMachine
(
machine
);
}
else
{
// skip it
}
}
}
...
...
@@ -362,10 +364,7 @@ public class Handler extends ContainerHolder implements PageHandler<Context> {
public
void
visitType
(
TransactionType
type
)
{
if
(
m_type
==
null
)
{
super
.
visitType
(
type
);
}
else
if
(
m_type
!=
null
&&
type
.
getId
().
equals
(
m_type
))
{
type
.
setSuccessMessageUrl
(
null
);
type
.
setFailMessageUrl
(
null
);
super
.
visitType
(
type
);
}
else
{
// skip it
...
...
cat-home/src/main/java/com/dianping/cat/report/page/model/cross/LocalCrossService.java
浏览文件 @
3baf867c
package
com.dianping.cat.report.page.model.cross
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Set
;
import
com.dianping.cat.consumer.cross.model.entity.CrossReport
;
import
com.dianping.cat.consumer.cross.model.transform.DefaultSaxParser
;
import
com.dianping.cat.hadoop.dal.Report
;
import
com.dianping.cat.hadoop.dal.ReportDao
;
import
com.dianping.cat.hadoop.dal.ReportEntity
;
import
com.dianping.cat.report.page.model.spi.ModelPeriod
;
import
com.dianping.cat.report.page.model.spi.ModelRequest
;
import
com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService
;
...
...
@@ -13,6 +20,9 @@ public class LocalCrossService extends BaseLocalModelService<CrossReport> {
@Inject
private
BucketManager
m_bucketManager
;
@Inject
private
ReportDao
m_reportDao
;
public
LocalCrossService
()
{
super
(
"cross"
);
}
...
...
@@ -36,10 +46,13 @@ public class LocalCrossService extends BaseLocalModelService<CrossReport> {
if
(
report
==
null
)
{
report
=
new
CrossReport
(
domain
);
List
<
Report
>
historyReports
=
m_reportDao
.
findAllByDomainNameDuration
(
new
Date
(
hour
),
new
Date
(
hour
+
60
*
60
*
1000
),
null
,
null
,
ReportEntity
.
READSET_DOMAIN_NAME
);
CrossReport
catReport
=
getLocalReport
(
date
,
"Cat"
);
if
(
catReport
!=
null
)
{
report
.
getDomainNames
().
addAll
(
catReport
.
getDomainNames
());
Set
<
String
>
domainNames
=
report
.
getDomainNames
(
);
for
(
Report
temp
:
historyReports
)
{
domainNames
.
add
(
temp
.
getDomain
());
}
}
}
...
...
cat-home/src/main/java/com/dianping/cat/report/page/model/event/LocalEventService.java
浏览文件 @
3baf867c
package
com.dianping.cat.report.page.model.event
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Set
;
import
com.dianping.cat.consumer.event.model.entity.EventReport
;
import
com.dianping.cat.consumer.event.model.transform.DefaultSaxParser
;
import
com.dianping.cat.hadoop.dal.Report
;
import
com.dianping.cat.hadoop.dal.ReportDao
;
import
com.dianping.cat.hadoop.dal.ReportEntity
;
import
com.dianping.cat.report.page.model.spi.ModelPeriod
;
import
com.dianping.cat.report.page.model.spi.ModelRequest
;
import
com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService
;
...
...
@@ -13,6 +20,9 @@ public class LocalEventService extends BaseLocalModelService<EventReport> {
@Inject
private
BucketManager
m_bucketManager
;
@Inject
private
ReportDao
m_reportDao
;
public
LocalEventService
()
{
super
(
"event"
);
}
...
...
@@ -36,10 +46,13 @@ public class LocalEventService extends BaseLocalModelService<EventReport> {
if
(
report
==
null
)
{
report
=
new
EventReport
(
domain
);
List
<
Report
>
historyReports
=
m_reportDao
.
findAllByDomainNameDuration
(
new
Date
(
hour
),
new
Date
(
hour
+
60
*
60
*
1000
),
null
,
null
,
ReportEntity
.
READSET_DOMAIN_NAME
);
EventReport
catReport
=
getLocalReport
(
date
,
"Cat"
);
if
(
catReport
!=
null
)
{
report
.
getDomainNames
().
addAll
(
catReport
.
getDomainNames
());
Set
<
String
>
domainNames
=
report
.
getDomainNames
(
);
for
(
Report
temp
:
historyReports
)
{
domainNames
.
add
(
temp
.
getDomain
());
}
}
}
...
...
cat-home/src/main/java/com/dianping/cat/report/page/model/heartbeat/LocalHeartbeatService.java
浏览文件 @
3baf867c
package
com.dianping.cat.report.page.model.heartbeat
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Set
;
import
com.dianping.cat.consumer.heartbeat.model.entity.HeartbeatReport
;
import
com.dianping.cat.consumer.heartbeat.model.transform.DefaultSaxParser
;
import
com.dianping.cat.hadoop.dal.Report
;
import
com.dianping.cat.hadoop.dal.ReportDao
;
import
com.dianping.cat.hadoop.dal.ReportEntity
;
import
com.dianping.cat.report.page.model.spi.ModelPeriod
;
import
com.dianping.cat.report.page.model.spi.ModelRequest
;
import
com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService
;
...
...
@@ -13,6 +20,9 @@ public class LocalHeartbeatService extends BaseLocalModelService<HeartbeatReport
@Inject
private
BucketManager
m_bucketManager
;
@Inject
private
ReportDao
m_reportDao
;
public
LocalHeartbeatService
()
{
super
(
"heartbeat"
);
}
...
...
@@ -37,9 +47,12 @@ public class LocalHeartbeatService extends BaseLocalModelService<HeartbeatReport
if
(
report
==
null
)
{
report
=
new
HeartbeatReport
(
domain
);
HeartbeatReport
catReport
=
getLocalReport
(
date
,
"Cat"
);
if
(
catReport
!=
null
)
{
report
.
getDomainNames
().
addAll
(
catReport
.
getDomainNames
());
List
<
Report
>
historyReports
=
m_reportDao
.
findAllByDomainNameDuration
(
new
Date
(
hour
),
new
Date
(
hour
+
60
*
60
*
1000
),
null
,
null
,
ReportEntity
.
READSET_DOMAIN_NAME
);
Set
<
String
>
domainNames
=
report
.
getDomainNames
();
for
(
Report
temp
:
historyReports
)
{
domainNames
.
add
(
temp
.
getDomain
());
}
}
}
...
...
cat-home/src/main/java/com/dianping/cat/report/page/model/matrix/LocalMatrixService.java
浏览文件 @
3baf867c
package
com.dianping.cat.report.page.model.matrix
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Set
;
import
com.dianping.cat.consumer.matrix.model.entity.MatrixReport
;
import
com.dianping.cat.consumer.matrix.model.transform.DefaultSaxParser
;
import
com.dianping.cat.hadoop.dal.Report
;
import
com.dianping.cat.hadoop.dal.ReportDao
;
import
com.dianping.cat.hadoop.dal.ReportEntity
;
import
com.dianping.cat.report.page.model.spi.ModelPeriod
;
import
com.dianping.cat.report.page.model.spi.ModelRequest
;
import
com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService
;
...
...
@@ -13,6 +20,9 @@ public class LocalMatrixService extends BaseLocalModelService<MatrixReport> {
@Inject
private
BucketManager
m_bucketManager
;
@Inject
private
ReportDao
m_reportDao
;
public
LocalMatrixService
()
{
super
(
"matrix"
);
}
...
...
@@ -37,9 +47,12 @@ public class LocalMatrixService extends BaseLocalModelService<MatrixReport> {
if
(
report
==
null
)
{
report
=
new
MatrixReport
(
domain
);
MatrixReport
catReport
=
getLocalReport
(
date
,
"Cat"
);
if
(
catReport
!=
null
)
{
report
.
getDomainNames
().
addAll
(
catReport
.
getDomainNames
());
List
<
Report
>
historyReports
=
m_reportDao
.
findAllByDomainNameDuration
(
new
Date
(
hour
),
new
Date
(
hour
+
60
*
60
*
1000
),
null
,
null
,
ReportEntity
.
READSET_DOMAIN_NAME
);
Set
<
String
>
domainNames
=
report
.
getDomainNames
();
for
(
Report
temp
:
historyReports
)
{
domainNames
.
add
(
temp
.
getDomain
());
}
}
}
...
...
cat-home/src/main/java/com/dianping/cat/report/page/model/problem/LocalProblemService.java
浏览文件 @
3baf867c
package
com.dianping.cat.report.page.model.problem
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Set
;
import
com.dianping.cat.consumer.problem.model.entity.ProblemReport
;
import
com.dianping.cat.consumer.problem.model.transform.DefaultSaxParser
;
import
com.dianping.cat.hadoop.dal.Report
;
import
com.dianping.cat.hadoop.dal.ReportDao
;
import
com.dianping.cat.hadoop.dal.ReportEntity
;
import
com.dianping.cat.report.page.model.spi.ModelPeriod
;
import
com.dianping.cat.report.page.model.spi.ModelRequest
;
import
com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService
;
...
...
@@ -13,6 +20,9 @@ public class LocalProblemService extends BaseLocalModelService<ProblemReport> {
@Inject
private
BucketManager
m_bucketManager
;
@Inject
private
ReportDao
m_reportDao
;
public
LocalProblemService
()
{
super
(
"problem"
);
}
...
...
@@ -36,10 +46,13 @@ public class LocalProblemService extends BaseLocalModelService<ProblemReport> {
if
(
report
==
null
)
{
report
=
new
ProblemReport
(
domain
);
List
<
Report
>
historyReports
=
m_reportDao
.
findAllByDomainNameDuration
(
new
Date
(
hour
),
new
Date
(
hour
+
60
*
60
*
1000
),
null
,
null
,
ReportEntity
.
READSET_DOMAIN_NAME
);
ProblemReport
catReport
=
getLocalReport
(
date
,
"Cat"
);
if
(
catReport
!=
null
)
{
report
.
getDomainNames
().
addAll
(
catReport
.
getDomainNames
());
Set
<
String
>
domainNames
=
report
.
getDomainNames
(
);
for
(
Report
temp
:
historyReports
)
{
domainNames
.
add
(
temp
.
getDomain
());
}
}
}
...
...
cat-home/src/main/java/com/dianping/cat/report/page/model/transaction/LocalTransactionService.java
浏览文件 @
3baf867c
package
com.dianping.cat.report.page.model.transaction
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Set
;
import
com.dianping.cat.consumer.transaction.model.entity.TransactionReport
;
import
com.dianping.cat.consumer.transaction.model.transform.DefaultSaxParser
;
import
com.dianping.cat.hadoop.dal.Report
;
import
com.dianping.cat.hadoop.dal.ReportDao
;
import
com.dianping.cat.hadoop.dal.ReportEntity
;
import
com.dianping.cat.report.page.model.spi.ModelPeriod
;
import
com.dianping.cat.report.page.model.spi.ModelRequest
;
import
com.dianping.cat.report.page.model.spi.internal.BaseLocalModelService
;
...
...
@@ -13,6 +20,9 @@ public class LocalTransactionService extends BaseLocalModelService<TransactionRe
@Inject
private
BucketManager
m_bucketManager
;
@Inject
private
ReportDao
m_reportDao
;
public
LocalTransactionService
()
{
super
(
"transaction"
);
}
...
...
@@ -37,9 +47,12 @@ public class LocalTransactionService extends BaseLocalModelService<TransactionRe
if
(
report
==
null
)
{
report
=
new
TransactionReport
(
domain
);
TransactionReport
catReport
=
getLocalReport
(
date
,
"Cat"
);
if
(
catReport
!=
null
)
{
report
.
getDomainNames
().
addAll
(
catReport
.
getDomainNames
());
List
<
Report
>
historyReports
=
m_reportDao
.
findAllByDomainNameDuration
(
new
Date
(
hour
),
new
Date
(
hour
+
60
*
60
*
1000
),
null
,
null
,
ReportEntity
.
READSET_DOMAIN_NAME
);
Set
<
String
>
domainNames
=
report
.
getDomainNames
();
for
(
Report
temp
:
historyReports
)
{
domainNames
.
add
(
temp
.
getDomain
());
}
}
}
...
...
cat-home/src/main/java/com/dianping/cat/report/page/monthreport/Model.java
浏览文件 @
3baf867c
package
com.dianping.cat.report.page.monthreport
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.Collections
;
import
java.util.List
;
import
com.dianping.cat.consumer.monthreport.model.entity.MonthReport
;
...
...
@@ -41,7 +41,11 @@ public class Model extends AbstractReportModel<Action, Context> {
StringSortHelper
.
sortDomain
(
domains
);
return
domains
;
}
return
Collections
.
emptySet
();
ArrayList
<
String
>
arrayList
=
new
ArrayList
<
String
>();
arrayList
.
add
(
getDomain
());
return
arrayList
;
}
public
MonthReport
getReport
()
{
...
...
cat-home/src/main/java/com/dianping/cat/report/page/problem/Model.java
浏览文件 @
3baf867c
...
...
@@ -2,6 +2,7 @@ package com.dianping.cat.report.page.problem;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Set
;
import
com.dianping.cat.consumer.problem.model.entity.ProblemReport
;
import
com.dianping.cat.report.page.AbstractReportModel
;
...
...
@@ -83,9 +84,16 @@ public class Model extends AbstractReportModel<Action, Context> {
@Override
public
List
<
String
>
getDomains
()
{
if
(
m_report
==
null
)
{
return
new
ArrayList
<
String
>();
ArrayList
<
String
>
arrayList
=
new
ArrayList
<
String
>();
arrayList
.
add
(
getDomain
());
return
arrayList
;
}
else
{
return
StringSortHelper
.
sortDomain
(
m_report
.
getDomainNames
());
Set
<
String
>
domainNames
=
m_report
.
getDomainNames
();
domainNames
.
add
(
getDomain
());
return
StringSortHelper
.
sortDomain
(
domainNames
);
}
}
...
...
cat-home/src/main/java/com/dianping/cat/report/page/transaction/Model.java
浏览文件 @
3baf867c
...
...
@@ -2,6 +2,7 @@ package com.dianping.cat.report.page.transaction;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Set
;
import
com.dianping.cat.consumer.transaction.model.entity.TransactionReport
;
import
com.dianping.cat.report.page.AbstractReportModel
;
...
...
@@ -64,9 +65,15 @@ public class Model extends AbstractReportModel<Action, Context> {
@Override
public
List
<
String
>
getDomains
()
{
if
(
m_report
==
null
)
{
return
new
ArrayList
<
String
>();
ArrayList
<
String
>
arrayList
=
new
ArrayList
<
String
>();
arrayList
.
add
(
getDomain
());
return
arrayList
;
}
else
{
return
StringSortHelper
.
sortDomain
(
m_report
.
getDomainNames
());
Set
<
String
>
domainNames
=
m_report
.
getDomainNames
();
domainNames
.
add
(
getDomain
());
return
StringSortHelper
.
sortDomain
(
domainNames
);
}
}
...
...
cat-home/src/main/resources/META-INF/plexus/components.xml
浏览文件 @
3baf867c
...
...
@@ -256,6 +256,9 @@
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.hadoop.dal.ReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.MessageConsumer
</role>
<role-hint>
realtime
</role-hint>
...
...
@@ -300,6 +303,9 @@
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.hadoop.dal.ReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.MessageConsumer
</role>
<role-hint>
realtime
</role-hint>
...
...
@@ -344,6 +350,9 @@
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.hadoop.dal.ReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.MessageConsumer
</role>
<role-hint>
realtime
</role-hint>
...
...
@@ -388,6 +397,9 @@
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.hadoop.dal.ReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.MessageConsumer
</role>
<role-hint>
realtime
</role-hint>
...
...
@@ -432,6 +444,9 @@
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.hadoop.dal.ReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.MessageConsumer
</role>
<role-hint>
realtime
</role-hint>
...
...
@@ -476,6 +491,9 @@
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.hadoop.dal.ReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.MessageConsumer
</role>
<role-hint>
realtime
</role-hint>
...
...
@@ -1073,6 +1091,9 @@
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.hadoop.dal.ReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.MessageConsumer
</role>
<role-hint>
realtime
</role-hint>
...
...
@@ -1087,6 +1108,9 @@
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.hadoop.dal.ReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.MessageConsumer
</role>
<role-hint>
realtime
</role-hint>
...
...
@@ -1156,6 +1180,9 @@
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.hadoop.dal.ReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.MessageConsumer
</role>
<role-hint>
realtime
</role-hint>
...
...
@@ -1170,6 +1197,9 @@
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.hadoop.dal.ReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.MessageConsumer
</role>
<role-hint>
realtime
</role-hint>
...
...
@@ -1184,6 +1214,9 @@
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.hadoop.dal.ReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.MessageConsumer
</role>
<role-hint>
realtime
</role-hint>
...
...
@@ -1198,6 +1231,9 @@
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.hadoop.dal.ReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.MessageConsumer
</role>
<role-hint>
realtime
</role-hint>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录