![JAR search and dependency download from the Maven repository](/logo.png)
ui.clusters.clusterBriefInspect.ftl Maven / Gradle / Ivy
The newest version!
<#-- @ftlvariable name="appUrl" type="com.infobip.kafkistry.webapp.url.AppUrl" -->
<#-- @ftlvariable name="clusterIdentifier" type="java.lang.String" -->
<#-- @ftlvariable name="clusterIssues" type="java.util.List" -->
<#-- @ftlvariable name="clusterTopics" type="com.infobip.kafkistry.service.topic.ClusterTopicsStatuses" -->
<#-- @ftlvariable name="clusterAcls" type="com.infobip.kafkistry.service.acl.ClusterAclsInspection" -->
<#-- @ftlvariable name="clusterQuotas" type="com.infobip.kafkistry.service.quotas.ClusterQuotasInspection" -->
<#-- @ftlvariable name="clusterGroups" type="com.infobip.kafkistry.service.consumers.ClusterConsumerGroups" -->
<#import "../common/infoIcon.ftl" as info>
<#import "../common/violaton.ftl" as violatonUtil>
<#import "../common/util.ftl" as util>
<#import "../consumers/util.ftl" as consumersUtil>
<#assign fullyOk = true>
<#assign clusterUrl = appUrl.clusters().showCluster(clusterIdentifier)>
<#function mostSevereClass alertClasses>
<#if alertClasses?size == 0>
<#return "">
#if>
<#assign alertSeverities = {
"alert-info": 0,
"alert-secondary": 1,
"alert-primary": 2,
"alert-success": 3,
"alert-warning": 4,
"alert-danger": 5,
"bg-danger text-white": 6
}>
<#assign worst = alertClasses[0]>
<#list alertClasses as alertClass>
<#assign severtyScore = (alertSeverities[alertClass])!-1>
<#assign worstSevertyScore = (alertSeverities[worst])!-1>
<#if severtyScore gt worstSevertyScore>
<#assign worst = alertClass>
#if>
#list>
<#return worst>
#function>
<#---- Cluster issues ---->
<#if clusterIssues?size gt 0>
<#assign fullyOk = false>
<#assign alerts = []>
<#assign seenIssues = []>
<#assign issuesTooltip>
<#list clusterIssues as issue>
<#if seenIssues?seq_contains(issue.name)>
<#continue>
#if>
<#assign alerts = alerts + [util.levelToHtmlClass(issue.level)]>
<@util.namedTypeStatusAlert type=issue alertInline=false small=true/>
<#assign seenIssues = seenIssues + [issue.name]>
#list>
#assign>
▼
△
CLUSTER ISSUES
${issuesTooltip}
#if>
<#---- Topics ---->
<#if !clusterTopics.aggStatusFlags.allOk>
<#assign fullyOk = false>
<#assign alerts = []>
<#assign topicsCountsTooltip>
<#list clusterTopics.topicsStatusCounts as statusTypeCount>
<#assign statusType = statusTypeCount.type>
<#assign count = statusTypeCount.quantity>
<#assign alerts = alerts + [util.levelToHtmlClass(statusType.level)]>
<@util.namedTypeStatusAlert type=statusType alertInline=false small=true/>
${count}
#list>
#assign>
▼
△
TOPIC ISSUES
${topicsCountsTooltip}
#if>
<#---- ACLs ---->
<#if !clusterAcls.status.ok>
<#assign fullyOk = false>
<#assign alerts = []>
<#assign aclsCountsTooltip>
<#list clusterAcls.status.statusCounts as statusTypeCount>
<#assign statusType = statusTypeCount.type>
<#assign count = statusTypeCount.quantity>
<#assign alerts = alerts + [util.levelToHtmlClass(statusType.level)]>
<@util.namedTypeStatusAlert type=statusType alertInline=false small=true/>
${count}
#list>
#assign>
▼
△
ACLS ISSUES
${aclsCountsTooltip}
#if>
<#---- Quotas ---->
<#if !clusterQuotas.status.ok>
<#assign fullyOk = false>
<#assign alerts = []>
<#assign quotasCountsTooltip>
<#list clusterQuotas.status.statusCounts as statusTypeCount>
<#assign statusType = statusTypeCount.type>
<#assign count = statusTypeCount.quantity>
<#assign alerts = alerts + [util.levelToHtmlClass(statusType.level)]>
<@util.namedTypeStatusAlert type=statusType alertInline=false small=true/>
${count}
#list>
#assign>
▼
△
QUOTAS ISSUES
${quotasCountsTooltip}
#if>
<#---- Consumer groups ---->
<#assign cgFullyOk = true>
<#assign alerts = []>
<#assign consumerGroupsCountsTooltip>
<#list clusterGroups.consumersStats.lagStatusCounts as lagStatusType, count>
<#if lagStatusType.toString() != "NO_LAG" && lagStatusType.toString() != "MINOR_LAG">
<#assign cgFullyOk = false>
#if>
<#assign alerts = alerts + [util.levelToHtmlClass(lagStatusType.level)]>
<@util.namedTypeStatusAlert type=lagStatusType alertInline=false small=true/>
${count}
#list>
<#list clusterGroups.consumersStats.consumerStatusCounts as stateStatusType, count>
<#if stateStatusType.toString() != "STABLE">
<#assign cgFullyOk = false>
#if>
<#assign alerts = alerts + [util.levelToHtmlClass(stateStatusType.level)]>
<@util.namedTypeStatusAlert type=stateStatusType alertInline=false small=true/>
${count}
#list>
#assign>
<#if !cgFullyOk>
<#assign fullyOk = false>
▼
△
CONSUMER GROUPS ISSUES
${consumerGroupsCountsTooltip}
#if>
<#if fullyOk>
NO_ISSUES
#if>
<#if clusterIssues?size == 0>
<#-- to be searchable -->
#if>
© 2015 - 2025 Weber Informatics LLC | Privacy Policy