Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DiDi
kafka-manager
提交
324b37b8
K
kafka-manager
项目概览
DiDi
/
kafka-manager
8 个月 前同步成功
通知
58
Star
6372
Fork
1229
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kafka-manager
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
324b37b8
编写于
4月 25, 2021
作者:
Z
zengqiao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
v2.4.0 be code
上级
76e7e192
变更
15
隐藏空白更改
内联
并排
Showing
15 changed file
with
54 addition
and
48 deletion
+54
-48
kafka-manager-common/src/main/java/com/xiaojukeji/kafka/manager/common/bizenum/OperateEnum.java
.../xiaojukeji/kafka/manager/common/bizenum/OperateEnum.java
+1
-1
kafka-manager-common/src/main/java/com/xiaojukeji/kafka/manager/common/entity/dto/rd/OperateRecordDTO.java
.../kafka/manager/common/entity/dto/rd/OperateRecordDTO.java
+1
-6
kafka-manager-common/src/main/java/com/xiaojukeji/kafka/manager/common/entity/vo/normal/topic/TopicStatisticMetricsVO.java
...ommon/entity/vo/normal/topic/TopicStatisticMetricsVO.java
+1
-2
kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/OperateRecordService.java
...i/kafka/manager/service/service/OperateRecordService.java
+1
-1
kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/TopicManagerService.java
...ji/kafka/manager/service/service/TopicManagerService.java
+9
-0
kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/AdminServiceImpl.java
.../kafka/manager/service/service/impl/AdminServiceImpl.java
+4
-1
kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/ClusterServiceImpl.java
...afka/manager/service/service/impl/ClusterServiceImpl.java
+1
-0
kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/OperateRecordServiceImpl.java
...anager/service/service/impl/OperateRecordServiceImpl.java
+2
-2
kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/TopicManagerServiceImpl.java
...manager/service/service/impl/TopicManagerServiceImpl.java
+8
-6
kafka-manager-dao/src/main/java/com/xiaojukeji/kafka/manager/dao/OperateRecordDao.java
...va/com/xiaojukeji/kafka/manager/dao/OperateRecordDao.java
+1
-1
kafka-manager-dao/src/main/java/com/xiaojukeji/kafka/manager/dao/impl/OperateRecordDaoImpl.java
...aojukeji/kafka/manager/dao/impl/OperateRecordDaoImpl.java
+2
-2
kafka-manager-dao/src/main/resources/mapper/OperateRecordDao.xml
...anager-dao/src/main/resources/mapper/OperateRecordDao.xml
+1
-1
kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/api/versionone/normal/NormalTopicController.java
...ager/web/api/versionone/normal/NormalTopicController.java
+21
-0
kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/api/versionone/rd/RdOperateRecordController.java
...ager/web/api/versionone/rd/RdOperateRecordController.java
+1
-1
kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/api/versionone/thirdpart/ThirdPartTopicController.java
...eb/api/versionone/thirdpart/ThirdPartTopicController.java
+0
-24
未找到文件。
kafka-manager-common/src/main/java/com/xiaojukeji/kafka/manager/common/bizenum/OperateEnum.java
浏览文件 @
324b37b8
...
...
@@ -46,7 +46,7 @@ public enum OperateEnum {
public
static
boolean
validate
(
Integer
code
)
{
if
(
code
==
null
)
{
return
fals
e
;
return
tru
e
;
}
for
(
OperateEnum
state
:
OperateEnum
.
values
())
{
if
(
state
.
getCode
()
==
code
)
{
...
...
kafka-manager-common/src/main/java/com/xiaojukeji/kafka/manager/common/entity/dto/rd/OperateRecordDTO.java
浏览文件 @
324b37b8
...
...
@@ -81,11 +81,6 @@ public class OperateRecordDTO {
}
public
boolean
legal
()
{
if
(!
ModuleEnum
.
validate
(
moduleId
)
||
(!
ValidateUtils
.
isNull
(
operateId
)
&&
OperateEnum
.
validate
(
operateId
))
)
{
return
false
;
}
return
true
;
return
!
ValidateUtils
.
isNull
(
moduleId
)
&&
ModuleEnum
.
validate
(
moduleId
)
&&
OperateEnum
.
validate
(
operateId
);
}
}
kafka-manager-
extends/kafka-manager-openapi/src/main/java/com/xiaojukeji/kafka/manager/openapi/common/vo
/TopicStatisticMetricsVO.java
→
kafka-manager-
common/src/main/java/com/xiaojukeji/kafka/manager/common/entity/vo/normal/topic
/TopicStatisticMetricsVO.java
浏览文件 @
324b37b8
package
com.xiaojukeji.kafka.manager.
openapi.common.vo
;
package
com.xiaojukeji.kafka.manager.
common.entity.vo.normal.topic
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
...
...
@@ -14,7 +14,6 @@ public class TopicStatisticMetricsVO {
public
TopicStatisticMetricsVO
(
Double
peakBytesIn
)
{
this
.
peakBytesIn
=
peakBytesIn
;
}
public
Double
getPeakBytesIn
()
{
...
...
kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/OperateRecordService.java
浏览文件 @
324b37b8
...
...
@@ -17,5 +17,5 @@ public interface OperateRecordService {
int
insert
(
String
operator
,
ModuleEnum
module
,
String
resourceName
,
OperateEnum
operate
,
Map
<
String
,
String
>
content
);
List
<
OperateRecordDO
>
queryByCond
t
(
OperateRecordDTO
dto
);
List
<
OperateRecordDO
>
queryByCond
ition
(
OperateRecordDTO
dto
);
}
kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/TopicManagerService.java
浏览文件 @
324b37b8
...
...
@@ -32,6 +32,15 @@ public interface TopicManagerService {
Map
<
String
,
List
<
Double
>>
getTopicMaxAvgBytesIn
(
Long
clusterId
,
Integer
latestDay
,
Double
minMaxAvgBytesIn
);
/**
* 获取指定时间范围内Topic的峰值均值流量
* @param clusterId 集群ID
* @param topicName Topic名称
* @param startTime 开始时间
* @param endTime 结束时间
* @param maxAvgDay 最大几天的均值
* @return
*/
Double
getTopicMaxAvgBytesIn
(
Long
clusterId
,
String
topicName
,
Date
startTime
,
Date
endTime
,
Integer
maxAvgDay
);
TopicStatisticsDO
getByTopicAndDay
(
Long
clusterId
,
String
topicName
,
String
gmtDay
);
...
...
kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/AdminServiceImpl.java
浏览文件 @
324b37b8
...
...
@@ -66,7 +66,10 @@ public class AdminServiceImpl implements AdminService {
String
applicant
,
String
operator
)
{
List
<
Integer
>
fullBrokerIdList
=
regionService
.
getFullBrokerIdList
(
clusterDO
.
getId
(),
regionId
,
brokerIdList
);
if
(
PhysicalClusterMetadataManager
.
getNotAliveBrokerNum
(
clusterDO
.
getId
(),
fullBrokerIdList
)
>
DEFAULT_DEAD_BROKER_LIMIT_NUM
)
{
Long
notAliveBrokerNum
=
PhysicalClusterMetadataManager
.
getNotAliveBrokerNum
(
clusterDO
.
getId
(),
fullBrokerIdList
);
if
(
notAliveBrokerNum
>=
fullBrokerIdList
.
size
()
||
notAliveBrokerNum
>
DEFAULT_DEAD_BROKER_LIMIT_NUM
)
{
// broker全挂了,或者是挂的数量大于了DEFAULT_DEAD_BROKER_LIMIT_NUM时, 则认为broker参数不合法
return
ResultStatus
.
BROKER_NOT_EXIST
;
}
...
...
kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/ClusterServiceImpl.java
浏览文件 @
324b37b8
...
...
@@ -82,6 +82,7 @@ public class ClusterServiceImpl implements ClusterService {
content
.
put
(
"security properties"
,
clusterDO
.
getSecurityProperties
());
content
.
put
(
"jmx properties"
,
clusterDO
.
getJmxProperties
());
operateRecordService
.
insert
(
operator
,
ModuleEnum
.
CLUSTER
,
clusterDO
.
getClusterName
(),
OperateEnum
.
ADD
,
content
);
if
(
clusterDao
.
insert
(
clusterDO
)
<=
0
)
{
LOGGER
.
error
(
"add new cluster failed, clusterDO:{}."
,
clusterDO
);
return
ResultStatus
.
MYSQL_ERROR
;
...
...
kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/OperateRecordServiceImpl.java
浏览文件 @
324b37b8
...
...
@@ -41,8 +41,8 @@ public class OperateRecordServiceImpl implements OperateRecordService {
}
@Override
public
List
<
OperateRecordDO
>
queryByCond
t
(
OperateRecordDTO
dto
)
{
return
operateRecordDao
.
queryByCond
t
(
public
List
<
OperateRecordDO
>
queryByCond
ition
(
OperateRecordDTO
dto
)
{
return
operateRecordDao
.
queryByCond
ition
(
dto
.
getModuleId
(),
dto
.
getOperateId
(),
dto
.
getOperator
(),
...
...
kafka-manager-core/src/main/java/com/xiaojukeji/kafka/manager/service/service/impl/TopicManagerServiceImpl.java
浏览文件 @
324b37b8
...
...
@@ -147,12 +147,14 @@ public class TopicManagerServiceImpl implements TopicManagerService {
}
@Override
public
Double
getTopicMaxAvgBytesIn
(
Long
clusterId
,
String
topicName
,
Date
startTime
,
Date
endTime
,
Integer
maxAvgDay
)
{
return
topicStatisticsDao
.
getTopicMaxAvgBytesIn
(
clusterId
,
topicName
,
startTime
,
endTime
,
maxAvgDay
);
public
Double
getTopicMaxAvgBytesIn
(
Long
clusterId
,
String
topicName
,
Date
startTime
,
Date
endTime
,
Integer
maxAvgDay
)
{
try
{
return
topicStatisticsDao
.
getTopicMaxAvgBytesIn
(
clusterId
,
topicName
,
startTime
,
endTime
,
maxAvgDay
);
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"class=TopicManagerServiceImpl||method=getTopicMaxAvgBytesIn||clusterId={}||topicName={}||startTime={}||endTime={}||maxAvgDay={}||errMsg={}"
,
clusterId
,
topicName
,
startTime
,
endTime
,
maxAvgDay
,
e
.
getMessage
());
}
return
null
;
}
@Override
...
...
kafka-manager-dao/src/main/java/com/xiaojukeji/kafka/manager/dao/OperateRecordDao.java
浏览文件 @
324b37b8
...
...
@@ -14,5 +14,5 @@ public interface OperateRecordDao {
int
insert
(
OperateRecordDO
operateRecordDO
);
List
<
OperateRecordDO
>
queryByCond
t
(
Integer
moduleId
,
Integer
operateId
,
String
operator
,
Date
startTime
,
Date
endTime
);
List
<
OperateRecordDO
>
queryByCond
ition
(
Integer
moduleId
,
Integer
operateId
,
String
operator
,
Date
startTime
,
Date
endTime
);
}
kafka-manager-dao/src/main/java/com/xiaojukeji/kafka/manager/dao/impl/OperateRecordDaoImpl.java
浏览文件 @
324b37b8
...
...
@@ -30,13 +30,13 @@ public class OperateRecordDaoImpl implements OperateRecordDao {
}
@Override
public
List
<
OperateRecordDO
>
queryByCond
t
(
Integer
moduleId
,
Integer
operateId
,
String
operator
,
Date
startTime
,
Date
endTime
)
{
public
List
<
OperateRecordDO
>
queryByCond
ition
(
Integer
moduleId
,
Integer
operateId
,
String
operator
,
Date
startTime
,
Date
endTime
)
{
Map
<
String
,
Object
>
params
=
new
HashMap
<>(
5
);
params
.
put
(
"moduleId"
,
moduleId
);
params
.
put
(
"operateId"
,
operateId
);
params
.
put
(
"operator"
,
operator
);
params
.
put
(
"startTime"
,
startTime
);
params
.
put
(
"endTime"
,
endTime
);
return
sqlSession
.
selectList
(
"OperateRecordDao.queryByCond
t
"
,
params
);
return
sqlSession
.
selectList
(
"OperateRecordDao.queryByCond
ition
"
,
params
);
}
}
kafka-manager-dao/src/main/resources/mapper/OperateRecordDao.xml
浏览文件 @
324b37b8
...
...
@@ -21,7 +21,7 @@
)
</insert>
<select
id=
"queryByCond
t
"
parameterType=
"java.util.Map"
resultMap=
"OperateRecordMap"
>
<select
id=
"queryByCond
ition
"
parameterType=
"java.util.Map"
resultMap=
"OperateRecordMap"
>
select *
from operate_record
where
...
...
kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/api/versionone/normal/NormalTopicController.java
浏览文件 @
324b37b8
...
...
@@ -11,11 +11,13 @@ import com.xiaojukeji.kafka.manager.common.entity.metrics.BaseMetrics;
import
com.xiaojukeji.kafka.manager.common.entity.vo.common.RealTimeMetricsVO
;
import
com.xiaojukeji.kafka.manager.common.entity.vo.normal.TopicBusinessInfoVO
;
import
com.xiaojukeji.kafka.manager.common.entity.vo.normal.topic.*
;
import
com.xiaojukeji.kafka.manager.common.utils.DateUtils
;
import
com.xiaojukeji.kafka.manager.common.utils.SpringTool
;
import
com.xiaojukeji.kafka.manager.common.utils.ValidateUtils
;
import
com.xiaojukeji.kafka.manager.common.entity.pojo.ClusterDO
;
import
com.xiaojukeji.kafka.manager.common.entity.pojo.KafkaBillDO
;
import
com.xiaojukeji.kafka.manager.common.utils.jmx.JmxAttributeEnum
;
import
com.xiaojukeji.kafka.manager.common.entity.vo.normal.topic.TopicStatisticMetricsVO
;
import
com.xiaojukeji.kafka.manager.service.cache.LogicalClusterMetadataManager
;
import
com.xiaojukeji.kafka.manager.service.cache.PhysicalClusterMetadataManager
;
import
com.xiaojukeji.kafka.manager.service.service.*
;
...
...
@@ -339,4 +341,23 @@ public class NormalTopicController {
);
}
@ApiOperation
(
value
=
"Topic流量统计信息"
,
notes
=
""
)
@RequestMapping
(
value
=
"{clusterId}/topics/{topicName}/statistic-metrics"
,
method
=
RequestMethod
.
GET
)
@ResponseBody
public
Result
<
TopicStatisticMetricsVO
>
getTopicStatisticMetrics
(
@PathVariable
Long
clusterId
,
@PathVariable
String
topicName
,
@RequestParam
(
value
=
"isPhysicalClusterId"
,
required
=
false
)
Boolean
isPhysicalClusterId
,
@RequestParam
(
"latest-day"
)
Integer
latestDay
)
{
Long
physicalClusterId
=
logicalClusterMetadataManager
.
getPhysicalClusterId
(
clusterId
,
isPhysicalClusterId
);
if
(
ValidateUtils
.
isNull
(
physicalClusterId
))
{
return
Result
.
buildFrom
(
ResultStatus
.
CLUSTER_NOT_EXIST
);
}
Double
maxAvgBytesIn
=
topicManagerService
.
getTopicMaxAvgBytesIn
(
physicalClusterId
,
topicName
,
new
Date
(
DateUtils
.
getDayStarTime
(-
1
*
latestDay
)),
new
Date
(),
1
);
if
(
ValidateUtils
.
isNull
(
maxAvgBytesIn
))
{
return
Result
.
buildFrom
(
ResultStatus
.
MYSQL_ERROR
);
}
return
new
Result
<>(
new
TopicStatisticMetricsVO
(
maxAvgBytesIn
));
}
}
\ No newline at end of file
kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/api/versionone/rd/RdOperateRecordController.java
浏览文件 @
324b37b8
...
...
@@ -36,7 +36,7 @@ public class RdOperateRecordController {
if
(
ValidateUtils
.
isNull
(
dto
)
||
!
dto
.
legal
())
{
return
Result
.
buildFrom
(
ResultStatus
.
PARAM_ILLEGAL
);
}
List
<
OperateRecordVO
>
voList
=
OperateRecordModelConverter
.
convert2OperateRecordVOList
(
operateRecordService
.
queryByCond
t
(
dto
));
List
<
OperateRecordVO
>
voList
=
OperateRecordModelConverter
.
convert2OperateRecordVOList
(
operateRecordService
.
queryByCond
ition
(
dto
));
if
(
voList
.
size
()
>
MAX_RECORD_COUNT
)
{
voList
=
voList
.
subList
(
0
,
MAX_RECORD_COUNT
);
}
...
...
kafka-manager-web/src/main/java/com/xiaojukeji/kafka/manager/web/api/versionone/thirdpart/ThirdPartTopicController.java
浏览文件 @
324b37b8
...
...
@@ -13,8 +13,6 @@ import com.xiaojukeji.kafka.manager.common.entity.vo.normal.topic.TopicAuthorize
import
com.xiaojukeji.kafka.manager.common.entity.vo.normal.topic.TopicRequestTimeDetailVO
;
import
com.xiaojukeji.kafka.manager.common.zookeeper.znode.brokers.TopicMetadata
;
import
com.xiaojukeji.kafka.manager.openapi.common.vo.TopicOffsetChangedVO
;
import
com.xiaojukeji.kafka.manager.openapi.common.vo.TopicStatisticMetricsVO
;
import
com.xiaojukeji.kafka.manager.common.utils.DateUtils
;
import
com.xiaojukeji.kafka.manager.common.utils.ValidateUtils
;
import
com.xiaojukeji.kafka.manager.common.entity.pojo.ClusterDO
;
import
com.xiaojukeji.kafka.manager.service.cache.PhysicalClusterMetadataManager
;
...
...
@@ -30,7 +28,6 @@ import org.slf4j.LoggerFactory;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.web.bind.annotation.*
;
import
java.util.Date
;
import
java.util.List
;
/**
...
...
@@ -69,27 +66,6 @@ public class ThirdPartTopicController {
return
new
Result
<>(
vo
);
}
@ApiOperation
(
value
=
"Topic流量统计信息"
,
notes
=
""
)
@RequestMapping
(
value
=
"{physicalClusterId}/topics/{topicName}/statistic-metrics"
,
method
=
RequestMethod
.
GET
)
@ResponseBody
public
Result
<
TopicStatisticMetricsVO
>
getTopicStatisticMetrics
(
@PathVariable
Long
physicalClusterId
,
@PathVariable
String
topicName
,
@RequestParam
(
"latest-day"
)
Integer
latestDay
)
{
try
{
return
new
Result
<>(
new
TopicStatisticMetricsVO
(
topicManagerService
.
getTopicMaxAvgBytesIn
(
physicalClusterId
,
topicName
,
new
Date
(
DateUtils
.
getDayStarTime
(-
1
*
latestDay
)),
new
Date
(),
1
)));
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"get topic statistic metrics failed, clusterId:{} topicName:{} latestDay:{}."
,
physicalClusterId
,
topicName
,
latestDay
,
e
);
}
return
Result
.
buildFrom
(
ResultStatus
.
MYSQL_ERROR
);
}
@ApiOperation
(
value
=
"Topic是否有流量"
,
notes
=
""
)
@RequestMapping
(
value
=
"{physicalClusterId}/topics/{topicName}/offset-changed"
,
method
=
RequestMethod
.
GET
)
@ResponseBody
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录