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