Top Description Interfaces Classes
module org.eclipse.microprofile.metrics

Package org.eclipse.microprofile.metrics

Annotations
@Version:5.1.0

MicroProfile Metrics

Rationale

To ensure reliable operation of software it is necessary to monitor essential system parameters. There is already JMX as standard to expose metrics, but remote-JMX is not easy to deal with and especially does not fit well in a polyglot environment where other services are not running on the JVM. To enable monitoring in an easy fashion, the MicroProfile Metrics specification provides a standard to instrument an application with metrics and provides a simple REST endpoint for integration with monitoring services.

Adding Metrics

MicroProfile Metrics provides 4 different metric types that can be used to instrument an application. Developers can create an accompanying Metadata object to supply the metric's name, description and units. Once the metric and the metadata are registered against the application MetricRegistry, the metrics will be available in the REST endpoints.

Metric Types

Counter is used to measure an increasing value.

Example usage:


    Counter count = metricRegistry.counter(metadata);
    count.inc();

Gauge is used to provide the immediate measurement of a value.

Example usage:


    Gauge<Double> temperature = new Gauge<Double>() {
        public Double getValue() {
            return getTemperature();
        }
    };
    metricRegistry.register(metadata, temperature);

Histogram is used to sample and compute the distribution of values

Example usage:


    Histogram histogram = metricRegistry.histogram(metadata);
    histogram.update(score);

Timer is used to measure the duration of an event as well as the frequency of occurrence.

Example usage:


    Timer timer = metricRegistry.timer(metadata);
    try (Timer.Context context = timer.time()) {
        ... // code that will be timed
    }

Interface Summary

Modifier and TypeInterface and Description
public interface
Counter

An incrementing counter metric.

public interface
Counting

An interface for metric types which have counts.

public interface
Gauge<
the type of the metric's value. Must be numeric.
T extends Number
>

A gauge metric is an instantaneous reading of a particular value.

public interface
Histogram

A metric which calculates the distribution of a value.

public interface
Metadata

Bean holding the metadata of one single metric.

public interface
Metric

A tag interface to indicate that a class is a metric.

public interface
MetricFilter

A filter used to determine whether or not a metric should be reported, among other things.

public interface
MetricRegistry

The registry that stores metrics and their metadata.

public interface
Sampling

An object which samples values.

public interface
Timer

A timer metric which aggregates timing durations and provides duration statistics

Class Summary

Modifier and TypeClass and Description
public class
DefaultMetadata

The default implementation of Metadata

public class
public class
MetricID

A unique identifier for Metric and Metadata that are registered in the MetricRegistry The MetricID contains:

  • Name: (Required) The name of the metric.
  • Tags: (Optional) The tags (represented by Tag objects) of the metric. The tag name must match the regex `[a-zA-Z_][a-zA-Z0-9_]*` (Ascii alphabet, numbers and underscore). The tag value may contain any UTF-8 encoded character.
public class
MetricUnits

Standard units constants for metric's Metadata.

public abstract class
Snapshot

A statistical snapshot of a Snapshot.

public class
Tag

Tag represents a singular metric tag key and value pair.