During the development and review process of the disk health indicator we noticed that it was hard to understand. Since we learnt a lot from the first round of development we want to go through the code one more time and restructure it.
server/src/main/java/org/elasticsearch/health/node/DiskHealthIndicatorService.java
),
                        "Enable autoscaling (if applicable), add disk capacity or free up disk space to resolve "
                            + "this. If you have already taken action please wait for the rebalancing to complete.",
                        "https://ela.st/fix-data-disk"
                    ),
                    unhealthyNodes.stream().sorted().toList()
                )
            );
        }
        if (redMasterNodes.isEmpty() == false || yellowMasterNodes.isEmpty() == false) {
            diagnosisList.add(
                new Diagnosis(
                    new Diagnosis.Definition(
                        NAME,
                        "add_disk_capacity_master_nodes",
                        "Disk is almost full.",
                        "Please add capacity to the current nodes, or replace them with ones with higher capacity.",
                        "https://ela.st/fix-master-disk"
                    ),
                    Stream.concat(redMasterNodes.stream(), yellowMasterNodes.stream()).sorted().toList()
                )
            );
        }
        if (redNonDataNonMasterNodes.isEmpty() == false || yellowNonDataNonMasterNodes.isEmpty() == false) {
            diagnosisList.add(
                new Diagnosis(
                    new Diagnosis.Definition(
                        NAME,
                        "add_disk_capacity",
                        "Disk is almost full.",