Hi James,

I updated the KIP to reflect the exact change to the metric as you
suggested.

> kafka.network:type=RequestMetrics,name=RequestsPerSec,request=Produce
>
> And the KIP is proposing to change it to:
>
> kafka.network:type=RequestMetrics,name=RequestsPerSec,request=
Produce,version=1.0.0
>
> Is is possible for the broker to have BOTH metrics? That way, we don’t
have to change the name.
>
> Would that make querying/aggregating too annoying (since a query for
name=RequestsPerSec and request=Produce would return BOTH metrics)?
>

This kind of change will be problematic to us as the total RequestsPerSec
will be double counted in our metric system as we do automatic aggregation.
It has been a headache for us as we always have to do some special handling
when querying such metrics.

Thanks,
Allen

On Wed, Mar 21, 2018 at 11:55 PM, James Cheng <wushuja...@gmail.com> wrote:

> Regardless of what we decide, Allen, can you update the KIP and provide an
> concrete example of what an mbean will look like with the proposed change?
> Similar to what I said here:
>
> > An example of the metric we are thinking of changing is this:
> >
> > kafka.network:type=RequestMetrics,name=RequestsPerSec,request=Produce
> >
> > And the KIP is proposing to change it to:
> >
> > kafka.network:type=RequestMetrics,name=RequestsPerSec,request=
> Produce,version=1.0.0
>
>
> I think that would make the KIP easier to understand.
>
> Thanks,
> -James
>
> Sent from my iPhone
>
> > On Mar 21, 2018, at 11:49 PM, James Cheng <wushuja...@gmail.com> wrote:
> >
> > An example of the metric we are thinking of changing is this:
> >
> > kafka.network:type=RequestMetrics,name=RequestsPerSec,request=Produce
> >
> > And the KIP is proposing to change it to:
> >
> > kafka.network:type=RequestMetrics,name=RequestsPerSec,request=
> Produce,version=1.0.0
> >
> > Is is possible for the broker to have BOTH metrics? That way, we don’t
> have to change the name.
> >
> > Would that make querying/aggregating too annoying (since a query for
> name=RequestsPerSec and request=Produce would return BOTH metrics)?
> >
> > Also, it might be hard to query for “name=RequestsPerSec and
> request=Produce and version field NOT present”
> >
> > -James
> >
> > Sent from my iPhone
> >
> >> On Mar 21, 2018, at 10:17 PM, Jeff Widman <j...@jeffwidman.com> wrote:
> >>
> >> I agree with Allen.
> >>
> >> Go with the intuitive name, even if it means not deprecating. The
> impact of
> >> breakage here is small since it only breaks monitoring and the folks who
> >> watch their dashboards closely are the ones likely to read the release
> >> notes carefully and see this change.
> >>
> >>> On Wed, Mar 21, 2018, 3:24 PM Allen Wang <allenxw...@gmail.com> wrote:
> >>>
> >>> I understand the impact to jmx based tools. But adding a new metric is
> >>> unnecessary for more advanced monitoring systems that can aggregate
> with or
> >>> without tags. Duplicating the metric (including the "request" tag) also
> >>> adds performance cost to the broker, especially for the metric that
> needs
> >>> to be updated for every request.
> >>>
> >>> For KIP-225, the choice makes sense because the deprecated metric's
> name is
> >>> undesirable anyway and the new metric name is much better than the
> prefixed
> >>> metric name. Not the case for RequestsPerSec. It is hard for me to
> come up
> >>> with another intuitive name.
> >>>
> >>> Thanks,
> >>> Allen
> >>>
> >>>
> >>>
> >>>> On Wed, Mar 21, 2018 at 2:01 AM, Ted Yu <yuzhih...@gmail.com> wrote:
> >>>>
> >>>> Creating new metric and deprecating existing one seems better from
> >>>> compatibility point of view.
> >>>> -------- Original message --------From: James Cheng <
> >>> wushuja...@gmail.com>
> >>>> Date: 3/21/18  1:39 AM  (GMT-08:00) To: dev@kafka.apache.org Subject:
> >>> Re:
> >>>> [DISCUSS] KIP-272: Add API version tag to broker's RequestsPerSec
> metric
> >>>> Manikumar brings up a good point. This is a breaking change to the
> >>>> existing metric. Do we want to break compatibility, or do we want to
> add
> >>> a
> >>>> new metric and (optionally) deprecate the existing metric?
> >>>>
> >>>> For reference, in KIP-153 [1], we changed an existing metric without
> >>> doing
> >>>> proper deprecation.
> >>>>
> >>>> However, in KIP-225, we noticed that that we maybe shouldn't have done
> >>>> that. For KIP-225 [2], we instead decided to create a new metric, and
> >>>> deprecate (but not remove) the old one.
> >>>>
> >>>> -James
> >>>>
> >>>> [1] https://cwiki.apache.org/confluence/display/KAFKA/KIP-
> >>>> 153%3A+Include+only+client+traffic+in+BytesOutPerSec+metric
> >>>>
> >>>> [2] https://cwiki.apache.org/confluence/pages/viewpage.
> >>>> action?pageId=74686649
> >>>>
> >>>>
> >>>>> On Mar 21, 2018, at 12:14 AM, Manikumar <manikumar.re...@gmail.com>
> >>>> wrote:
> >>>>>
> >>>>> Can we retain total RequestsPerSec metric and add new version tag
> >>> metric?
> >>>>> When monitoring with simple jconsole/jmx based tools, It is useful to
> >>>> have
> >>>>> total metric
> >>>>> to monitor request rate.
> >>>>>
> >>>>>
> >>>>> Thanks,
> >>>>>
> >>>>> On Wed, Mar 21, 2018 at 11:01 AM, Gwen Shapira <g...@confluent.io>
> >>>> wrote:
> >>>>>
> >>>>>> I love this. Not much to add - it is an elegant solution, clean
> >>>>>> implementation and it addresses a real need, especially during
> >>> upgrades.
> >>>>>>
> >>>>>>> On Tue, Mar 20, 2018 at 2:49 PM, Ted Yu <yuzhih...@gmail.com>
> wrote:
> >>>>>>>
> >>>>>>> Thanks for the response.
> >>>>>>>
> >>>>>>> Assuming number of client versions is limited in a cluster, memory
> >>>>>>> consumption is not a concern.
> >>>>>>>
> >>>>>>> Cheers
> >>>>>>>
> >>>>>>> On Tue, Mar 20, 2018 at 10:47 AM, Allen Wang <allenxw...@gmail.com
> >
> >>>>>> wrote:
> >>>>>>>
> >>>>>>>> Hi Ted,
> >>>>>>>>
> >>>>>>>> The additional hash map is very small, possibly a few KB. Each
> >>> request
> >>>>>>> type
> >>>>>>>> ("produce", "fetch", etc.) will have such a map which have a few
> >>>>>> entries
> >>>>>>>> depending on the client API versions the broker will encounter. So
> >>> if
> >>>>>>>> broker encounters two client versions for "produce", there will be
> >>> two
> >>>>>>>> entries in the map for "produce" requests mapping from version to
> >>>>>> meter.
> >>>>>>> Of
> >>>>>>>> course, hash map always have additional memory overhead.
> >>>>>>>>
> >>>>>>>> Thanks,
> >>>>>>>> Allen
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> On Mon, Mar 19, 2018 at 3:49 PM, Ted Yu <yuzhih...@gmail.com>
> >>> wrote:
> >>>>>>>>
> >>>>>>>>> bq. *additional hash lookup is needed when updating the metric to
> >>>>>>> locate
> >>>>>>>>> the metric *
> >>>>>>>>>
> >>>>>>>>> *Do you have estimate how much memory is needed for maintaining
> the
> >>>>>>> hash
> >>>>>>>>> map ?*
> >>>>>>>>>
> >>>>>>>>> *Thanks*
> >>>>>>>>>
> >>>>>>>>> On Mon, Mar 19, 2018 at 3:19 PM, Allen Wang <
> allenxw...@gmail.com>
> >>>>>>>> wrote:
> >>>>>>>>>
> >>>>>>>>>> Hi all,
> >>>>>>>>>>
> >>>>>>>>>> I have created KIP-272: Add API version tag to broker's
> >>>>>>> RequestsPerSec
> >>>>>>>>>> metric.
> >>>>>>>>>>
> >>>>>>>>>> Here is the link to the KIP:
> >>>>>>>>>>
> >>>>>>>>>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-
> >>>>>>>>>> 272%3A+Add+API+version+tag+to+broker%27s+RequestsPerSec+metric
> >>>>>>>>>>
> >>>>>>>>>> Looking forward to the discussion.
> >>>>>>>>>>
> >>>>>>>>>> Thanks,
> >>>>>>>>>> Allen
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> *Gwen Shapira*
> >>>>>> Product Manager | Confluent
> >>>>>> 650.450.2760 | @gwenshap
> >>>>>> Follow us: Twitter <https://twitter.com/ConfluentInc> | blog
> >>>>>> <http://www.confluent.io/blog>
> >>>>>>
> >>>>
> >>>>
> >>>
>

Reply via email to