...
The Ignite will provide public facade to manage profiling mode:
ignite.profiling().enable(); // Turns on profiling mode.
ignite.profiling().disable(); // Turns off profiling mode.ignite.profiling().isEnabled(); // Is profiling mode turn on?
Profiling mode can be managed from CLI (And JMX):
control.sh --profiling // Prints current profiling mode status.
control.sh --profiling enable // Turns on profiling mode.
control.sh --profiling disable // Turns off profiling mode.
The Ignite will provide the public SPI interface (ProfilingSpi
) to log statistics. It can be configured via IgniteConfiguration
. It describes follow methods:
The internal processor (ProfilingProcessor)
will be used to manage profiling whole cluster. It will be availible from KernalContext
.
The new ignite-profiling
module will contain:
LogProfilingSpiImpl
) based on async logging to the configured file. report.sh(bat)
The performance report will be in a human-readable text format (and then in the html page) format and should contain:
Also, statistics will be aggregated per nodes.
Additional investigation required to gather following statistics:
This statistics will provide:
On the first phase will be implemented:
On the second phase will be investigated and implemented:
The Ignite will log some additional internal statistics using separate log category of IgniteLogger.
The new ignite-profiling
module will be introduced. It will contain:
s
report.sh(bat)
The new interface will be added: ProfilingSpi
.
The new ignite facade will be added: ignite.profiling()
.
The new module will be created: ignite-profiling
.
Node left will not affect to the cluster profiling mode.
Joining node will set up profiling
mode from DiscoveryDataBag
provided by the cluster.
Enabled profiling mode will cause performance degradation.
...