I have submitted a new PR https://github.com/apache/geode/pull/3180 
<https://github.com/apache/geode/pull/3180>, superseding the original one.

I invite your review.

Cheers,
Dale

—
Dale Emery
dem...@pivotal.io

> On Feb 4, 2019, at 9:10 AM, Kirk Lund <kl...@apache.org> wrote:
> 
> +1 to add Micrometer in the described way and I'll add my approval to the
> PR as well
> 
> On Fri, Feb 1, 2019 at 4:16 PM Dale Emery <dem...@pivotal.io> wrote:
> 
>> Hello all,
>> 
>> I've created a PR to add Micrometer to Geode:
>> https://github.com/apache/geode/pull/3153
>> 
>> I invite your review.
>> 
>> The Micrometer system includes a rich suite of Meter types for
>> instrumenting code, and several styles of meter registries for
>> maintaining the meters.  It also includes (as separate jars) additional
>> registry types for publishing metrics to a variety of external
>> monitoring systems (e.g. Prometheus, JMX, and Influx).
>> 
>> See http://micrometer.io/ for details about Micrometer,
>> 
>> This PR adds a Micrometer-based metrics system to Geode.
>> 
>> On startup, Geode configures a "primary" meter registry. Developers use
>> the primary registry to create meters (gauges, counters, timers, and
>> others) to instrument Geode and client code.
>> 
>> Internally, the meter registry is a "composite" registry, which allows
>> attaching any number of "downstream" registries. Each downstream
>> registry will typically publish the metrics to an external monitoring
>> system, or provide an endpoint where an external monitoring system can
>> "scrape" the metrics.
>> 
>> In Geode, when a meter is added or removed from the primary registry,
>> the primary registry adds or removes a corresponding meter in each
>> downstream registry.  When a meter in the primary registry is updated
>> (e.g. incremented), the primary registry forwards each operation to the
>> corresponding meter in each downstream registry.
>> 
>> A MetricsCollector provides access to the primary registry, and includes
>> methods for adding and removing downstream registries.
>> 
>> The MetricsCollector itself is currently available via a method on
>> InternalDistributedSystem.  Eventually we plan to  make the
>> MetricsCollector available through DistributedSystem, or some other
>> non-internal class or interface.
>> 
>> The key components of this change are:
>> - MetricsCollector (interface) allows access to the primary registry,
>>  and allows adding and removing downstream registries.
>> - CompositeMetricsCollector is the concrete implementation of
>>  MetricsCollector, and creates the internal composite registry.
>> - InternalDistributedSystem creates the MetricsCollector and makes it
>>  available via a new getMetricsCollector() method.
>> - The Micrometer system for instrumenting and maintaining metrics (added
>>  to Geode as a dependency).
>> 
>> Cheers,
>> Dale
>> 
>>> On Jan 15, 2019, at 9:37 AM, Mark Hanson <mhan...@pivotal.io> wrote:
>>> 
>>> Hello All,
>>> 
>>> I would like to propose that we incorporate Micrometer into Geode to
>> allow us to collect statistics and make them more easily available to
>> external services should someone chose to implement support for that.
>>> 
>>> In some basic testing, it does not appear to have a significant impact
>> on performance to hook this in. I think that in the long run it will really
>> improve the visibility of the systems stats in real-time… This will also
>> allow some extensibility for people who want to hook into their tracking
>> infrastructure, such as New Relic or Data Dog, though we are not putting
>> that in.
>>> 
>>> 
>>> What do people think?
>>> 
>>> Thanks,
>>> Mark
>>> 
>>> 
>> 
>> 

Reply via email to