Tanmay Ambre created IGNITE-13855:
-------------------------------------
Summary: Integration with micrometer.io as part of integration with spring-boot
Key: IGNITE-13855
URL:
https://issues.apache.org/jira/browse/IGNITE-13855 Project: Ignite
Issue Type: Wish
Components: general
Affects Versions: 2.9
Reporter: Tanmay Ambre
hi,
I run Ignite server nodes as Spring-boot applications. We use actuator, micrometer and prometheus meter registries for monitoring.
I implemented a new MetricExporterSpi to push metrics as gauges in micrometer. So that we can easily monitor the metrics using our prometheus-grafana dashboards. However, the problem is the MetricExporterSpi never gets attached. Reason for that is as follows:
# I use an xml file to configure ignite.
# After I do Ignition.start(configFilePath) - I perform ignite.configuration().setMetricExporterSpi(). - however, after this call the spiStart method of the MetricExporterSpi is not called.
# If I configure ExporterSpi in the ignite config xml file - the exporterSpi lifecycle methods are invoked as part of Ignition.start(). But then I can't inject the micrometer registry in my custom ExporterSpi.
# If i call the spi.start() manually - it doesnt work because the setReadOnlyMetricRegistry is not invoked.
Any suggestions? I can use Opencensus - and then export metrics to Prometheus - however - this would require me to start a HTTP Server inside ignite. This can be become cumbersome when deployed in container mode (on K8S, Openshift, etc).
Code of my IgniteConfig is shown below
{quote}@Configuration
public class IgniteConfig
{
@Autowired
ApplicationConfig applicationConfig;
@Autowired
MicrometerMetricsExporterSpi mmes;
@Bean
public Ignite ignite()
{
Ignite igniteInstance = Ignition.start(applicationConfig.getIgniteConfig().getConfigFile());
MetricExporterSpi[] metricSpis = igniteInstance.configuration().getMetricExporterSpi();
igniteInstance.configuration().setMetricExporterSpi(mmes);
if (applicationConfig.getIgniteConfig().isAutoActivateCluster())
{
igniteInstance.cluster().state(ClusterState.ACTIVE);
}
return igniteInstance;
}
}{quote}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)