On this page
Overview
Micrometer is an application metrics facade for popular monitoring systems. Application code records dimensional metrics through a vendor-neutral interface while registry implementations connect those measurements to systems such as Prometheus or CloudWatch.
Features and best fit
Based on official documentation; not hands-on tested · Content checked:
Key features
Instrument dimensional metrics through one API
Counters, timers, gauges, and related meters can be recorded without coupling application code directly to a monitoring vendor's client library.
Sources: [1]
Swap monitoring backends through registry implementations
Instrumentation can remain stable while deployment environments select the appropriate monitoring backend through Micrometer registries.
Sources: [1]
Best fit
Fits JVM microservices, including Kotlin services, that need consistent metrics
Although implemented in Java, it is JVM-native and works well for Kotlin backends that want shared metric naming and tagging conventions across services.
Sources: [1]
Before adoption
Design cardinality and export settings for each monitoring backend
The facade does not remove backend-specific operational limits such as high-cardinality labels or export intervals, so those still need explicit design.
Sources: [1]
Version 1.17.1 fixes Prometheus timestamps and HTTP client interceptor issues
The 1.17.1 release fixes custom-meter creation timestamps for Prometheus, memory leak/NPE issues in HTTP client interceptors, and StatsD line-terminator sanitation.
Sources: [2]
Official sources
- [1]Micrometer README(2026-10-06)
- [2]Micrometer 1.17.1 release(2026-10-06)
Supplemental curator note
It fits JVM backends, including Kotlin services, that want vendor-neutral metrics instrumentation. Registry selection and tag/label cardinality still require backend-specific design.
Try it in 3 steps
- 1
Get the source
git clone --depth 1 https://github.com/micrometer-metrics/micrometer.git - 2
Enter the repository
cd micrometer - 3
Check the official steps
Continue with the commands in the README Installation, Quick Start, or Getting Started section.
find . -maxdepth 1 -iname 'README*' -exec sed -n '1,220p' {} \; -quit
Growth
Growth trends · Last 30 days
4,908 Stars
Trend data is still being collected.
Development activity
Last 90 days · weekly
- Commits (last 30 days)
- 108
- Open PRs
- 96
Development activity is still being collected.
Built with
Categories and tags
Categories
GitHub data
GitHub dataView detailed GitHub data
GitHub Topics
- java
- monitoring
- cloud-native
- microservices
- metrics
- observability
- Stars
- 4,908
- Forks
- 1,153
- Watchers
- 112
- Open issues
- 217
- Contributors
- 324
- Owner type
- Organization
- Primary language
- Java
- License
- Apache-2.0
- Repository last updated
- Oct 5, 2026
Related information
Write a related articleShare a guide or use case for this OSS in Markdown. Articles are published after administrator approval.
Explore next
- uptimepage40 Stars
1 shared tag(s) · 2 shared category(s)
run monitoring, status pages, and on-call workflows from one self-hostable service
Rust - Elasticsearch78,194 Stars
1 shared tag(s) · 1 shared category(s) · Same language
distributed full-text/vector search for analytics, observability, and RAG
Java - DBeaver51,958 Stars
1 shared tag(s) · 1 shared category(s) · Same language
operate many database systems from one desktop SQL workspace
Java - Retrofit43,936 Stars
1 shared tag(s) · 1 shared category(s) · Same language
call HTTP APIs through typed Java and Kotlin interfaces
Java - Resilience4j10,778 Stars
2 shared tag(s) · 1 shared category(s) · Same language
Add circuit breaking, retries, and rate limits to Java service calls
Java - Prometheus66,366 Stars
2 shared tag(s) · 1 shared category(s)
monitor and alert on time-series metrics with PromQL and pull-based collection
Go
Report incorrect information
Tell us if any listing information is incorrect or outdated.