[ https://issues.apache.org/jira/browse/KAFKA-1930?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14354376#comment-14354376 ]
Jay Kreps commented on KAFKA-1930: ---------------------------------- Hey [~gwenshap] this is wheel reinvention, no question. However, there was definitely a significant period of pain that lead to it. Embedding that library in the client was a real disaster, arguably the single biggest source of issues/complaints we had as it broke compatibility and then forced each client user to try to reconcile conflicting versions with weird classpath hacks if our version differed from theirs. I feel pretty strongly we should stick with our "no dependencies" policy for client code. We also had a variety of memory related issues related to how histograms work. In the end it was the Yammer metrics users who most wanted us to get rid of it because it tended to be they who would deal with all the incompatibilities. I think there is a real difference here between internal apps that just need to work in a single dropwizard version and embedded library code like ours that ends up getting embedded in every version of everything. It just totally changes the meaning and impact of dependencies. I agree that the integrations are nice, but JMX is far and away the most common monitoring for java apps and is, if anything, better supported than the yammer metrics apis as a system for getting values out of apps. There is integration for every major metrics system. So I don't think we need to ship a ton of integrations. People who want something off the shelf can use JMX integration, and people who want to do something custom can plug in. We need a windowed counter implementation for quotas in any case, which has very particular requirements to do right, so I suspect we would end up reinventing for that in any case. I also think the current metrics code is better in a number of technical ways but I guess that may be a side-effect of having written it. In any case, the primary argument I think would be to pull up the metrics in jconsole for the old producer and for the new producer and compare what you get. > Move server over to new metrics library > --------------------------------------- > > Key: KAFKA-1930 > URL: https://issues.apache.org/jira/browse/KAFKA-1930 > Project: Kafka > Issue Type: Improvement > Reporter: Jay Kreps > > We are using org.apache.kafka.common.metrics on the clients, but using Coda > Hale metrics on the server. We should move the server over to the new metrics > package as well. This will help to make all our metrics self-documenting. -- This message was sent by Atlassian JIRA (v6.3.4#6332)