Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
Iotdb
提交
6f7751bc
I
Iotdb
项目概览
apache
/
Iotdb
9 个月 前同步成功
通知
25
Star
3344
Fork
916
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
Iotdb
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
6f7751bc
编写于
8月 23, 2023
作者:
X
Xiangpeng Hu
提交者:
GitHub
8月 23, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[IOTDB-6082] Improve disk space metrics (#10925)
上级
332521a3
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
61 addition
and
29 deletion
+61
-29
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNode.java
.../java/org/apache/iotdb/confignode/service/ConfigNode.java
+2
-1
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
...e/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
+15
-0
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/DataNodeMetricsHelper.java
...pache/iotdb/db/service/metrics/DataNodeMetricsHelper.java
+2
-1
iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/system/SystemMetrics.java
...apache/iotdb/metrics/metricsets/system/SystemMetrics.java
+42
-27
未找到文件。
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNode.java
浏览文件 @
6f7751bc
...
@@ -274,7 +274,8 @@ public class ConfigNode implements ConfigNodeMBean {
...
@@ -274,7 +274,8 @@ public class ConfigNode implements ConfigNodeMBean {
ArrayList
<
String
>
diskDirs
=
new
ArrayList
<>();
ArrayList
<
String
>
diskDirs
=
new
ArrayList
<>();
diskDirs
.
add
(
CONF
.
getSystemDir
());
diskDirs
.
add
(
CONF
.
getSystemDir
());
diskDirs
.
add
(
CONF
.
getConsensusDir
());
diskDirs
.
add
(
CONF
.
getConsensusDir
());
MetricService
.
getInstance
().
addMetricSet
(
new
SystemMetrics
(
diskDirs
));
SystemMetrics
.
getInstance
().
setDiskDirs
(
diskDirs
);
MetricService
.
getInstance
().
addMetricSet
(
SystemMetrics
.
getInstance
());
}
}
private
void
initCpuMetrics
()
{
private
void
initCpuMetrics
()
{
...
...
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/conf/IoTDBConfig.java
浏览文件 @
6f7751bc
...
@@ -20,6 +20,7 @@ package org.apache.iotdb.db.conf;
...
@@ -20,6 +20,7 @@ package org.apache.iotdb.db.conf;
import
org.apache.iotdb.common.rpc.thrift.TEndPoint
;
import
org.apache.iotdb.common.rpc.thrift.TEndPoint
;
import
org.apache.iotdb.commons.client.property.ClientPoolProperty.DefaultProperty
;
import
org.apache.iotdb.commons.client.property.ClientPoolProperty.DefaultProperty
;
import
org.apache.iotdb.commons.conf.CommonDescriptor
;
import
org.apache.iotdb.commons.conf.IoTDBConstant
;
import
org.apache.iotdb.commons.conf.IoTDBConstant
;
import
org.apache.iotdb.commons.utils.FileUtils
;
import
org.apache.iotdb.commons.utils.FileUtils
;
import
org.apache.iotdb.commons.utils.TestOnly
;
import
org.apache.iotdb.commons.utils.TestOnly
;
...
@@ -39,6 +40,7 @@ import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.constant
...
@@ -39,6 +40,7 @@ import org.apache.iotdb.db.storageengine.dataregion.compaction.selector.constant
import
org.apache.iotdb.db.storageengine.dataregion.tsfile.timeindex.TimeIndexLevel
;
import
org.apache.iotdb.db.storageengine.dataregion.tsfile.timeindex.TimeIndexLevel
;
import
org.apache.iotdb.db.storageengine.dataregion.wal.utils.WALMode
;
import
org.apache.iotdb.db.storageengine.dataregion.wal.utils.WALMode
;
import
org.apache.iotdb.db.utils.datastructure.TVListSortAlgorithm
;
import
org.apache.iotdb.db.utils.datastructure.TVListSortAlgorithm
;
import
org.apache.iotdb.metrics.metricsets.system.SystemMetrics
;
import
org.apache.iotdb.rpc.RpcTransportFactory
;
import
org.apache.iotdb.rpc.RpcTransportFactory
;
import
org.apache.iotdb.rpc.RpcUtils
;
import
org.apache.iotdb.rpc.RpcUtils
;
import
org.apache.iotdb.tsfile.common.conf.TSFileDescriptor
;
import
org.apache.iotdb.tsfile.common.conf.TSFileDescriptor
;
...
@@ -54,6 +56,7 @@ import org.slf4j.LoggerFactory;
...
@@ -54,6 +56,7 @@ import org.slf4j.LoggerFactory;
import
java.io.File
;
import
java.io.File
;
import
java.io.IOException
;
import
java.io.IOException
;
import
java.lang.reflect.Field
;
import
java.lang.reflect.Field
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.Collections
;
import
java.util.Collections
;
import
java.util.HashSet
;
import
java.util.HashSet
;
...
@@ -1256,6 +1259,18 @@ public class IoTDBConfig {
...
@@ -1256,6 +1259,18 @@ public class IoTDBConfig {
}
}
}
}
this
.
tierDataDirs
=
tierDataDirs
;
this
.
tierDataDirs
=
tierDataDirs
;
reloadSystemMetrics
();
}
void
reloadSystemMetrics
()
{
ArrayList
<
String
>
diskDirs
=
new
ArrayList
<>();
diskDirs
.
add
(
IoTDBDescriptor
.
getInstance
().
getConfig
().
getSystemDir
());
diskDirs
.
add
(
IoTDBDescriptor
.
getInstance
().
getConfig
().
getConsensusDir
());
diskDirs
.
addAll
(
Arrays
.
asList
(
IoTDBDescriptor
.
getInstance
().
getConfig
().
getDataDirs
()));
diskDirs
.
addAll
(
Arrays
.
asList
(
CommonDescriptor
.
getInstance
().
getConfig
().
getWalDirs
()));
diskDirs
.
add
(
CommonDescriptor
.
getInstance
().
getConfig
().
getSyncDir
());
diskDirs
.
add
(
IoTDBDescriptor
.
getInstance
().
getConfig
().
getSortTmpDir
());
SystemMetrics
.
getInstance
().
setDiskDirs
(
diskDirs
);
}
}
// if IOTDB_DATA_HOME is not set, then we keep dataHomeDir prefix being the same with IOTDB_HOME
// if IOTDB_DATA_HOME is not set, then we keep dataHomeDir prefix being the same with IOTDB_HOME
...
...
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/DataNodeMetricsHelper.java
浏览文件 @
6f7751bc
...
@@ -91,7 +91,8 @@ public class DataNodeMetricsHelper {
...
@@ -91,7 +91,8 @@ public class DataNodeMetricsHelper {
diskDirs
.
addAll
(
Arrays
.
asList
(
CommonDescriptor
.
getInstance
().
getConfig
().
getWalDirs
()));
diskDirs
.
addAll
(
Arrays
.
asList
(
CommonDescriptor
.
getInstance
().
getConfig
().
getWalDirs
()));
diskDirs
.
add
(
CommonDescriptor
.
getInstance
().
getConfig
().
getSyncDir
());
diskDirs
.
add
(
CommonDescriptor
.
getInstance
().
getConfig
().
getSyncDir
());
diskDirs
.
add
(
IoTDBDescriptor
.
getInstance
().
getConfig
().
getSortTmpDir
());
diskDirs
.
add
(
IoTDBDescriptor
.
getInstance
().
getConfig
().
getSortTmpDir
());
MetricService
.
getInstance
().
addMetricSet
(
new
SystemMetrics
(
diskDirs
));
SystemMetrics
.
getInstance
().
setDiskDirs
(
diskDirs
);
MetricService
.
getInstance
().
addMetricSet
(
SystemMetrics
.
getInstance
());
}
}
private
static
void
initCpuMetrics
()
{
private
static
void
initCpuMetrics
()
{
...
...
iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/system/SystemMetrics.java
浏览文件 @
6f7751bc
...
@@ -37,22 +37,49 @@ import java.nio.file.FileStore;
...
@@ -37,22 +37,49 @@ import java.nio.file.FileStore;
import
java.nio.file.Files
;
import
java.nio.file.Files
;
import
java.nio.file.Path
;
import
java.nio.file.Path
;
import
java.nio.file.Paths
;
import
java.nio.file.Paths
;
import
java.util.
ArrayList
;
import
java.util.
Collections
;
import
java.util.HashSet
;
import
java.util.HashSet
;
import
java.util.List
;
import
java.util.Set
;
import
java.util.Set
;
import
java.util.concurrent.atomic.AtomicReference
;
public
class
SystemMetrics
implements
IMetricSet
{
public
class
SystemMetrics
implements
IMetricSet
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
SystemMetrics
.
class
);
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
SystemMetrics
.
class
);
private
static
final
String
SYSTEM
=
"system"
;
private
static
final
String
SYSTEM
=
"system"
;
private
final
com
.
sun
.
management
.
OperatingSystemMXBean
osMxBean
;
private
final
com
.
sun
.
management
.
OperatingSystemMXBean
osMxBean
;
private
final
Set
<
FileStore
>
fileStores
=
new
HashSet
<>();
private
final
Set
<
FileStore
>
fileStores
=
new
HashSet
<>();
private
final
ArrayList
<
String
>
diskDirs
;
private
final
AtomicReference
<
List
<
String
>>
diskDirs
=
new
AtomicReference
<>(
Collections
.
emptyList
());
public
SystemMetrics
(
ArrayList
<
String
>
diskDirs
)
{
public
SystemMetrics
()
{
this
.
diskDirs
=
diskDirs
;
this
.
osMxBean
=
(
OperatingSystemMXBean
)
ManagementFactory
.
getOperatingSystemMXBean
();
this
.
osMxBean
=
(
OperatingSystemMXBean
)
ManagementFactory
.
getOperatingSystemMXBean
();
}
}
public
void
setDiskDirs
(
List
<
String
>
diskDirs
)
{
this
.
diskDirs
.
set
(
diskDirs
);
for
(
String
diskDir
:
this
.
diskDirs
.
get
())
{
if
(!
FSUtils
.
isLocal
(
diskDir
))
{
continue
;
}
Path
path
=
Paths
.
get
(
diskDir
);
FileStore
fileStore
=
null
;
try
{
fileStore
=
Files
.
getFileStore
(
path
);
}
catch
(
IOException
e
)
{
// check parent if path is not exists
path
=
path
.
getParent
();
try
{
fileStore
=
Files
.
getFileStore
(
path
);
}
catch
(
IOException
innerException
)
{
logger
.
error
(
"Failed to get storage path of {}, because"
,
diskDir
,
innerException
);
}
}
if
(
null
!=
fileStore
)
{
fileStores
.
add
(
fileStore
);
}
}
}
@Override
@Override
public
void
bindTo
(
AbstractMetricService
metricService
)
{
public
void
bindTo
(
AbstractMetricService
metricService
)
{
collectSystemCpuInfo
(
metricService
);
collectSystemCpuInfo
(
metricService
);
...
@@ -163,28 +190,6 @@ public class SystemMetrics implements IMetricSet {
...
@@ -163,28 +190,6 @@ public class SystemMetrics implements IMetricSet {
}
}
private
void
collectSystemDiskInfo
(
AbstractMetricService
metricService
)
{
private
void
collectSystemDiskInfo
(
AbstractMetricService
metricService
)
{
for
(
String
diskDir
:
diskDirs
)
{
if
(!
FSUtils
.
isLocal
(
diskDir
))
{
continue
;
}
Path
path
=
Paths
.
get
(
diskDir
);
FileStore
fileStore
=
null
;
try
{
fileStore
=
Files
.
getFileStore
(
path
);
}
catch
(
IOException
e
)
{
// check parent if path is not exists
path
=
path
.
getParent
();
try
{
fileStore
=
Files
.
getFileStore
(
path
);
}
catch
(
IOException
innerException
)
{
logger
.
error
(
"Failed to get storage path of {}, because"
,
diskDir
,
innerException
);
}
}
if
(
null
!=
fileStore
)
{
fileStores
.
add
(
fileStore
);
}
}
metricService
.
createAutoGauge
(
metricService
.
createAutoGauge
(
SystemMetric
.
SYS_DISK_TOTAL_SPACE
.
toString
(),
SystemMetric
.
SYS_DISK_TOTAL_SPACE
.
toString
(),
MetricLevel
.
CORE
,
MetricLevel
.
CORE
,
...
@@ -213,7 +218,7 @@ public class SystemMetrics implements IMetricSet {
...
@@ -213,7 +218,7 @@ public class SystemMetrics implements IMetricSet {
SystemTag
.
NAME
.
toString
(),
SystemTag
.
NAME
.
toString
(),
SYSTEM
);
SYSTEM
);
diskDirs
.
clear
();
diskDirs
.
get
().
clear
();
fileStores
.
clear
();
fileStores
.
clear
();
}
}
...
@@ -240,4 +245,14 @@ public class SystemMetrics implements IMetricSet {
...
@@ -240,4 +245,14 @@ public class SystemMetrics implements IMetricSet {
}
}
return
sysFreeSpace
;
return
sysFreeSpace
;
}
}
public
static
SystemMetrics
getInstance
()
{
return
SystemMetricsHolder
.
INSTANCE
;
}
private
static
class
SystemMetricsHolder
{
private
static
final
SystemMetrics
INSTANCE
=
new
SystemMetrics
();
private
SystemMetricsHolder
()
{}
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录