Closed harjis closed 2 years ago
Hi @harjis,
it should work as you expected. I'll check it out asap, may you hit a bug.
Cheers!!
HI @harjis,
I found the problem and I have a solution in the branch associated to this issue. Do you mind testing it if it works for you?
Thanks!
Hi @kszosze!
Thanks for the quick response! I tried out the branch and on my computer it seems that it is not working as intended. I'll try to do some testing still to see if the problem is at my end. When I start producing messages I get the same error message as before.
Full log is this:
2021-12-27 09:45:20,788 ERROR n.c.k.l.i.AvroLoadGenerator: Please make sure that properties data type and expression function return type are compatible with each other
io.confluent.kafka.schemaregistry.client.rest.exceptions.RestClientException: Subject 'test' not found.; error code: 40401
at io.confluent.kafka.schemaregistry.client.rest.RestService.sendHttpRequest(RestService.java:292) ~[kloadgen-3.5.7-kloadgen-plugin-3.5.7.jar:?]
at io.confluent.kafka.schemaregistry.client.rest.RestService.httpRequest(RestService.java:351) ~[kloadgen-3.5.7-kloadgen-plugin-3.5.7.jar:?]
at io.confluent.kafka.schemaregistry.client.rest.RestService.getLatestVersion(RestService.java:716) ~[kloadgen-3.5.7-kloadgen-plugin-3.5.7.jar:?]
at io.confluent.kafka.schemaregistry.client.rest.RestService.getLatestVersion(RestService.java:707) ~[kloadgen-3.5.7-kloadgen-plugin-3.5.7.jar:?]
at io.confluent.kafka.schemaregistry.client.CachedSchemaRegistryClient.getLatestSchemaMetadata(CachedSchemaRegistryClient.java:332) ~[kloadgen-3.5.7-kloadgen-plugin-3.5.7.jar:?]
at net.coru.kloadgen.loadgen.impl.AvroLoadGenerator.getSchemaBySubject(AvroLoadGenerator.java:69) ~[kloadgen-3.5.7-kloadgen-plugin-3.5.7.jar:?]
at net.coru.kloadgen.loadgen.impl.AvroLoadGenerator.retrieveSchema(AvroLoadGenerator.java:65) ~[kloadgen-3.5.7-kloadgen-plugin-3.5.7.jar:?]
at net.coru.kloadgen.loadgen.impl.AvroLoadGenerator.setUpGenerator(AvroLoadGenerator.java:42) [kloadgen-3.5.7-kloadgen-plugin-3.5.7.jar:?]
at net.coru.kloadgen.sampler.SamplerUtil.configureValueGenerator(SamplerUtil.java:388) [kloadgen-3.5.7-kloadgen-plugin-3.5.7.jar:?]
at net.coru.kloadgen.sampler.KafkaSchemaSampler.setupTest(KafkaSchemaSampler.java:92) [kloadgen-3.5.7-kloadgen-plugin-3.5.7.jar:?]
at org.apache.jmeter.protocol.java.sampler.JavaSampler.sample(JavaSampler.java:194) [ApacheJMeter_java.jar:5.5-SNAPSHOT]
at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:651) [ApacheJMeter_core.jar:5.5-SNAPSHOT]
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:570) [ApacheJMeter_core.jar:5.5-SNAPSHOT]
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:501) [ApacheJMeter_core.jar:5.5-SNAPSHOT]
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:268) [ApacheJMeter_core.jar:5.5-SNAPSHOT]
at java.lang.Thread.run(Thread.java:829) [?:?]
2021-12-27 09:45:20,801 ERROR o.a.j.t.JMeterThread: Error while processing sampler: 'Kafka Producer Properties'.
net.coru.kloadgen.exception.KLoadGenException: io.confluent.kafka.schemaregistry.client.rest.exceptions.RestClientException: Subject 'test' not found.; error code: 40401
at net.coru.kloadgen.loadgen.impl.AvroLoadGenerator.setUpGenerator(AvroLoadGenerator.java:45) ~[kloadgen-3.5.7-kloadgen-plugin-3.5.7.jar:?]
at net.coru.kloadgen.sampler.SamplerUtil.configureValueGenerator(SamplerUtil.java:388) ~[kloadgen-3.5.7-kloadgen-plugin-3.5.7.jar:?]
at net.coru.kloadgen.sampler.KafkaSchemaSampler.setupTest(KafkaSchemaSampler.java:92) ~[kloadgen-3.5.7-kloadgen-plugin-3.5.7.jar:?]
at org.apache.jmeter.protocol.java.sampler.JavaSampler.sample(JavaSampler.java:194) ~[ApacheJMeter_java.jar:5.5-SNAPSHOT]
at org.apache.jmeter.threads.JMeterThread.doSampling(JMeterThread.java:651) ~[ApacheJMeter_core.jar:5.5-SNAPSHOT]
at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:570) ~[ApacheJMeter_core.jar:5.5-SNAPSHOT]
at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:501) [ApacheJMeter_core.jar:5.5-SNAPSHOT]
at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:268) [ApacheJMeter_core.jar:5.5-SNAPSHOT]
at java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: io.confluent.kafka.schemaregistry.client.rest.exceptions.RestClientException: Subject 'test' not found.; error code: 40401
at io.confluent.kafka.schemaregistry.client.rest.RestService.sendHttpRequest(RestService.java:292) ~[kloadgen-3.5.7-kloadgen-plugin-3.5.7.jar:?]
at io.confluent.kafka.schemaregistry.client.rest.RestService.httpRequest(RestService.java:351) ~[kloadgen-3.5.7-kloadgen-plugin-3.5.7.jar:?]
at io.confluent.kafka.schemaregistry.client.rest.RestService.getLatestVersion(RestService.java:716) ~[kloadgen-3.5.7-kloadgen-plugin-3.5.7.jar:?]
at io.confluent.kafka.schemaregistry.client.rest.RestService.getLatestVersion(RestService.java:707) ~[kloadgen-3.5.7-kloadgen-plugin-3.5.7.jar:?]
at io.confluent.kafka.schemaregistry.client.CachedSchemaRegistryClient.getLatestSchemaMetadata(CachedSchemaRegistryClient.java:332) ~[kloadgen-3.5.7-kloadgen-plugin-3.5.7.jar:?]
at net.coru.kloadgen.loadgen.impl.AvroLoadGenerator.getSchemaBySubject(AvroLoadGenerator.java:69) ~[kloadgen-3.5.7-kloadgen-plugin-3.5.7.jar:?]
at net.coru.kloadgen.loadgen.impl.AvroLoadGenerator.retrieveSchema(AvroLoadGenerator.java:65) ~[kloadgen-3.5.7-kloadgen-plugin-3.5.7.jar:?]
at net.coru.kloadgen.loadgen.impl.AvroLoadGenerator.setUpGenerator(AvroLoadGenerator.java:42) ~[kloadgen-3.5.7-kloadgen-plugin-3.5.7.jar:?]
... 8 more
Hi @harjis, I just made some adjustments in the branch. Do you min d to test it?
Cheers
Hi @kszosze!
I tested the branch and it seems to be working as intended! I got it working by using ValueFileSerializedConfigElement
. Before I was using ValueSerializedConfigElement
but is it so that this doesn't have the ability to send schema to schema registry if it doesn't exist?
I noticed that ValueFileSerializedConfigElement
in Example-Test-Plan-2.jmx
contains avroSchema
, avroSubject
and schemaProperties
but if I read the code correctly, these are not used currently. If it is so I guess those could be removed to avoid confusion 🙂
Thanks for your help!
HI @harjis, That's make sense, since ValueSerializedConfigElement depends on you have a Schema Registry up and running, while ValueFileSerializedConfigElement don't; you just upload the avsc file and work with it.
I'm going to check the example test plans and updated, may be some of them got a bit old with recent developments.
Thanks for the feedback!!
Hi!
I was trying out how auto registering a schema to SchemaRegistry works but according my tests the schemas do not get sent to SchemaRegistry. My expectation was that if I have
auto.register.schemas
set totrue
the schema would be automatically sent to schema registry when I start producing messages with JMeter+Kloadgen. I'm also using Avro as the message format.Is there something else I need to set in addition to
auto.register.schema
?Thanks for your help!
The test plan I'm using is here: