Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Geode 1.9 introduces Micrometer for exposing metrics. Under the covers, Geode uses a CompositeMeterRegistry which can publish to any number of monitoring systems. See the Micrometer documentation.

Users can choose between two different approaches for plugging in a monitoring system with a MeterRegistry:

  • CacheFactory.addMeterSubregistry(MeterRegistry)
  • ServiceLoader implementations of MetricsPublishingService

...

adopted Micrometer as a way to expose new metrics. Micrometer allows Geode developers measure internal details of Geode in a way that you can publish to a wide variety of external monitoring systems.

Each Geode cache has an internal "meter registry" that collects metrics about the cache and other aspects of the process in which it is running.

Geode's internal meter registry does not itself publish the metrics. It only collects them and makes them available for you to publish. If you want to publish Geode's metrics to an external monitoring system, you must add a "sub-registry" that knows how to publish to that monitoring system.

A "sub-registry" can be any implementation of Micrometer's MeterRegistry class. See the Micrometer documentation for descriptions of the available implementations, and instructions for how to configure them to send information to your monitoring system.

When you add a sub-registry to Geode, Geode adds all of its current meters to your sub-registry. It also adds any subsequently created meters and keeps your sub-registry informed of all future updates to the values of the meters.

Two Ways to Add a Meter Registry for Publishing

Geode offers two mechanisms to add a sub-registry for publishing. Which mechanism you choose depends on how you create the cache.

  • If you create the cache using a CacheFactory, you can call the factory's addSubregistry() method one or more times to add sub-registries to the cache it creates. See Adding a Sub-Registry when Creating a Cache, below.
  • If the cache is created for you as part of a server or locator, you can implement a custom MetricsPublishingService service that initializes your sub-registry and adds it to the cache. See Adding a Sub-Registry to a Server or Locator below.

Adding a Sub-Registry when Creating a Cache

CacheFactory provides a method which adds the given meter registry to the cache's composite registry for publishing cache metrics to external monitoring systems:

...

Note: The above APIs are considered experimental. Micrometer metrics is a new addition to Geode 1.9 and the API may change.

Adding

...

a Sub-Registry to a Server or Locator

The new interface org.apache.geode.metrics.MetricsPublishingService provides an additional way to publish metrics generated by Micrometer meters in the cache meter registry. Geode discovers implementations of MetricsPublishingService during cache creation, using the standard Java ServiceLoader mechanism.

...