Hi Jun, On Wed, Sep 17, 2014 at 12:35 PM, Jun Rao <jun...@gmail.com> wrote:
> Bhavesh, > > Yes, allowing dot in clientId and topic makes it a bit harder to define the > JMX bean names. I see a couple of solutions here. > > 1. Disable dot in clientId and topic names. The issue is that dot may > already be used in existing deployment. > > 2. We can represent the JMX bean name differently in the new producer. > Instead of > kafka.producer.myclientid:type=mytopic > we could change it to > kafka.producer:clientId=myclientid,topic=mytopic > > I felt that option 2 is probably better since it doesn't affect existing > users. > If it doesn't affect existing users, great. If you are saying that each "piece" of MBean name could be expressed as name=value pair, with something like "," (forbidden in host names, topic names, client IDs, etc. I assume?) then yes, I think this would be easier to parse and it would be easier for people to understand what is what. Otis -- Monitoring * Alerting * Anomaly Detection * Centralized Log Management Solr & Elasticsearch Support * http://sematext.com/ > > Otis, > > We probably can also use option 2 to address KAFKA-1481. For topic/clientid > specific metrics, we could explicitly specify the metric name so that it > contains "topic=mytopic,clientid=myclientid". That seems to be a much > cleaner way than having all parts included in a single string separated by > '|'. > > Thanks, > > Jun > > > > > On Tue, Sep 16, 2014 at 5:15 PM, Bhavesh Mistry < > mistry.p.bhav...@gmail.com> > wrote: > > > HI Otis, > > > > What is migration path ? If topic with special chars exists already( > > ".","-","|" etc) in previous version of producer/consumer of Kafka, what > > happens after the upgrade new producer or consumer (kafka version) ? > Also, > > in new producer API (Kafka Trunk), does this enforce the rule about > client > > id as well ? > > > > Thanks, > > > > Bhavesh > > > > On Tue, Sep 16, 2014 at 2:09 PM, Otis Gospodnetic < > > otis.gospodne...@gmail.com> wrote: > > > > > Hi, > > > > > > So maybe I should I should have asked the Q explicitly: > > > Could we commit the patch from > > > https://issues.apache.org/jira/browse/KAFKA-1481 now that, I hope, > it's > > > clear what problems the current MBean names can cause? > > > > > > Thanks, > > > Otis > > > -- > > > Monitoring * Alerting * Anomaly Detection * Centralized Log Management > > > Solr & Elasticsearch Support * http://sematext.com/ > > > > > > > > > > > > On Mon, Sep 15, 2014 at 10:40 PM, Otis Gospodnetic < > > > otis.gospodne...@gmail.com> wrote: > > > > > > > Hi, > > > > > > > > *Problem:* > > > > Some Kafka 0.8.x MBeans have names composed of things like <consumer > > > > group>-<topic>-<metric name>. Note how dashes are used as > delimiters. > > > > When <consumer group> and <topic> don't contain the delimiter > > character > > > > all is good if you want to extract parts of this MBean name by simply > > > > splitting on the delimiter character. The problem is that dashes are > > > > allowed in topic and group names, so this splitting doesn't work. > > > > Moreover, underscores are also used as delimiters, and they can also > be > > > > used in things like topic names. > > > > > > > > *Example*: > > > > This MBean's name is composed of <consumer > group>-<topic>-BytesPerSec: > > > > > > > > kafka.consumer:type="ConsumerTopicMetrics", > > name="*myGroup**-myTopic**-* > > > > BytesPerSec" > > > > > > > > Here we can actually split on "-" and extract all 3 parts from the > > MBean > > > > name:: > > > > * consumer group ('*myGroup*') > > > > * topic ('*myTopic*') > > > > * metric (‘BytesPerSec’) > > > > > > > > All good! > > > > > > > > But imagine if I named the group: *my-Group* > > > > And if I named the topic: *my-Topic* > > > > > > > > Then we'd have: > > > > kafka.consumer:type="ConsumerTopicMetrics", > > > name="*my-Group**-my-Topic**-* > > > > BytesPerSec" > > > > > > > > Now splitting on "-" would no longer work! To extract "my-Group" and > > > > "my-Topic" and "BytesPerSec" parts I would have to know the specific > > > group > > > > name and topic name to look for and could not use generic approach of > > > just > > > > splitting the MBean name on the delimiter. > > > > > > > > *Solution*: > > > > The patch in https://issues.apache.org/jira/browse/KAFKA-1481 > replaces > > > > all _ and - characters where they are used as delimiters in MBean > names > > > > with a "|" character. Because the "I" character is not allowed in > > topic > > > > names, consumer groups, host names, splitting on this new and unified > > > > delimiter works. > > > > > > > > I hope this explains the problem, the solution, and that this can > make > > it > > > > in the next 0.8.x. > > > > > > > > Otis > > > > -- > > > > Monitoring * Alerting * Anomaly Detection * Centralized Log > Management > > > > Solr & Elasticsearch Support * http://sematext.com/ > > > > > > > > > > > > > >