private void addSingleResourceUsageCell(NodeInfo nodeInfo, String resourceType,
                                                Map<String, Double> feedBlockLimits, HtmlTable.Row row)
        {
            var hostInfo = nodeInfo.getHostInfo();
            var usages = hostInfo.getContentNode().getResourceUsage();

            var usage = usages.get(resourceType);
            if (usage != null && usage.getUsage() != null) {
                row.addCell(new HtmlTable.Cell(String.format("%.2f", usage.getUsage() * 100.0)));
                double limit = feedBlockLimits.getOrDefault(resourceType, 1.0);
                // Mark as error if limit exceeded, warn if within 5% of exceeding
                if (usage.getUsage() > limit) {
                    row.getLastCell().addProperties(ERROR_PROPERTY);
                } else if (usage.getUsage() > (limit - 0.05)) {
                    row.getLastCell().addProperties(WARNING_PROPERTY);
                }
            } else {
                row.addCell(new HtmlTable.Cell("-").addProperties(CENTERED_PROPERTY));
            }
        }
Renders web page with cluster status.
clustercontroller-core/src/main/java/com/yahoo/vespa/clustercontroller/core/status/statuspage/VdsClusterHtmlRenderer.java