Revision 61671
Added by Konstantinos Spyrou over 2 years ago
PrometheusController.java | ||
---|---|---|
1 | 1 |
package eu.dnetlib.repo.manager.controllers; |
2 | 2 |
|
3 | 3 |
import eu.dnetlib.repo.manager.service.PiWikService; |
4 |
import eu.dnetlib.repo.manager.service.RepositoryService; |
|
5 |
import eu.dnetlib.repo.manager.service.RepositoryServiceImpl; |
|
4 | 6 |
import io.micrometer.core.instrument.binder.jvm.DiskSpaceMetrics; |
5 | 7 |
import io.micrometer.core.instrument.binder.jvm.JvmGcMetrics; |
6 | 8 |
import io.micrometer.core.instrument.binder.jvm.JvmMemoryMetrics; |
... | ... | |
10 | 12 |
import io.micrometer.prometheus.PrometheusConfig; |
11 | 13 |
import io.micrometer.prometheus.PrometheusMeterRegistry; |
12 | 14 |
import io.prometheus.client.exporter.common.TextFormat; |
15 |
import org.apache.log4j.Logger; |
|
16 |
import org.json.JSONException; |
|
13 | 17 |
import org.springframework.beans.factory.annotation.Autowired; |
14 | 18 |
import org.springframework.http.MediaType; |
15 | 19 |
import org.springframework.web.bind.annotation.RequestMapping; |
... | ... | |
22 | 26 |
@RestController |
23 | 27 |
@RequestMapping("/actuator/prometheus") |
24 | 28 |
public class PrometheusController { // TODO: remove this with migration to Spring Boot 2 |
29 |
private static final Logger LOGGER = Logger.getLogger(PrometheusController.class); |
|
25 | 30 |
|
26 | 31 |
private final PiWikService piWikService; |
32 |
private final RepositoryService repositoryService; |
|
27 | 33 |
|
28 | 34 |
@Autowired |
29 |
public PrometheusController(PiWikService piWikService) { |
|
35 |
public PrometheusController(PiWikService piWikService, RepositoryService repositoryService) {
|
|
30 | 36 |
this.piWikService = piWikService; |
37 |
this.repositoryService = repositoryService; |
|
31 | 38 |
} |
32 | 39 |
|
33 | 40 |
@RequestMapping(method = RequestMethod.GET, path = "", produces = MediaType.TEXT_PLAIN_VALUE) |
34 | 41 |
public String getPiwikMetrics() { |
35 | 42 |
PrometheusMeterRegistry registry = new PrometheusMeterRegistry(PrometheusConfig.DEFAULT); |
36 |
registry.counter("provide_usagecounts_repositories").increment(piWikService.getTotal()); |
|
43 |
registry.counter("provide_repositories_registered").increment(repositoryService.getTotalRegisteredRepositories()); |
|
44 |
registry.counter("provide_usagecounts_repositories_registered").increment(piWikService.getTotal()); |
|
37 | 45 |
registry.counter("provide_usagecounts_repositories_validated").increment(piWikService.getValidated(true)); |
38 | 46 |
|
39 | 47 |
return registry.scrape(TextFormat.CONTENT_TYPE_OPENMETRICS_100); |
Also available in: Unified diff
created method to retrieve total registered datasources and added an entry in prometheus metrics