Skip to content

avaje/avaje-metrics

Repository files navigation

avaje-metrics

Java metrics library for timers, counters, meters, gauges, built-in JVM metrics, and export paths such as OpenTelemetry, Prometheus, StatsD, and Graphite.

The repository contains the core avaje-metrics module plus optional integration and export modules.

Modules

Artifact Purpose Docs
avaje-metrics Core metrics API, default registry, JVM metrics, @Timed, traced timer support hooks metrics/README.md
avaje-metrics-otel Convenience OTLP-backed OpenTelemetry setup for metrics + traces metrics-otel/README.md
avaje-metrics-otel-producer OpenTelemetry SDK MetricProducer bridge metrics-otel-producer/README.md
avaje-metrics-otel-trace OpenTelemetry span bridge for traced timers metrics-otel-trace/README.md
avaje-metrics-otel-reporter Scheduled OpenTelemetry reporter path metrics-otel-reporter/README.md
avaje-metrics-prometheus Prometheus text exposition scrape exporter metrics-prometheus/README.md
avaje-metrics-statsd StatsD / DogStatsD reporter metrics-statsd/README.md
avaje-metrics-graphite Graphite reporter and sender metrics-graphite/README.md
avaje-metrics-ebean Ebean MetricSupplier integration metrics-ebean/README.md

Documentation & Guides

Quick start

<dependency>
  <groupId>io.avaje</groupId>
  <artifactId>avaje-metrics</artifactId>
  <version>${version}</version>
</dependency>
import io.avaje.metrics.Metrics;
import io.avaje.metrics.Tags;

var requests = Metrics.counterBuilder("app.http.requests")
  .unit("{event}")
  .build();

var timer = Metrics.timerBuilder("app.service.run")
  .tags(Tags.of("operation:sync"))
  .build();

Metrics.gauge("app.queue.depth")
  .ofLongs(queue::size);

Metrics.jvmMetrics()
  .withReportAlways()
  .registerJvmCoreMetrics();

requests.inc();
timer.time(service::run);

From there, choose an export path:

License

Published under Apache License 2.0, see LICENSE.

About

Core implementation of avaje metric api

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages