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 >>> >>> >> >>