in iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/DiskMetrics.java [52:235]
public void bindTo(AbstractMetricService metricService) {
// metrics for disks
Set<String> diskIDs = diskMetricsManager.getDiskIds();
for (String diskID : diskIDs) {
metricService.createAutoGauge(
SystemMetric.DISK_IO_SIZE.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getReadDataSizeForDisk().getOrDefault(diskID, 0.0),
SystemTag.TYPE.toString(),
READ,
SystemTag.DISK.toString(),
diskID);
metricService.createAutoGauge(
SystemMetric.DISK_IO_SIZE.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getWriteDataSizeForDisk().getOrDefault(diskID, 0.0),
SystemTag.TYPE.toString(),
WRITE,
SystemTag.DISK.toString(),
diskID);
metricService.createAutoGauge(
SystemMetric.DISK_IO_OPS.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getReadOperationCountForDisk().getOrDefault(diskID, 0L),
SystemTag.TYPE.toString(),
READ,
SystemTag.DISK.toString(),
diskID);
metricService.createAutoGauge(
SystemMetric.DISK_IO_OPS.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getWriteOperationCountForDisk().getOrDefault(diskID, 0L),
SystemTag.TYPE.toString(),
WRITE,
SystemTag.DISK.toString(),
diskID);
metricService.createAutoGauge(
SystemMetric.DISK_IO_OPS.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getMergedReadOperationForDisk().getOrDefault(diskID, 0L),
SystemTag.TYPE.toString(),
MERGED_READ,
SystemTag.DISK.toString(),
diskID);
metricService.createAutoGauge(
SystemMetric.DISK_IO_OPS.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getMergedWriteOperationForDisk().getOrDefault(diskID, 0L),
SystemTag.TYPE.toString(),
MERGED_WRITE,
SystemTag.DISK.toString(),
diskID);
metricService.createAutoGauge(
SystemMetric.DISK_IO_TIME.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getReadCostTimeForDisk().getOrDefault(diskID, 0L),
SystemTag.TYPE.toString(),
READ,
SystemTag.DISK.toString(),
diskID);
metricService.createAutoGauge(
SystemMetric.DISK_IO_TIME.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getWriteCostTimeForDisk().getOrDefault(diskID, 0L),
SystemTag.TYPE.toString(),
WRITE,
SystemTag.DISK.toString(),
diskID);
metricService.createAutoGauge(
SystemMetric.DISK_IO_AVG_TIME.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getAvgReadCostTimeOfEachOpsForDisk().getOrDefault(diskID, 0.0),
SystemTag.TYPE.toString(),
READ,
SystemTag.DISK.toString(),
diskID);
metricService.createAutoGauge(
SystemMetric.DISK_IO_AVG_TIME.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getAvgWriteCostTimeOfEachOpsForDisk().getOrDefault(diskID, 0.0),
SystemTag.TYPE.toString(),
WRITE,
SystemTag.DISK.toString(),
diskID);
metricService.createAutoGauge(
SystemMetric.DISK_IO_AVG_SIZE.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getAvgSizeOfEachReadForDisk().getOrDefault(diskID, 0.0),
SystemTag.TYPE.toString(),
READ,
SystemTag.DISK.toString(),
diskID);
metricService.createAutoGauge(
SystemMetric.DISK_IO_AVG_SIZE.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getAvgSizeOfEachWriteForDisk().getOrDefault(diskID, 0.0),
SystemTag.TYPE.toString(),
WRITE,
SystemTag.DISK.toString(),
diskID);
metricService.createAutoGauge(
SystemMetric.DISK_IO_BUSY_PERCENTAGE.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getIoUtilsPercentage().getOrDefault(diskID, 0.0),
SystemTag.DISK.toString(),
diskID);
metricService.createAutoGauge(
SystemMetric.DISK_IO_AVG_QUEUE_SIZE.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getQueueSizeForDisk().getOrDefault(diskID, 0.0),
SystemTag.DISK.toString(),
diskID);
}
// metrics for datanode and config node
metricService.createAutoGauge(
SystemMetric.PROCESS_IO_OPS.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
IDiskMetricsManager::getReadOpsCountForProcess,
SystemTag.FROM.toString(),
processName,
SystemTag.NAME.toString(),
READ);
metricService.createAutoGauge(
SystemMetric.PROCESS_IO_OPS.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
IDiskMetricsManager::getWriteOpsCountForProcess,
SystemTag.FROM.toString(),
processName,
SystemTag.NAME.toString(),
WRITE);
metricService.createAutoGauge(
SystemMetric.PROCESS_IO_SIZE.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
IDiskMetricsManager::getActualReadDataSizeForProcess,
SystemTag.FROM.toString(),
processName,
SystemTag.NAME.toString(),
ACTUAL_READ);
metricService.createAutoGauge(
SystemMetric.PROCESS_IO_SIZE.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
IDiskMetricsManager::getActualWriteDataSizeForProcess,
SystemTag.FROM.toString(),
processName,
SystemTag.NAME.toString(),
ACTUAL_WRITE);
metricService.createAutoGauge(
SystemMetric.PROCESS_IO_SIZE.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
IDiskMetricsManager::getAttemptReadSizeForProcess,
SystemTag.FROM.toString(),
processName,
SystemTag.NAME.toString(),
ATTEMPT_READ);
metricService.createAutoGauge(
SystemMetric.PROCESS_IO_SIZE.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
IDiskMetricsManager::getAttemptWriteSizeForProcess,
SystemTag.FROM.toString(),
processName,
SystemTag.NAME.toString(),
ATTEMPT_WRITE);
}