@* * Copyright 2015 Yahoo Inc. Licensed under the Apache License, Version 2.0 * See accompanying LICENSE file. *@ @import kafka.manager.model.ActorModel.ConsumerType @import models.form.ReassignPartitionOperation @import models.form.ReassignPartitionOperation.ForceRunAssignment @import kafka.manager.utils.LongFormatted @(cluster:String , topic: String , topicIdentity: kafka.manager.model.ActorModel.TopicIdentity , consumerList: Iterable[(String, ConsumerType)] , reassignPartitionOperation: ReassignPartitionOperation )(implicit af: features.ApplicationFeatures, messages: play.api.i18n.Messages, request:RequestHeader) @getUnderReplicatedLevel(percentage: Int) = { @percentage match { case i if i > 50 => {table-danger} case i if i > 0 => {table-warning} case i => {} } } @getPreferredReplicasLevel(percentage: Int) = { @percentage match { case i if i > 50 && i<=75 => {table-warning} case i if i <= 50 => {table-danger} case i => {} } } @getBrokersSkewedLevel(percentage: Int) = { @percentage match { case i if i > 0 && i <= 33 => {table-warning} case i if i >= 34 => {table-danger} case i => {} } } @getBrokersLeaderSkewedLevel(percentage: Int) = { @percentage match { case i if i > 0 && i <= 33 => {table-warning} case i if i >= 34 => {table-danger} case i => {} } } @getBrokersSpreadLevel(percentage: Int) = { @percentage match { case i if i > 50 && i<=75 => {table-warning} case i if i <= 50 => {table-danger} case i => {} } } @getPartitionLeaderLevel(leader: Int) = { @leader match { case i if i < 0 => {table-danger} case i => {} } } @getIsUnderReplicatedLevel(underReplicated: Boolean) = { @underReplicated match { case true => {table-warning} case false => {} } } @getIsPreferredLeaderLevel(preferredReplica: Boolean) = { @preferredReplica match { case false => {table-warning} case true => {} } } @getBrokerIsSkewedLevel(isSkewed: Boolean) = { @isSkewed match { case true => {table-warning} case false => {} } } @renderTopicMetrics = { @if(topicIdentity.clusterContext.clusterFeatures.features(kafka.manager.features.KMJMXMetricsFeature)) { @views.html.common.brokerMetrics(topicIdentity.metrics) } else {
@c | @ct.toString |
Replication | @topicIdentity.replicationFactor |
Number of Partitions | @topicIdentity.partitions |
Sum of partition offsets | @topicIdentity.summedTopicOffsets.formattedAsDecimal |
Total number of Brokers | @topicIdentity.numBrokers |
Number of Brokers for Topic | @topicIdentity.topicBrokers |
Preferred Replicas % | @topicIdentity.preferredReplicasPercentage |
Brokers Skewed % | @topicIdentity.brokersSkewPercentage |
Brokers Leader Skewed % | @topicIdentity.brokersLeaderSkewPercentage |
Brokers Spread % | @topicIdentity.brokersSpreadPercentage |
Under-replicated % | @topicIdentity.underReplicatedPercentage |
Leader Size | @topicIdentity.size |
Config | Value | @for( (k,v) <- topicIdentity.config) {
---|---|
@k | @v |
Delete Topic | } @features.app(features.KMReassignPartitionsFeature) {@b4.vertical.form(routes.ReassignPartitions.handleOperation(cluster,topic)) { implicit fc => @reassignPartitionOperation match { case ForceRunAssignment => { } case _ => { } } } | Generate Partition Assignments | }
Add Partitions | Update Config | @features.app(features.KMReassignPartitionsFeature) {Manual Partition Assignments | }
Broker | # of Partitions | # as Leader | Partitions | Skewed? | Leader Skewed? |
---|---|---|---|---|---|
@btp.id | @btp.partitions.size | @btp.leaders.size | @btp.partitions.mkString("(",",",")") | @btp.isSkewed | @btp.isLeaderSkewed |
Partition | Latest Offset | Leader | Replicas | In Sync Replicas | Preferred Leader? | Under Replicated? | @if(topicIdentity.clusterContext.config.jmxEnabled && topicIdentity.clusterContext.config.displaySizeEnabled){Leader Size | }
---|---|---|---|---|---|---|---|
@tpi.partNum | @tpi.latestOffset.map(_.formattedAsDecimal).getOrElse(" ") | @tpi.leader | @tpi.replicas.mkString("(", ",", ")") | @tpi.isr.mkString("(", ",", ")") | @tpi.isPreferredLeader | @tpi.isUnderReplicated | @if(topicIdentity.clusterContext.config.jmxEnabled && topicIdentity.clusterContext.config.displaySizeEnabled){@tpi.size | }