[ 
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)

Reply via email to