Rumah  >  Artikel  >  Java  >  Panduan Pemula untuk Menggunakan Spring Boot Actuator

Panduan Pemula untuk Menggunakan Spring Boot Actuator

WBOY
WBOYasal
2024-08-02 10:00:24756semak imbas

A Beginners Guide to Using Spring Boot Actuator

Spring Boot Actuator ialah sub-projek Spring Boot yang menyediakan ciri sedia pengeluaran untuk membantu anda memantau dan mengurus aplikasi anda. Ia menawarkan satu set titik akhir terbina dalam yang membolehkan anda memperoleh cerapan tentang kesihatan, metrik dan persekitaran aplikasi anda, serta mengawalnya secara dinamik.

Apakah Spring Boot Actuator?

Spring Boot Actuator menyediakan beberapa titik akhir luar biasa yang boleh digunakan untuk memantau dan berinteraksi dengan aplikasi anda. Titik akhir ini boleh diakses melalui HTTP, JMX atau menggunakan Spring Boot Admin.

Ciri Utama Spring Boot Actuator

  1. Pemeriksaan Kesihatan: Pantau kesihatan aplikasi anda dan kebergantungannya.
  2. Metrik: Kumpulkan pelbagai metrik seperti penggunaan memori, pengumpulan sampah, butiran permintaan web, dsb.
  3. Maklumat Alam Sekitar: Akses sifat persekitaran aplikasi.
  4. Maklumat Aplikasi: Dapatkan maklumat tentang binaan aplikasi, seperti versi dan nama.
  5. Tahap Log Dinamik: Tukar tahap log tanpa memulakan semula aplikasi.
  6. Penjejakan HTTP: Jejaki permintaan HTTP.

Menyediakan Spring Boot Actuator

1. Menambah Kebergantungan Penggerak

Untuk menggunakan Actuator dalam aplikasi Spring Boot anda, anda perlu menambah kebergantungan Actuator pada fail pom.xml anda:

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

Jika anda menggunakan Gradle, tambahkan yang berikut pada fail build.gradle anda:

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

2. Mendayakan Titik Akhir Penggerak

Secara lalai, hanya beberapa titik akhir didayakan. Anda boleh mendayakan titik akhir tambahan dalam fail application.yml anda:

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

Menggunakan Titik Akhir Penggerak

Setelah Penggerak disediakan, anda boleh mengakses pelbagai titik akhir yang disediakan olehnya. Berikut ialah beberapa titik akhir yang biasa digunakan:

1. Titik Akhir Kesihatan

Titik akhir /actuator/kesihatan memberikan maklumat tentang kesihatan aplikasi anda:

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

Contoh respons:

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

2. Titik Akhir Metrik

Titik akhir /actuator/metrics menyediakan pelbagai metrik yang berkaitan dengan aplikasi anda:

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

Contoh respons:

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

Untuk mendapatkan butiran metrik tertentu:

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

Contoh respons:

{
  "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. Titik Akhir Persekitaran

Titik akhir /actuator/env memberikan maklumat tentang sifat persekitaran:

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

Contoh respons:

{
  "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. Titik Akhir Maklumat

Titik akhir / actuator/info memberikan maklumat tentang aplikasi:

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

Untuk menyesuaikan maklumat, tambahkan sifat dalam aplikasi anda.yml:

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

Menjaga Titik Akhir Penggerak

Secara lalai, semua titik akhir Penggerak boleh diakses tanpa pengesahan. Untuk menjamin titik akhir ini, anda boleh menggunakan Spring Security. Tambahkan kebergantungan Spring Security pada pom.xml anda:

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

Kemas kini application.yml anda untuk menyekat akses:

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

Buat kelas konfigurasi keselamatan untuk mengkonfigurasi keselamatan HTTP:

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();
    }
}

Dengan konfigurasi ini, hanya pengguna yang disahkan dengan peranan ACTUATOR boleh mengakses titik akhir Actuator.

Menyesuaikan Titik Akhir Penggerak

Anda boleh membuat titik akhir Penggerak tersuai untuk mendedahkan maklumat tambahan atau fungsi khusus untuk aplikasi anda. Berikut ialah contoh membuat titik akhir tersuai:

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

Akses titik akhir tersuai anda di:

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

Kesimpulan

Spring Boot Actuator menyediakan set alat yang mantap untuk membantu anda memantau dan mengurus aplikasi anda. Dengan memanfaatkan titik akhir terbina dalamnya dan keupayaan untuk mencipta titik akhir tersuai, anda boleh memperoleh cerapan berharga tentang prestasi dan kesihatan aplikasi anda. Lindungi titik akhir ini dengan Spring Security untuk memastikan bahawa hanya pengguna yang dibenarkan mempunyai akses dan anda akan mempunyai aplikasi sedia pengeluaran yang mudah diurus dan dipantau.

Actuator ialah bahagian penting dalam mana-mana aplikasi Spring Boot, membolehkan anda mengekalkan jari anda pada nadi persekitaran masa jalan aplikasi anda dan bertindak balas dengan cepat kepada isu apabila ia timbul. Mula menggunakan Spring Boot Actuator hari ini untuk meningkatkan kebolehmerhatian dan keupayaan operasi aplikasi anda.

Atas ialah kandungan terperinci Panduan Pemula untuk Menggunakan Spring Boot Actuator. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Kata kunci iniArtikel seterusnya:Kata kunci ini