Project

General

Profile

« Previous | Next » 

Revision 51080

added generic interceptors to track the API execution time

View differences:

DNetOpenaireExporterBeanFactory.java
1 1
package eu.dnetlib;
2 2

  
3
import java.util.Collection;
4

  
5 3
import javax.sql.DataSource;
6 4

  
7 5
import com.mongodb.MongoClient;
......
11 9
import eu.dnetlib.data.objectstore.rmi.ObjectStoreService;
12 10
import eu.dnetlib.enabling.is.lookup.rmi.ISLookUpService;
13 11
import eu.dnetlib.enabling.is.registry.rmi.ISRegistryService;
14
import io.prometheus.client.exporter.MetricsServlet;
15
import io.prometheus.client.hotspot.DefaultExports;
16
import io.prometheus.client.spring.boot.SpringBootMetricsCollector;
17 12
import org.apache.commons.dbcp2.BasicDataSource;
18 13
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
19 14
import org.springframework.beans.factory.annotation.Autowired;
20
import org.springframework.beans.factory.annotation.Value;
21
import org.springframework.boot.actuate.endpoint.PublicMetrics;
22
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
23
import org.springframework.boot.web.servlet.ServletRegistrationBean;
24 15
import org.springframework.context.annotation.Bean;
25 16
import org.springframework.context.annotation.Configuration;
26 17

  
......
86 77
				MongoClientOptions.builder().connectionsPerHost(config.getDatasource().getMongoConnectionsPerHost()).build());
87 78
	}
88 79

  
89

  
90
	@Bean
91
	@ConditionalOnMissingBean(SpringBootMetricsCollector.class)
92
	SpringBootMetricsCollector springBootMetricsCollector(final Collection<PublicMetrics> publicMetrics) {
93

  
94
		final SpringBootMetricsCollector springBootMetricsCollector = new SpringBootMetricsCollector(publicMetrics);
95
		springBootMetricsCollector.register();
96

  
97
		return springBootMetricsCollector;
98
	}
99

  
100
	@Bean
101
	@ConditionalOnMissingBean(name = "prometheusMetricsServletRegistrationBean")
102
	ServletRegistrationBean prometheusMetricsServletRegistrationBean(@Value("${prometheus.metrics.path:/metrics}") final String metricsPath) {
103
		DefaultExports.initialize();
104
		return new ServletRegistrationBean(new MetricsServlet(), metricsPath);
105
	}
106

  
107

  
108 80
}

Also available in: Unified diff