= Apache Geronimo Metrics
:jbake-date: 2018-07-24
:icons: font

Apache Geronimo Metrics is an implementation of Microprofile Metrics.
It is highly inspired from Codehale/Dropwizard metrics API and integrates with CDI.

IMPORTANT: for security reasons you need to set the system property `geronimo.metrics.jaxrs.activated=true` to
have the `/metrics` endpoint activated.

== Dependencies

=== API

[source,xml]
----
<dependency>
  <groupId>org.eclipse.microprofile.metrics</groupId>
  <artifactId>microprofile-metrics-api</artifactId>
  <version>1.1</version>
  <exclusions>
    <exclusion>
      <groupId>org.osgi</groupId>
      <artifactId>org.osgi.annotation.versioning</artifactId>
    </exclusion>
  </exclusions>
</dependency>
----

=== Implementation

[source,xml]
----
<dependency>
  <groupId>org.apache.geronimo</groupId>
  <artifactId>geronimo-metrics</artifactId>
  <version>1.0.0</version>
</dependency>
----
