„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Ein Leitfaden für Anfänger zur Verwendung des Federmanschettenaktuators

Ein Leitfaden für Anfänger zur Verwendung des Federmanschettenaktuators

Veröffentlicht am 06.08.2024
Durchsuche:254

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: Informationen zum Build der Anwendung abrufen, z. B. Version und Name.
  5. Dynamische Protokollebenen: Protokollebenen ändern, ohne die Anwendung neu zu starten.
  6. HTTP-Ablaufverfolgung: HTTP-Anfragen verfolgen.

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:

org.springframework.bootspring-boot-starter-actuator

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"
  ]
}

Um Details zu einer bestimmten Metrik zu erhalten:

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 Ihrer application.yml hinzu:

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:

org.springframework.bootspring-boot-starter-security

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 Funktionen speziell 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.

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/isaactony/a-beginners-guide-to-using-spring-boot-actuator-5g3n?1 Bei Verstößen wenden Sie sich zum Löschen bitte an [email protected] Es
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3