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
> <javascript:_e(%7B%7D,'cvml','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
>> <javascript:_e(%7B%7D,'cvml','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
>>> <javascript:_e(%7B%7D,'cvml','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
>>>> <javascript:_e(%7B%7D,'cvml','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
>>>> <javascript:_e(%7B%7D,'cvml','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
>>>> <javascript:_e(%7B%7D,'cvml','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

Reply via email to