This page consolidates the public surface of Dirac: artefacts to declare, exported JPMS 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 ( |
|
|
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 — outside reactor (Model 4.0.0). Do not declare as an application dependency. |
All versions at 0.1.0-SNAPSHOT at the time of writing.
JPMS modules
| Module | Contents |
|---|---|
|
MP Metrics 5.1.1 repackage with an explicit |
|
|
|
|
|
|
|
|
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 |
MicroProfile Config keys
All keys are read via ConfigProvider.getConfig() (Ravel). See DistributionConfig and MetricRegistryImpl.
| Key | Effect |
|---|---|
|
Logical application name — emitted as a global |
|
Global tags, format |
|
Global percentile list ( |
|
Fixed buckets for |
|
Fixed buckets for |
|
Possible compat key (non-standard) — check |
|
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. -
MicroProfile Config 3.1 (Ravel) — strongly recommended for
mp.metrics.tagsandmp.metrics.distribution.*. -
No Jakarta EE Full Profile dependency.