Project

General

Profile

« Previous | Next » 

Revision 61671

created method to retrieve total registered datasources and added an entry in prometheus metrics

View differences:

modules/uoa-repository-manager-service/trunk/src/main/java/eu/dnetlib/repo/manager/service/RepositoryService.java
55 55
                                                         String officialName, String requestSortBy, String order,
56 56
                                                         int page, int pageSize) throws Exception;
57 57

  
58
    int getTotalRegisteredRepositories();
59

  
58 60
    List<RepositoryInterface> getRepositoryInterface(String id) throws JSONException;
59 61

  
60 62
    Repository addRepository(String datatype, Repository repository) throws Exception;
modules/uoa-repository-manager-service/trunk/src/main/java/eu/dnetlib/repo/manager/service/RepositoryServiceImpl.java
19 19
import eu.dnetlib.repo.manager.utils.Converter;
20 20
import gr.uoa.di.driver.enabling.vocabulary.VocabularyLoader;
21 21
import org.apache.commons.codec.digest.DigestUtils;
22
import org.apache.http.entity.ContentType;
22 23
import org.apache.log4j.Logger;
23 24
import org.json.JSONArray;
24 25
import org.json.JSONException;
......
33 34
import org.springframework.security.core.Authentication;
34 35
import org.springframework.security.core.context.SecurityContextHolder;
35 36
import org.springframework.stereotype.Service;
37
import org.springframework.util.MimeType;
36 38
import org.springframework.web.client.HttpClientErrorException;
37 39
import org.springframework.web.client.RestClientException;
38 40
import org.springframework.web.client.RestTemplate;
......
310 312
        }
311 313
    }
312 314

  
315
    @Override
316
    public int getTotalRegisteredRepositories() {
317
        UriComponents uriComponents = UriComponentsBuilder
318
                .fromHttpUrl(baseAddress + "/ds/countregistered")
319
                .queryParam("fromDate", "1900-01-01")
320
                .build().encode();
321

  
322
        return restTemplate.getForObject(uriComponents.toUri(), Integer.class);
323
    }
324

  
313 325
    private Repository updateRepositoryInfo(Repository r) throws JSONException {
314 326

  
315 327
        /*
modules/uoa-repository-manager-service/trunk/src/main/java/eu/dnetlib/repo/manager/controllers/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