[jira] [Created] (IGNITE-13855) Integration with micrometer.io as part of integration with spring-boot

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (IGNITE-13855) Integration with micrometer.io as part of integration with spring-boot

Anton Vinogradov (Jira)
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)