Thanks for updating the KIP. LGTM.

-Matthias


On 4/4/18 12:46 PM, John Roesler wrote:
> Cool, if you're satisfied with the KIP now, maybe I can lobby for your vote
> ;)
> 
> The vote thread is still at only one binding +1, I think.
> 
> Thanks,
> -John
> 
> On Tue, Apr 3, 2018 at 9:05 PM, Matthias J. Sax <matth...@confluent.io>
> wrote:
> 
>> Sounds great!
>>
>> The cryptic topic names can be an issue -- however, people can
>> `describe()`  their topology to map the name to the corresponding
>> sub-topology/tasks to narrow the error down to the corresponding
>> operators. I think, this should be "sufficient for now" for debugging.
>>
>> Renaming those topic seems to be out-of-scope for this KIP.
>>
>>
>> -Matthias
>>
>> On 4/3/18 2:45 PM, Guozhang Wang wrote:
>>> Thanks John, your proposal looks fine to me.
>>>
>>> I'll go ahead and look into the PR for more details myself.
>>>
>>>
>>> Guozhang
>>>
>>> On Tue, Apr 3, 2018 at 1:35 PM, Bill Bejeck <bbej...@gmail.com> wrote:
>>>
>>>> Hi John,
>>>>
>>>> Thanks for making the updates.
>>>>
>>>> I agree with the information you've included in the logs as described
>>>> above, as log statements without enough context/information can be
>>>> frustrating.
>>>>
>>>> -Bill
>>>>
>>>> On Tue, Apr 3, 2018 at 3:29 PM, John Roesler <j...@confluent.io> wrote:
>>>>
>>>>> Allrighty, how about this, then...
>>>>>
>>>>> I'll move the metric back to the StreamThread and maintain the existing
>>>> tag
>>>>> (client-id=...(per-thread client-id)). It won't be present in the
>>>>> TopologyTestDriver's metrics.
>>>>>
>>>>> As a side note, I'm not sure that the location of the log messages has
>>>>> visibility into the name of the thread or the task, or the processor
>>>> node,
>>>>> for that matter. But at the end of the day, I don't think it really
>>>>> matters.
>>>>>
>>>>> None of those identifiers are in the public interface or
>> user-controlled.
>>>>> For them to be useful for debugging, users would have to gain a very
>> deep
>>>>> understanding of how their DSL program gets executed. From my
>>>> perspective,
>>>>> they are all included in metric tags only to prevent collisions between
>>>> the
>>>>> same metrics in different (e.g.) threads.
>>>>>
>>>>> I think what's important is to provide the right information in the
>> logs
>>>>> that users will be able to debug their issues. This is why the logs in
>> my
>>>>> pr include the topic/partition/offset of the offending data, as well as
>>>> the
>>>>> stacktrace of the exception from the deserializer (or for timestamps,
>> the
>>>>> extracted timestamp and the class name of their extractor). This
>>>>> information alone should let them pinpoint the offending data and fix
>> it.
>>>>>
>>>>> (I am aware that that topic name might be a repartition topic, and
>>>>> therefore also esoteric from the user's perspective, but I think it's
>> the
>>>>> best we can do right now. It might be nice to explicitly take on a
>>>>> debugging ergonomics task in the future and give all processor nodes
>>>>> human-friendly names. Then, we could surface these names in any logs or
>>>>> exceptions. But I'm inclined to call this out-of-scope for now.)
>>>>>
>>>>> Thanks again,
>>>>> -John
>>>>>
>>>>> On Tue, Apr 3, 2018 at 1:40 PM, Guozhang Wang <wangg...@gmail.com>
>>>> wrote:
>>>>>
>>>>>> 1. If we can indeed gather all the context information from the log4j
>>>>>> entries I'd suggest we change to thread-level (I'm not sure if that is
>>>>>> doable, so if John have already some WIP PR that can help us decide).
>>>>>>
>>>>>> 2. We can consider adding the API in TopologyTestDriver for general
>>>>> testing
>>>>>> purposes; that being said, I think Matthias has a good point that this
>>>>>> alone should not be a driving motivation for us to keep this metric as
>>>>>> task-level if 1) is true.
>>>>>>
>>>>>>
>>>>>>
>>>>>> Guozhang
>>>>>>
>>>>>>
>>>>>> On Tue, Apr 3, 2018 at 11:36 AM, Matthias J. Sax <
>>>> matth...@confluent.io>
>>>>>> wrote:
>>>>>>
>>>>>>> Thanks Guozhang, that was my intent.
>>>>>>>
>>>>>>> @John: yes, we should not nail down the exact log message. It's just
>>>> to
>>>>>>> point out the trade-off. If we can get the required information in
>>>> the
>>>>>>> logs, we might not need task level metrics.
>>>>>>>
>>>>>>>
>>>>>>> -Matthias
>>>>>>>
>>>>>>> On 4/3/18 11:26 AM, Guozhang Wang wrote:
>>>>>>>> I think Matthias' comment is that, we can still record the metrics
>>>> on
>>>>>> the
>>>>>>>> thread-level, while having the WARN log entry to include sufficient
>>>>>>> context
>>>>>>>> information so that users can still easily narrow down the
>>>>>> investigation
>>>>>>>> scope.
>>>>>>>>
>>>>>>>>
>>>>>>>> Guozhang
>>>>>>>>
>>>>>>>> On Tue, Apr 3, 2018 at 11:22 AM, John Roesler <j...@confluent.io>
>>>>>> wrote:
>>>>>>>>
>>>>>>>>> I agree we should add as much information as is reasonable to the
>>>>> log.
>>>>>>> For
>>>>>>>>> example, see this WIP PR I started for this KIP:
>>>>>>>>>
>>>>>>>>> https://github.com/apache/kafka/pull/4812/files#diff-
>>>>>>>>> 88d129f048bc842c7db5b2566a45fce8R80
>>>>>>>>>
>>>>>>>>> and
>>>>>>>>>
>>>>>>>>> https://github.com/apache/kafka/pull/4812/files#diff-
>>>>>>>>> 69e6789eb675ec978a1abd24fed96eb1R111
>>>>>>>>>
>>>>>>>>> I'm not sure if we should nail down the log messages in the KIP or
>>>>> in
>>>>>>> the
>>>>>>>>> PR discussion. What say you?
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> -John
>>>>>>>>>
>>>>>>>>> On Tue, Apr 3, 2018 at 12:20 AM, Matthias J. Sax <
>>>>>> matth...@confluent.io
>>>>>>>>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> Thanks for sharing your thoughts. As I mentioned originally, I am
>>>>> not
>>>>>>>>>> sure about the right log level either. Your arguments are
>>>>> convincing
>>>>>> --
>>>>>>>>>> thus, I am fine with keeping WARN level.
>>>>>>>>>>
>>>>>>>>>> The task vs thread level argument is an interesting one.
>>>> However, I
>>>>>> am
>>>>>>>>>> wondering if we should add this information into the
>>>> corresponding
>>>>>> WARN
>>>>>>>>>> logs that we write anyway? For this case, we can also log the
>>>>>>>>>> corresponding operator (and other information like topic name etc
>>>>> if
>>>>>>>>>> needed). WDYT about this?
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> -Matthias
>>>>>>>>>>
>>>>>>>>>> On 4/2/18 8:31 PM, Guozhang Wang wrote:
>>>>>>>>>>> Regarding logging: I'm inclined to keep logging at WARN level
>>>>> since
>>>>>>>>>> skipped
>>>>>>>>>>> records are not expected in normal execution (for all reasons
>>>> that
>>>>>> we
>>>>>>>>> are
>>>>>>>>>>> aware of), and hence when error happens users should be alerted
>>>>> from
>>>>>>>>>>> metrics and looked into the log files, so to me if it is really
>>>>>>>>> spamming
>>>>>>>>>>> the log files it is also a good alert for users. Besides for
>>>>>>>>> deserialize
>>>>>>>>>>> errors we already log at WARN level for this reason.
>>>>>>>>>>>
>>>>>>>>>>> Regarding the metrics-levels: I was pondering on that as well.
>>>>> What
>>>>>>>>> made
>>>>>>>>>> me
>>>>>>>>>>> to think and agree on task-level than thread-level is that for
>>>>> some
>>>>>>>>>> reasons
>>>>>>>>>>> like window retention, they may possibly be happening on a
>>>> subset
>>>>> of
>>>>>>>>>> input
>>>>>>>>>>> partitions, and tasks are correlated with partitions the
>>>>> task-level
>>>>>>>>>> metrics
>>>>>>>>>>> can help users to narrow down on the specific input data
>>>>> partitions.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Guozhang
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Mon, Apr 2, 2018 at 6:43 PM, John Roesler <j...@confluent.io
>>>>>
>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi Matthias,
>>>>>>>>>>>>
>>>>>>>>>>>> No worries! Thanks for the reply.
>>>>>>>>>>>>
>>>>>>>>>>>> 1) There isn't a connection. I tried using the
>>>> TopologyTestDriver
>>>>>> to
>>>>>>>>>> write
>>>>>>>>>>>> a quick test exercising the current behavior and discovered
>>>> that
>>>>>> the
>>>>>>>>>>>> metrics weren't available. It seemed like they should be, so I
>>>>>> tacked
>>>>>>>>>> it on
>>>>>>>>>>>> to this KIP. If you feel it's inappropriate, I can pull it back
>>>>>> out.
>>>>>>>>>>>>
>>>>>>>>>>>> 2) I was also concerned about that, but I figured it would come
>>>>> up
>>>>>> in
>>>>>>>>>>>> discussion if I just went ahead and proposed it. And here we
>>>> are!
>>>>>>>>>>>>
>>>>>>>>>>>> Here's my thought: maybe there are two classes of skips:
>>>>>> "controlled"
>>>>>>>>>> and
>>>>>>>>>>>> "uncontrolled", where "controlled" means, as an app author, I
>>>>>>>>>> deliberately
>>>>>>>>>>>> filter out some events, and "uncontrolled" means that I simply
>>>>>> don't
>>>>>>>>>>>> account for some feature of the data, and the framework skips
>>>>> them
>>>>>>> (as
>>>>>>>>>>>> opposed to crashing).
>>>>>>>>>>>>
>>>>>>>>>>>> In this breakdowns, the skips I'm adding metrics for are all
>>>>>>>>>> uncontrolled
>>>>>>>>>>>> skips (and we hope to measure all the uncontrolled skips). Our
>>>>>> skips
>>>>>>>>> are
>>>>>>>>>>>> well documented, so it wouldn't be terrible to have an
>>>>> application
>>>>>> in
>>>>>>>>>> which
>>>>>>>>>>>> you know you expect to have tons of uncontrolled skips, but
>>>> it's
>>>>>> not
>>>>>>>>>> great
>>>>>>>>>>>> either, since you may also have some *unexpected* uncontrolled
>>>>>> skips.
>>>>>>>>>> It'll
>>>>>>>>>>>> be difficult to notice, since you're probably not alerting on
>>>> the
>>>>>>>>> metric
>>>>>>>>>>>> and filtering out the logs (whatever their level).
>>>>>>>>>>>>
>>>>>>>>>>>> I'd recommend any app author, as an alternative, to convert all
>>>>>>>>> expected
>>>>>>>>>>>> skips to controlled ones, by updating the topology to filter
>>>>> those
>>>>>>>>>> records
>>>>>>>>>>>> out.
>>>>>>>>>>>>
>>>>>>>>>>>> Following from my recommendation, as a library author, I'm
>>>>> inclined
>>>>>>> to
>>>>>>>>>> mark
>>>>>>>>>>>> those logs WARN, since in my opinion, they should be concerning
>>>>> to
>>>>>>> the
>>>>>>>>>> app
>>>>>>>>>>>> authors. I'd definitely want to show, rather than hide, them by
>>>>>>>>>> default, so
>>>>>>>>>>>> I would pick INFO at least.
>>>>>>>>>>>>
>>>>>>>>>>>> That said, logging is always a tricky issue for lower-level
>>>>>> libraries
>>>>>>>>>> that
>>>>>>>>>>>> run inside user code, since we don't have all the information
>>>> we
>>>>>> need
>>>>>>>>> to
>>>>>>>>>>>> make the right call.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On your last note, yeah, I got that impression from Guozhang as
>>>>>> well.
>>>>>>>>>>>> Thanks for the clarification.
>>>>>>>>>>>>
>>>>>>>>>>>> -John
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Mon, Apr 2, 2018 at 4:03 PM, Matthias J. Sax <
>>>>>>>>> matth...@confluent.io>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> John,
>>>>>>>>>>>>>
>>>>>>>>>>>>> sorry for my late reply and thanks for updating the KIP.
>>>>>>>>>>>>>
>>>>>>>>>>>>> I like your approach about "metrics are for monitoring, logs
>>>> are
>>>>>> for
>>>>>>>>>>>>> debugging" -- however:
>>>>>>>>>>>>>
>>>>>>>>>>>>> 1) I don't see a connection between this and the task-level
>>>>>> metrics
>>>>>>>>>> that
>>>>>>>>>>>>> you propose to get the metrics in `TopologyTestDriver`. I
>>>> don't
>>>>>>> think
>>>>>>>>>>>>> people would monitor the `TopologyTestDriver` an thus
>>>> wondering
>>>>>> why
>>>>>>>>> it
>>>>>>>>>>>>> is important to include the metrics there? Thread-level metric
>>>>>> might
>>>>>>>>> be
>>>>>>>>>>>>> easier to monitor though (ie, less different metric to
>>>> monitor).
>>>>>>>>>>>>>
>>>>>>>>>>>>> 2) I am a little worried about WARN level logging and that it
>>>>>> might
>>>>>>>>> be
>>>>>>>>>>>>> too chatty -- as you pointed out, it's about debugging, thus
>>>>> DEBUG
>>>>>>>>>> level
>>>>>>>>>>>>> might be better. Not 100% sure about this to be honest. What
>>>> is
>>>>>> the
>>>>>>>>>>>>> general assumption about the frequency for skipped records? I
>>>>>> could
>>>>>>>>>>>>> imagine cases for which skipped records are quite frequent and
>>>>>> thus,
>>>>>>>>>>>>> WARN level logs might "flood" the logs
>>>>>>>>>>>>>
>>>>>>>>>>>>> One final remark:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> More
>>>>>>>>>>>>>> generally, I would like to establish a pattern in which we
>>>>> could
>>>>>>> add
>>>>>>>>>>>> new
>>>>>>>>>>>>>> values for the "reason" tags without needing a KIP to do so.
>>>>>>>>>>>>>
>>>>>>>>>>>>> From my understanding, this is not feasible. Changing metrics
>>>> is
>>>>>>>>> always
>>>>>>>>>>>>> considered a public API change, and we need a KIP for any
>>>>> change.
>>>>>> As
>>>>>>>>> we
>>>>>>>>>>>>> moved away from tagging, it doesn't matter for the KIP anymore
>>>>> --
>>>>>>>>> just
>>>>>>>>>>>>> wanted to point it out.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> -Matthias
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On 3/30/18 2:47 PM, John Roesler wrote:
>>>>>>>>>>>>>> Allrighty! The KIP is updated.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Thanks again, all, for the feedback.
>>>>>>>>>>>>>> -John
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> On Fri, Mar 30, 2018 at 3:35 PM, John Roesler <
>>>>> j...@confluent.io
>>>>>>>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Hey Guozhang and Bill,
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Ok, I'll update the KIP. At the risk of disturbing
>>>> consensus,
>>>>>> I'd
>>>>>>>>>> like
>>>>>>>>>>>>> to
>>>>>>>>>>>>>>> put it in the task instead of the thread so that it'll show
>>>> up
>>>>>> in
>>>>>>>>> the
>>>>>>>>>>>>>>> TopologyTestDriver metrics as well.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> I'm leaning toward keeping the scope where it is right now,
>>>>> but
>>>>>> if
>>>>>>>>>>>>> others
>>>>>>>>>>>>>>> want to advocate for tossing in some more metrics, we can go
>>>>>> that
>>>>>>>>>>>> route.
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> Thanks all,
>>>>>>>>>>>>>>> -John
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> On Fri, Mar 30, 2018 at 2:37 PM, Bill Bejeck <
>>>>> bbej...@gmail.com
>>>>>>>
>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Thanks for the KIP John, and sorry for the late comments.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I'm on the fence with providing a single level metrics,
>>>> but I
>>>>>>>>> think
>>>>>>>>>>>>> we'll
>>>>>>>>>>>>>>>> have that discussion outside of this KIP.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> * maintain one skipped-record metric (could be per-thread,
>>>>>>>>>> per-task,
>>>>>>>>>>>>> or
>>>>>>>>>>>>>>>>> per-processor-node) with no "reason"
>>>>>>>>>>>>>>>>> * introduce a warn-level log detailing the
>>>>>>> topic/partition/offset
>>>>>>>>>>>> and
>>>>>>>>>>>>>>>>> reason of the skipped record
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> I'm +1 on both of these suggestions.
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Finally, we have had requests in the past for some metrics
>>>>>> around
>>>>>>>>>>>> when
>>>>>>>>>>>>>>>> persistent store removes an expired window.  Would adding
>>>>> that
>>>>>> to
>>>>>>>>>> our
>>>>>>>>>>>>>>>> metrics stretch the scope of this KIP too much?
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Thanks again and overall I'm +1 on this KIP
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> Bill
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>> On Fri, Mar 30, 2018 at 2:00 PM, Guozhang Wang <
>>>>>>>>> wangg...@gmail.com>
>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> The proposal sounds good to me. About "maintain only one
>>>>> level
>>>>>>> of
>>>>>>>>>>>>>>>> metrics"
>>>>>>>>>>>>>>>>> maybe we can discuss about that separately from this KIP
>>>>> since
>>>>>>>>> that
>>>>>>>>>>>>>>>> would
>>>>>>>>>>>>>>>>> be a larger scope of discussion. I agree that if we are
>>>>> going
>>>>>> to
>>>>>>>>>>>>>>>> maintain
>>>>>>>>>>>>>>>>> only one-level metrics it should be lowest level and we
>>>>> would
>>>>>>> let
>>>>>>>>>>>>> users
>>>>>>>>>>>>>>>> to
>>>>>>>>>>>>>>>>> do the roll-ups themselves, but I'm still not fully
>>>>> convinced
>>>>>>>>> that
>>>>>>>>>>>> we
>>>>>>>>>>>>>>>>> should just provide single-level metrics, because 1) I
>>>> think
>>>>>> for
>>>>>>>>>>>>>>>> different
>>>>>>>>>>>>>>>>> metrics people may be interested to investigate into
>>>>> different
>>>>>>>>>>>>>>>>> granularities, e.g. for poll / commit rate these are at
>>>> the
>>>>>>>>> lowest
>>>>>>>>>>>>>>>>> task-level metrics, while for process-rate / skip-rate
>>>> they
>>>>>> can
>>>>>>>>> be
>>>>>>>>>>>> as
>>>>>>>>>>>>>>>> low
>>>>>>>>>>>>>>>>> as processor-node metrics, and 2) user-side rolling ups
>>>> may
>>>>>> not
>>>>>>>>> be
>>>>>>>>>>>>> very
>>>>>>>>>>>>>>>>> straight-forward. But for 2) if someone can provide an
>>>>>> efficient
>>>>>>>>>> and
>>>>>>>>>>>>>>>> easy
>>>>>>>>>>>>>>>>> implementation of that I can be persuaded :)
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> For now I'm thinking we can add the metric on
>>>> thread-level,
>>>>>>>>> either
>>>>>>>>>>>>> with
>>>>>>>>>>>>>>>>> finer grained ones with "reason" tag plus an aggregated
>>>> one
>>>>>>>>> without
>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>> tag, or just having a single aggregated metric without the
>>>>> tag
>>>>>>>>>> looks
>>>>>>>>>>>>>>>> good
>>>>>>>>>>>>>>>>> to me.
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> Guozhang
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> On Fri, Mar 30, 2018 at 8:05 AM, John Roesler <
>>>>>>> j...@confluent.io
>>>>>>>>>>
>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Hey Guozhang,
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Thanks for the reply. Regarding JMX, I can dig it. I'll
>>>>>> provide
>>>>>>>>> a
>>>>>>>>>>>>>>>> list in
>>>>>>>>>>>>>>>>>> the KIP. I was also thinking we'd better start a
>>>>>> documentation
>>>>>>>>>> page
>>>>>>>>>>>>>>>> with
>>>>>>>>>>>>>>>>>> the metrics listed.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> I'd have no problem logging a warning when we skip
>>>> records.
>>>>>> On
>>>>>>>>> the
>>>>>>>>>>>>>>>> metric
>>>>>>>>>>>>>>>>>> front, really I'm just pushing for us to maintain only
>>>> one
>>>>>>> level
>>>>>>>>>> of
>>>>>>>>>>>>>>>>>> metrics. If that's more or less granular (i.e., maybe we
>>>>>> don't
>>>>>>>>>>>> have a
>>>>>>>>>>>>>>>>>> metric per reason and log the reason instead), that's
>>>> fine
>>>>> by
>>>>>>>>> me.
>>>>>>>>>> I
>>>>>>>>>>>>>>>> just
>>>>>>>>>>>>>>>>>> don't think it provides a lot of extra value per
>>>> complexity
>>>>>>>>>>>>> (interface
>>>>>>>>>>>>>>>>> and
>>>>>>>>>>>>>>>>>> implementation) to maintain roll-ups at the thread level
>>>> in
>>>>>>>>>>>> addition
>>>>>>>>>>>>>>>> to
>>>>>>>>>>>>>>>>>> lower-level metrics.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> How about this instead:
>>>>>>>>>>>>>>>>>> * maintain one skipped-record metric (could be
>>>> per-thread,
>>>>>>>>>>>> per-task,
>>>>>>>>>>>>>>>> or
>>>>>>>>>>>>>>>>>> per-processor-node) with no "reason"
>>>>>>>>>>>>>>>>>> * introduce a warn-level log detailing the
>>>>>>>>> topic/partition/offset
>>>>>>>>>>>> and
>>>>>>>>>>>>>>>>>> reason of the skipped record
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> If you like that, I can update the KIP.
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>>>> -John
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>> On Thu, Mar 29, 2018 at 6:22 PM, Guozhang Wang <
>>>>>>>>>> wangg...@gmail.com
>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> One thing you mention is the notion of setting alerts
>>>> on
>>>>>>>>> coarser
>>>>>>>>>>>>>>>>>> metrics
>>>>>>>>>>>>>>>>>>> being easier than finer ones. All the metric alerting
>>>>>> systems
>>>>>>> I
>>>>>>>>>>>> have
>>>>>>>>>>>>>>>>> used
>>>>>>>>>>>>>>>>>>> make it equally easy to alert on metrics by-tag or over
>>>>>> tags.
>>>>>>>>> So
>>>>>>>>>>>> my
>>>>>>>>>>>>>>>>>>> experience doesn't say that this is a use case. Were you
>>>>>>>>> thinking
>>>>>>>>>>>>>>>> of an
>>>>>>>>>>>>>>>>>>> alerting system that makes such a pre-aggregation
>>>>> valuable?
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> For the commonly used JMX reporter tags will be encoded
>>>>>>>>> directly
>>>>>>>>>>>> as
>>>>>>>>>>>>>>>>> part
>>>>>>>>>>>>>>>>>> of
>>>>>>>>>>>>>>>>>>> the object name, and if users wants to monitor them they
>>>>>> need
>>>>>>>>> to
>>>>>>>>>>>>>>>> know
>>>>>>>>>>>>>>>>>> these
>>>>>>>>>>>>>>>>>>> values before hand. That is also why I think we do want
>>>> to
>>>>>>> list
>>>>>>>>>>>> all
>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>> possible values of the reason tags in the KIP, since
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> In my email in response to Matthias, I gave an example
>>>> of
>>>>>> the
>>>>>>>>>>>>>>>> kind of
>>>>>>>>>>>>>>>>>>> scenario that would lead me as an operator to run with
>>>>> DEBUG
>>>>>>> on
>>>>>>>>>>>> all
>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>> time, since I wouldn't be sure, having seen a skipped
>>>>> record
>>>>>>>>>> once,
>>>>>>>>>>>>>>>> that
>>>>>>>>>>>>>>>>>> it
>>>>>>>>>>>>>>>>>>> would ever happen again. The solution is to capture all
>>>>> the
>>>>>>>>>>>>>>>> available
>>>>>>>>>>>>>>>>>>> information about the reason and location of skips all
>>>> the
>>>>>>>>> time.
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> That is a good point. I think we can either expose all
>>>>>> levels
>>>>>>>>>>>>>>>> metrics
>>>>>>>>>>>>>>>>> as
>>>>>>>>>>>>>>>>>> by
>>>>>>>>>>>>>>>>>>> default, or only expose the most lower-level metrics and
>>>>> get
>>>>>>>>> rid
>>>>>>>>>>>> of
>>>>>>>>>>>>>>>>> other
>>>>>>>>>>>>>>>>>>> levels to let users do roll-ups themselves (which will
>>>> be
>>>>> a
>>>>>>>>> much
>>>>>>>>>>>>>>>> larger
>>>>>>>>>>>>>>>>>>> scope for discussion), or we can encourage users to not
>>>>>> purely
>>>>>>>>>>>>>>>> depend
>>>>>>>>>>>>>>>>> on
>>>>>>>>>>>>>>>>>>> metrics for such trouble shooting: that is to say, users
>>>>>> only
>>>>>>>>> be
>>>>>>>>>>>>>>>>> alerted
>>>>>>>>>>>>>>>>>>> based on metrics, and we can log a info / warn log4j
>>>> entry
>>>>>>> each
>>>>>>>>>>>>>>>> time we
>>>>>>>>>>>>>>>>>> are
>>>>>>>>>>>>>>>>>>> about to skip a record all over the places, so that upon
>>>>>> being
>>>>>>>>>>>>>>>> notified
>>>>>>>>>>>>>>>>>>> users can look into the logs to find the details on
>>>> where
>>>>> /
>>>>>>>>> when
>>>>>>>>>>>> it
>>>>>>>>>>>>>>>>>>> happens. WDYT?
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> Guozhang
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> On Thu, Mar 29, 2018 at 3:57 PM, John Roesler <
>>>>>>>>> j...@confluent.io
>>>>>>>>>>>
>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Hey Guozhang,
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Thanks for the review.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> 1.
>>>>>>>>>>>>>>>>>>>> Matthias raised the same question about the "reason"
>>>> tag
>>>>>>>>> values.
>>>>>>>>>>>> I
>>>>>>>>>>>>>>>>> can
>>>>>>>>>>>>>>>>>>> list
>>>>>>>>>>>>>>>>>>>> all possible values of the "reason" tag, but I'm
>>>> thinking
>>>>>>> this
>>>>>>>>>>>>>>>> level
>>>>>>>>>>>>>>>>> of
>>>>>>>>>>>>>>>>>>>> detail may not be KIP-worthy, maybe the code and
>>>>>>> documentation
>>>>>>>>>>>>>>>> review
>>>>>>>>>>>>>>>>>>> would
>>>>>>>>>>>>>>>>>>>> be sufficient. If you all disagree and would like it
>>>>>> included
>>>>>>>>> in
>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>> KIP, I
>>>>>>>>>>>>>>>>>>>> can certainly do that.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> If we do provide roll-up metrics, I agree with the
>>>>> pattern
>>>>>> of
>>>>>>>>>>>>>>>> keeping
>>>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>> same name but eliminating the tags for the dimensions
>>>>> that
>>>>>>>>> were
>>>>>>>>>>>>>>>>>>> rolled-up.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> 2.
>>>>>>>>>>>>>>>>>>>> I'm not too sure that implementation efficiency really
>>>>>>>>> becomes a
>>>>>>>>>>>>>>>>> factor
>>>>>>>>>>>>>>>>>>> in
>>>>>>>>>>>>>>>>>>>> choosing whether to (by default) update one coarse
>>>> metric
>>>>>> at
>>>>>>>>> the
>>>>>>>>>>>>>>>>> thread
>>>>>>>>>>>>>>>>>>>> level or one granular metric at the processor-node
>>>> level,
>>>>>>>>> since
>>>>>>>>>>>>>>>> it's
>>>>>>>>>>>>>>>>>> just
>>>>>>>>>>>>>>>>>>>> one metric being updated either way. I do agree that if
>>>>> we
>>>>>>>>> were
>>>>>>>>>>>> to
>>>>>>>>>>>>>>>>>> update
>>>>>>>>>>>>>>>>>>>> the granular metrics and multiple roll-ups, then we
>>>>> should
>>>>>>>>>>>>>>>> consider
>>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>> efficiency.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> I agree it's probably not necessary to surface the
>>>>> metrics
>>>>>>> for
>>>>>>>>>>>> all
>>>>>>>>>>>>>>>>>> nodes
>>>>>>>>>>>>>>>>>>>> regardless of whether they can or do skip records.
>>>>> Perhaps
>>>>>> we
>>>>>>>>>> can
>>>>>>>>>>>>>>>>>> lazily
>>>>>>>>>>>>>>>>>>>> register the metrics.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> In my email in response to Matthias, I gave an example
>>>> of
>>>>>> the
>>>>>>>>>>>>>>>> kind of
>>>>>>>>>>>>>>>>>>>> scenario that would lead me as an operator to run with
>>>>>> DEBUG
>>>>>>>>> on
>>>>>>>>>>>>>>>> all
>>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>> time, since I wouldn't be sure, having seen a skipped
>>>>>> record
>>>>>>>>>>>> once,
>>>>>>>>>>>>>>>>> that
>>>>>>>>>>>>>>>>>>> it
>>>>>>>>>>>>>>>>>>>> would ever happen again. The solution is to capture all
>>>>> the
>>>>>>>>>>>>>>>> available
>>>>>>>>>>>>>>>>>>>> information about the reason and location of skips all
>>>>> the
>>>>>>>>> time.
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> One thing you mention is the notion of setting alerts
>>>> on
>>>>>>>>> coarser
>>>>>>>>>>>>>>>>>> metrics
>>>>>>>>>>>>>>>>>>>> being easier than finer ones. All the metric alerting
>>>>>> systems
>>>>>>>>> I
>>>>>>>>>>>>>>>> have
>>>>>>>>>>>>>>>>>> used
>>>>>>>>>>>>>>>>>>>> make it equally easy to alert on metrics by-tag or over
>>>>>> tags.
>>>>>>>>> So
>>>>>>>>>>>>>>>> my
>>>>>>>>>>>>>>>>>>>> experience doesn't say that this is a use case. Were
>>>> you
>>>>>>>>>> thinking
>>>>>>>>>>>>>>>> of
>>>>>>>>>>>>>>>>> an
>>>>>>>>>>>>>>>>>>>> alerting system that makes such a pre-aggregation
>>>>> valuable?
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> Thanks again,
>>>>>>>>>>>>>>>>>>>> -John
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>> On Thu, Mar 29, 2018 at 5:24 PM, Guozhang Wang <
>>>>>>>>>>>>>>>> wangg...@gmail.com>
>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Hello John,
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Thanks for the KIP. Some comments:
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> 1. Could you list all the possible values of the
>>>>> "reason"
>>>>>>>>> tag?
>>>>>>>>>>>>>>>> In
>>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>> JIRA
>>>>>>>>>>>>>>>>>>>>> ticket I left some potential reasons but I'm not clear
>>>>> if
>>>>>>>>>> you're
>>>>>>>>>>>>>>>>>> going
>>>>>>>>>>>>>>>>>>> to
>>>>>>>>>>>>>>>>>>>>> categorize each of them as a separate reason, or is
>>>>> there
>>>>>>> any
>>>>>>>>>>>>>>>>>>> additional
>>>>>>>>>>>>>>>>>>>>> ones you have in mind.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Also I'm wondering if we should add another metric
>>>> that
>>>>> do
>>>>>>>>> not
>>>>>>>>>>>>>>>> have
>>>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>>> reason tag but aggregates among all possible reasons?
>>>>> This
>>>>>>> is
>>>>>>>>>>>>>>>> for
>>>>>>>>>>>>>>>>>> users
>>>>>>>>>>>>>>>>>>>> to
>>>>>>>>>>>>>>>>>>>>> easily set their alerting notifications (otherwise
>>>> they
>>>>>> have
>>>>>>>>> to
>>>>>>>>>>>>>>>>> write
>>>>>>>>>>>>>>>>>>> on
>>>>>>>>>>>>>>>>>>>>> notification rule per reason) in their monitoring
>>>>> systems.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> 2. Note that the processor-node metrics is actually
>>>>>>>>>> "per-thread,
>>>>>>>>>>>>>>>>>>>> per-task,
>>>>>>>>>>>>>>>>>>>>> per-processor-node", and today we only set the
>>>>> per-thread
>>>>>>>>>>>>>>>> metrics
>>>>>>>>>>>>>>>>> as
>>>>>>>>>>>>>>>>>>> INFO
>>>>>>>>>>>>>>>>>>>>> while leaving the lower two layers as DEBUG. I agree
>>>>> with
>>>>>>>>> your
>>>>>>>>>>>>>>>>>> argument
>>>>>>>>>>>>>>>>>>>>> that we are missing the per-client roll-up metrics
>>>>> today,
>>>>>>> but
>>>>>>>>>>>>>>>> I'm
>>>>>>>>>>>>>>>>>>>> convinced
>>>>>>>>>>>>>>>>>>>>> that the right way to approach it would be
>>>>>>>>>>>>>>>>>> "just-providing-the-lowest-
>>>>>>>>>>>>>>>>>>>>> level
>>>>>>>>>>>>>>>>>>>>> metrics only".
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Note the recoding implementation of these three levels
>>>>> are
>>>>>>>>>>>>>>>>> different
>>>>>>>>>>>>>>>>>>>>> internally today: we did not just do the rolling up to
>>>>>>>>> generate
>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>>> higher-level metrics from the lower level ones, but we
>>>>>> just
>>>>>>>>>>>>>>>> record
>>>>>>>>>>>>>>>>>> them
>>>>>>>>>>>>>>>>>>>>> separately, which means that, if we turn on multiple
>>>>>> levels
>>>>>>>>> of
>>>>>>>>>>>>>>>>>> metrics,
>>>>>>>>>>>>>>>>>>>> we
>>>>>>>>>>>>>>>>>>>>> maybe duplicate collecting some metrics. One can argue
>>>>>> that
>>>>>>>>> is
>>>>>>>>>>>>>>>> not
>>>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>> best
>>>>>>>>>>>>>>>>>>>>> way to represent multi-level metrics collecting and
>>>>>>>>> reporting,
>>>>>>>>>>>>>>>> but
>>>>>>>>>>>>>>>>> by
>>>>>>>>>>>>>>>>>>>> only
>>>>>>>>>>>>>>>>>>>>> enabling thread-level metrics as INFO today, that
>>>>>>>>>> implementation
>>>>>>>>>>>>>>>>>> could
>>>>>>>>>>>>>>>>>>> be
>>>>>>>>>>>>>>>>>>>>> more efficient than only collecting the metrics at the
>>>>>>> lowest
>>>>>>>>>>>>>>>>> level,
>>>>>>>>>>>>>>>>>>> and
>>>>>>>>>>>>>>>>>>>>> then do the roll-up calculations outside of the
>>>> metrics
>>>>>>>>>> classes.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Plus, today not all processor-nodes may possibly skip
>>>>>>>>> records,
>>>>>>>>>>>>>>>>> AFAIK
>>>>>>>>>>>>>>>>>> we
>>>>>>>>>>>>>>>>>>>>> will only skip records at the source, sink, window and
>>>>>>>>>>>>>>>> aggregation
>>>>>>>>>>>>>>>>>>>>> processor nodes, so adding a metric per processor
>>>> looks
>>>>>> like
>>>>>>>>> an
>>>>>>>>>>>>>>>>>>> overkill
>>>>>>>>>>>>>>>>>>>> to
>>>>>>>>>>>>>>>>>>>>> me as well. On the other hand, from user's perspective
>>>>> the
>>>>>>>>>>>>>>>> "reason"
>>>>>>>>>>>>>>>>>> tag
>>>>>>>>>>>>>>>>>>>> may
>>>>>>>>>>>>>>>>>>>>> be sufficient for them to narrow down where inside the
>>>>>>>>> topology
>>>>>>>>>>>>>>>> is
>>>>>>>>>>>>>>>>>>>> causing
>>>>>>>>>>>>>>>>>>>>> records to be dropped on the floor. So I think the
>>>>>>>>> "per-thread,
>>>>>>>>>>>>>>>>>>> per-task"
>>>>>>>>>>>>>>>>>>>>> level metrics should be sufficient for them in trouble
>>>>>> shoot
>>>>>>>>> in
>>>>>>>>>>>>>>>>> DEBUG
>>>>>>>>>>>>>>>>>>>> mode,
>>>>>>>>>>>>>>>>>>>>> and we can add another "per-thread" level metrics as
>>>>> INFO
>>>>>>>>> which
>>>>>>>>>>>>>>>> is
>>>>>>>>>>>>>>>>>>> turned
>>>>>>>>>>>>>>>>>>>>> on by default. So under normal execution users still
>>>>> only
>>>>>>>>> need
>>>>>>>>>>>>>>>> INFO
>>>>>>>>>>>>>>>>>>> level
>>>>>>>>>>>>>>>>>>>>> metrics for alerting (e.g. set alerts on all
>>>>>> skipped-records
>>>>>>>>>>>>>>>>> metrics
>>>>>>>>>>>>>>>>>> as
>>>>>>>>>>>>>>>>>>>>> non-zero), and then upon trouble shooting they can
>>>> turn
>>>>> on
>>>>>>>>>> DEBUG
>>>>>>>>>>>>>>>>>>> metrics
>>>>>>>>>>>>>>>>>>>> to
>>>>>>>>>>>>>>>>>>>>> look into which task is actually causing the skipped
>>>>>>> records.
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> Guozhang
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> On Thu, Mar 29, 2018 at 2:03 PM, Matthias J. Sax <
>>>>>>>>>>>>>>>>>>> matth...@confluent.io>
>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Thanks for the KIP John.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Reading the material on the related Jiras, I am
>>>>> wondering
>>>>>>>>> what
>>>>>>>>>>>>>>>>>>> `reason`
>>>>>>>>>>>>>>>>>>>>>> tags you want to introduce? Can you elaborate? The
>>>> KIP
>>>>>>>>> should
>>>>>>>>>>>>>>>>> list
>>>>>>>>>>>>>>>>>>>> those
>>>>>>>>>>>>>>>>>>>>>> IMHO.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> About the fine grained metrics vs the roll-up: you
>>>> say
>>>>>> that
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> the coarse metric aggregates across two dimensions
>>>>>>>>>>>>>>>>> simultaneously
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> Can you elaborate why this is an issue? I am not
>>>>>> convinced
>>>>>>>>> atm
>>>>>>>>>>>>>>>>> that
>>>>>>>>>>>>>>>>>>> we
>>>>>>>>>>>>>>>>>>>>>> should put the fine grained metrics into INFO level
>>>> and
>>>>>>>>> remove
>>>>>>>>>>>>>>>>> the
>>>>>>>>>>>>>>>>>>>>>> roll-up at thread level.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> Given that they have to do this sum to get a usable
>>>>>>>>>>>>>>>> top-level
>>>>>>>>>>>>>>>>>> view
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> This is a fair concern, but I don't share the
>>>>> conclusion.
>>>>>>>>>>>>>>>>> Offering
>>>>>>>>>>>>>>>>>> a
>>>>>>>>>>>>>>>>>>>>>> built-in `KafkaStreams` "client" roll-up out of the
>>>> box
>>>>>>>>> might
>>>>>>>>>>>>>>>> be
>>>>>>>>>>>>>>>>> a
>>>>>>>>>>>>>>>>>>>>>> better solution. In the past we did not offer this
>>>> due
>>>>> to
>>>>>>>>>>>>>>>>>> performance
>>>>>>>>>>>>>>>>>>>>>> concerns, but we could allow an "opt-in" mechanism.
>>>> If
>>>>>> you
>>>>>>>>>>>>>>>>>> disagree,
>>>>>>>>>>>>>>>>>>>> can
>>>>>>>>>>>>>>>>>>>>>> you provide some reasoning and add them to the
>>>>> "Rejected
>>>>>>>>>>>>>>>>>>> alternatives"
>>>>>>>>>>>>>>>>>>>>>> section.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> To rephrase: I understand the issue about missing
>>>>>> top-level
>>>>>>>>>>>>>>>> view,
>>>>>>>>>>>>>>>>>> but
>>>>>>>>>>>>>>>>>>>>>> instead of going more fine grained, we should
>>>> consider
>>>>> to
>>>>>>>>> add
>>>>>>>>>>>>>>>>> this
>>>>>>>>>>>>>>>>>>>>>> top-level view and add/keep the fine grained metrics
>>>> at
>>>>>>>>> DEBUG
>>>>>>>>>>>>>>>>> level
>>>>>>>>>>>>>>>>>>>> only
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> I am +1 to add TopologyTestDriver#metrics() and to
>>>>> remove
>>>>>>>>> old
>>>>>>>>>>>>>>>>>> metrics
>>>>>>>>>>>>>>>>>>>>>> directly as you suggested.
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> -Matthias
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>> On 3/28/18 6:42 PM, Ted Yu wrote:
>>>>>>>>>>>>>>>>>>>>>>> Looks good to me.
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> On Wed, Mar 28, 2018 at 3:11 PM, John Roesler <
>>>>>>>>>>>>>>>>> j...@confluent.io
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> Hello all,
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> I am proposing KIP-274 to improve the metrics
>>>> around
>>>>>>>>>>>>>>>> skipped
>>>>>>>>>>>>>>>>>>> records
>>>>>>>>>>>>>>>>>>>>> in
>>>>>>>>>>>>>>>>>>>>>>>> Streams.
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> Please find the details here:
>>>>>>>>>>>>>>>>>>>>>>>> https://cwiki.apache.org/
>>>>> confluence/display/KAFKA/KIP-
>>>>>>>>>>>>>>>>>>>>>>>> 274%3A+Kafka+Streams+Skipped+Records+Metrics
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> Please let me know what you think!
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>>>>>>>>>>>>> -John
>>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>>>>> -- Guozhang
>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>>>> -- Guozhang
>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>> --
>>>>>>>>>>>>>>>>> -- Guozhang
>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> -- Guozhang
>>>>>>
>>>>>
>>>>
>>>
>>>
>>>
>>
>>
> 

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to