public class KafkaCruiseControlUtils
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
static long |
ADMIN_CLIENT_CLOSE_TIMEOUT_MS |
static int |
BYTES_IN_MB |
static java.lang.String |
DATE_FORMAT |
static java.lang.String |
DATE_FORMAT2 |
static long |
KAFKA_ZK_CLIENT_CLOSE_TIMEOUT_MS |
static double |
MAX_BALANCEDNESS_SCORE |
static long |
RECONNECT_BACKOFF_MAX_MS_CONFIG |
static long |
RECONNECT_BACKOFF_MS_CONFIG |
static long |
RETRY_BACKOFF_MS_CONFIG |
static int |
SEC_TO_MS |
static java.lang.String |
TIME_ZONE |
static java.lang.String |
ZK_CLIENT_NAME |
static int |
ZK_CONNECTION_TIMEOUT |
static int |
ZK_SESSION_TIMEOUT |
Modifier and Type | Method and Description |
---|---|
static void |
backoff(java.util.function.Supplier<java.lang.Boolean> f,
int maxRetries,
long initialWaitMs,
long maxWaitMs,
org.apache.kafka.common.utils.Time time)
Run some boolean operation with exponential backoff until it succeeds or maxTimeout is hit.
|
static java.util.Map<java.lang.String,java.lang.Double> |
balancednessCostByGoal(java.util.List<Goal> goals,
double priorityWeight,
double strictnessWeight)
Get the balancedness cost of violating goals by their name, where the sum of costs is
MAX_BALANCEDNESS_SCORE . |
static void |
closeAdminClientWithTimeout(org.apache.kafka.clients.admin.Admin adminClient)
Close the given AdminClient with the default timeout of
ADMIN_CLIENT_CLOSE_TIMEOUT_MS . |
static void |
closeAdminClientWithTimeout(org.apache.kafka.clients.admin.Admin adminClient,
long timeoutMs) |
static void |
closeKafkaZkClientWithTimeout(kafka.zk.KafkaZkClient kafkaZkClient)
Close the given KafkaZkClient with the default timeout of
KAFKA_ZK_CLIENT_CLOSE_TIMEOUT_MS . |
static void |
closeKafkaZkClientWithTimeout(kafka.zk.KafkaZkClient kafkaZkClient,
long timeoutMs) |
static boolean |
containsAny(java.util.Set<java.lang.Integer> a,
java.util.Set<java.lang.Integer> b)
Check if set a contains any element in set b.
|
static org.apache.kafka.clients.admin.ConfluentAdmin |
createAdmin(java.util.Map<java.lang.String,?> adminClientConfigs)
Create an instance of ConfluentAdmin using the given configurations.
|
static kafka.zk.KafkaZkClient |
createKafkaZkClient(KafkaCruiseControlConfig config,
java.lang.String metricGroup,
java.lang.String metricType,
scala.Option<org.apache.zookeeper.client.ZKClientConfig> zkClientConfig) |
static kafka.zk.KafkaZkClient |
createKafkaZkClient(java.lang.String connectString,
java.lang.String metricGroup,
java.lang.String metricType,
boolean zkSecurityEnabled)
Create an instance of KafkaZkClient with security disabled.
|
static kafka.zk.KafkaZkClient |
createKafkaZkClient(java.lang.String connectString,
java.lang.String metricGroup,
java.lang.String metricType,
boolean zkSecurityEnabled,
scala.Option<org.apache.zookeeper.client.ZKClientConfig> zkClientConfig) |
static java.lang.String |
currentUtcDate() |
static java.util.Map<java.lang.String,java.lang.Object> |
filterAdminClientConfigs(java.util.Map<java.lang.String,?> configs) |
static java.util.Map<java.lang.String,java.lang.Object> |
filterConsumerConfigs(java.util.Map<java.lang.String,?> configs) |
static java.util.Map<java.lang.String,java.lang.Object> |
filterProducerConfigs(java.util.Map<java.lang.String,?> configs) |
static java.lang.String |
getRequiredConfig(java.util.Map<java.lang.String,?> configs,
java.lang.String configName)
Get a configuration and throw exception if the configuration was not provided.
|
static boolean |
isPartitionUnderReplicated(org.apache.kafka.common.Cluster cluster,
org.apache.kafka.common.TopicPartition tp)
Check if the partition is currently under replicated.
|
static void |
sanityCheckNonExistingGoal(java.util.List<java.lang.String> goals,
java.util.Map<java.lang.String,Goal> supportedGoals)
Sanity check whether the given goals exist in the given supported goals.
|
static boolean |
shouldRefreshClusterAndGeneration(java.util.Set<CruiseControlState.SubState> substates)
Check if the ClusterAndGeneration needs to be refreshed to retrieve the requested substates.
|
static java.lang.String |
toDateString(long time)
Format the timestamp from long to a human readable string.
|
static java.lang.String |
toDateString(long time,
java.lang.String dateFormat,
java.lang.String timeZone)
Format the timestamp from long to human readable string.
|
static java.lang.String |
toPrettyDuration(double durationMs)
Format the duration from double to human readable string.
|
static java.lang.String |
utcDateFor(long timeMs) |
public static final double MAX_BALANCEDNESS_SCORE
public static final int ZK_SESSION_TIMEOUT
public static final int ZK_CONNECTION_TIMEOUT
public static final long KAFKA_ZK_CLIENT_CLOSE_TIMEOUT_MS
public static final long ADMIN_CLIENT_CLOSE_TIMEOUT_MS
public static final java.lang.String DATE_FORMAT
public static final java.lang.String DATE_FORMAT2
public static final java.lang.String TIME_ZONE
public static final int SEC_TO_MS
public static final int BYTES_IN_MB
public static final java.lang.String ZK_CLIENT_NAME
public static final long RETRY_BACKOFF_MS_CONFIG
public static final long RECONNECT_BACKOFF_MS_CONFIG
public static final long RECONNECT_BACKOFF_MAX_MS_CONFIG
public static java.lang.String currentUtcDate()
public static java.lang.String utcDateFor(long timeMs)
public static java.lang.String toDateString(long time)
public static java.lang.String toDateString(long time, java.lang.String dateFormat, java.lang.String timeZone)
time
- time in millisecondsdateFormat
- see formats abovetimeZone
- will use default if timeZone is set to empty stringpublic static java.lang.String toPrettyDuration(double durationMs)
durationMs
- Duration in millisecondspublic static java.lang.String getRequiredConfig(java.util.Map<java.lang.String,?> configs, java.lang.String configName)
configs
- the config map.configName
- the config to get.public static void closeKafkaZkClientWithTimeout(kafka.zk.KafkaZkClient kafkaZkClient)
KAFKA_ZK_CLIENT_CLOSE_TIMEOUT_MS
.kafkaZkClient
- KafkaZkClient to be closedpublic static void closeKafkaZkClientWithTimeout(kafka.zk.KafkaZkClient kafkaZkClient, long timeoutMs)
public static boolean containsAny(java.util.Set<java.lang.Integer> a, java.util.Set<java.lang.Integer> b)
a
- the first set.b
- the second set.public static boolean shouldRefreshClusterAndGeneration(java.util.Set<CruiseControlState.SubState> substates)
substates
- Substates for which the need for refreshing the ClusterAndGeneration will be evaluated.CruiseControlState.SubState#ANALYZER
or
CruiseControlState.SubState#MONITOR
, false otherwise.public static kafka.zk.KafkaZkClient createKafkaZkClient(java.lang.String connectString, java.lang.String metricGroup, java.lang.String metricType, boolean zkSecurityEnabled)
connectString
- Comma separated host:port pairs, each corresponding to a zk servermetricGroup
- Metric groupmetricType
- Metric typezkSecurityEnabled
- True if zkSecurityEnabled, false otherwise.public static kafka.zk.KafkaZkClient createKafkaZkClient(KafkaCruiseControlConfig config, java.lang.String metricGroup, java.lang.String metricType, scala.Option<org.apache.zookeeper.client.ZKClientConfig> zkClientConfig)
public static kafka.zk.KafkaZkClient createKafkaZkClient(java.lang.String connectString, java.lang.String metricGroup, java.lang.String metricType, boolean zkSecurityEnabled, scala.Option<org.apache.zookeeper.client.ZKClientConfig> zkClientConfig)
public static org.apache.kafka.clients.admin.ConfluentAdmin createAdmin(java.util.Map<java.lang.String,?> adminClientConfigs)
adminClientConfigs
- Configurations used for the AdminClient.public static void closeAdminClientWithTimeout(org.apache.kafka.clients.admin.Admin adminClient)
ADMIN_CLIENT_CLOSE_TIMEOUT_MS
.adminClient
- AdminClient to be closedpublic static void closeAdminClientWithTimeout(org.apache.kafka.clients.admin.Admin adminClient, long timeoutMs)
public static java.util.Map<java.lang.String,java.lang.Object> filterAdminClientConfigs(java.util.Map<java.lang.String,?> configs)
public static java.util.Map<java.lang.String,java.lang.Object> filterConsumerConfigs(java.util.Map<java.lang.String,?> configs)
public static java.util.Map<java.lang.String,java.lang.Object> filterProducerConfigs(java.util.Map<java.lang.String,?> configs)
public static boolean isPartitionUnderReplicated(org.apache.kafka.common.Cluster cluster, org.apache.kafka.common.TopicPartition tp)
cluster
- The current cluster state.tp
- The topic partition to check.public static void sanityCheckNonExistingGoal(java.util.List<java.lang.String> goals, java.util.Map<java.lang.String,Goal> supportedGoals)
goals
- A list of goals.supportedGoals
- Supported goals.public static java.util.Map<java.lang.String,java.lang.Double> balancednessCostByGoal(java.util.List<Goal> goals, double priorityWeight, double strictnessWeight)
MAX_BALANCEDNESS_SCORE
.goals
- The goals to be used for balancing (sorted by priority).priorityWeight
- The impact of having one level higher goal priority on the relative balancedness score.strictnessWeight
- The impact of strictness on the relative balancedness score.public static void backoff(java.util.function.Supplier<java.lang.Boolean> f, int maxRetries, long initialWaitMs, long maxWaitMs, org.apache.kafka.common.utils.Time time) throws java.lang.InterruptedException, java.util.concurrent.TimeoutException
f
- Boolean-returning function which is executed until it succeeds or #maxRetries
is hitmaxRetries
- Maxmimum number of times this should be executed.initialWaitMs
- How long to sleep at first.maxWaitMs
- Maximum length of a single wait in ms. If 0, no upper bound.time
- time source (useful for test mocks)java.lang.InterruptedException
java.util.concurrent.TimeoutException
- if the function never succeeded after #maxRetries