micronaut-micrometer
micronaut-micrometer copied to clipboard
Race condition at order of MeterRegistryConfigurer(s) being applied
Expected Behavior
In the case I configure micronaut.metrics.tags.*
I expect those tags being added to every Micrometer meter being created.
Actual Behaviour
In some cases the meters created by io.micronaut.configuration.metrics.aggregator.CompositeMeterRegistryConfigurer#addBinders
are not having those common tags. This is because the execution order of io.micronaut.configuration.metrics.aggregator.CompositeMeterRegistryConfigurer
and io.micronaut.configuration.metrics.common.tags.CommonTagsConfigurer
is not defined. In case io.micronaut.configuration.metrics.micrometer.MeterRegistryFactory#compositeMeterRegistry
executes CompositeMeterRegistryConfigurer
before CommonTagsConfigurer
, the common tags are not yet configured but some meters have already been created.
Steps To Reproduce
Difficult to reproduce because the mentioned order of io.micronaut.configuration.metrics.aggregator.MeterRegistryConfigurer
is not configurable.
Environment Information
micronaut-micrometer-core: v4.2.1 micronaut: v3.4.3
Example Application
No response
Version
3.4.3
In case you guys agree that this is a problem, I would be eager to help on fixing this but I'm not sure about a good solution for this.
Just as background information: I've stumbled over this issue while implementing a MeterRegistry
implementation for the Prometheus Remote_Write protocol which I want to use for monitoring Java batch jobs based on Micronaut.
👍
We faced this issue as well while using Meter Registry Configurer
. For us, however, using the Meter Filter
seems to have solved the issue.