<#assign hasActual = topicResources.combined.usage.actualUsedBytes??>
<#assign hasPossible = topicResources.combined.usage.retentionBoundedBytes??>
<#assign hasOrphaned = topicResources.combined.usage.orphanedReplicasCount gt 0>
Broker |
Replicas |
<#if hasActual>
Current disk usage |
#if>
<#if hasPossible>
Possible disk usage
<#assign possibleUsageDoc>
Possible usage of disk if this topic would reach it's retention.bytes limit
#assign>
<@rInfo.icon tooltip = possibleUsageDoc/>
|
#if>
Required usage
<#assign possibleUsageDoc>
How much of usage is required/expected/predicted by resource requirement expectations
for this topic on this cluster
#assign>
<@rInfo.icon tooltip = possibleUsageDoc/>
|
<#if hasOrphaned>
# orphan replicas |
#if>
Cluster broker(s) |
<#if hasActual>
Total |
% of broker used |
% of required |
#if>
<#if hasPossible>
Total |
% of broker used |
% of required |
#if>
Current used
<#assign clusterUsedDoc>
Current disk usage of all replicas on particular broker
#assign>
<@rInfo.icon tooltip = clusterUsedDoc/>
|
<#if hasPossible>
Possible usage
<#assign clusterPossibleDoc>
Possible usage of disk if this topic would reach it's retention.bytes limit,
and all other topics would remain at current usage
#assign>
<@rInfo.icon tooltip = clusterPossibleDoc/>
|
Max possible usage
<#assign clusterTotalPossibleDoc>
Possible usage of disk if all topics, including this topic, would reach it's retention.bytes limit
#assign>
<@rInfo.icon tooltip = clusterTotalPossibleDoc/>
|
#if>
Capacity |
<#macro diskUsage broker, usage, portions, brokerUsage, brokerPortions worstPossibleUsageLevel="NONE" worstTotalPossibleUsageLevel="NONE">
<#-- @ftlvariable name="usage" type="com.infobip.kafkistry.service.resources.TopicDiskUsageExt" -->
<#-- @ftlvariable name="portions" type="com.infobip.kafkistry.service.resources.UsagePortions" -->
<#-- @ftlvariable name="brokerUsage" type="type="com.infobip.kafkistry.service.resources.BrokerDiskUsage" -->
<#-- @ftlvariable name="brokerPortions" type="com.infobip.kafkistry.service.resources.BrokerDiskPortions" -->
<#-- @ftlvariable name="worstPossibleUsageLevel" type="com.infobip.kafkistry.service.resources.UsageLevel" -->
<#-- @ftlvariable name="worstTotalPossibleUsageLevel" type="com.infobip.kafkistry.service.resources.UsageLevel" -->
${broker}
<#if broker == "ALL">
▼
△
#if>
|
${usage.usage.replicasCount}
|
<#if hasActual>
<#if usage.usage.actualUsedBytes??>
${rUtil.prettyDataSize(usage.usage.actualUsedBytes)}
<#else>
---
#if>
|
<#if portions.actualUsedBytesPercentOfBrokerTotal??>
${rUtil.prettyNumber(portions.actualUsedBytesPercentOfBrokerTotal)}%
<#else>
---
#if>
|
<#if portions.actualUsedBytesPercentOfExpected??>
${rUtil.prettyNumber(portions.actualUsedBytesPercentOfExpected)}%
<#else>
---
#if>
|
#if>
<#if hasPossible>
<#if usage.usage.retentionBoundedBytes??>
${rUtil.prettyDataSize(usage.usage.retentionBoundedBytes)}
<#else>
---
#if>
|
<#if portions.retentionBoundedBytesPercentOfBrokerTotal??>
${rUtil.prettyNumber(portions.retentionBoundedBytesPercentOfBrokerTotal)}%
<#else>
---
#if>
|
<#if portions.retentionBoundedBytesPercentOfExpected??>
${rUtil.prettyNumber(portions.retentionBoundedBytesPercentOfExpected)}%
<#else>
---
#if>
|
#if>
<#if usage.usage.expectedUsageBytes??>
${rUtil.prettyDataSize(usage.usage.expectedUsageBytes)}
<#else>
---
#if>
|
<#if hasOrphaned>
${usage.usage.orphanedReplicasCount} |
#if>
<#assign brokerUsageLevelClass = rUtil.usageLevelToHtmlClass(brokerPortions.usageLevel)>
title="${rUtil.prettyNumber(brokerPortions.usedPercentOfCapacity)}%"
#if>
>
<#if brokerUsage.totalUsedBytes??>
${rUtil.prettyDataSize(brokerUsage.totalUsedBytes)}
<#else>
---
#if>
|
<#if hasPossible>
<#assign possibleUsageLevel = (worstPossibleUsageLevel == "NONE")?then(portions.possibleClusterUsageLevel, worstPossibleUsageLevel)>
<#assign possibleUsageLevelClass = rUtil.usageLevelToHtmlClass(possibleUsageLevel)>
title="${rUtil.prettyNumber(portions.retentionBoundedBrokerTotalBytesPercentOfCapacity)}%"
#if>
>
<#if usage.retentionBoundedBrokerTotalBytes??>
${rUtil.prettyDataSize(usage.retentionBoundedBrokerTotalBytes)}
<#else>
---
#if>
|
<#assign totalPossibleUsageLevel = (worstTotalPossibleUsageLevel == "NONE")?then(portions.totalPossibleClusterUsageLevel, worstTotalPossibleUsageLevel)>
<#assign totalPossibleUsageLevelClass = rUtil.usageLevelToHtmlClass(totalPossibleUsageLevel)>
title="${rUtil.prettyNumber(portions.retentionBoundedBrokerPossibleBytesPercentOfCapacity)}%"
#if>
>
<#if usage.retentionBoundedBrokerPossibleBytes??>
${rUtil.prettyDataSize(usage.retentionBoundedBrokerPossibleBytes)}
<#else>
---
#if>
|
#if>
<#if brokerUsage.totalCapacityBytes??>
${rUtil.prettyDataSize(brokerUsage.totalCapacityBytes)}
<#else>
---
#if>
|
#macro>
<@diskUsage broker="ALL"
usage=topicResources.combined
portions=topicResources.combinedPortions
brokerUsage=topicResources.clusterDiskUsage.combined.usage
brokerPortions=topicResources.clusterDiskUsage.combined.portions
worstPossibleUsageLevel=topicResources.worstPossibleClusterUsageLevel
worstTotalPossibleUsageLevel=topicResources.worstTotalPossibleClusterUsageLevel
/>
|
<#list topicResources.brokerUsages as brokerId, brokerUsage>
<@diskUsage broker="${brokerId}"
usage=brokerUsage
portions=topicResources.brokerPortions?api.get(brokerId)
brokerUsage=topicResources.clusterDiskUsage.brokerUsages?api.get(brokerId).usage
brokerPortions=topicResources.clusterDiskUsage.brokerUsages?api.get(brokerId).portions
/>
#list>