Search in sources :

Example 1 with JmxTransOutputWriter

use of io.strimzi.operator.cluster.model.components.JmxTransOutputWriter in project strimzi by strimzi.

the class JmxTrans method convertSpecToServers.

private JmxTransServer convertSpecToServers(JmxTransSpec spec, String brokerServiceName) {
    JmxTransServer server = new JmxTransServer();
    server.setHost(brokerServiceName);
    server.setPort(AbstractModel.JMX_PORT);
    if (isJmxAuthenticated()) {
        server.setUsername("${kafka.username}");
        server.setPassword("${kafka.password}");
    }
    List<JmxTransQueries> queries = new ArrayList<>();
    for (JmxTransQueryTemplate queryTemplate : spec.getKafkaQueries()) {
        JmxTransQueries query = new JmxTransQueries();
        query.setObj(queryTemplate.getTargetMBean());
        query.setAttr(queryTemplate.getAttributes());
        query.setOutputWriters(new ArrayList<>());
        for (JmxTransOutputDefinitionTemplate outputDefinitionTemplate : spec.getOutputDefinitions()) {
            if (queryTemplate.getOutputs().contains(outputDefinitionTemplate.getName())) {
                JmxTransOutputWriter outputWriter = new JmxTransOutputWriter();
                outputWriter.setAtClass(outputDefinitionTemplate.getOutputType());
                if (outputDefinitionTemplate.getHost() != null) {
                    outputWriter.setHost(outputDefinitionTemplate.getHost());
                }
                if (outputDefinitionTemplate.getPort() != null) {
                    outputWriter.setPort(outputDefinitionTemplate.getPort());
                }
                if (outputDefinitionTemplate.getFlushDelayInSeconds() != null) {
                    outputWriter.setFlushDelayInSeconds(outputDefinitionTemplate.getFlushDelayInSeconds());
                }
                outputWriter.setTypeNames(outputDefinitionTemplate.getTypeNames());
                query.getOutputWriters().add(outputWriter);
            }
        }
        queries.add(query);
    }
    server.setQueries(queries);
    return server;
}
Also used : ArrayList(java.util.ArrayList) JmxTransServer(io.strimzi.operator.cluster.model.components.JmxTransServer) JmxTransOutputDefinitionTemplate(io.strimzi.api.kafka.model.template.JmxTransOutputDefinitionTemplate) JmxTransOutputWriter(io.strimzi.operator.cluster.model.components.JmxTransOutputWriter) JmxTransQueries(io.strimzi.operator.cluster.model.components.JmxTransQueries) JmxTransQueryTemplate(io.strimzi.api.kafka.model.template.JmxTransQueryTemplate)

Example 2 with JmxTransOutputWriter

use of io.strimzi.operator.cluster.model.components.JmxTransOutputWriter in project strimzi-kafka-operator by strimzi.

the class JmxTrans method jmxTransQueries.

/**
 * Generates the queries for the JMX Trans configuration
 *
 * @return  List with JMX Trans queries
 */
private List<JmxTransQueries> jmxTransQueries() {
    List<JmxTransQueries> queries = new ArrayList<>(kafkaQueries.size());
    for (JmxTransQueryTemplate queryTemplate : kafkaQueries) {
        JmxTransQueries query = new JmxTransQueries();
        query.setObj(queryTemplate.getTargetMBean());
        query.setAttr(queryTemplate.getAttributes());
        query.setOutputWriters(new ArrayList<>());
        for (JmxTransOutputDefinitionTemplate outputDefinitionTemplate : outputDefinitions) {
            if (queryTemplate.getOutputs().contains(outputDefinitionTemplate.getName())) {
                JmxTransOutputWriter outputWriter = new JmxTransOutputWriter();
                outputWriter.setAtClass(outputDefinitionTemplate.getOutputType());
                if (outputDefinitionTemplate.getHost() != null) {
                    outputWriter.setHost(outputDefinitionTemplate.getHost());
                }
                if (outputDefinitionTemplate.getPort() != null) {
                    outputWriter.setPort(outputDefinitionTemplate.getPort());
                }
                if (outputDefinitionTemplate.getFlushDelayInSeconds() != null) {
                    outputWriter.setFlushDelayInSeconds(outputDefinitionTemplate.getFlushDelayInSeconds());
                }
                outputWriter.setTypeNames(outputDefinitionTemplate.getTypeNames());
                query.getOutputWriters().add(outputWriter);
            }
        }
        queries.add(query);
    }
    return queries;
}
Also used : ArrayList(java.util.ArrayList) JmxTransOutputDefinitionTemplate(io.strimzi.api.kafka.model.template.JmxTransOutputDefinitionTemplate) JmxTransOutputWriter(io.strimzi.operator.cluster.model.components.JmxTransOutputWriter) JmxTransQueries(io.strimzi.operator.cluster.model.components.JmxTransQueries) JmxTransQueryTemplate(io.strimzi.api.kafka.model.template.JmxTransQueryTemplate)

Example 3 with JmxTransOutputWriter

use of io.strimzi.operator.cluster.model.components.JmxTransOutputWriter in project strimzi-kafka-operator by strimzi.

the class JmxTransTest method testQueriesDeserialization.

@ParallelTest
public void testQueriesDeserialization() {
    JmxTransOutputWriter outputWriter = new JmxTransOutputWriter();
    outputWriter.setAtClass("class");
    outputWriter.setHost("host");
    outputWriter.setPort(9999);
    outputWriter.setFlushDelayInSeconds(1);
    outputWriter.setTypeNames(Collections.singletonList("SingleType"));
    JmxTransQueries queries = new JmxTransQueries();
    queries.setObj("object");
    queries.setAttr(Collections.singletonList("attribute"));
    queries.setOutputWriters(Collections.singletonList(outputWriter));
    JsonObject targetJson = JsonObject.mapFrom(queries);
    JsonObject outputWriterJson = targetJson.getJsonArray("outputWriters").getJsonObject(0);
    assertThat(targetJson.getString("obj"), is("object"));
    assertThat(targetJson.getJsonArray("attr").size(), is(1));
    assertThat(targetJson.getJsonArray("attr").getString(0), is("attribute"));
    assertThat(outputWriterJson.getString("host"), is("host"));
    assertThat(outputWriterJson.getString("@class"), is("class"));
    assertThat(outputWriterJson.getInteger("port"), is(9999));
    assertThat(outputWriterJson.getInteger("flushDelayInSeconds"), is(1));
    assertThat(outputWriterJson.getJsonArray("typeNames").size(), is(1));
    assertThat(outputWriterJson.getJsonArray("typeNames").getList().get(0), is("SingleType"));
}
Also used : JsonObject(io.vertx.core.json.JsonObject) JmxTransOutputWriter(io.strimzi.operator.cluster.model.components.JmxTransOutputWriter) JmxTransQueries(io.strimzi.operator.cluster.model.components.JmxTransQueries) ParallelTest(io.strimzi.test.annotations.ParallelTest)

Example 4 with JmxTransOutputWriter

use of io.strimzi.operator.cluster.model.components.JmxTransOutputWriter in project strimzi-kafka-operator by strimzi.

the class JmxTransTest method testOutputDefinitionWriterDeserialization.

@ParallelTest
public void testOutputDefinitionWriterDeserialization() {
    JmxTransOutputWriter outputWriter = new JmxTransOutputWriter();
    outputWriter.setAtClass("class");
    outputWriter.setHost("host");
    outputWriter.setPort(9999);
    outputWriter.setFlushDelayInSeconds(1);
    outputWriter.setTypeNames(Collections.singletonList("SingleType"));
    JsonObject targetJson = JsonObject.mapFrom(outputWriter);
    assertThat(targetJson.getString("host"), is("host"));
    assertThat(targetJson.getString("@class"), is("class"));
    assertThat(targetJson.getInteger("port"), is(9999));
    assertThat(targetJson.getInteger("flushDelayInSeconds"), is(1));
    assertThat(targetJson.getJsonArray("typeNames").size(), is(1));
    assertThat(targetJson.getJsonArray("typeNames").getList().get(0), is("SingleType"));
}
Also used : JsonObject(io.vertx.core.json.JsonObject) JmxTransOutputWriter(io.strimzi.operator.cluster.model.components.JmxTransOutputWriter) ParallelTest(io.strimzi.test.annotations.ParallelTest)

Example 5 with JmxTransOutputWriter

use of io.strimzi.operator.cluster.model.components.JmxTransOutputWriter in project strimzi by strimzi.

the class JmxTransTest method testOutputDefinitionWriterDeserialization.

@ParallelTest
public void testOutputDefinitionWriterDeserialization() {
    JmxTransOutputWriter outputWriter = new JmxTransOutputWriter();
    outputWriter.setAtClass("class");
    outputWriter.setHost("host");
    outputWriter.setPort(9999);
    outputWriter.setFlushDelayInSeconds(1);
    outputWriter.setTypeNames(Collections.singletonList("SingleType"));
    JsonObject targetJson = JsonObject.mapFrom(outputWriter);
    assertThat(targetJson.getString("host"), is("host"));
    assertThat(targetJson.getString("@class"), is("class"));
    assertThat(targetJson.getInteger("port"), is(9999));
    assertThat(targetJson.getInteger("flushDelayInSeconds"), is(1));
    assertThat(targetJson.getJsonArray("typeNames").size(), is(1));
    assertThat(targetJson.getJsonArray("typeNames").getList().get(0), is("SingleType"));
}
Also used : JsonObject(io.vertx.core.json.JsonObject) JmxTransOutputWriter(io.strimzi.operator.cluster.model.components.JmxTransOutputWriter) ParallelTest(io.strimzi.test.annotations.ParallelTest)

Aggregations

JmxTransOutputWriter (io.strimzi.operator.cluster.model.components.JmxTransOutputWriter)8 JmxTransQueries (io.strimzi.operator.cluster.model.components.JmxTransQueries)6 JmxTransOutputDefinitionTemplate (io.strimzi.api.kafka.model.template.JmxTransOutputDefinitionTemplate)4 JmxTransQueryTemplate (io.strimzi.api.kafka.model.template.JmxTransQueryTemplate)4 ParallelTest (io.strimzi.test.annotations.ParallelTest)4 JsonObject (io.vertx.core.json.JsonObject)4 ArrayList (java.util.ArrayList)4 JmxTransServer (io.strimzi.operator.cluster.model.components.JmxTransServer)2