[ 
https://issues.apache.org/jira/browse/IGNITE-26703?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vyacheslav Koptilin updated IGNITE-26703:
-----------------------------------------
    Component/s: metrics framework ai3

> MetricRegistry should allow registering already enabled metric sources
> ----------------------------------------------------------------------
>
>                 Key: IGNITE-26703
>                 URL: https://issues.apache.org/jira/browse/IGNITE-26703
>             Project: Ignite
>          Issue Type: Improvement
>          Components: metrics framework ai3
>    Affects Versions: 3.0, 3.1
>            Reporter: Vyacheslav Koptilin
>            Priority: Major
>              Labels: ignite-3
>
> Currently, `MetricRegistry` does not allow registering already enabled metric 
> sources:
> {code:java}
> public void registerSource(MetricSource src) {
>     lock.lock();
>     try {
>         // Metric source shouldn't be enabled before because the second call 
> of MetricSource#enable will return null.
>         assert !src.enabled() : "Metric source shouldn't be enabled before 
> registration in registry.";
>         MetricSource old = sources.putIfAbsent(src.name(), src);
>         if (old != null) {
>             throw new IllegalStateException("Metrics source with given name 
> already exists: " + src.name());
>         }
>     } finally {
>         lock.unlock();
>     }
> } {code}
> At first, we need to understand why this limitation was introduced, of course.
> IMHO, the limitation does not allow `replacing` a metric source in a light 
> way.
> For instance, let's assume that we have a table and the corresponding metric 
> source is enabled. When the table is renamed, we need to unregister the 
> previous metric source, create a new one with the same metric set (to retain 
> metric values and preserve the history), and register the latest source. 
> Unfortunately, in that case, the new source is considered an enabled one and 
> cannot be registered.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to