Search in sources :

Example 1 with JmxPrometheusExporterMetricsBuilder

use of io.strimzi.api.kafka.model.JmxPrometheusExporterMetricsBuilder in project strimzi by strimzi.

the class KafkaMirrorMakerClusterTest method testMetricsParsingFromConfigMap.

@ParallelTest
public void testMetricsParsingFromConfigMap() {
    MetricsConfig metrics = new JmxPrometheusExporterMetricsBuilder().withNewValueFrom().withConfigMapKeyRef(new ConfigMapKeySelectorBuilder().withName("my-metrics-configuration").withKey("config.yaml").build()).endValueFrom().build();
    KafkaMirrorMaker mirrorMaker = new KafkaMirrorMakerBuilder(this.resource).editSpec().withMetricsConfig(metrics).endSpec().build();
    KafkaMirrorMakerCluster kmm = KafkaMirrorMakerCluster.fromCrd(Reconciliation.DUMMY_RECONCILIATION, mirrorMaker, VERSIONS);
    assertThat(kmm.isMetricsEnabled(), is(true));
    assertThat(kmm.getMetricsConfigInCm(), is(metrics));
}
Also used : KafkaMirrorMakerBuilder(io.strimzi.api.kafka.model.KafkaMirrorMakerBuilder) JmxPrometheusExporterMetricsBuilder(io.strimzi.api.kafka.model.JmxPrometheusExporterMetricsBuilder) ConfigMapKeySelectorBuilder(io.fabric8.kubernetes.api.model.ConfigMapKeySelectorBuilder) MetricsConfig(io.strimzi.api.kafka.model.MetricsConfig) KafkaMirrorMaker(io.strimzi.api.kafka.model.KafkaMirrorMaker) ParallelTest(io.strimzi.test.annotations.ParallelTest)

Example 2 with JmxPrometheusExporterMetricsBuilder

use of io.strimzi.api.kafka.model.JmxPrometheusExporterMetricsBuilder in project strimzi by strimzi.

the class ZookeeperClusterTest method testMetricsParsingFromConfigMap.

@ParallelTest
public void testMetricsParsingFromConfigMap() {
    MetricsConfig metrics = new JmxPrometheusExporterMetricsBuilder().withNewValueFrom().withConfigMapKeyRef(new ConfigMapKeySelectorBuilder().withName("my-metrics-configuration").withKey("config.yaml").build()).endValueFrom().build();
    Kafka kafkaAssembly = new KafkaBuilder(ResourceUtils.createKafka(namespace, cluster, replicas, image, healthDelay, healthTimeout)).editSpec().editZookeeper().withMetricsConfig(metrics).endZookeeper().endSpec().build();
    ZookeeperCluster zc = ZookeeperCluster.fromCrd(Reconciliation.DUMMY_RECONCILIATION, kafkaAssembly, VERSIONS);
    assertThat(zc.isMetricsEnabled(), is(true));
    assertThat(zc.getMetricsConfigInCm(), is(metrics));
}
Also used : JmxPrometheusExporterMetricsBuilder(io.strimzi.api.kafka.model.JmxPrometheusExporterMetricsBuilder) ConfigMapKeySelectorBuilder(io.fabric8.kubernetes.api.model.ConfigMapKeySelectorBuilder) Kafka(io.strimzi.api.kafka.model.Kafka) KafkaBuilder(io.strimzi.api.kafka.model.KafkaBuilder) MetricsConfig(io.strimzi.api.kafka.model.MetricsConfig) ParallelTest(io.strimzi.test.annotations.ParallelTest)

Example 3 with JmxPrometheusExporterMetricsBuilder

use of io.strimzi.api.kafka.model.JmxPrometheusExporterMetricsBuilder in project strimzi by strimzi.

the class KafkaClusterTest method testMetricsParsingFromConfigMap.

@ParallelTest
public void testMetricsParsingFromConfigMap() {
    MetricsConfig metrics = new JmxPrometheusExporterMetricsBuilder().withNewValueFrom().withConfigMapKeyRef(new ConfigMapKeySelectorBuilder().withName("my-metrics-configuration").withKey("config.yaml").build()).endValueFrom().build();
    Kafka kafkaAssembly = new KafkaBuilder(ResourceUtils.createKafka(namespace, cluster, replicas, image, healthDelay, healthTimeout)).editSpec().editKafka().withMetricsConfig(metrics).endKafka().endSpec().build();
    KafkaCluster kc = KafkaCluster.fromCrd(Reconciliation.DUMMY_RECONCILIATION, kafkaAssembly, VERSIONS);
    assertThat(kc.isMetricsEnabled(), is(true));
    assertThat(kc.getMetricsConfigInCm(), is(metrics));
}
Also used : JmxPrometheusExporterMetricsBuilder(io.strimzi.api.kafka.model.JmxPrometheusExporterMetricsBuilder) ConfigMapKeySelectorBuilder(io.fabric8.kubernetes.api.model.ConfigMapKeySelectorBuilder) Kafka(io.strimzi.api.kafka.model.Kafka) KafkaBuilder(io.strimzi.api.kafka.model.KafkaBuilder) MetricsConfig(io.strimzi.api.kafka.model.MetricsConfig) ParallelTest(io.strimzi.test.annotations.ParallelTest)

Example 4 with JmxPrometheusExporterMetricsBuilder

use of io.strimzi.api.kafka.model.JmxPrometheusExporterMetricsBuilder in project strimzi-kafka-operator by strimzi.

the class CruiseControlTest method testMetricsParsingFromConfigMap.

@ParallelTest
public void testMetricsParsingFromConfigMap() {
    MetricsConfig metrics = new JmxPrometheusExporterMetricsBuilder().withNewValueFrom().withConfigMapKeyRef(new ConfigMapKeySelectorBuilder().withName("my-metrics-configuration").withKey("config.yaml").build()).endValueFrom().build();
    CruiseControlSpec cruiseControlSpec = new CruiseControlSpecBuilder().withMetricsConfig(metrics).build();
    Kafka kafkaAssembly = createKafka(cruiseControlSpec);
    CruiseControl cc = createCruiseControl(kafkaAssembly);
    assertThat(cc.isMetricsEnabled(), is(true));
    assertThat(cc.getMetricsConfigInCm(), is(metrics));
}
Also used : CruiseControlSpec(io.strimzi.api.kafka.model.CruiseControlSpec) JmxPrometheusExporterMetricsBuilder(io.strimzi.api.kafka.model.JmxPrometheusExporterMetricsBuilder) ConfigMapKeySelectorBuilder(io.fabric8.kubernetes.api.model.ConfigMapKeySelectorBuilder) Kafka(io.strimzi.api.kafka.model.Kafka) CruiseControlSpecBuilder(io.strimzi.api.kafka.model.CruiseControlSpecBuilder) MetricsConfig(io.strimzi.api.kafka.model.MetricsConfig) ParallelTest(io.strimzi.test.annotations.ParallelTest)

Example 5 with JmxPrometheusExporterMetricsBuilder

use of io.strimzi.api.kafka.model.JmxPrometheusExporterMetricsBuilder in project strimzi-kafka-operator by strimzi.

the class MetricsIsolatedST method testKafkaMetricsSettings.

/**
 * 1. Update metrics form whatever it is to @metricsConfigYaml in spec.kafka.metricsConfig
 * 2. Check, whether the metrics ConfigMap is changed
 * 3. Updates ConfigMap linked as metrics on
 * 4. Check, whether the metrics ConfigMap is changed
 */
@ParallelTest
void testKafkaMetricsSettings() {
    String metricsConfigJson = "{\"lowercaseOutputName\":true}";
    String metricsConfigYaml = "lowercaseOutputName: true";
    ObjectMapper mapper = new ObjectMapper();
    mapper.configure(JsonReadFeature.ALLOW_UNESCAPED_CONTROL_CHARS.mappedFeature(), true);
    ConfigMap externalMetricsCm = new ConfigMapBuilder().withData(Collections.singletonMap(Constants.METRICS_CONFIG_YAML_NAME, metricsConfigYaml)).withNewMetadata().withName("external-metrics-cm").withNamespace(SECOND_NAMESPACE).endMetadata().build();
    kubeClient().getClient().configMaps().inNamespace(SECOND_NAMESPACE).createOrReplace(externalMetricsCm);
    // spec.kafka.metrics -> spec.kafka.jmxExporterMetrics
    ConfigMapKeySelector cmks = new ConfigMapKeySelectorBuilder().withName("external-metrics-cm").withKey(Constants.METRICS_CONFIG_YAML_NAME).build();
    JmxPrometheusExporterMetrics jmxPrometheusExporterMetrics = new JmxPrometheusExporterMetricsBuilder().withNewValueFrom().withConfigMapKeyRef(cmks).endValueFrom().build();
    KafkaResource.replaceKafkaResourceInSpecificNamespace(SECOND_CLUSTER, k -> {
        k.getSpec().getKafka().setMetricsConfig(jmxPrometheusExporterMetrics);
    }, SECOND_NAMESPACE);
    PodUtils.verifyThatRunningPodsAreStable(SECOND_NAMESPACE, SECOND_CLUSTER);
    ConfigMap actualCm = kubeClient(SECOND_NAMESPACE).getConfigMap(KafkaResources.kafkaMetricsAndLogConfigMapName(SECOND_CLUSTER));
    assertThat(actualCm.getData().get(Constants.METRICS_CONFIG_JSON_NAME), is(metricsConfigJson));
    // update metrics
    ConfigMap externalMetricsUpdatedCm = new ConfigMapBuilder().withData(Collections.singletonMap(Constants.METRICS_CONFIG_YAML_NAME, metricsConfigYaml.replace("true", "false"))).withNewMetadata().withName("external-metrics-cm").withNamespace(SECOND_NAMESPACE).endMetadata().build();
    kubeClient().getClient().configMaps().inNamespace(SECOND_NAMESPACE).createOrReplace(externalMetricsUpdatedCm);
    PodUtils.verifyThatRunningPodsAreStable(SECOND_NAMESPACE, SECOND_CLUSTER);
    actualCm = kubeClient(SECOND_NAMESPACE).getConfigMap(KafkaResources.kafkaMetricsAndLogConfigMapName(SECOND_CLUSTER));
    assertThat(actualCm.getData().get(Constants.METRICS_CONFIG_JSON_NAME), is(metricsConfigJson.replace("true", "false")));
}
Also used : JmxPrometheusExporterMetrics(io.strimzi.api.kafka.model.JmxPrometheusExporterMetrics) ConfigMap(io.fabric8.kubernetes.api.model.ConfigMap) ConfigMapKeySelectorBuilder(io.fabric8.kubernetes.api.model.ConfigMapKeySelectorBuilder) JmxPrometheusExporterMetricsBuilder(io.strimzi.api.kafka.model.JmxPrometheusExporterMetricsBuilder) ConfigMapBuilder(io.fabric8.kubernetes.api.model.ConfigMapBuilder) Matchers.emptyString(org.hamcrest.Matchers.emptyString) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) ConfigMapKeySelector(io.fabric8.kubernetes.api.model.ConfigMapKeySelector) ParallelTest(io.strimzi.systemtest.annotations.ParallelTest)

Aggregations

ConfigMapKeySelectorBuilder (io.fabric8.kubernetes.api.model.ConfigMapKeySelectorBuilder)18 JmxPrometheusExporterMetricsBuilder (io.strimzi.api.kafka.model.JmxPrometheusExporterMetricsBuilder)18 MetricsConfig (io.strimzi.api.kafka.model.MetricsConfig)12 ParallelTest (io.strimzi.test.annotations.ParallelTest)12 Kafka (io.strimzi.api.kafka.model.Kafka)8 ConfigMap (io.fabric8.kubernetes.api.model.ConfigMap)6 ConfigMapBuilder (io.fabric8.kubernetes.api.model.ConfigMapBuilder)6 JmxPrometheusExporterMetrics (io.strimzi.api.kafka.model.JmxPrometheusExporterMetrics)6 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)4 ConfigMapKeySelector (io.fabric8.kubernetes.api.model.ConfigMapKeySelector)4 KafkaBuilder (io.strimzi.api.kafka.model.KafkaBuilder)4 YAMLFactory (com.fasterxml.jackson.dataformat.yaml.YAMLFactory)2 LabelSelector (io.fabric8.kubernetes.api.model.LabelSelector)2 CruiseControlSpec (io.strimzi.api.kafka.model.CruiseControlSpec)2 CruiseControlSpecBuilder (io.strimzi.api.kafka.model.CruiseControlSpecBuilder)2 KafkaConnect (io.strimzi.api.kafka.model.KafkaConnect)2 KafkaConnectBuilder (io.strimzi.api.kafka.model.KafkaConnectBuilder)2 KafkaMirrorMaker (io.strimzi.api.kafka.model.KafkaMirrorMaker)2 KafkaMirrorMaker2 (io.strimzi.api.kafka.model.KafkaMirrorMaker2)2 KafkaMirrorMaker2Builder (io.strimzi.api.kafka.model.KafkaMirrorMaker2Builder)2