Heim  >  Artikel  >  Java  >  Ein Anfängerleitfaden zur Verwendung des Federmanschettenaktuators

Ein Anfängerleitfaden zur Verwendung des Federmanschettenaktuators

WBOY
WBOYOriginal
2024-08-02 10:00:24717Durchsuche

A Beginners Guide to Using Spring Boot Actuator

Spring Boot Actuator ist ein Unterprojekt von Spring Boot, das produktionsbereite Funktionen bereitstellt, die Ihnen bei der Überwachung und Verwaltung Ihrer Anwendung helfen. Es bietet eine Reihe integrierter Endpunkte, mit denen Sie Einblicke in den Zustand, die Metriken und die Umgebung Ihrer Anwendung gewinnen und diese dynamisch steuern können.

Was ist ein Spring Boot Actuator?

Spring Boot Actuator bietet mehrere sofort einsatzbereite Endpunkte, die zur Überwachung und Interaktion mit Ihrer Anwendung verwendet werden können. Auf diese Endpunkte kann über HTTP, JMX oder mit Spring Boot Admin zugegriffen werden.

Hauptmerkmale des Federmanschettenaktuators

  1. Gesundheitsprüfungen: Überwachen Sie den Zustand Ihrer Anwendung und ihrer Abhängigkeiten.
  2. Metriken: Sammeln Sie verschiedene Metriken wie Speichernutzung, Speicherbereinigung, Webanfragedetails usw.
  3. Umgebungsinformationen: Greifen Sie auf die Umgebungseigenschaften der Anwendung zu.
  4. Anwendungsinformationen: Rufen Sie Informationen über den Build der Anwendung ab, z. B. Version und Name.
  5. Dynamische Protokollebenen: Ändern Sie die Protokollebenen, ohne die Anwendung neu zu starten.
  6. HTTP-Ablaufverfolgung: Verfolgen Sie HTTP-Anfragen.

Einrichten des Spring Boot-Aktuators

1. Aktuatorabhängigkeit hinzufügen

Um Actuator in Ihrer Spring Boot-Anwendung zu verwenden, müssen Sie die Actuator-Abhängigkeit zu Ihrer pom.xml-Datei hinzufügen:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

Wenn Sie Gradle verwenden, fügen Sie Folgendes zu Ihrer build.gradle-Datei hinzu:

implementation 'org.springframework.boot:spring-boot-starter-actuator'

2. Aktorendpunkte aktivieren

Standardmäßig sind nur wenige Endpunkte aktiviert. Sie können zusätzliche Endpunkte in Ihrer application.yml-Datei aktivieren:

management:
  endpoints:
    web:
      exposure:
        include: "*"  # This exposes all available endpoints
  endpoint:
    health:
      show-details: always  # Show detailed health information

Verwenden von Aktuator-Endpunkten

Sobald Actuator eingerichtet ist, können Sie auf die verschiedenen von ihm bereitgestellten Endpunkte zugreifen. Hier sind einige häufig verwendete Endpunkte:

1. Gesundheitsendpunkt

Der /actuator/health-Endpunkt liefert Informationen über den Zustand Ihrer Anwendung:

GET http://localhost:8080/actuator/health

Beispielantwort:

{
  "status": "UP",
  "components": {
    "db": {
      "status": "UP",
      "details": {
        "database": "H2",
        "result": 1
      }
    },
    "diskSpace": {
      "status": "UP",
      "details": {
        "total": 499963174912,
        "free": 16989374464,
        "threshold": 10485760,
        "exists": true
      }
    }
  }
}

2. Metrik-Endpunkt

Der Endpunkt /actuator/metrics stellt verschiedene Metriken im Zusammenhang mit Ihrer Anwendung bereit:

GET http://localhost:8080/actuator/metrics

Beispielantwort:

{
  "names": [
    "jvm.memory.used",
    "jvm.gc.pause",
    "system.cpu.usage",
    "system.memory.usage",
    "http.server.requests"
  ]
}

So erhalten Sie Details zu einer bestimmten Metrik:

GET http://localhost:8080/actuator/metrics/jvm.memory.used

Beispielantwort:

{
  "name": "jvm.memory.used",
  "description": "The amount of used memory",
  "baseUnit": "bytes",
  "measurements": [
    {
      "statistic": "VALUE",
      "value": 5.1234567E7
    }
  ],
  "availableTags": [
    {
      "tag": "area",
      "values": [
        "heap",
        "nonheap"
      ]
    },
    {
      "tag": "id",
      "values": [
        "PS Eden Space",
        "PS Survivor Space",
        "PS Old Gen",
        "Metaspace",
        "Compressed Class Space"
      ]
    }
  ]
}

3. Umgebungsendpunkt

Der /actuator/env-Endpunkt stellt Informationen über die Umgebungseigenschaften bereit:

GET http://localhost:8080/actuator/env

Beispielantwort:

{
  "activeProfiles": [],
  "propertySources": [
    {
      "name": "systemProperties",
      "properties": {
        "java.runtime.name": {
          "value": "Java(TM) SE Runtime Environment"
        },
        "java.vm.version": {
          "value": "25.181-b13"
        }
      }
    },
    {
      "name": "systemEnvironment",
      "properties": {
        "PATH": {
          "value": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
        },
        "HOME": {
          "value": "/root"
        }
      }
    }
  ]
}

4. Info-Endpunkt

Der /actuator/info-Endpunkt stellt Informationen über die Anwendung bereit:

GET http://localhost:8080/actuator/info

Um die Informationen anzupassen, fügen Sie Eigenschaften in Ihre application.yml ein:

info:
  app:
    name: My Spring Boot Application
    description: This is a sample Spring Boot application
    version: 1.0.0

Aktor-Endpunkte sichern

Standardmäßig sind alle Actuator-Endpunkte ohne Authentifizierung zugänglich. Um diese Endpunkte zu sichern, können Sie Spring Security verwenden. Fügen Sie die Spring Security-Abhängigkeit zu Ihrer pom.xml hinzu:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

Aktualisieren Sie Ihre application.yml, um den Zugriff einzuschränken:

management:
  endpoints:
    web:
      exposure:
        include: "*"  # Expose all endpoints
  endpoint:
    health:
      show-details: always  # Show detailed health information

spring:
  security:
    user:
      name: admin  # Default username
      password: admin  # Default password

# Restrict actuator endpoints to authenticated users
management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: always
  security:
    enabled: true
    roles: ACTUATOR

Erstellen Sie eine Sicherheitskonfigurationsklasse, um die HTTP-Sicherheit zu konfigurieren:

import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .antMatchers("/actuator/**").hasRole("ACTUATOR")
                .anyRequest().authenticated()
            .and()
            .httpBasic();
    }
}

Mit dieser Konfiguration können nur authentifizierte Benutzer mit der ACTUATOR-Rolle auf die Actuator-Endpunkte zugreifen.

Anpassen von Aktuator-Endpunkten

Sie können benutzerdefinierte Actuator-Endpunkte erstellen, um zusätzliche Informationen oder spezifische Funktionen für Ihre Anwendung bereitzustellen. Hier ist ein Beispiel für die Erstellung eines benutzerdefinierten Endpunkts:

import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation;
import org.springframework.stereotype.Component;

@Endpoint(id = "custom")
@Component
public class CustomEndpoint {

    @ReadOperation
    public String customEndpoint() {
        return "Custom Actuator Endpoint";
    }
}

Greifen Sie auf Ihren benutzerdefinierten Endpunkt zu:

GET http://localhost:8080/actuator/custom

Abschluss

Spring Boot Actuator bietet eine Reihe robuster Tools, die Sie bei der Überwachung und Verwaltung Ihrer Anwendung unterstützen. Durch die Nutzung der integrierten Endpunkte und der Möglichkeit, benutzerdefinierte Endpunkte zu erstellen, können Sie wertvolle Einblicke in die Leistung und den Zustand Ihrer Anwendung gewinnen. Sichern Sie diese Endpunkte mit Spring Security, um sicherzustellen, dass nur autorisierte Benutzer Zugriff haben, und Sie erhalten eine produktionsbereite Anwendung, die einfach zu verwalten und zu überwachen ist.

Actuator ist ein wesentlicher Bestandteil jeder Spring Boot-Anwendung und ermöglicht es Ihnen, den Überblick über die Laufzeitumgebung Ihrer Anwendung zu behalten und schnell auf auftretende Probleme zu reagieren. Beginnen Sie noch heute mit der Verwendung von Spring Boot Actuator, um die Beobachtbarkeit und Betriebsfähigkeit Ihrer Anwendung zu verbessern.

Das obige ist der detaillierte Inhalt vonEin Anfängerleitfaden zur Verwendung des Federmanschettenaktuators. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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
Vorheriger Artikel:Das Schlüsselwort thisNächster Artikel:Das Schlüsselwort this