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)