DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Microservices Zone»Métriques 2.X dans Spring Boot 2.X
    Microservices Zone

    Métriques 2.X dans Spring Boot 2.X

    octobre 27, 2021
    Métriques 2.X dans Spring Boot 2.X
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    Spring Boot propose un point de terminaison de métriques que vous pouvez utiliser à des fins de diagnostic pour analyser les métriques recueillies par l’application.

    L’ajout de la dépendance à l’intérieur de POM est la première étape

    Un compteur est une interface pour rassembler un tas d’estimations (que nous appelons séparément des mesures) sur votre application. charges de mesures de ressort avec un ensemble confirmé de natifs de compteur, notamment Timer, Counter, Gauge, DistributionSummary et LongTaskTimer. Notez que divers types de compteurs entraînent un nombre alternatif de mesures. Par exemple, alors qu’il existe une métrique solitaire qui adresse une jauge, une minuterie estime à la fois le nombre d’occasions coordonnées et la saison absolue de toutes les occasions planifiées.

    <dependency>
      <groupId>org.springframework.metrics</groupId>
      <artifactId>spring-metrics</artifactId>
      <version>${metrics.version}</version> 
    </dependency>

    Créer une configuration de registre

    Une bibliothèque crée et gère l’agencement des compteurs de votre application. Les exportateurs utilisent la bibliothèque de compteurs pour mettre l’accent sur la disposition des compteurs instrumentant votre application, puis répétez les mesures de chaque compteur, ce qui entraîne pour la plupart une série de périodes dans le backend de mesures pour chaque mélange de mesures et de mesures.

    Trois exécutions de bibliothèque de compteurs sont fournies en dehors du cas : SpectatorMeterRegistry, PrometheusMeterRegistry et SimpleMeterRegistry. Les bibliothèques sont pour la plupart créées de manière inattendue en choisissant un backend via @EnableAtlasMetrics, @EnablePrometheusMetrics, etc.

    import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    import io.micrometer.core.aop.TimedAspect;
    import io.micrometer.core.instrument.MeterRegistry;
    
    @configuration
    public class RegistryConfig {
    	@Bean
      	MeterRegistryCustomizer<MeterRegistry> metricsCommonTags() {
        	return registry -> registry.config().commonTags("region", "someRegionName");
        }
      
      @Bean
      TimedAspect timedAspect(MterRegistry registry) {
        return new TimedAspect(reegistry);
      }
    }

    Chaque fois que nous voulons vérifier les métriques d’une méthode, nous n’avons qu’à ajouter le @Timed au-dessus de la méthode et nous pouvons garder une trace de la méthode.

    Ajouter @Timed à la méthode

    @Timed("mockMetricsSomeData")
    public String getSomeData(){
    	return "mockData":
    }

    Appeler l’URL avec des métriques

    Vous obtiendrez la réponse souhaitée à partir de l’URL des métriques et nous pouvons conserver ces enregistrements et les utiliser pour créer un tableau de bord pour n’importe quelle valeur de seuil.

    {
      "names": [
        "jvm.memory.committed",
        "jvm.gc.concurrent.phase.time",
        "jvm.buffer.total.capacity",
        "logback.events",
        "jvm.memory.max",
        "jvm.buffer.memory.used",
        "jvm.classes.loaded",
        "tomcat.threads.config.max",
        "http.server.requests",
        "metrometric.interval.gc.executiontimemillis",
        "jvm.memory.used",
        "jvm.classes.unloaded",
        "tomcat.sessions.active.current",
        "tomcat.global.error",
        "metrometric.interval.gc.count",
        "tomcat.sessions.alive.max",
        "jvm.gc.live.data.size",
        "metrometric.heap.max",
        "tomcat.threads.current",
        "metrometric.heap.used",
        "process.files.open",
        "jvm.gc.pause",
        "tomcat.sessions.active.max",
        "metrometric.heap.committed",
        "tomcat.threads.busy",
        "OemCrn.getCrnPrograms",
        "process.start.time",
        "process.files.max",
        "jvm.gc.memory.promoted",
        "metrometric.total.metrics_in_memory.count",
        "system.load.average.1m",
        "jvm.buffer.count",
        "jvm.gc.max.data.size",
        "tomcat.servlet.request.max",
        "process.cpu.usage"
      ]
    }

    Et si nous approfondissons le CLÉ Nous obtiendrons la réponse plus granulaire par exemple :

    1. /metrics/mockMetricsSomeData
    {
      "name": "mockMetricsSomeData",
      "description": null,
      "baseUnit": "milliseconds",
      "measurements": [
        {
          "statistic": "COUNT",
          "value": 0
        },
        {
          "statistic": "TOTAL_TIME",
          "value": 0
        },
        {
          "statistic": "MAX",
          "value": 0
        }
      ],
      "availableTags": [
        {
          "tag": "servicename",
          "values": [
            "mockMetrics"
          ]
        },
        {
          "tag": "containerhost",
          "values": [
            "3c94ccb43ab6"
          ]
        }
      ]
    }

    Nous aurons donc toutes les réponses pour les métriques et nous pourrons les utiliser à notre convenance. En cas de doute, n’hésitez pas à demander dans la section commentaire.

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.