I thought about "not registering at all" and left a comment on the PR as well regarding this idea. My concern is that it may be not very straight-forward to implement though via the MetricsReporter interface, if Eno and Aarti has a good approach to tackle it I would love it.
Guozhang On Thu, Jan 5, 2017 at 5:34 AM, Eno Thereska <eno.there...@gmail.com> wrote: > Updated KIP for 1. Waiting to hear from Guozhang on 2 and then we can > proceed. > > Thanks > Eno > > On 5 Jan 2017, at 12:27, Ismael Juma <ism...@juma.me.uk> wrote: > > > > Thanks Eno. It would be good to update the KIP as well with regards to 1. > > > > About 2, I am not sure how adding a field could break existing tools. > > Having said that, your suggestion not to register sensors at all if their > > record level is below what is configured works for me. > > > > Ismael > > > > On Thu, Jan 5, 2017 at 12:07 PM, Eno Thereska <eno.there...@gmail.com> > > wrote: > > > >> Thanks Ismael. Already addressed 1. in the PR. > >> > >> As for 2. I'd prefer not adding extra info to the metrics reporters at > >> this point, since it might break existing tools out there (e.g., if we > add > >> things like configured level). Existing tools might be expecting the > info > >> to be reported in a particular format. > >> > >> If the current way is confusing, I think the next best alternative is to > >> not register sensors at all if their record level is below what is > >> configured. That way they don't show up at all. This will require some > more > >> code in Sensors.java to check at every step, but I think it's clean from > >> the user's point of view. > >> > >> Eno > >> > >> > >>> On 5 Jan 2017, at 11:23, Ismael Juma <ism...@juma.me.uk> wrote: > >>> > >>> Thanks for the KIP, it seems like a good improvement. A couple of > >> comments: > >>> > >>> 1. As Jun asked in the PR, do we need a broker config as well? The > broker > >>> uses Kafka Metrics for some metrics, but we probably don't have any > debug > >>> sensors at the broker yet. Either way, it would be good to describe the > >>> thinking around this. > >>> > >>> 2. The behaviour with regards to the metrics reporter could be > >> surprising. > >>> It would be good to elaborate a little more on this aspect. For > example, > >>> maybe we want to expose the sensor level and the current configured > level > >>> to metric reporters. That could then be used to build the debug/info > >>> dashboard that Eno mentioned (while making it clear that some metrics > >>> exist, but are not currently being recorded). > >>> > >>> Ismael > >>> > >>> On Thu, Jan 5, 2017 at 10:37 AM, Eno Thereska <eno.there...@gmail.com> > >>> wrote: > >>> > >>>> Correct on 2. Guozhang: the sensor will be registered and polled by a > >>>> reporter, but the metrics associated with it will not be updated. > >>>> > >>>> That would allow a user to have, for example, a debug dashboard and an > >>>> info dashboard. > >>>> > >>>> Updated KIP to make this clear. > >>>> > >>>> Thanks > >>>> Eno > >>>> > >>>> > >>>>> On 4 Jan 2017, at 18:00, Aarti Gupta <aartigup...@gmail.com> wrote: > >>>>> > >>>>> Thanks for the review, Guozhang, > >>>>> > >>>>> Addressed 2 out of the three comments, > >>>>> > >>>>> 1. Fixed and updated KIP (swapped code variable name > >>>>> METRICS_RECORD_LEVEL_CONFIG with config name metrics.record.level) > >>>>> > >>>>> 3. >>Could you elaborate on the "shouldRecord()" function, e.g. which > >>>> class > >>>>> it will be added to? Does it contain any parameters? > >>>>> > >>>>> Added more details on shouldRecord() on the KIP > >>>>> > >>>>> In Sensor.java the shouldRecord() method is used to compare the value > >> of > >>>>> metric record level in the consumer config and the RecordLevel > >> associated > >>>>> with the sensor, to determine if metrics should recorded. > >>>>> > >>>>> From Sensor.java > >>>>> > >>>>> /** > >>>>> * @return true if the sensor's record level indicates that the metric > >>>>> will be recorded, false otherwise > >>>>> */ > >>>>> public boolean shouldRecord() { > >>>>> return this.recordLevel.shouldRecord(config.recordLevel()); > >>>>> } > >>>>> > >>>>> From nested enum, Sensor.RecordLevel > >>>>> > >>>>> public boolean shouldRecord(final RecordLevel configLevel) { > >>>>> if (configLevel.equals(DEBUG)) { > >>>>> return true; > >>>>> } else { > >>>>> return configLevel.equals(this); > >>>>> } > >>>>> } > >>>>> > >>>>> > >>>>> 2. Need to discuss with Eno. > >>>>> > >>>>> > >>>>> Thanks! > >>>>> > >>>>> aarti > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> On Tue, Jan 3, 2017 at 2:27 PM, Guozhang Wang <wangg...@gmail.com> > >>>> wrote: > >>>>> > >>>>>> LGTM overall. A few comments below: > >>>>>> > >>>>>> 1. "METRICS_RECORD_LEVEL_CONFIG" is the internal code's variable > name, > >>>> but > >>>>>> not the real config string, I think it is `metrics.record.level` > >>>> instead? > >>>>>> > >>>>>> 2. In the Motivation section, as in "This associates each sensor > with > >> a > >>>>>> record level ... only if the metric config of the client requires > >> these > >>>>>> metrics to be recorded." > >>>>>> > >>>>>> Could you elaborate this a bit more, for example, will the sensor > ever > >>>> be > >>>>>> registered in the reporter if its level is not allowed in the client > >>>>>> config? Or it will be registered but never polled? Or it will be > >>>> registered > >>>>>> and polled, but recorded? > >>>>>> > >>>>>> From PR 1446 it seems to be the last case, i.e. the sensor will have > >> the > >>>>>> default value based on its type, and it will still be polled by the > >>>>>> reporter but not recorded. To an end-user's experience it will mean > >> that > >>>>>> for example the monitoring UI that displays all polled metrics will > >>>> still > >>>>>> show the metrics graph, with the value consistently shown as the > >> default > >>>>>> value, instead of not showing the graphs at all. > >>>>>> > >>>>>> 3. Could you elaborate on the "shouldRecord()" function, e.g. which > >>>> class > >>>>>> it will be added to? Does it contain any parameters? > >>>>>> > >>>>>> > >>>>>> Guozhang > >>>>>> > >>>>>> > >>>>>> > >>>>>> On Sun, Jan 1, 2017 at 5:31 AM, Eno Thereska < > eno.there...@gmail.com> > >>>>>> wrote: > >>>>>> > >>>>>>> Thanks for starting the discussion on these KIPs Aarti. > >>>>>>> > >>>>>>> Eno > >>>>>>> > >>>>>>> On Sunday, January 1, 2017, Aarti Gupta <aartigup...@gmail.com> > >> wrote: > >>>>>>> > >>>>>>>> Thanks Radai, > >>>>>>>> > >>>>>>>> Yes that is the correct link, my bad > >>>>>>>> > >>>>>>>> > >>>>>>>> https://cwiki.apache.org/confluence/display/KAFKA/KIP- > >>>>>>>> 105%3A+Addition+of+Record+Level+for+Sensors > >>>>>>>> > >>>>>>>> > >>>>>>>> > >>>>>>>> Aarti > >>>>>>>> > >>>>>>>> On Sat, Dec 31, 2016 at 9:32 PM radai <radai.rosenbl...@gmail.com > >>>>>>>> <javascript:;>> wrote: > >>>>>>>> > >>>>>>>>> link leads to 104. i think this is the correct one - > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> https://cwiki.apache.org/confluence/display/KAFKA/KIP- > >>>>>>>> 105%3A+Addition+of+Record+Level+for+Sensors > >>>>>>>>> > >>>>>>>>> ? > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> On Fri, Dec 30, 2016 at 8:31 PM, Aarti Gupta < > >> aartigup...@gmail.com > >>>>>>>> <javascript:;>> > >>>>>>>>> wrote: > >>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>>>> Hi all, > >>>>>>>>> > >>>>>>>>>> > >>>>>>>>> > >>>>>>>>>> I would like to start the discussion on KIP-105: Addition of > >> Record > >>>>>>>> Level > >>>>>>>>> > >>>>>>>>>> for Sensors > >>>>>>>>> > >>>>>>>>>> *https://cwiki.apache.org/confluence/pages/viewpage.action? > >>>>>>>>> > >>>>>>>>>> < > >>>>>>>>> https://cwiki.apache.org/confluence/pages/viewpage. > >>>>>>>> action?pageId=67636480 > >>>>>>>>> > >>>>>>>>>>> * > >>>>>>>>> > >>>>>>>>>> *pageId=67636483* > >>>>>>>>> > >>>>>>>>>> > >>>>>>>>> > >>>>>>>>>> Looking forward to your feedback. > >>>>>>>>> > >>>>>>>>>> > >>>>>>>>> > >>>>>>>>>> Thanks, > >>>>>>>>> > >>>>>>>>>> Aarti and Eno > >>>>>>>>> > >>>>>>>>>> > >>>>>>>>> > >>>>>>>>> > >>>>>>>> > >>>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> -- > >>>>>> -- Guozhang > >>>>>> > >>>> > >>>> > >> > >> > > -- -- Guozhang