Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
pentaLiker
DolphinScheduler
提交
930c7d4f
DolphinScheduler
项目概览
pentaLiker
/
DolphinScheduler
与 Fork 源项目一致
Fork自
apache / DolphinScheduler
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
DolphinScheduler
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
930c7d4f
编写于
5月 14, 2022
作者:
retime123
提交者:
GitHub
5月 14, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Monitoring: Added disk available capacity monitoring (#10030)
上级
df185242
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
81 addition
and
19 deletion
+81
-19
dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java
...in/java/org/apache/dolphinscheduler/common/Constants.java
+1
-1
dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/HeartBeat.java
...a/org/apache/dolphinscheduler/common/utils/HeartBeat.java
+24
-11
dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/OSUtils.java
...ava/org/apache/dolphinscheduler/common/utils/OSUtils.java
+19
-0
dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/os/OSUtilsTest.java
...va/org/apache/dolphinscheduler/common/os/OSUtilsTest.java
+7
-0
dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/HeartBeatTest.java
...g/apache/dolphinscheduler/common/utils/HeartBeatTest.java
+2
-1
dolphinscheduler-ui/src/js/conf/home/pages/monitor/pages/servers/master.vue
...i/src/js/conf/home/pages/monitor/pages/servers/master.vue
+13
-3
dolphinscheduler-ui/src/js/conf/home/pages/monitor/pages/servers/worker.vue
...i/src/js/conf/home/pages/monitor/pages/servers/worker.vue
+13
-3
dolphinscheduler-ui/src/js/module/i18n/locale/en_US.js
dolphinscheduler-ui/src/js/module/i18n/locale/en_US.js
+1
-0
dolphinscheduler-ui/src/js/module/i18n/locale/zh_CN.js
dolphinscheduler-ui/src/js/module/i18n/locale/zh_CN.js
+1
-0
未找到文件。
dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/Constants.java
浏览文件 @
930c7d4f
...
...
@@ -514,7 +514,7 @@ public final class Constants {
/**
* heartbeat for zk info length
*/
public
static
final
int
HEARTBEAT_FOR_ZOOKEEPER_INFO_LENGTH
=
1
3
;
public
static
final
int
HEARTBEAT_FOR_ZOOKEEPER_INFO_LENGTH
=
1
4
;
/**
* jar
...
...
dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/HeartBeat.java
浏览文件 @
930c7d4f
...
...
@@ -42,6 +42,16 @@ public class HeartBeat {
private
int
workerWaitingTaskCount
;
// worker waiting task count
private
int
workerExecThreadCount
;
// worker thread pool thread count
private
double
diskAvailable
;
public
double
getDiskAvailable
()
{
return
diskAvailable
;
}
public
void
setDiskAvailable
(
double
diskAvailable
)
{
this
.
diskAvailable
=
diskAvailable
;
}
public
long
getStartupTime
()
{
return
startupTime
;
}
...
...
@@ -177,6 +187,7 @@ public class HeartBeat {
this
.
loadAverage
=
OSUtils
.
loadAverage
();
this
.
availablePhysicalMemorySize
=
OSUtils
.
availablePhysicalMemorySize
();
this
.
memoryUsage
=
OSUtils
.
memoryUsage
();
this
.
diskAvailable
=
OSUtils
.
diskAvailable
();
this
.
processId
=
OSUtils
.
getProcessID
();
}
...
...
@@ -207,6 +218,7 @@ public class HeartBeat {
StringBuilder
builder
=
new
StringBuilder
(
100
);
builder
.
append
(
cpuUsage
).
append
(
COMMA
);
builder
.
append
(
memoryUsage
).
append
(
COMMA
);
builder
.
append
(
diskAvailable
).
append
(
COMMA
);
builder
.
append
(
loadAverage
).
append
(
COMMA
);
builder
.
append
(
availablePhysicalMemorySize
).
append
(
Constants
.
COMMA
);
builder
.
append
(
maxCpuloadAvg
).
append
(
Constants
.
COMMA
);
...
...
@@ -233,17 +245,18 @@ public class HeartBeat {
HeartBeat
heartBeat
=
new
HeartBeat
();
heartBeat
.
cpuUsage
=
Double
.
parseDouble
(
parts
[
0
]);
heartBeat
.
memoryUsage
=
Double
.
parseDouble
(
parts
[
1
]);
heartBeat
.
loadAverage
=
Double
.
parseDouble
(
parts
[
2
]);
heartBeat
.
availablePhysicalMemorySize
=
Double
.
parseDouble
(
parts
[
3
]);
heartBeat
.
maxCpuloadAvg
=
Double
.
parseDouble
(
parts
[
4
]);
heartBeat
.
reservedMemory
=
Double
.
parseDouble
(
parts
[
5
]);
heartBeat
.
startupTime
=
Long
.
parseLong
(
parts
[
6
]);
heartBeat
.
reportTime
=
Long
.
parseLong
(
parts
[
7
]);
heartBeat
.
serverStatus
=
Integer
.
parseInt
(
parts
[
8
]);
heartBeat
.
processId
=
Integer
.
parseInt
(
parts
[
9
]);
heartBeat
.
workerHostWeight
=
Integer
.
parseInt
(
parts
[
10
]);
heartBeat
.
workerExecThreadCount
=
Integer
.
parseInt
(
parts
[
11
]);
heartBeat
.
workerWaitingTaskCount
=
Integer
.
parseInt
(
parts
[
12
]);
heartBeat
.
diskAvailable
=
Double
.
parseDouble
(
parts
[
2
]);
heartBeat
.
loadAverage
=
Double
.
parseDouble
(
parts
[
3
]);
heartBeat
.
availablePhysicalMemorySize
=
Double
.
parseDouble
(
parts
[
4
]);
heartBeat
.
maxCpuloadAvg
=
Double
.
parseDouble
(
parts
[
5
]);
heartBeat
.
reservedMemory
=
Double
.
parseDouble
(
parts
[
6
]);
heartBeat
.
startupTime
=
Long
.
parseLong
(
parts
[
7
]);
heartBeat
.
reportTime
=
Long
.
parseLong
(
parts
[
8
]);
heartBeat
.
serverStatus
=
Integer
.
parseInt
(
parts
[
9
]);
heartBeat
.
processId
=
Integer
.
parseInt
(
parts
[
10
]);
heartBeat
.
workerHostWeight
=
Integer
.
parseInt
(
parts
[
11
]);
heartBeat
.
workerExecThreadCount
=
Integer
.
parseInt
(
parts
[
12
]);
heartBeat
.
workerWaitingTaskCount
=
Integer
.
parseInt
(
parts
[
13
]);
return
heartBeat
;
}
}
dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/OSUtils.java
浏览文件 @
930c7d4f
...
...
@@ -31,6 +31,7 @@ import java.io.BufferedReader;
import
java.io.FileInputStream
;
import
java.io.IOException
;
import
java.io.InputStreamReader
;
import
java.io.File
;
import
java.lang.management.ManagementFactory
;
import
java.lang.management.OperatingSystemMXBean
;
import
java.lang.management.RuntimeMXBean
;
...
...
@@ -82,6 +83,24 @@ public class OSUtils {
return
Double
.
parseDouble
(
df
.
format
(
memoryUsage
));
}
/**
* get disk usage
* Keep 2 decimal
*
* @return disk free space (GB)
*/
public
static
double
diskAvailable
()
{
File
file
=
new
File
(
"."
);
long
totalSpace
=
file
.
getTotalSpace
();
//total disk space in bytes.
long
freeSpace
=
file
.
getFreeSpace
();
//unallocated / free disk space in bytes.
double
diskAvailable
=
freeSpace
/
1024.0
/
1024
/
1024
;
DecimalFormat
df
=
new
DecimalFormat
(
TWO_DECIMAL
);
df
.
setRoundingMode
(
RoundingMode
.
HALF_UP
);
return
Double
.
parseDouble
(
df
.
format
(
diskAvailable
));
}
/**
* get available physical memory size
* <p>
...
...
dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/os/OSUtilsTest.java
浏览文件 @
930c7d4f
...
...
@@ -39,6 +39,13 @@ public class OSUtilsTest {
Assert
.
assertTrue
(
memoryUsage
>=
0.0
);
}
@Test
public
void
diskAvailable
()
{
double
diskAvailable
=
OSUtils
.
diskAvailable
();
logger
.
info
(
"diskAvailable : {}"
,
diskAvailable
);
Assert
.
assertTrue
(
diskAvailable
>=
0.0
);
}
@Test
public
void
loadAverage
()
{
double
loadAverage
=
OSUtils
.
loadAverage
();
...
...
dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/HeartBeatTest.java
浏览文件 @
930c7d4f
...
...
@@ -55,12 +55,13 @@ public class HeartBeatTest {
@Test
public
void
testDecodeHeartBeat
()
throws
Exception
{
String
heartBeatInfo
=
"0.35,0.58,3.09,6.47,5.0,1.0,1634033006749,1634033006857,1,29732,1,199,200"
;
String
heartBeatInfo
=
"0.35,0.58,
5.86,
3.09,6.47,5.0,1.0,1634033006749,1634033006857,1,29732,1,199,200"
;
HeartBeat
heartBeat
=
HeartBeat
.
decodeHeartBeat
(
heartBeatInfo
);
double
delta
=
0.001
;
assertEquals
(
0.35
,
heartBeat
.
getCpuUsage
(),
delta
);
assertEquals
(
0.58
,
heartBeat
.
getMemoryUsage
(),
delta
);
assertEquals
(
5.86
,
heartBeat
.
getDiskAvailable
(),
delta
);
assertEquals
(
3.09
,
heartBeat
.
getLoadAverage
(),
delta
);
assertEquals
(
6.47
,
heartBeat
.
getAvailablePhysicalMemorySize
(),
delta
);
assertEquals
(
5.0
,
heartBeat
.
getMaxCpuloadAvg
(),
delta
);
...
...
dolphinscheduler-ui/src/js/conf/home/pages/monitor/pages/servers/master.vue
浏览文件 @
930c7d4f
...
...
@@ -30,21 +30,31 @@
</div>
</div>
<div
class=
"row-cont"
>
<div
class=
"col-md-
4
"
>
<div
class=
"col-md-
3
"
>
<m-gauge
:value=
"(item.resInfo.cpuUsage * 100).toFixed(2)"
:name=
"'cpuUsage'"
:id=
"'gauge-cpu-' + item.id"
>
</m-gauge>
</div>
<div
class=
"col-md-
4
"
>
<div
class=
"col-md-
3
"
>
<m-gauge
:value=
"(item.resInfo.memoryUsage * 100).toFixed(2)"
:name=
"'memoryUsage'"
:id=
"'gauge-memory-' + item.id"
>
</m-gauge>
</div>
<div
class=
"col-md-4"
>
<div
class=
"col-md-3"
>
<div
class=
"text-num-model"
>
<div
class=
"value-p"
>
<strong
:style=
"
{color:color[$index]}">
{{
item
.
resInfo
.
diskAvailable
.
toFixed
(
2
)
}}
</strong>
</div>
<div
class=
"text-1"
>
diskAvailable(GB)
</div>
</div>
</div>
<div
class=
"col-md-3"
>
<div
class=
"text-num-model"
>
<div
class=
"value-p"
>
<strong
:style=
"
{color:color[$index]}">
{{
item
.
resInfo
.
loadAverage
>
0
?
item
.
resInfo
.
loadAverage
.
toFixed
(
2
):
0
}}
</strong>
...
...
dolphinscheduler-ui/src/js/conf/home/pages/monitor/pages/servers/worker.vue
浏览文件 @
930c7d4f
...
...
@@ -30,21 +30,31 @@
</div>
</div>
<div
class=
"row-cont"
>
<div
class=
"col-md-
4
"
>
<div
class=
"col-md-
3
"
>
<m-gauge
:value=
"(item.resInfo.cpuUsage * 100).toFixed(2)"
:name=
"'cpuUsage'"
:id=
"'gauge-cpu-' + item.id"
>
</m-gauge>
</div>
<div
class=
"col-md-
4
"
>
<div
class=
"col-md-
3
"
>
<m-gauge
:value=
"(item.resInfo.memoryUsage * 100).toFixed(2)"
:name=
"'memoryUsage'"
:id=
"'gauge-memory-' + item.id"
>
</m-gauge>
</div>
<div
class=
"col-md-4"
>
<div
class=
"col-md-3"
>
<div
class=
"text-num-model"
>
<div
class=
"value-p"
>
<strong
:style=
"
{color:color[$index]}">
{{
item
.
resInfo
.
diskAvailable
.
toFixed
(
2
)
}}
</strong>
</div>
<div
class=
"text-1"
>
diskAvailable(GB)
</div>
</div>
</div>
<div
class=
"col-md-3"
>
<div
class=
"text-num-model"
>
<div
class=
"value-p"
>
<strong
:style=
"
{color:color[$index]}">
{{
item
.
resInfo
.
loadAverage
>
0
?
item
.
resInfo
.
loadAverage
.
toFixed
(
2
):
0
}}
</strong>
...
...
dolphinscheduler-ui/src/js/module/i18n/locale/en_US.js
浏览文件 @
930c7d4f
...
...
@@ -197,6 +197,7 @@ export default {
'
Zk registration directory
'
:
'
Zk registration directory
'
,
cpuUsage
:
'
cpuUsage
'
,
memoryUsage
:
'
memoryUsage
'
,
diskAvailable
:
'
diskAvailable
'
,
'
Last heartbeat time
'
:
'
Last heartbeat time
'
,
'
Edit Tenant
'
:
'
Edit Tenant
'
,
'
OS Tenant Code
'
:
'
OS Tenant Code
'
,
...
...
dolphinscheduler-ui/src/js/module/i18n/locale/zh_CN.js
浏览文件 @
930c7d4f
...
...
@@ -196,6 +196,7 @@ export default {
'
Zk registration directory
'
:
'
zk注册目录
'
,
cpuUsage
:
'
cpuUsage
'
,
memoryUsage
:
'
memoryUsage
'
,
diskAvailable
:
'
diskAvailable
'
,
'
Last heartbeat time
'
:
'
最后心跳时间
'
,
'
Edit Tenant
'
:
'
编辑租户
'
,
'
OS Tenant Code
'
:
'
操作系统租户
'
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录