Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
jeecg
jeecg-boot
提交
58d0ad6c
J
jeecg-boot
项目概览
jeecg
/
jeecg-boot
上一次同步 3 年多
通知
865
Star
24375
Fork
84
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jeecg-boot
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
58d0ad6c
编写于
4月 17, 2019
作者:
JEECG低代码平台
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
删除性能监控,后期重构UI
上级
89f85fb6
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
2 addition
and
963 deletion
+2
-963
ant-design-jeecg-vue/src/views/monitor/HttpTrace.vue
ant-design-jeecg-vue/src/views/monitor/HttpTrace.vue
+0
-150
ant-design-jeecg-vue/src/views/monitor/JvmInfo.vue
ant-design-jeecg-vue/src/views/monitor/JvmInfo.vue
+0
-256
ant-design-jeecg-vue/src/views/monitor/RedisInfo.vue
ant-design-jeecg-vue/src/views/monitor/RedisInfo.vue
+0
-216
ant-design-jeecg-vue/src/views/monitor/RedisTerminal.vue
ant-design-jeecg-vue/src/views/monitor/RedisTerminal.vue
+0
-13
ant-design-jeecg-vue/src/views/monitor/SystemInfo.vue
ant-design-jeecg-vue/src/views/monitor/SystemInfo.vue
+0
-125
ant-design-jeecg-vue/src/views/monitor/TomcatInfo.vue
ant-design-jeecg-vue/src/views/monitor/TomcatInfo.vue
+0
-202
jeecg-boot/docs/db/jeecg-boot_1.1.0-20190415.sql
jeecg-boot/docs/db/jeecg-boot_1.1.0-20190415.sql
+2
-1
未找到文件。
ant-design-jeecg-vue/src/views/monitor/HttpTrace.vue
已删除
100644 → 0
浏览文件 @
89f85fb6
<
template
>
<a-card
:bordered=
"false"
class=
"card-area"
>
<div>
<div
class=
"alert"
>
<a-alert
type=
"success"
:show-icon=
"true"
>
<div
slot=
"message"
>
共追踪到
{{
dataSource
.
length
}}
条近期HTTP请求记录
<a
style=
"margin-left: 24px"
@
click=
"search"
>
点击刷新
</a>
</div>
</a-alert>
</div>
<!-- 表格区域 -->
<a-table
:columns=
"columns"
:dataSource=
"dataSource"
:pagination=
"pagination"
:loading=
"loading"
:scroll=
"
{ x: 900 }"
@change="handleTableChange">
</a-table>
</div>
</a-card>
</
template
>
<
script
>
import
moment
from
'
moment
'
moment
.
locale
(
'
zh-cn
'
)
import
{
getAction
}
from
'
@/api/manage
'
export
default
{
data
()
{
return
{
advanced
:
false
,
dataSource
:
[],
pagination
:
{
defaultPageSize
:
10
,
defaultCurrent
:
1
,
pageSizeOptions
:
[
'
10
'
,
'
20
'
,
'
30
'
,
'
40
'
,
'
100
'
],
showQuickJumper
:
true
,
showSizeChanger
:
true
,
showTotal
:
(
total
,
range
)
=>
`显示
${
range
[
0
]}
~
${
range
[
1
]}
条记录,共
${
total
}
条记录`
},
loading
:
false
}
},
computed
:
{
columns
()
{
return
[{
title
:
'
请求时间
'
,
dataIndex
:
'
timestamp
'
,
customRender
:
(
text
,
row
,
index
)
=>
{
return
moment
(
text
).
format
(
'
YYYY-MM-DD HH:mm:ss
'
)
}
},
{
title
:
'
请求方法
'
,
dataIndex
:
'
request.method
'
,
customRender
:
(
text
,
row
,
index
)
=>
{
switch
(
text
)
{
case
'
GET
'
:
return
<
a
-
tag
color
=
"
#87d068
"
>
{
text
}
<
/a-tag
>
case
'
POST
'
:
return
<
a
-
tag
color
=
"
#2db7f5
"
>
{
text
}
<
/a-tag
>
case
'
PUT
'
:
return
<
a
-
tag
color
=
"
#ffba5a
"
>
{
text
}
<
/a-tag
>
case
'
DELETE
'
:
return
<
a
-
tag
color
=
"
#f50
"
>
{
text
}
<
/a-tag
>
default
:
return
text
}
},
filters
:
[
{
text
:
'
GET
'
,
value
:
'
GET
'
},
{
text
:
'
POST
'
,
value
:
'
POST
'
},
{
text
:
'
PUT
'
,
value
:
'
PUT
'
},
{
text
:
'
DELETE
'
,
value
:
'
DELETE
'
}
],
filterMultiple
:
true
,
onFilter
:
(
value
,
record
)
=>
record
.
request
.
method
.
includes
(
value
)
},
{
title
:
'
请求URL
'
,
dataIndex
:
'
request.uri
'
,
customRender
:
(
text
,
row
,
index
)
=>
{
return
text
.
split
(
'
?
'
)[
0
]
}
},
{
title
:
'
响应状态
'
,
dataIndex
:
'
response.status
'
,
customRender
:
(
text
,
row
,
index
)
=>
{
if
(
text
<
200
)
{
return
<
a
-
tag
color
=
"
pink
"
>
{
text
}
<
/a-tag
>
}
else
if
(
text
<
201
)
{
return
<
a
-
tag
color
=
"
green
"
>
{
text
}
<
/a-tag
>
}
else
if
(
text
<
399
)
{
return
<
a
-
tag
color
=
"
cyan
"
>
{
text
}
<
/a-tag
>
}
else
if
(
text
<
403
)
{
return
<
a
-
tag
color
=
"
orange
"
>
{
text
}
<
/a-tag
>
}
else
if
(
text
<
501
)
{
return
<
a
-
tag
color
=
"
red
"
>
{
text
}
<
/a-tag
>
}
else
{
return
text
}
}
},
{
title
:
'
请求耗时
'
,
dataIndex
:
'
timeTaken
'
,
customRender
:
(
text
,
row
,
index
)
=>
{
if
(
text
<
500
)
{
return
<
a
-
tag
color
=
"
green
"
>
{
text
}
ms
<
/a-tag
>
}
else
if
(
text
<
1000
)
{
return
<
a
-
tag
color
=
"
cyan
"
>
{
text
}
ms
<
/a-tag
>
}
else
if
(
text
<
1500
)
{
return
<
a
-
tag
color
=
"
orange
"
>
{
text
}
ms
<
/a-tag
>
}
else
{
return
<
a
-
tag
color
=
"
red
"
>
{
text
}
ms
<
/a-tag
>
}
}
}]
}
},
mounted
()
{
this
.
fetch
()
},
methods
:
{
search
()
{
this
.
fetch
()
},
handleTableChange
(
pagination
,
filters
,
sorter
)
{
this
.
fetch
()
},
fetch
()
{
this
.
loading
=
true
getAction
(
'
actuator/httptrace
'
).
then
((
data
)
=>
{
this
.
loading
=
false
let
filterData
=
[]
for
(
let
d
of
data
.
traces
)
{
if
(
d
.
request
.
method
!==
'
OPTIONS
'
&&
d
.
request
.
uri
.
indexOf
(
'
httptrace
'
)
===
-
1
)
{
filterData
.
push
(
d
)
}
}
this
.
dataSource
=
filterData
})
}
}
}
</
script
>
<
style
lang=
"less"
scoped
>
.alert {
margin-bottom: .5rem;
}
</
style
>
ant-design-jeecg-vue/src/views/monitor/JvmInfo.vue
已删除
100644 → 0
浏览文件 @
89f85fb6
<
template
>
<a-skeleton
active
:loading=
"loading"
:paragraph=
"
{rows: 17}">
<div
class=
"jvm-info"
style=
"background-color: #ffffff"
>
<div
class=
"alert"
>
<a-alert
type=
"success"
:show-icon=
"true"
>
<div
slot=
"message"
>
数据获取时间
{{
this
.
time
}}
<a
style=
"margin-left: 24px"
@
click=
"create"
>
点击刷新
</a>
</div>
</a-alert>
</div>
<table>
<tr>
<th>
参数
</th>
<th>
描述
</th>
<th>
当前值
</th>
</tr>
<tr>
<td>
<a-tag
color=
"purple"
>
jvm.memory.max
</a-tag>
</td>
<td>
JVM 最大内存
</td>
<td>
{{
jvm
.
memory
.
max
}}
MB
</td>
</tr>
<tr>
<td>
<a-tag
color=
"purple"
>
jvm.memory.committed
</a-tag>
</td>
<td>
JVM 可用内存
</td>
<td>
{{
jvm
.
memory
.
committed
}}
MB
</td>
</tr>
<tr>
<td>
<a-tag
color=
"purple"
>
jvm.memory.used
</a-tag>
</td>
<td>
JVM 已用内存
</td>
<td>
{{
jvm
.
memory
.
used
}}
MB
</td>
</tr>
<tr>
<td>
<a-tag
color=
"cyan"
>
jvm.buffer.memory.used
</a-tag>
</td>
<td>
JVM 缓冲区已用内存
</td>
<td>
{{
jvm
.
buffer
.
memory
.
used
}}
MB
</td>
</tr>
<tr>
<td>
<a-tag
color=
"cyan"
>
jvm.buffer.count
</a-tag>
</td>
<td>
当前缓冲区数量
</td>
<td>
{{
jvm
.
buffer
.
count
}}
个
</td>
</tr>
<tr>
<td>
<a-tag
color=
"green"
>
jvm.threads.daemon
</a-tag>
</td>
<td>
JVM 守护线程数量
</td>
<td>
{{
jvm
.
threads
.
daemon
}}
个
</td>
</tr>
<tr>
<td>
<a-tag
color=
"green"
>
jvm.threads.live
</a-tag>
</td>
<td>
JVM 当前活跃线程数量
</td>
<td>
{{
jvm
.
threads
.
live
}}
个
</td>
</tr>
<tr>
<td>
<a-tag
color=
"green"
>
jvm.threads.peak
</a-tag>
</td>
<td>
JVM 峰值线程数量
</td>
<td>
{{
jvm
.
threads
.
peak
}}
个
</td>
</tr>
<tr>
<td>
<a-tag
color=
"orange"
>
jvm.classes.loaded
</a-tag>
</td>
<td>
JVM 已加载 Class 数量
</td>
<td>
{{
jvm
.
classes
.
loaded
}}
个
</td>
</tr>
<tr>
<td>
<a-tag
color=
"orange"
>
jvm.classes.unloaded
</a-tag>
</td>
<td>
JVM 未加载 Class 数量
</td>
<td>
{{
jvm
.
classes
.
unloaded
}}
个
</td>
</tr>
<tr>
<td>
<a-tag
color=
"pink"
>
jvm.gc.memory.allocated
</a-tag>
</td>
<td>
GC 时, 年轻代分配的内存空间
</td>
<td>
{{
jvm
.
gc
.
memory
.
allocated
}}
MB
</td>
</tr>
<tr>
<td>
<a-tag
color=
"pink"
>
jvm.gc.memory.promoted
</a-tag>
</td>
<td>
GC 时, 老年代分配的内存空间
</td>
<td>
{{
jvm
.
gc
.
memory
.
promoted
}}
MB
</td>
</tr>
<tr>
<td>
<a-tag
color=
"pink"
>
jvm.gc.max.data.size
</a-tag>
</td>
<td>
GC 时, 老年代的最大内存空间
</td>
<td>
{{
jvm
.
gc
.
maxDataSize
}}
MB
</td>
</tr>
<tr>
<td>
<a-tag
color=
"pink"
>
jvm.gc.live.data.size
</a-tag>
</td>
<td>
FullGC 时, 老年代的内存空间
</td>
<td>
{{
jvm
.
gc
.
liveDataSize
}}
MB
</td>
</tr>
<tr>
<td>
<a-tag
color=
"blue"
>
jvm.gc.pause.count
</a-tag>
</td>
<td>
系统启动以来GC 次数
</td>
<td>
{{
jvm
.
gc
.
pause
.
count
}}
次
</td>
</tr>
<tr>
<td>
<a-tag
color=
"blue"
>
jvm.gc.pause.totalTime
</a-tag>
</td>
<td>
系统启动以来GC 总耗时
</td>
<td>
{{
jvm
.
gc
.
pause
.
totalTime
}}
秒
</td>
</tr>
</table>
</div>
</a-skeleton>
</
template
>
<
script
>
import
axios
from
'
axios
'
import
moment
from
'
moment
'
import
{
getAction
}
from
'
@/api/manage
'
moment
.
locale
(
'
zh-cn
'
)
export
default
{
data
()
{
return
{
time
:
''
,
loading
:
true
,
jvm
:
{
memory
:
{
max
:
0
,
committed
:
0
,
used
:
0
},
buffer
:
{
memory
:
{
used
:
0
},
count
:
0
},
threads
:
{
daemon
:
0
,
live
:
0
,
peak
:
0
},
classes
:
{
loaded
:
0
,
unloaded
:
0
},
gc
:
{
memory
:
{
allocated
:
0
,
promoted
:
0
},
maxDataSize
:
0
,
liveDataSize
:
0
,
pause
:
{
totalTime
:
0
,
count
:
0
}
}
}
}
},
mounted
()
{
this
.
create
()
},
methods
:
{
create
()
{
this
.
time
=
moment
().
format
(
'
YYYY年MM月DD日 HH时mm分ss秒
'
)
axios
.
all
([
getAction
(
'
actuator/metrics/jvm.memory.max
'
),
getAction
(
'
actuator/metrics/jvm.memory.committed
'
),
getAction
(
'
actuator/metrics/jvm.memory.used
'
),
getAction
(
'
actuator/metrics/jvm.buffer.memory.used
'
),
getAction
(
'
actuator/metrics/jvm.buffer.count
'
),
getAction
(
'
actuator/metrics/jvm.threads.daemon
'
),
getAction
(
'
actuator/metrics/jvm.threads.live
'
),
getAction
(
'
actuator/metrics/jvm.threads.peak
'
),
getAction
(
'
actuator/metrics/jvm.classes.loaded
'
),
getAction
(
'
actuator/metrics/jvm.classes.unloaded
'
),
getAction
(
'
actuator/metrics/jvm.gc.memory.allocated
'
),
getAction
(
'
actuator/metrics/jvm.gc.memory.promoted
'
),
getAction
(
'
actuator/metrics/jvm.gc.max.data.size
'
),
getAction
(
'
actuator/metrics/jvm.gc.live.data.size
'
),
getAction
(
'
actuator/metrics/jvm.gc.pause
'
)
]).
then
((
r
)
=>
{
this
.
jvm
.
memory
.
max
=
this
.
convert
(
r
[
0
].
measurements
[
0
].
value
)
this
.
jvm
.
memory
.
committed
=
this
.
convert
(
r
[
1
].
measurements
[
0
].
value
)
this
.
jvm
.
memory
.
used
=
this
.
convert
(
r
[
2
].
measurements
[
0
].
value
)
this
.
jvm
.
buffer
.
memory
.
used
=
this
.
convert
(
r
[
3
].
measurements
[
0
].
value
)
this
.
jvm
.
buffer
.
count
=
r
[
4
].
measurements
[
0
].
value
this
.
jvm
.
threads
.
daemon
=
r
[
5
].
measurements
[
0
].
value
this
.
jvm
.
threads
.
live
=
r
[
6
].
measurements
[
0
].
value
this
.
jvm
.
threads
.
peak
=
r
[
7
].
measurements
[
0
].
value
this
.
jvm
.
classes
.
loaded
=
r
[
8
].
measurements
[
0
].
value
this
.
jvm
.
classes
.
unloaded
=
r
[
9
].
measurements
[
0
].
value
this
.
jvm
.
gc
.
memory
.
allocated
=
this
.
convert
(
r
[
10
].
measurements
[
0
].
value
)
this
.
jvm
.
gc
.
memory
.
promoted
=
this
.
convert
(
r
[
11
].
measurements
[
0
].
value
)
this
.
jvm
.
gc
.
maxDataSize
=
this
.
convert
(
r
[
12
].
measurements
[
0
].
value
)
this
.
jvm
.
gc
.
liveDataSize
=
this
.
convert
(
r
[
13
].
measurements
[
0
].
value
)
this
.
jvm
.
gc
.
pause
.
count
=
r
[
14
].
measurements
[
0
].
value
this
.
jvm
.
gc
.
pause
.
totalTime
=
r
[
14
].
measurements
[
1
].
value
this
.
loading
=
false
}).
catch
((
r
)
=>
{
console
.
error
(
r
)
this
.
$message
.
error
(
'
获取JVM信息失败
'
)
})
},
convert
(
value
)
{
return
Number
(
value
/
1048576
).
toFixed
(
3
)
}
}
}
</
script
>
<
style
lang=
"less"
>
.jvm-info {
width: 100%;
table {
width: 100%;
tr {
line-height: 1.5rem;
border-bottom: 1px solid #f1f1f1;
th {
background: #fafafa;
padding: .5rem;
}
td {
padding: .5rem;
.ant-tag {
font-size: .8rem !important;
}
}
}
}
.alert {
margin-bottom: .5rem;
}
}
</
style
>
ant-design-jeecg-vue/src/views/monitor/RedisInfo.vue
已删除
100644 → 0
浏览文件 @
89f85fb6
<
template
>
<div
style=
"width: 100%;margin-top: 1rem;background-color: #ffffff"
>
<a-row
:gutter=
"8"
>
<a-col
:span=
"12"
>
<apexchart
ref=
"memoryInfo"
type=
area
height=
350
:options=
"memory.chartOptions"
:series=
"memory.series"
/>
</a-col>
<a-col
:span=
"12"
>
<apexchart
ref=
"keySize"
type=
area
height=
350
:options=
"key.chartOptions"
:series=
"key.series"
/>
</a-col>
</a-row>
<a-row
:gutter=
"8"
>
<a-divider
orientation=
"left"
>
Redis详细信息
</a-divider>
<table
style=
"border-bottom: 1px solid #f1f1f1;"
>
<tr
v-for=
"(info, index) in redisInfo"
:key=
"index"
style=
"border-top: 1px solid #f1f1f1;"
>
<td
style=
"padding: .7rem 1rem"
>
{{
info
.
key
}}
</td>
<td
style=
"padding: .7rem 1rem"
>
{{
info
.
description
}}
</td>
<td
style=
"padding: .7rem 1rem"
>
{{
info
.
value
}}
</td>
</tr>
</table>
</a-row>
</div>
</
template
>
<
script
>
import
axios
from
'
axios
'
import
moment
from
'
moment
'
import
{
getAction
}
from
'
@/api/manage
'
export
default
{
name
:
'
RedisInfo
'
,
data
()
{
return
{
loading
:
true
,
memory
:
{
series
:
[],
chartOptions
:
{
chart
:
{
animations
:
{
enabled
:
true
,
easing
:
'
linear
'
,
dynamicAnimation
:
{
speed
:
3000
}
},
toolbar
:
{
show
:
false
},
zoom
:
{
enabled
:
false
}
},
dataLabels
:
{
enabled
:
false
},
stroke
:
{
curve
:
'
smooth
'
},
title
:
{
text
:
'
Redis内存实时占用情况(kb)
'
,
align
:
'
left
'
},
markers
:
{
size
:
0
},
xaxis
:
{
},
yaxis
:
{},
legend
:
{
show
:
false
}
},
data
:
[],
xdata
:
[]
},
key
:
{
series
:
[],
chartOptions
:
{
chart
:
{
animations
:
{
enabled
:
true
,
easing
:
'
linear
'
,
dynamicAnimation
:
{
speed
:
3000
}
},
toolbar
:
{
show
:
false
},
zoom
:
{
enabled
:
false
}
},
dataLabels
:
{
enabled
:
false
},
colors
:
[
'
#f5564e
'
],
stroke
:
{
curve
:
'
smooth
'
},
title
:
{
text
:
'
Redis key实时数量(个)
'
,
align
:
'
left
'
},
markers
:
{
size
:
0
},
xaxis
:
{
},
yaxis
:
{},
legend
:
{
show
:
false
}
},
data
:
[],
xdata
:
[]
},
redisInfo
:
[],
timer
:
null
}
},
beforeDestroy
()
{
if
(
this
.
timer
)
{
clearInterval
(
this
.
timer
)
}
},
mounted
()
{
let
minMemory
=
1
e10
let
minSize
=
1
e10
let
maxMemory
=
-
1
e10
let
maxSize
=
-
1
e10
this
.
timer
=
setInterval
(()
=>
{
if
(
this
.
$route
.
path
.
indexOf
(
'
redis
'
)
!==
-
1
)
{
axios
.
all
([
getAction
(
'
redis/keysSize
'
),
getAction
(
'
redis/memoryInfo
'
)
]).
then
((
r
)
=>
{
console
.
log
(
r
)
let
currentMemory
=
r
[
1
].
used_memory
/
1000
let
currentSize
=
r
[
0
].
dbSize
if
(
currentMemory
<
minMemory
)
{
minMemory
=
currentMemory
}
if
(
currentMemory
>
maxMemory
)
{
maxMemory
=
currentMemory
}
if
(
currentSize
<
minSize
)
{
minSize
=
currentSize
}
if
(
currentSize
>
maxSize
)
{
maxSize
=
currentSize
}
let
time
=
moment
().
format
(
'
hh:mm:ss
'
)
this
.
memory
.
data
.
push
(
currentMemory
)
this
.
memory
.
xdata
.
push
(
time
)
this
.
key
.
data
.
push
(
currentSize
)
this
.
key
.
xdata
.
push
(
time
)
if
(
this
.
memory
.
data
.
length
>=
6
)
{
this
.
memory
.
data
.
shift
()
this
.
memory
.
xdata
.
shift
()
}
if
(
this
.
key
.
data
.
length
>=
6
)
{
this
.
key
.
data
.
shift
()
this
.
key
.
xdata
.
shift
()
}
this
.
$refs
.
memoryInfo
.
updateSeries
([
{
name
:
'
内存(kb)
'
,
data
:
this
.
memory
.
data
.
slice
()
}
])
this
.
$refs
.
memoryInfo
.
updateOptions
({
xaxis
:
{
categories
:
this
.
memory
.
xdata
.
slice
()
},
yaxis
:
{
min
:
minMemory
,
max
:
maxMemory
}
},
true
,
true
)
this
.
$refs
.
keySize
.
updateSeries
([
{
name
:
'
key数量
'
,
data
:
this
.
key
.
data
.
slice
()
}
])
this
.
$refs
.
keySize
.
updateOptions
({
xaxis
:
{
categories
:
this
.
key
.
xdata
.
slice
()
},
yaxis
:
{
min
:
minSize
-
2
,
max
:
maxSize
+
2
}
},
true
,
true
)
if
(
this
.
loading
)
{
this
.
loading
=
false
}
}).
catch
((
r
)
=>
{
console
.
error
(
r
)
this
.
$message
.
error
(
'
获取Redis信息失败
'
)
if
(
this
.
timer
)
{
clearInterval
(
this
.
timer
)
}
})
}
},
3000
)
getAction
(
'
redis/info
'
).
then
((
r
)
=>
{
console
.
log
(
'
redis/info
'
)
console
.
log
(
r
)
this
.
redisInfo
=
r
.
result
})
}
}
</
script
>
<
style
>
</
style
>
ant-design-jeecg-vue/src/views/monitor/RedisTerminal.vue
已删除
100644 → 0
浏览文件 @
89f85fb6
<
template
>
<div>
<div>
Redis终端
</div>
</div>
</
template
>
<
script
>
export
default
{
name
:
'
RedisTerminal
'
}
</
script
>
<
style
>
</
style
>
ant-design-jeecg-vue/src/views/monitor/SystemInfo.vue
已删除
100644 → 0
浏览文件 @
89f85fb6
<
template
>
<a-skeleton
active
:loading=
"loading"
:paragraph=
"
{rows: 17}">
<div
class=
"jvm-info"
style=
"background-color: #ffffff"
>
<div
class=
"alert"
>
<a-alert
type=
"success"
:show-icon=
"true"
>
<div
slot=
"message"
>
数据获取时间
{{
this
.
time
}}
<a
style=
"margin-left: 24px"
@
click=
"create"
>
点击刷新
</a>
</div>
</a-alert>
</div>
<table>
<tr>
<th>
参数
</th>
<th>
描述
</th>
<th>
当前值
</th>
</tr>
<tr>
<td><a-tag
color=
"green"
>
system.cpu.count
</a-tag></td>
<td>
CPU 数量
</td>
<td>
{{
system
.
cpu
.
count
}}
核
</td>
</tr>
<tr>
<td><a-tag
color=
"green"
>
system.cpu.usage
</a-tag></td>
<td>
系统 CPU 使用率
</td>
<td>
{{
system
.
cpu
.
usage
}}
%
</td>
</tr>
<tr>
<td><a-tag
color=
"purple"
>
process.start.time
</a-tag></td>
<td>
应用启动时间点
</td>
<td>
{{
system
.
process
.
startTime
}}
</td>
</tr>
<tr>
<td><a-tag
color=
"purple"
>
process.uptime
</a-tag></td>
<td>
应用已运行时间
</td>
<td>
{{
system
.
process
.
uptime
}}
秒
</td>
</tr>
<tr>
<td><a-tag
color=
"purple"
>
process.cpu.usage
</a-tag></td>
<td>
当前应用 CPU 使用率
</td>
<td>
{{
system
.
process
.
cpuUsage
}}
%
</td>
</tr>
</table>
</div>
</a-skeleton>
</
template
>
<
script
>
import
axios
from
'
axios
'
import
moment
from
'
moment
'
import
{
getAction
}
from
'
@/api/manage
'
moment
.
locale
(
'
zh-cn
'
)
export
default
{
data
()
{
return
{
time
:
''
,
loading
:
true
,
system
:
{
cpu
:
{
count
:
0
,
usage
:
0
},
process
:
{
cpuUsage
:
0
,
uptime
:
0
,
startTime
:
0
}
}
}
},
mounted
()
{
this
.
create
()
},
methods
:
{
create
()
{
this
.
time
=
moment
().
format
(
'
YYYY年MM月DD日 HH时mm分ss秒
'
)
axios
.
all
([
getAction
(
'
actuator/metrics/system.cpu.count
'
),
getAction
(
'
actuator/metrics/system.cpu.usage
'
),
getAction
(
'
actuator/metrics/process.uptime
'
),
getAction
(
'
actuator/metrics/process.start.time
'
),
getAction
(
'
actuator/metrics/process.cpu.usage
'
)
]).
then
((
r
)
=>
{
this
.
system
.
cpu
.
count
=
r
[
0
].
measurements
[
0
].
value
this
.
system
.
cpu
.
usage
=
this
.
convert
(
r
[
1
].
measurements
[
0
].
value
)
this
.
system
.
process
.
uptime
=
r
[
2
].
measurements
[
0
].
value
this
.
system
.
process
.
startTime
=
moment
(
r
[
3
].
measurements
[
0
].
value
*
1000
).
format
(
'
YYYY-MM-DD HH:mm:ss
'
)
this
.
system
.
process
.
cpuUsage
=
this
.
convert
(
r
[
4
].
measurements
[
0
].
value
)
this
.
loading
=
false
}).
catch
((
r
)
=>
{
console
.
error
(
r
)
this
.
$message
.
error
(
'
获取服务器信息失败
'
)
})
},
convert
(
value
)
{
return
Number
(
value
*
100
).
toFixed
(
2
)
}
}
}
</
script
>
<
style
lang=
"less"
>
.jvm-info {
width: 100%;
table {
width: 100%;
tr {
line-height: 1.5rem;
border-bottom: 1px solid #f1f1f1;
th {
background: #fafafa;
padding: .5rem;
}
td {
padding: .5rem;
.ant-tag {
font-size: .8rem !important;
}
}
}
}
.alert {
margin-bottom: .5rem;
}
}
</
style
>
ant-design-jeecg-vue/src/views/monitor/TomcatInfo.vue
已删除
100644 → 0
浏览文件 @
89f85fb6
<
template
>
<a-skeleton
active
:loading=
"loading"
:paragraph=
"
{rows: 17}">
<div
class=
"jvm-info"
style=
"background-color: #ffffff"
>
<div
class=
"alert"
>
<a-alert
type=
"success"
:show-icon=
"true"
>
<div
slot=
"message"
>
数据获取时间
{{
this
.
time
}}
<a
style=
"margin-left: 24px"
@
click=
"create"
>
点击刷新
</a>
</div>
</a-alert>
</div>
<table>
<tr>
<th>
参数
</th>
<th>
描述
</th>
<th>
当前值
</th>
</tr>
<tr>
<td><a-tag
color=
"green"
>
tomcat.sessions.created
</a-tag></td>
<td>
tomcat 已创建 session 数
</td>
<td>
{{
tomcat
.
sessions
.
created
}}
个
</td>
</tr>
<tr>
<td><a-tag
color=
"green"
>
tomcat.sessions.expired
</a-tag></td>
<td>
tomcat 已过期 session 数
</td>
<td>
{{
tomcat
.
sessions
.
expired
}}
个
</td>
</tr>
<tr>
<td><a-tag
color=
"green"
>
tomcat.sessions.active.current
</a-tag></td>
<td>
tomcat 当前活跃 session 数
</td>
<td>
{{
tomcat
.
sessions
.
active
.
current
}}
个
</td>
</tr>
<tr>
<td><a-tag
color=
"green"
>
tomcat.sessions.active.max
</a-tag></td>
<td>
tomcat 活跃 session 数峰值
</td>
<td>
{{
tomcat
.
sessions
.
active
.
max
}}
个
</td>
</tr>
<tr>
<td><a-tag
color=
"green"
>
tomcat.sessions.rejected
</a-tag></td>
<td>
超过session 最大配置后,拒绝的 session 个数
</td>
<td>
{{
tomcat
.
sessions
.
rejected
}}
个
</td>
</tr>
<tr>
<td><a-tag
color=
"purple"
>
tomcat.global.sent
</a-tag></td>
<td>
发送的字节数
</td>
<td>
{{
tomcat
.
global
.
sent
}}
bytes
</td>
</tr>
<tr>
<td><a-tag
color=
"purple"
>
tomcat.global.request.max
</a-tag></td>
<td>
request 请求最长耗时
</td>
<td>
{{
tomcat
.
global
.
request
.
max
}}
秒
</td>
</tr>
<tr>
<td><a-tag
color=
"purple"
>
tomcat.global.request.count
</a-tag></td>
<td>
全局 request 请求次数
</td>
<td>
{{
tomcat
.
global
.
request
.
count
}}
次
</td>
</tr>
<tr>
<td><a-tag
color=
"purple"
>
tomcat.global.request.totalTime
</a-tag></td>
<td>
全局 request 请求总耗时
</td>
<td>
{{
tomcat
.
global
.
request
.
totalTime
}}
秒
</td>
</tr>
<tr>
<td><a-tag
color=
"cyan"
>
tomcat.servlet.request.max
</a-tag></td>
<td>
servlet 请求最长耗时
</td>
<td>
{{
tomcat
.
servlet
.
request
.
max
}}
秒
</td>
</tr>
<tr>
<td><a-tag
color=
"cyan"
>
tomcat.servlet.request.count
</a-tag></td>
<td>
servlet 总请求次数
</td>
<td>
{{
tomcat
.
servlet
.
request
.
count
}}
次
</td>
</tr>
<tr>
<td><a-tag
color=
"cyan"
>
tomcat.servlet.request.totalTime
</a-tag></td>
<td>
servlet 请求总耗时
</td>
<td>
{{
tomcat
.
servlet
.
request
.
totalTime
}}
秒
</td>
</tr>
<tr>
<td><a-tag
color=
"pink"
>
tomcat.threads.current
</a-tag></td>
<td>
tomcat 当前线程数(包括守护线程)
</td>
<td>
{{
tomcat
.
threads
.
current
}}
个
</td>
</tr>
<tr>
<td><a-tag
color=
"pink"
>
tomcat.threads.configMax
</a-tag></td>
<td>
tomcat 配置的线程最大数
</td>
<td>
{{
tomcat
.
threads
.
configMax
}}
个
</td>
</tr>
</table>
</div>
</a-skeleton>
</
template
>
<
script
>
import
axios
from
'
axios
'
import
moment
from
'
moment
'
import
{
getAction
}
from
'
@/api/manage
'
moment
.
locale
(
'
zh-cn
'
)
export
default
{
data
()
{
return
{
time
:
''
,
loading
:
true
,
tomcat
:
{
sessions
:
{
created
:
0
,
expired
:
0
,
active
:
{
current
:
0
,
max
:
0
},
rejected
:
0
},
global
:
{
sent
:
0
,
request
:
{
count
:
0
,
max
:
0
,
totalTime
:
0
}
},
servlet
:
{
request
:
{
count
:
0
,
totalTime
:
0
,
max
:
0
}
},
threads
:
{
current
:
0
,
configMax
:
0
}
}
}
},
mounted
()
{
this
.
create
()
},
methods
:
{
create
()
{
this
.
time
=
moment
().
format
(
'
YYYY年MM月DD日 HH时mm分ss秒
'
)
axios
.
all
([
getAction
(
'
actuator/metrics/tomcat.sessions.created
'
),
getAction
(
'
actuator/metrics/tomcat.sessions.expired
'
),
getAction
(
'
actuator/metrics/tomcat.sessions.active.current
'
),
getAction
(
'
actuator/metrics/tomcat.sessions.active.max
'
),
getAction
(
'
actuator/metrics/tomcat.sessions.rejected
'
),
getAction
(
'
actuator/metrics/tomcat.global.sent
'
),
getAction
(
'
actuator/metrics/tomcat.global.request.max
'
),
getAction
(
'
actuator/metrics/tomcat.global.request
'
),
getAction
(
'
actuator/metrics/tomcat.servlet.request
'
),
getAction
(
'
actuator/metrics/tomcat.servlet.request.max
'
),
getAction
(
'
actuator/metrics/tomcat.threads.current
'
),
getAction
(
'
actuator/metrics/tomcat.threads.config.max
'
)
]).
then
((
r
)
=>
{
this
.
tomcat
.
sessions
.
created
=
r
[
0
].
measurements
[
0
].
value
this
.
tomcat
.
sessions
.
expired
=
r
[
1
].
measurements
[
0
].
value
this
.
tomcat
.
sessions
.
active
.
current
=
r
[
2
].
measurements
[
0
].
value
this
.
tomcat
.
sessions
.
active
.
max
=
r
[
3
].
measurements
[
0
].
value
this
.
tomcat
.
sessions
.
rejected
=
r
[
4
].
measurements
[
0
].
value
this
.
tomcat
.
global
.
sent
=
r
[
5
].
measurements
[
0
].
value
this
.
tomcat
.
global
.
request
.
max
=
r
[
6
].
measurements
[
0
].
value
this
.
tomcat
.
global
.
request
.
count
=
r
[
7
].
measurements
[
0
].
value
this
.
tomcat
.
global
.
request
.
totalTime
=
r
[
7
].
measurements
[
1
].
value
this
.
tomcat
.
servlet
.
request
.
count
=
r
[
8
].
measurements
[
0
].
value
this
.
tomcat
.
servlet
.
request
.
totalTime
=
r
[
8
].
measurements
[
1
].
value
this
.
tomcat
.
servlet
.
request
.
max
=
r
[
9
].
measurements
[
0
].
value
this
.
tomcat
.
threads
.
current
=
r
[
10
].
measurements
[
0
].
value
this
.
tomcat
.
threads
.
configMax
=
r
[
11
].
measurements
[
0
].
value
this
.
loading
=
false
}).
catch
((
r
)
=>
{
console
.
error
(
r
)
this
.
$message
.
error
(
'
获取Tomcat信息失败
'
)
})
}
}
}
</
script
>
<
style
lang=
"less"
>
.jvm-info {
width: 100%;
table {
width: 100%;
tr {
line-height: 1.5rem;
border-bottom: 1px solid #f1f1f1;
th {
background: #fafafa;
padding: .5rem;
}
td {
padding: .5rem;
.ant-tag {
font-size: .8rem !important;
}
}
}
}
.alert {
margin-bottom: .5rem;
}
}
</
style
>
jeecg-boot/docs/db/jeecg-boot_1.1.0-20190415.sql
浏览文件 @
58d0ad6c
...
...
@@ -2391,4 +2391,5 @@ INSERT INTO `sys_user_role` VALUES ('fe38580871c5061ba59d5c03a0840b0e', 'a75d45a
INSERT
INTO
`sys_user_role`
VALUES
(
'6ec01b4aaab790eac4ddb33d7a524a58'
,
'e9ca23d68d884d4ebb19d07889727dae'
,
'f6817f48af4fb3af11b9e8bf182f618b'
);
INSERT
INTO
`sys_user_role`
VALUES
(
'd2233e5be091d39da5abb0073c766224'
,
'f0019fdebedb443c98dcb17d88222c38'
,
'ee8626f80f7c2619917b6236f3a7f02b'
);
UPDATE
`sys_permission`
SET
`component`
=
'/jeecg/PrintDemo'
WHERE
(
`id`
=
'e6bfd1fcabfd7942fdd05f076d1dad38'
);
\ No newline at end of file
UPDATE
`sys_permission`
SET
`component`
=
'/jeecg/PrintDemo'
WHERE
(
`id`
=
'e6bfd1fcabfd7942fdd05f076d1dad38'
);
delete
from
sys_permission
where
id
=
'700b7f95165c46cc7a78bf227aa8fed3'
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录