This page consolidates the public surface of Dirac: artefacts to declare, exported Java modules, supported MicroProfile Metrics 5.1.1 annotations, and the mp.metrics.* keys recognised by the implementation.
Maven artefacts
groupId |
artifactId |
Role |
|---|---|---|
|
|
Local repackage of |
|
|
Re-exposition of the MP Metrics spec and stable Dirac SPI ( |
|
|
APT annotation processor (CG-05): generates |
|
|
Pure-Java implementations: |
|
|
CDI interceptors ( |
|
|
JAX-RS resource |
|
|
JMH benchmarks vs Micrometer / SmallRye Metrics. Not for production. |
|
|
Standalone and vidocq-mps-integrated examples. Not for production. |
|
|
Official MP Metrics 5.1.1 TCK runner — in-reactor, gated behind the |
All artefacts share the version 0.3.0.
Java modules
| Module | Contents |
|---|---|
|
MP Metrics 5.1.1 repackage with an explicit |
|
Exports |
|
APT processor module — generates the |
|
|
|
|
|
|
io.vidocq.dirac.internal.* is never exported to application code: any direct dependency signals a regression.
Supported MicroProfile Metrics annotations
| Annotation | Effect | Status |
|---|---|---|
|
Interceptor increments a |
✅ |
|
Interceptor measures duration via |
✅ |
|
Resolved once by |
✅ |
|
Injection qualifier to pick among the three |
✅ |
|
Extra metadata on an injection point (name, description, unit, tags). |
✅ |
|
Annotation absent from the |
⚠️ Not exposed by the API |
Configuration keys
Dirac reads its configuration without any MicroProfile Config dependency: DistributionConfig resolves each key from System.getProperty(…) first, then scans every META-INF/microprofile-config.properties visible on the classpath. Exactly three keys are recognised:
| Key | Effect |
|---|---|
|
Global percentile list ( |
|
Fixed buckets for |
|
Fixed buckets for |
|
|
|
The MP Metrics 5.1 spec defines no path option (no equivalent of |
MetricUnits types
org.eclipse.microprofile.metrics.MetricUnits enumerates the canonical units:
-
Durations —
NANOSECONDS,MICROSECONDS,MILLISECONDS,SECONDS,MINUTES,HOURS,DAYS -
Sizes —
BITS,KILOBITS,MEGABITS,BYTES,KILOBYTES,MEGABYTES,GIGABYTES -
Generic —
NONE,PERCENT,PER_SECOND
Dirac performs no automatic conversion: the unit is exposed as declared. Prometheus convention: express durations as SECONDS, sizes as BYTES.
GET /metrics endpoint
Route |
|
Verbs |
|
Types |
|
Source |
|
Status |
|
Implementation |
|
Injectable MetricRegistry
@Inject
MetricRegistry application; // APPLICATION
@Inject @RegistryScope(scope = MetricRegistry.BASE_SCOPE)
MetricRegistry base;
@Inject @RegistryScope(scope = MetricRegistry.VENDOR_SCOPE)
MetricRegistry vendor;
Compatibility
-
Java 25 (LTS), Maven 3.9.16.
-
CDI 4.1 Lite (Vauban) or Lite-compatible — the standard
InterceptorandBuildCompatibleExtensionsuffice. -
JAX-RS 4.0 (Cassini) — only if
dirac-restis used. -
No MicroProfile Config integration: the
mp.metrics.distribution.*keys are read from system properties orMETA-INF/microprofile-config.propertiesdirectly. -
No Jakarta EE Full Profile dependency.