All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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 "">
    
    <#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>
        
    
    <#return worst>


<#---- 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>
            
            <#assign alerts = alerts + [util.levelToHtmlClass(issue.level)]>
            
            <#assign seenIssues = seenIssues + [issue.name]>
        
<@util.namedTypeStatusAlert type=issue alertInline=false small=true/>
${issuesTooltip}
<#---- 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}
${topicsCountsTooltip}
<#---- 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}
${aclsCountsTooltip}
<#---- 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}
${quotasCountsTooltip}
<#---- 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> <#list clusterGroups.consumersStats.consumerStatusCounts as stateStatusType, count> <#if stateStatusType.toString() != "STABLE"> <#assign cgFullyOk = false>
<#assign alerts = alerts + [util.levelToHtmlClass(lagStatusType.level)]> <@util.namedTypeStatusAlert type=lagStatusType alertInline=false small=true/> ${count}
<#assign alerts = alerts + [util.levelToHtmlClass(stateStatusType.level)]> <@util.namedTypeStatusAlert type=stateStatusType alertInline=false small=true/> ${count}
<#if !cgFullyOk> <#assign fullyOk = false>
${consumerGroupsCountsTooltip}
<#if fullyOk>
NO_ISSUES
<#if clusterIssues?size == 0> NO_ISSUES <#-- to be searchable -->




© 2015 - 2025 Weber Informatics LLC | Privacy Policy