This is an automated email from the ASF dual-hosted git repository. marklau99 pushed a commit to branch IOTDB-5517 in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 7fcd8085f91af4c565d4ba1974ba8a2c9da52f09 Author: Liu Xuxin <[email protected]> AuthorDate: Fri Feb 17 19:49:15 2023 +0800 collect sector size from system --- .../iotdb/confignode/service/ConfigNode.java | 3 +- .../iotdb/metrics/metricsets/disk/DiskMetrics.java | 4 +- .../metricsets/disk/IDiskMetricsManager.java | 87 ++++++++++---- .../metricsets/disk/LinuxDiskMetricsManager.java | 128 ++++++++++++++------- .../metricsets/disk/MacDiskMetricsManager.java | 116 +------------------ .../metricsets/disk/WindowsDiskMetricsManager.java | 116 +------------------ .../db/service/metrics/DataNodeMetricsHelper.java | 3 +- 7 files changed, 161 insertions(+), 296 deletions(-) diff --git a/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNode.java b/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNode.java index 2e8426abcc..139bf1f32d 100644 --- a/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNode.java +++ b/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNode.java @@ -21,6 +21,7 @@ package org.apache.iotdb.confignode.service; import org.apache.iotdb.common.rpc.thrift.TConfigNodeLocation; import org.apache.iotdb.common.rpc.thrift.TEndPoint; import org.apache.iotdb.common.rpc.thrift.TSStatus; +import org.apache.iotdb.commons.conf.IoTDBConstant; import org.apache.iotdb.commons.exception.StartupException; import org.apache.iotdb.commons.service.JMXService; import org.apache.iotdb.commons.service.RegisterManager; @@ -232,7 +233,7 @@ public class ConfigNode implements ConfigNodeMBean { MetricService.getInstance().addMetricSet(new LogbackMetrics()); MetricService.getInstance().addMetricSet(new ProcessMetrics()); MetricService.getInstance().addMetricSet(new SystemMetrics(false)); - MetricService.getInstance().addMetricSet(new DiskMetrics("ConfigNode")); + MetricService.getInstance().addMetricSet(new DiskMetrics(IoTDBConstant.CN_ROLE)); LOGGER.info("Successfully setup internal services."); } diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/DiskMetrics.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/DiskMetrics.java index 392c27c05f..1ee4f830ae 100644 --- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/DiskMetrics.java +++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/DiskMetrics.java @@ -157,7 +157,7 @@ public class DiskMetrics implements IMetricSet { DISK_IO_SECTOR_NUM, MetricLevel.IMPORTANT, diskMetricsManager, - x -> x.getAvgSectorCountOfEachReadForDisk().getOrDefault(diskID, 0.0).longValue(), + x -> x.getAvgSizeOfEachReadForDisk().getOrDefault(diskID, 0.0).longValue(), TYPE, READ, NAME, @@ -166,7 +166,7 @@ public class DiskMetrics implements IMetricSet { DISK_IO_SECTOR_NUM, MetricLevel.IMPORTANT, diskMetricsManager, - x -> x.getAvgSectorCountOfEachWriteForDisk().getOrDefault(diskID, 0.0).longValue(), + x -> x.getAvgSizeOfEachWriteForDisk().getOrDefault(diskID, 0.0).longValue(), TYPE, WRITE, NAME, diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/IDiskMetricsManager.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/IDiskMetricsManager.java index 5ba69f04f9..0a2e7c04c0 100644 --- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/IDiskMetricsManager.java +++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/IDiskMetricsManager.java @@ -19,54 +19,97 @@ package org.apache.iotdb.metrics.metricsets.disk; +import java.util.Collections; import java.util.Map; import java.util.Set; public interface IDiskMetricsManager { - Map<String, Long> getReadDataSizeForDisk(); + default Map<String, Long> getReadDataSizeForDisk() { + return Collections.emptyMap(); + } - Map<String, Long> getWriteDataSizeForDisk(); + default Map<String, Long> getWriteDataSizeForDisk() { + return Collections.emptyMap(); + } - Map<String, Long> getReadOperationCountForDisk(); + default Map<String, Long> getReadOperationCountForDisk() { + return Collections.emptyMap(); + } - Map<String, Long> getWriteOperationCountForDisk(); + default Map<String, Long> getWriteOperationCountForDisk() { + return Collections.emptyMap(); + } - Map<String, Long> getMergedWriteOperationForDisk(); + default Map<String, Long> getMergedWriteOperationForDisk() { + return Collections.emptyMap(); + } - Map<String, Long> getMergedReadOperationForDisk(); + default Map<String, Long> getMergedReadOperationForDisk() { + return Collections.emptyMap(); + } - Map<String, Long> getReadCostTimeForDisk(); + default Map<String, Long> getReadCostTimeForDisk() { + return Collections.emptyMap(); + } - Map<String, Long> getWriteCostTimeForDisk(); + default Map<String, Long> getWriteCostTimeForDisk() { + return Collections.emptyMap(); + } - Map<String, Long> getIoUtilsPercentage(); + default Map<String, Long> getIoUtilsPercentage() { + return Collections.emptyMap(); + } - Map<String, Double> getAvgReadCostTimeOfEachOpsForDisk(); + default Map<String, Double> getAvgReadCostTimeOfEachOpsForDisk() { + return Collections.emptyMap(); + } - Map<String, Double> getAvgWriteCostTimeOfEachOpsForDisk(); + default Map<String, Double> getAvgWriteCostTimeOfEachOpsForDisk() { + return Collections.emptyMap(); + } - Map<String, Double> getAvgSectorCountOfEachReadForDisk(); + default Map<String, Double> getAvgSizeOfEachReadForDisk() { + return Collections.emptyMap(); + } - Map<String, Double> getAvgSectorCountOfEachWriteForDisk(); + default Map<String, Double> getAvgSizeOfEachWriteForDisk() { + return Collections.emptyMap(); + } - Map<String, Long> getQueueSizeForDisk(); + default Map<String, Long> getQueueSizeForDisk() { + return Collections.emptyMap(); + } - long getActualReadDataSizeForProcess(); + default long getActualReadDataSizeForProcess() { + return 0L; + } - long getActualWriteDataSizeForProcess(); + default long getActualWriteDataSizeForProcess() { + return 0L; + } - long getReadOpsCountForProcess(); + default long getReadOpsCountForProcess() { + return 0L; + } - long getWriteOpsCountForProcess(); + default long getWriteOpsCountForProcess() { + return 0L; + } - long getAttemptReadSizeForProcess(); + default long getAttemptReadSizeForProcess() { + return 0L; + } - long getAttemptWriteSizeForProcess(); + default long getAttemptWriteSizeForProcess() { + return 0L; + } - Set<String> getDiskIds(); + default Set<String> getDiskIds() { + return Collections.emptySet(); + } /** Return different implementation of DiskMetricsManager according to OS type. */ - public static IDiskMetricsManager getDiskMetricsManager() { + static IDiskMetricsManager getDiskMetricsManager() { String os = System.getProperty("os.name").toLowerCase(); if (os.startsWith("windows")) { diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/LinuxDiskMetricsManager.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/LinuxDiskMetricsManager.java index 0e29ce95b8..3c5455a50c 100644 --- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/LinuxDiskMetricsManager.java +++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/LinuxDiskMetricsManager.java @@ -29,7 +29,6 @@ import java.io.IOException; import java.nio.file.Files; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.Objects; @@ -59,6 +58,9 @@ public class LinuxDiskMetricsManager implements IDiskMetricsManager { @SuppressWarnings("squid:S1075") private static final String DISK_ID_PATH = "/sys/block"; + @SuppressWarnings("squid:S1075") + private static final String DISK_SECTOR_SIZE_PATH = "/sys/block/%s/queue/hw_sector_size"; + private final String processIoStatusPath; private static final int DISK_ID_OFFSET = 3; private static final int DISK_READ_COUNT_OFFSET = 4; @@ -73,27 +75,28 @@ public class LinuxDiskMetricsManager implements IDiskMetricsManager { private static final int DISK_IO_TOTAL_TIME_OFFSET = 13; private static final long UPDATE_SMALLEST_INTERVAL = 10000L; private Set<String> diskIdSet; + private final Map<String, Integer> diskSectorSizeMap; private long lastUpdateTime = 0L; private long updateInterval = 1L; // Disk IO status structure - private final Map<String, Long> lastReadOperationCountForDisk = new HashMap<>(); - private final Map<String, Long> lastWriteOperationCountForDisk = new HashMap<>(); - private final Map<String, Long> lastReadTimeCostForDisk = new HashMap<>(); - private final Map<String, Long> lastWriteTimeCostForDisk = new HashMap<>(); - private final Map<String, Long> lastMergedReadCountForDisk = new HashMap<>(); - private final Map<String, Long> lastMergedWriteCountForDisk = new HashMap<>(); - private final Map<String, Long> lastReadSectorCountForDisk = new HashMap<>(); - private final Map<String, Long> lastWriteSectorCountForDisk = new HashMap<>(); - private final Map<String, Long> queueSizeMap = new HashMap<>(); - private final Map<String, Long> lastIoBusyTimeForDisk = new HashMap<>(); - private final Map<String, Long> incrementReadOperationCountForDisk = new HashMap<>(); - private final Map<String, Long> incrementWriteOperationCountForDisk = new HashMap<>(); - private final Map<String, Long> incrementReadTimeCostForDisk = new HashMap<>(); - private final Map<String, Long> incrementWriteTimeCostForDisk = new HashMap<>(); - private final Map<String, Long> incrementReadSectorCountForDisk = new HashMap<>(); - private final Map<String, Long> incrementWriteSectorCountForDisk = new HashMap<>(); - private final Map<String, Long> incrementIoBusyTimeForDisk = new HashMap<>(); + private final Map<String, Long> lastReadOperationCountForDisk; + private final Map<String, Long> lastWriteOperationCountForDisk; + private final Map<String, Long> lastReadTimeCostForDisk; + private final Map<String, Long> lastWriteTimeCostForDisk; + private final Map<String, Long> lastMergedReadCountForDisk; + private final Map<String, Long> lastMergedWriteCountForDisk; + private final Map<String, Long> lastReadSectorCountForDisk; + private final Map<String, Long> lastWriteSectorCountForDisk; + private final Map<String, Long> lastIoBusyTimeForDisk; + private final Map<String, Long> incrementReadOperationCountForDisk; + private final Map<String, Long> incrementWriteOperationCountForDisk; + private final Map<String, Long> incrementReadTimeCostForDisk; + private final Map<String, Long> incrementWriteTimeCostForDisk; + private final Map<String, Long> incrementReadSectorCountForDisk; + private final Map<String, Long> incrementWriteSectorCountForDisk; + private final Map<String, Long> incrementIoBusyTimeForDisk; + private final Map<String, Long> queueSizeMap; // Process IO status structure private long lastReallyReadSizeForProcess = 0L; @@ -104,19 +107,38 @@ public class LinuxDiskMetricsManager implements IDiskMetricsManager { private long lastWriteOpsCountForProcess = 0L; public LinuxDiskMetricsManager() { - super(); processIoStatusPath = String.format( "/proc/%s/io", MetricConfigDescriptor.getInstance().getMetricConfig().getPid()); + collectDiskId(); + diskSectorSizeMap = new HashMap<>(diskIdSet.size()); + collectDiskInfo(); + lastReadOperationCountForDisk = new HashMap<>(diskIdSet.size()); + lastWriteOperationCountForDisk = new HashMap<>(diskIdSet.size()); + lastReadTimeCostForDisk = new HashMap<>(diskIdSet.size()); + lastWriteTimeCostForDisk = new HashMap<>(diskIdSet.size()); + lastMergedReadCountForDisk = new HashMap<>(diskIdSet.size()); + lastMergedWriteCountForDisk = new HashMap<>(diskIdSet.size()); + lastReadSectorCountForDisk = new HashMap<>(diskIdSet.size()); + lastWriteSectorCountForDisk = new HashMap<>(diskIdSet.size()); + lastIoBusyTimeForDisk = new HashMap<>(diskIdSet.size()); + incrementReadOperationCountForDisk = new HashMap<>(diskIdSet.size()); + incrementWriteOperationCountForDisk = new HashMap<>(diskIdSet.size()); + incrementReadTimeCostForDisk = new HashMap<>(diskIdSet.size()); + incrementWriteTimeCostForDisk = new HashMap<>(diskIdSet.size()); + incrementReadSectorCountForDisk = new HashMap<>(diskIdSet.size()); + incrementWriteSectorCountForDisk = new HashMap<>(diskIdSet.size()); + incrementIoBusyTimeForDisk = new HashMap<>(diskIdSet.size()); + queueSizeMap = new HashMap<>(diskIdSet.size()); } @Override public Map<String, Long> getReadDataSizeForDisk() { checkUpdate(); - Map<String, Long> readDataMap = new HashMap<>(); + Map<String, Long> readDataMap = new HashMap<>(diskIdSet.size()); for (Map.Entry<String, Long> entry : lastReadSectorCountForDisk.entrySet()) { - // the data size in each sector is 512 byte - readDataMap.put(entry.getKey(), entry.getValue() * 512 / 1024); + int sectorSize = diskSectorSizeMap.getOrDefault(entry.getKey(), 512); + readDataMap.put(entry.getKey(), entry.getValue() * sectorSize / 1024); } return readDataMap; } @@ -124,10 +146,10 @@ public class LinuxDiskMetricsManager implements IDiskMetricsManager { @Override public Map<String, Long> getWriteDataSizeForDisk() { checkUpdate(); - Map<String, Long> writeDataMap = new HashMap<>(); + Map<String, Long> writeDataMap = new HashMap<>(diskIdSet.size()); for (Map.Entry<String, Long> entry : lastWriteSectorCountForDisk.entrySet()) { - // the data size in each sector is 512 byte - writeDataMap.put(entry.getKey(), entry.getValue() * 512 / 1024); + int sectorSize = diskSectorSizeMap.getOrDefault(entry.getKey(), 512); + writeDataMap.put(entry.getKey(), entry.getValue() * sectorSize / 1024); } return writeDataMap; } @@ -155,7 +177,7 @@ public class LinuxDiskMetricsManager implements IDiskMetricsManager { @Override public Map<String, Long> getIoUtilsPercentage() { - Map<String, Long> utilsMap = new HashMap<>(); + Map<String, Long> utilsMap = new HashMap<>(diskIdSet.size()); for (Map.Entry<String, Long> entry : incrementIoBusyTimeForDisk.entrySet()) { utilsMap.put(entry.getKey(), (long) (entry.getValue() * 10000.0 / updateInterval)); } @@ -164,7 +186,7 @@ public class LinuxDiskMetricsManager implements IDiskMetricsManager { @Override public Map<String, Double> getAvgReadCostTimeOfEachOpsForDisk() { - Map<String, Double> avgReadTimeCostMap = new HashMap<>(); + Map<String, Double> avgReadTimeCostMap = new HashMap<>(diskIdSet.size()); for (Map.Entry<String, Long> readCostEntry : incrementReadTimeCostForDisk.entrySet()) { long writeOpsCount = incrementReadOperationCountForDisk.getOrDefault(readCostEntry.getKey(), 1L); @@ -177,7 +199,7 @@ public class LinuxDiskMetricsManager implements IDiskMetricsManager { @Override public Map<String, Double> getAvgWriteCostTimeOfEachOpsForDisk() { - Map<String, Double> avgWriteTimeCostMap = new HashMap<>(); + Map<String, Double> avgWriteTimeCostMap = new HashMap<>(diskIdSet.size()); for (Map.Entry<String, Long> writeCostEntry : incrementWriteTimeCostForDisk.entrySet()) { long writeOpsCount = incrementWriteOperationCountForDisk.getOrDefault(writeCostEntry.getKey(), 1L); @@ -189,29 +211,32 @@ public class LinuxDiskMetricsManager implements IDiskMetricsManager { } @Override - public Map<String, Double> getAvgSectorCountOfEachReadForDisk() { - Map<String, Double> avgSectorSizeOfRead = new HashMap<>(); + public Map<String, Double> getAvgSizeOfEachReadForDisk() { + Map<String, Double> avgSizeOfReadMap = new HashMap<>(diskIdSet.size()); for (Map.Entry<String, Long> readSectorSizeEntry : incrementReadSectorCountForDisk.entrySet()) { long readOpsCount = incrementReadOperationCountForDisk.getOrDefault(readSectorSizeEntry.getKey(), 1L); - avgSectorSizeOfRead.put( - readSectorSizeEntry.getKey(), ((double) readSectorSizeEntry.getValue()) / readOpsCount); + int sectorSize = diskSectorSizeMap.getOrDefault(readSectorSizeEntry.getKey(), 512); + avgSizeOfReadMap.put( + readSectorSizeEntry.getKey(), + ((double) readSectorSizeEntry.getValue()) * sectorSize / 1024.0 / readOpsCount); } - return avgSectorSizeOfRead; + return avgSizeOfReadMap; } @Override - public Map<String, Double> getAvgSectorCountOfEachWriteForDisk() { - Map<String, Double> avgSectorSizeOfWrite = new HashMap<>(); + public Map<String, Double> getAvgSizeOfEachWriteForDisk() { + Map<String, Double> avgSizeOfWriteMap = new HashMap<>(diskIdSet.size()); for (Map.Entry<String, Long> writeSectorSizeEntry : incrementWriteSectorCountForDisk.entrySet()) { long writeOpsCount = incrementWriteOperationCountForDisk.getOrDefault(writeSectorSizeEntry.getKey(), 1L); - avgSectorSizeOfWrite.put( + int sectorSize = diskSectorSizeMap.getOrDefault(writeSectorSizeEntry.getKey(), 512); + avgSizeOfWriteMap.put( writeSectorSizeEntry.getKey(), - ((double) writeSectorSizeEntry.getValue()) / writeOpsCount); + ((double) writeSectorSizeEntry.getValue()) * sectorSize / 1024.0 / writeOpsCount); } - return avgSectorSizeOfWrite; + return avgSizeOfWriteMap; } @Override @@ -261,9 +286,13 @@ public class LinuxDiskMetricsManager implements IDiskMetricsManager { @Override public Set<String> getDiskIds() { + return diskIdSet; + } + + private void collectDiskId() { File diskIdFolder = new File(DISK_ID_PATH); if (!diskIdFolder.exists()) { - return Collections.emptySet(); + return; } diskIdSet = new ArrayList<>(Arrays.asList(Objects.requireNonNull(diskIdFolder.listFiles()))) @@ -271,7 +300,26 @@ public class LinuxDiskMetricsManager implements IDiskMetricsManager { .filter(x -> !x.getName().startsWith("loop") && !x.getName().startsWith("ram")) .map(File::getName) .collect(Collectors.toSet()); - return diskIdSet; + } + + private void collectDiskInfo() { + for (String diskId : diskIdSet) { + String diskSectorSizePath = String.format(DISK_SECTOR_SIZE_PATH, diskId); + File diskSectorSizeFile = new File(diskSectorSizePath); + try (Scanner scanner = new Scanner(Files.newInputStream(diskSectorSizeFile.toPath()))) { + if (scanner.hasNext()) { + int sectorSize = Integer.parseInt(scanner.nextLine()); + diskSectorSizeMap.put(diskId, sectorSize); + } else { + // use 512 byte as default value + diskSectorSizeMap.put(diskId, 512); + } + } catch (IOException e) { + log.warn("Failed to get the sector size of {}", diskId, e); + // use 512 bytes as default value + diskSectorSizeMap.put(diskId, 512); + } + } } private void updateInfo() { diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/MacDiskMetricsManager.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/MacDiskMetricsManager.java index 7b212ac119..f5efff5368 100644 --- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/MacDiskMetricsManager.java +++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/MacDiskMetricsManager.java @@ -19,119 +19,5 @@ package org.apache.iotdb.metrics.metricsets.disk; -import java.util.Collections; -import java.util.Map; -import java.util.Set; - /** Disk Metrics Manager for macOS, not implemented yet. */ -public class MacDiskMetricsManager implements IDiskMetricsManager { - - public MacDiskMetricsManager() { - super(); - } - - @Override - public Map<String, Long> getReadDataSizeForDisk() { - return Collections.emptyMap(); - } - - @Override - public Map<String, Long> getWriteDataSizeForDisk() { - return Collections.emptyMap(); - } - - @Override - public Map<String, Long> getReadOperationCountForDisk() { - return Collections.emptyMap(); - } - - @Override - public Map<String, Long> getWriteOperationCountForDisk() { - return Collections.emptyMap(); - } - - @Override - public Map<String, Long> getReadCostTimeForDisk() { - return Collections.emptyMap(); - } - - @Override - public Map<String, Long> getWriteCostTimeForDisk() { - return Collections.emptyMap(); - } - - @Override - public Map<String, Long> getIoUtilsPercentage() { - return Collections.emptyMap(); - } - - @Override - public Map<String, Double> getAvgReadCostTimeOfEachOpsForDisk() { - return Collections.emptyMap(); - } - - @Override - public Map<String, Double> getAvgWriteCostTimeOfEachOpsForDisk() { - return Collections.emptyMap(); - } - - @Override - public Map<String, Double> getAvgSectorCountOfEachReadForDisk() { - return Collections.emptyMap(); - } - - @Override - public Map<String, Double> getAvgSectorCountOfEachWriteForDisk() { - return Collections.emptyMap(); - } - - @Override - public Map<String, Long> getQueueSizeForDisk() { - return Collections.emptyMap(); - } - - @Override - public Map<String, Long> getMergedWriteOperationForDisk() { - return Collections.emptyMap(); - } - - @Override - public Map<String, Long> getMergedReadOperationForDisk() { - return Collections.emptyMap(); - } - - @Override - public long getActualReadDataSizeForProcess() { - return 0; - } - - @Override - public long getActualWriteDataSizeForProcess() { - return 0; - } - - @Override - public long getReadOpsCountForProcess() { - return 0; - } - - @Override - public long getWriteOpsCountForProcess() { - return 0; - } - - @Override - public long getAttemptReadSizeForProcess() { - return 0; - } - - @Override - public long getAttemptWriteSizeForProcess() { - return 0; - } - - @Override - public Set<String> getDiskIds() { - return Collections.emptySet(); - } -} +public class MacDiskMetricsManager implements IDiskMetricsManager {} diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/WindowsDiskMetricsManager.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/WindowsDiskMetricsManager.java index 0668ba49b0..975576ac90 100644 --- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/WindowsDiskMetricsManager.java +++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/WindowsDiskMetricsManager.java @@ -19,119 +19,5 @@ package org.apache.iotdb.metrics.metricsets.disk; -import java.util.Collections; -import java.util.Map; -import java.util.Set; - /** Disk Metrics Manager for Windows system, not implemented yet. */ -public class WindowsDiskMetricsManager implements IDiskMetricsManager { - - public WindowsDiskMetricsManager() { - super(); - } - - @Override - public Map<String, Long> getReadDataSizeForDisk() { - return Collections.emptyMap(); - } - - @Override - public Map<String, Long> getWriteDataSizeForDisk() { - return Collections.emptyMap(); - } - - @Override - public Map<String, Long> getReadOperationCountForDisk() { - return Collections.emptyMap(); - } - - @Override - public Map<String, Long> getWriteOperationCountForDisk() { - return Collections.emptyMap(); - } - - @Override - public Map<String, Long> getMergedWriteOperationForDisk() { - return Collections.emptyMap(); - } - - @Override - public Map<String, Long> getMergedReadOperationForDisk() { - return Collections.emptyMap(); - } - - @Override - public Map<String, Long> getReadCostTimeForDisk() { - return Collections.emptyMap(); - } - - @Override - public Map<String, Long> getWriteCostTimeForDisk() { - return Collections.emptyMap(); - } - - @Override - public Map<String, Long> getIoUtilsPercentage() { - return Collections.emptyMap(); - } - - @Override - public Map<String, Double> getAvgReadCostTimeOfEachOpsForDisk() { - return Collections.emptyMap(); - } - - @Override - public Map<String, Double> getAvgWriteCostTimeOfEachOpsForDisk() { - return Collections.emptyMap(); - } - - @Override - public Map<String, Double> getAvgSectorCountOfEachReadForDisk() { - return Collections.emptyMap(); - } - - @Override - public Map<String, Double> getAvgSectorCountOfEachWriteForDisk() { - return Collections.emptyMap(); - } - - @Override - public Map<String, Long> getQueueSizeForDisk() { - return Collections.emptyMap(); - } - - @Override - public long getActualReadDataSizeForProcess() { - return 0; - } - - @Override - public long getActualWriteDataSizeForProcess() { - return 0; - } - - @Override - public long getReadOpsCountForProcess() { - return 0; - } - - @Override - public long getWriteOpsCountForProcess() { - return 0; - } - - @Override - public long getAttemptReadSizeForProcess() { - return 0; - } - - @Override - public long getAttemptWriteSizeForProcess() { - return 0; - } - - @Override - public Set<String> getDiskIds() { - return Collections.emptySet(); - } -} +public class WindowsDiskMetricsManager implements IDiskMetricsManager {} diff --git a/server/src/main/java/org/apache/iotdb/db/service/metrics/DataNodeMetricsHelper.java b/server/src/main/java/org/apache/iotdb/db/service/metrics/DataNodeMetricsHelper.java index 1bb74f4851..453f4f9933 100644 --- a/server/src/main/java/org/apache/iotdb/db/service/metrics/DataNodeMetricsHelper.java +++ b/server/src/main/java/org/apache/iotdb/db/service/metrics/DataNodeMetricsHelper.java @@ -19,6 +19,7 @@ package org.apache.iotdb.db.service.metrics; +import org.apache.iotdb.commons.conf.IoTDBConstant; import org.apache.iotdb.commons.service.metric.MetricService; import org.apache.iotdb.db.mpp.metric.DataExchangeCostMetricSet; import org.apache.iotdb.db.mpp.metric.DataExchangeCountMetricSet; @@ -40,7 +41,7 @@ public class DataNodeMetricsHelper { MetricService.getInstance().addMetricSet(new CompactionMetrics()); MetricService.getInstance().addMetricSet(new ProcessMetrics()); MetricService.getInstance().addMetricSet(new SystemMetrics(true)); - MetricService.getInstance().addMetricSet(new DiskMetrics("DataNode")); + MetricService.getInstance().addMetricSet(new DiskMetrics(IoTDBConstant.DN_ROLE)); // bind query related metrics MetricService.getInstance().addMetricSet(new QueryPlanCostMetricSet());
