Excellent! Thanks!!! On Thursday, June 23, 2016, Till Rohrmann <trohrm...@apache.org> wrote:
> Hi Steve, > > that should be the corresponding JIRA ticket [1]. I think Chesnay already > opened a PR for this feature. I think it will be reviewed and probably > merged next week. > > [1] https://issues.apache.org/jira/browse/FLINK-4093 > > Cheers, > Till > > On Thu, Jun 23, 2016 at 4:33 AM, Steve Cosenza <scose...@twitter.com > <javascript:_e(%7B%7D,'cvml','scose...@twitter.com');>> wrote: > >> Is there a ticket for supporting user defined counters? >> >> Thanks, >> Steve >> >> On Sat, Jun 18, 2016 at 8:18 AM, Steve Cosenza <scose...@twitter.com >> <javascript:_e(%7B%7D,'cvml','scose...@twitter.com');>> wrote: >> >>> Perfect! >>> >>> -Steve >>> >>> >>> On Saturday, June 18, 2016, Chesnay Schepler <ches...@apache.org >>> <javascript:_e(%7B%7D,'cvml','ches...@apache.org');>> wrote: >>> >>>> it would be scoped and reported just like any other Counter. >>>> >>>> Regards, >>>> Chesnay >>>> >>>> On 18.06.2016 16:04, Steve Cosenza wrote: >>>> >>>> Will the added metric be scoped appropriately (e.g. per operator)? >>>> Also, if the added metric is a Counter will it be available when >>>> listing counters in AbstractReporter? >>>> >>>> -Steve >>>> >>>> On Friday, June 17, 2016, Chesnay Schepler <ches...@apache.org> wrote: >>>> >>>>> That is currently not possible. We would have expose the internal >>>>> addMetric(String name, Metric metric) method. >>>>> >>>>> Regards, >>>>> Chesnay >>>>> >>>>> On 18.06.2016 04:48, Steve Cosenza wrote: >>>>> >>>>> Hi Till, >>>>> >>>>> How would I plugin a custom counter so that I could use the existing >>>>> MetricGroup and AbstractReporter functionality? >>>>> >>>>> Steve >>>>> >>>>> On Friday, June 17, 2016, Till Rohrmann <trohrm...@apache.org> wrote: >>>>> >>>>>> Hi Steve, >>>>>> >>>>>> I thought again about the thread-safe counters and I'm not so sure >>>>>> anymore whether we should add them or not. The reason is that we could >>>>>> also >>>>>> mark the Counter class as not final. Then it would be possible to define >>>>>> your user-defined counters which could be thread-safe. This would reduce >>>>>> the complexity on the Flink side since covering all metrics use cases >>>>>> might >>>>>> be difficult. Would that work for you? What do the others think about it? >>>>>> >>>>>> Cheers, >>>>>> Till >>>>>> >>>>>> On Thu, Jun 16, 2016 at 3:33 PM, Till Rohrmann <trohrm...@apache.org> >>>>>> wrote: >>>>>> >>>>>>> I agree that dropwizard already offers a lot of functionality and we >>>>>>> shouldn't reimplement it. Therefore, I've introduced a Flink histogram >>>>>>> interface which is implemented by a dropwizard histogram wrapper. That >>>>>>> way >>>>>>> Flink has it's own histogram abstraction and dropwizard histograms can >>>>>>> be >>>>>>> used with Flink via this wrapper class. See the PR [1] for more >>>>>>> information. >>>>>>> >>>>>>> [1] https://github.com/apache/flink/pull/2112 >>>>>>> >>>>>>> Cheers, >>>>>>> Till >>>>>>> >>>>>>> On Tue, Jun 14, 2016 at 6:05 PM, Cody Innowhere <e.neve...@gmail.com >>>>>>> > wrote: >>>>>>> >>>>>>>> Counter of dropwizard is thread-safe. >>>>>>>> I think dropwizard metrics are implemented fairly well and used >>>>>>>> quite >>>>>>>> widely in open source projects, I personally on the side of using >>>>>>>> dropwizard metrics rather than re-implement them, unless for >>>>>>>> performance >>>>>>>> reasons. Still, I'm +1 for adding a wrapper on top of dropwizard >>>>>>>> metrics. >>>>>>>> >>>>>>>> On Tue, Jun 14, 2016 at 10:45 PM, Till Rohrmann < >>>>>>>> trohrm...@apache.org> >>>>>>>> wrote: >>>>>>>> >>>>>>>> > +1 for the thread safe metrics. This should be a rather low >>>>>>>> hanging fruit >>>>>>>> > and easily added. >>>>>>>> > >>>>>>>> > If we decide to add a histogram, then I would also be in favour of >>>>>>>> > implementing our own version of a histogram. This avoids adding a >>>>>>>> hard >>>>>>>> > dependency on Dropwizard or another metrics library to Flink >>>>>>>> core. Adding >>>>>>>> > our own implementation would of course entail to also add a >>>>>>>> Dropwizard >>>>>>>> > wrapper for reporting. Thus, if a user component required a >>>>>>>> Dropwizard >>>>>>>> > histogram, then one could simply use the wrapper. >>>>>>>> > >>>>>>>> > Alternatively, one could also rely on external system to compute >>>>>>>> > histograms. For example, statsD supports the generation of >>>>>>>> histograms from >>>>>>>> > a stream of measurements. However, these histograms couldn't be >>>>>>>> used within >>>>>>>> > Flink. >>>>>>>> > >>>>>>>> > Implementation wise, the histogram would most likely follow the >>>>>>>> > implementation of Dropwizard's histogram: >>>>>>>> > >>>>>>>> > The basic idea is that a histogram can add samples to a reservoir >>>>>>>> which it >>>>>>>> > uses to calculate a set of statistics when queried. The statistics >>>>>>>> > comprises percentiles, mean, standard deviation and number of >>>>>>>> elements, for >>>>>>>> > example. >>>>>>>> > >>>>>>>> > The reservoir defines the strategy of how to sample the input >>>>>>>> stream. There >>>>>>>> > are different strategies conceivable: Uniform sampling, which >>>>>>>> constructs a >>>>>>>> > long term distribution of the seen elements, exponentially >>>>>>>> decaying >>>>>>>> > sampling, which favours more recent elements, sliding window or >>>>>>>> buckets. >>>>>>>> > >>>>>>>> > The question is now whether such an implementation already covers >>>>>>>> most use >>>>>>>> > cases or whether histograms should support more functionaly. >>>>>>>> Feedback is >>>>>>>> > highly appreciated :-) >>>>>>>> > >>>>>>>> > Cheers, >>>>>>>> > Till >>>>>>>> > >>>>>>>> > On Mon, Jun 13, 2016 at 6:37 PM, Stephan Ewen <se...@apache.org> >>>>>>>> wrote: >>>>>>>> > >>>>>>>> > > I think it is totally fine to add a "ThreadsafeCounter" that >>>>>>>> uses an >>>>>>>> > atomic >>>>>>>> > > long internally >>>>>>>> > > >>>>>>>> > > On Sat, Jun 11, 2016 at 7:25 PM, Steve Cosenza < >>>>>>>> scose...@twitter.com> >>>>>>>> > > wrote: >>>>>>>> > > >>>>>>>> > > > Also, we may be able to avoid the need for concurrent metrics >>>>>>>> by >>>>>>>> > > > configuring each Finagle source to use a single thread. We'll >>>>>>>> > investigate >>>>>>>> > > > the performance implications this week and update you with >>>>>>>> the results. >>>>>>>> > > > >>>>>>>> > > > Thanks, >>>>>>>> > > > Steve >>>>>>>> > > > >>>>>>>> > > > >>>>>>>> > > > On Friday, June 10, 2016, Steve Cosenza <scose...@twitter.com> >>>>>>>> wrote: >>>>>>>> > > > >>>>>>>> > > >> +Chris Hogue who is also working on operationalizing Flink >>>>>>>> with me >>>>>>>> > > >> >>>>>>>> > > >> Hi Stephan, >>>>>>>> > > >> >>>>>>>> > > >> Thanks for the background on your current implementations! >>>>>>>> > > >> >>>>>>>> > > >> While we don't require a specific implementation for >>>>>>>> histogram, >>>>>>>> > counter, >>>>>>>> > > >> or gauge, it just became clear that we'll need threadsafe >>>>>>>> versions of >>>>>>>> > > all >>>>>>>> > > >> three of these metrics. This is because our messaging source >>>>>>>> is >>>>>>>> > > implemented >>>>>>>> > > >> using Finagle, and Finagle expects to be able to emit stats >>>>>>>> > concurrently >>>>>>>> > > >> from its managed threads. >>>>>>>> > > >> >>>>>>>> > > >> That being said, if adding threadsafe versions of the Flink >>>>>>>> counters >>>>>>>> > is >>>>>>>> > > >> not an option, we'd also be fine with directly reading and >>>>>>>> writing >>>>>>>> > from >>>>>>>> > > the >>>>>>>> > > >> singleton Codahale MetricsRegistry that you start up in each >>>>>>>> > > TaskManager. >>>>>>>> > > >> >>>>>>>> > > >> Thanks, >>>>>>>> > > >> Steve >>>>>>>> > > >> >>>>>>>> > > >> On Fri, Jun 10, 2016 at 7:10 AM, Stephan Ewen < >>>>>>>> se...@apache.org> >>>>>>>> > wrote: >>>>>>>> > > >> >>>>>>>> > > >>> A recent discussion brought up the point of adding a >>>>>>>> "histogram" >>>>>>>> > metric >>>>>>>> > > >>> type to Flink. This open thread is to gather some more of >>>>>>>> the >>>>>>>> > > requirements >>>>>>>> > > >>> for that metric. >>>>>>>> > > >>> >>>>>>>> > > >>> The most important question is whether users need Flink to >>>>>>>> offer >>>>>>>> > > >>> specific implementations of "Histogram", like for example >>>>>>>> the " >>>>>>>> > > >>> com.codahale.metrics.Histogram", or if a " >>>>>>>> > > >>> org.apache.flink.metrics.Histogram" interface would work as >>>>>>>> well. >>>>>>>> > > >>> The histogram could still be reported for example via >>>>>>>> dropwizard >>>>>>>> > > >>> reporters. >>>>>>>> > > >>> >>>>>>>> > > >>> *Option (1):* If a Flink Histogram works as well, it would >>>>>>>> be simple >>>>>>>> > to >>>>>>>> > > >>> add one. The dropwizard reporter would need to wrap the >>>>>>>> Flink >>>>>>>> > > Histogram for >>>>>>>> > > >>> reporting. >>>>>>>> > > >>> >>>>>>>> > > >>> *Option (2)*: If the code needs the specific Dropwizard >>>>>>>> Histogram >>>>>>>> > type, >>>>>>>> > > >>> then one would need a wrapper class that makes a Flink >>>>>>>> Histogram look >>>>>>>> > > like >>>>>>>> > > >>> a dropwizard histogram. >>>>>>>> > > >>> >>>>>>>> > > >>> ---------- >>>>>>>> > > >>> >>>>>>>> > > >>> As a bit of background for the discussion, here are some >>>>>>>> thoughts >>>>>>>> > > behind >>>>>>>> > > >>> the way that Metrics are currently implemented in Flink. >>>>>>>> > > >>> >>>>>>>> > > >>> - The metric types in Flink are independent from >>>>>>>> libraries like >>>>>>>> > > >>> "dropwizard" to reduce dependencies and retain freedom to >>>>>>>> swap >>>>>>>> > > >>> implementations. >>>>>>>> > > >>> >>>>>>>> > > >>> - Metric reporting allows to reuse reporters from >>>>>>>> dropwizard >>>>>>>> > > >>> >>>>>>>> > > >>> - Some Flink metric implementations are also more >>>>>>>> lightweight than >>>>>>>> > > for >>>>>>>> > > >>> example in dropwizard. Counters for example are not thread >>>>>>>> safe, but >>>>>>>> > > do not >>>>>>>> > > >>> impose memory barriers. That is important for metrics deep >>>>>>>> in the >>>>>>>> > > streaming >>>>>>>> > > >>> runtime. >>>>>>>> > > >>> >>>>>>>> > > >>> >>>>>>>> > > >>> >>>>>>>> > > >> >>>>>>>> > > > >>>>>>>> > > > -- >>>>>>>> > > > -Steve >>>>>>>> > > > >>>>>>>> > > > Sent from Gmail Mobile >>>>>>>> > > > >>>>>>>> > > >>>>>>>> > >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>> >>>>> -- >>>>> -Steve >>>>> >>>>> Sent from Gmail Mobile >>>>> >>>>> >>>>> >>>> >>>> -- >>>> -Steve >>>> >>>> Sent from Gmail Mobile >>>> >>>> >>>> >>> >>> -- >>> -Steve >>> >>> Sent from Gmail Mobile >>> >> >> > -- -Steve Sent from Gmail Mobile