[
https://issues.apache.org/jira/browse/IGNITE-17448?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Denis Chudov updated IGNITE-17448:
----------------------------------
Description:
At least, could be implemented metric showing *topology version*.
What is needed to achieve this:
Define metrics source class and metrics holder class for cluster state.
Define all metric variables in the holder class, if needed.
Implement initialization logic which is responsible for creation of actual
instances of metrics and building an immutable instance of metrics set (will be
executed on metrics enabling). Implement additional clean up logic if needed
(will be executed on metrics disabled).
Define methods that implement desirable manipulations with metrics. Every such
method must check the state of the metrics source (enabled\disabled) by testing
the holder reference to null (some kind of guard) before modifying a metric
value. Read holder reference only once and use it in scope of the method in
order to avoid data races.
Metrics source should be registered in metrics registry on component start and
should be unregistered on component stop. Initial metrics source state
(enabled\disabled) should be set according to configuration for each particular
component.
Add logic related with metrics values modification (add invocations of metrics
source methods).
was:
At least, could be implemented metric showing *topology version*.
What is needed to achieve this:
Define metrics source class and metrics holder class for ignite compute.
Define all metric variables in the holder class, if needed.
Implement initialization logic which is responsible for creation of actual
instances of metrics and building an immutable instance of metrics set (will be
executed on metrics enabling). Implement additional clean up logic if needed
(will be executed on metrics disabled).
Define methods that implement desirable manipulations with metrics. Every such
method must check the state of the metrics source (enabled\disabled) by testing
the holder reference to null (some kind of guard) before modifying a metric
value. Read holder reference only once and use it in scope of the method in
order to avoid data races.
Metrics source should be registered in metrics registry on component start and
should be unregistered on component stop. Initial metrics source state
(enabled\disabled) should be set according to configuration for each particular
component.
Add logic related with metrics values modification (add invocations of metrics
source methods).
> Implementation of metric source for cluster state
> -------------------------------------------------
>
> Key: IGNITE-17448
> URL: https://issues.apache.org/jira/browse/IGNITE-17448
> Project: Ignite
> Issue Type: New Feature
> Reporter: Denis Chudov
> Assignee: Kirill Gusakov
> Priority: Major
> Labels: ignite-3
>
> At least, could be implemented metric showing *topology version*.
> What is needed to achieve this:
> Define metrics source class and metrics holder class for cluster state.
> Define all metric variables in the holder class, if needed.
> Implement initialization logic which is responsible for creation of actual
> instances of metrics and building an immutable instance of metrics set (will
> be executed on metrics enabling). Implement additional clean up logic if
> needed (will be executed on metrics disabled).
> Define methods that implement desirable manipulations with metrics. Every
> such method must check the state of the metrics source (enabled\disabled) by
> testing the holder reference to null (some kind of guard) before modifying a
> metric value. Read holder reference only once and use it in scope of the
> method in order to avoid data races.
> Metrics source should be registered in metrics registry on component start
> and should be unregistered on component stop. Initial metrics source state
> (enabled\disabled) should be set according to configuration for each
> particular component.
> Add logic related with metrics values modification (add invocations of
> metrics source methods).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)