Heim > Java > javaLernprogramm > Hauptteil

So fügen Sie Zählerdaten zum Metrikendpunkt von Spring Boot Actuator hinzu

Mary-Kate Olsen
Freigeben: 2024-11-01 20:16:02
Original
294 Leute haben es durchsucht

How to add a meter data into Spring Boot Actuator metrics endpoint

Schritt

Fügen Sie zunächst die folgende Abhängigkeit hinzu

pom.xml

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- for Prometheus endpoint -->
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
Nach dem Login kopieren

Dann werden Endpunkte über den Webzugriff aktiviert

src/main/resources/application.properties

management.endpoints.web.exposure.include=prometheus,metrics
Nach dem Login kopieren

Eine Singleton-Komponente hinzufügen

@Component
public class MyMetrics implements MeterBinder {

    private final Random random = new Random();
    private final AtomicInteger counter = new AtomicInteger();

    @Override
    public void bindTo(MeterRegistry registry) {
        // can any value
        Gauge.builder("mymetrics.gauge", this, MyMetrics::getRandom)
                .description("MyMetrics gauge")
                .register(registry);

        // must the same or greater than the value last got, or reset to zero on restart
        FunctionCounter.builder("mymetrics.counter", this, MyMetrics::counterGetAndIncrement)
                .description("MyMetrics counter")
                .register(registry);
    }

    public double getRandom() {
        return random.nextDouble();
    }

    public int counterGetAndIncrement() {
        return counter.getAndIncrement();
    }

}
Nach dem Login kopieren

Schließlich kann auf metrische Daten zugegriffen werden über

/actuator/metrics/mymetrics.counter

{"name":"mymetrics.counter","description":"MyMetrics counter","baseUnit":null,"measurements":[{"statistic":"COUNT","value":9.0}],"availableTags":[]}
Nach dem Login kopieren

/actuator/metrics/mymetrics.gauge

{"name":"mymetrics.gauge","description":"MyMetrics gauge","baseUnit":null,"measurements":[{"statistic":"VALUE","value":0.7618330619753056}],"availableTags":[]}
Nach dem Login kopieren

/actuator/prometheus

# HELP mymetrics_counter_total MyMetrics counter
# TYPE mymetrics_counter_total counter
mymetrics_counter_total 8.0
# HELP mymetrics_gauge MyMetrics gauge
# TYPE mymetrics_gauge gauge
mymetrics_gauge 0.1346348968727723
Nach dem Login kopieren

Bohnen

Endpunkte

Endpunkte werden mit org.springframework.boot.actuate.endpoint.annotation.Endpoint annotiert, und sie sind Beans und werden von Springs BeanFactory verwaltet.

Endpunkt Klasse Erstellt von Metriken
Endpoint Class Created by
metrics org.springframework.boot.actuate.metrics.MetricsEndpoint org.springframework.boot.actuate.autoconfigure.metrics.MetricsEndpointAutoConfiguration#metricsEndpoint
prometheus org.springframework.boot.actuate.metrics.export.prometheus.PrometheusScrapeEndpoint org.springframework.boot.actuate.autoconfigure.metrics.export.prometheus.PrometheusMetricsExportAutoConfiguration.PrometheusScrapeEndpointConfiguration#prometheusEndpoint
org.springframework.boot.actuate.metrics.MetricsEndpoint

org.springframework.boot.actuate.autoconfigure.metrics.MetricsEndpointAutoConfiguration#metricsEndpoint

Prometheus org.springframework.boot.actuate.metrics.export.prometheus.PrometheusScrapeEndpoint

org.springframework.boot.actuate.autoconfigure.metrics.export.prometheus.PrometheusMetricsExportAutoConfiguration.PrometheusScrapeEndpointConfiguration#prometheusEndpoint

org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping Klasse

Dies wird erstellt von org.springframework.boot.actuate.autoconfigure.endpoint.web.servlet.WebMvcEndpointManagementContextConfiguration#webEndpointServletHandlerMapping

. Endpunktinformationen werden von

org.springframework.boot.actuate.endpoint.web.annotation.WebEndpointDiscoverer bereitgestellt. Die Zuordnung zwischen Pfad und Endpunkten wird in org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping#initHandlerMethods

registriert.

Es implementiert die Schnittstelle

org.springframework.web.servlet.HandlerMapping, sodass die Instanz während der Instanzkonstruktion im DispatcherServlet
registriert wird.

spring.jmx.enabled=true
Nach dem Login kopieren
Endpunkte für JMX verfügbar machen

Fügen Sie einfach eine Zeile in src/main/resources/application.properties

ein Die Zuordnung der Endpunkte zu MBeanServer erfolgt durch org.springframework.boot.actuate.autoconfigure.endpoint.jmx.JmxEndpointAutoConfiguration.

Das obige ist der detaillierte Inhalt vonSo fügen Sie Zählerdaten zum Metrikendpunkt von Spring Boot Actuator hinzu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!