I added the following ugly reflection code and it's working
try {
Field f = ProducerConfig.class.getDeclaredField("config");
f.setAccessible(true);
ConfigDef config = (ConfigDef) f.get(ConfigDef.class);
config.define(ServoReporter.class.getName(),
ConfigDef.Type.CLASS, ConfigDef.Importance.LOW, "");
} catch (Exception e) {
e.printStackTrace();
}
On Wed, Nov 5, 2014 at 10:48 PM, Bae, Jae Hyeon <[email protected]> wrote:
> Hi
>
> When I set up
>
> props.put("metric.reporters",
> Lists.newArrayList(ServoReporter.class.getName()));
>
> I got the following error:
>
> org.apache.kafka.common.config.ConfigException: Unknown configuration
> 'com.netflix.suro.sink.kafka.ServoReporter'
> at
> org.apache.kafka.common.config.AbstractConfig.get(AbstractConfig.java:60)
> at
> org.apache.kafka.common.config.AbstractConfig.getClass(AbstractConfig.java:91)
> at
> org.apache.kafka.common.config.AbstractConfig.getConfiguredInstances(AbstractConfig.java:147)
> at
> org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:105)
> at
> org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:94)
>
> AbstractConfig.getClass throws an exception because it cannot find any
> definition of ServoReporter.class.getName() but I cannot add custom class
> definition because the class name is not defined in the key set of
> properties.
>
> Do you have any idea?
>
> Thank you
> Best, Jae
>