"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > دليل المبتدئين لاستخدام مشغل Spring Boot

دليل المبتدئين لاستخدام مشغل Spring Boot

تم النشر بتاريخ 2024-08-06
تصفح:231

A Beginners Guide to Using Spring Boot Actuator

Spring Boot Actuator هو مشروع فرعي من Spring Boot يوفر ميزات جاهزة للإنتاج لمساعدتك في مراقبة تطبيقك وإدارته. فهو يوفر مجموعة من نقاط النهاية المضمنة التي تتيح لك الحصول على رؤى حول سلامة تطبيقك ومقاييسه وبيئته، بالإضافة إلى التحكم فيه ديناميكيًا.

ما هو مشغل التمهيد الربيعي؟

يوفر Spring Boot Actuator العديد من نقاط النهاية الجاهزة التي يمكن استخدامها لمراقبة التطبيق الخاص بك والتفاعل معه. يمكن الوصول إلى نقاط النهاية هذه عبر HTTP أو JMX أو باستخدام Spring Boot Admin.

الميزات الرئيسية لمشغل Spring Boot

  1. فحوصات السلامة: مراقبة صحة التطبيق الخاص بك وتبعياته.
  2. المقاييس: جمع مقاييس مختلفة مثل استخدام الذاكرة، وجمع البيانات المهملة، وتفاصيل طلب الويب، وما إلى ذلك.
  3. معلومات البيئة: الوصول إلى خصائص بيئة التطبيق.
  4. معلومات التطبيق: استرجاع المعلومات حول إنشاء التطبيق، مثل الإصدار والاسم.
  5. مستويات السجل الديناميكية: تغيير مستويات السجل دون إعادة تشغيل التطبيق.
  6. تتبع HTTP: تتبع طلبات HTTP.

إعداد مشغل التمهيد الربيعي

1. إضافة تبعية المحرك

لاستخدام Actuator في تطبيق Spring Boot، تحتاج إلى إضافة تبعية Actuator إلى ملف pom.xml الخاص بك:

org.springframework.bootspring-boot-starter-actuator

إذا كنت تستخدم Gradle، أضف ما يلي إلى ملف build.gradle الخاص بك:

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

2. تمكين نقاط نهاية المحرك

افتراضيًا، يتم تمكين عدد قليل فقط من نقاط النهاية. يمكنك تمكين نقاط نهاية إضافية في ملف application.yml الخاص بك:

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

استخدام نقاط نهاية المحرك

بمجرد إعداد Actuator، يمكنك الوصول إلى نقاط النهاية المختلفة التي يوفرها. فيما يلي بعض نقاط النهاية شائعة الاستخدام:

1. نقطة النهاية الصحية

توفر نقطة النهاية /actuator/health معلومات حول صحة التطبيق الخاص بك:

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

مثال للرد:

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

2. نقطة نهاية المقاييس

توفر نقطة النهاية /actuator/metrics مقاييس مختلفة تتعلق بتطبيقك:

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

مثال للرد:

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

للحصول على تفاصيل مقياس محدد:

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

مثال للرد:

{
  "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. نقطة النهاية البيئية

توفر نقطة النهاية /actuator/env معلومات حول خصائص البيئة:

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

مثال للرد:

{
  "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. معلومات نقطة النهاية

توفر نقطة النهاية /actuator/info معلومات حول التطبيق:

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

لتخصيص المعلومات، قم بإضافة خصائص في application.yml الخاص بك:

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

تأمين نقاط نهاية المحرك

افتراضيًا، يمكن الوصول إلى جميع نقاط نهاية المشغل بدون مصادقة. لتأمين نقاط النهاية هذه، يمكنك استخدام Spring Security. أضف تبعية Spring Security إلى pom.xml الخاص بك:

org.springframework.bootspring-boot-starter-security

قم بتحديث application.yml الخاص بك لتقييد الوصول:

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

إنشاء فئة تكوين الأمان لتكوين أمان 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();
    }
}

باستخدام هذا التكوين، يمكن فقط للمستخدمين المصادقين الذين لديهم دور ACTUATOR الوصول إلى نقاط نهاية Actuator.

تخصيص نقاط نهاية المحرك

يمكنك إنشاء نقاط نهاية مشغل مخصصة لعرض معلومات إضافية أو وظائف خاصة بتطبيقك. فيما يلي مثال لإنشاء نقطة نهاية مخصصة:

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

الوصول إلى نقطة النهاية المخصصة الخاصة بك على:

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

خاتمة

يوفر Spring Boot Actuator مجموعة قوية من الأدوات لمساعدتك في مراقبة التطبيق الخاص بك وإدارته. من خلال الاستفادة من نقاط النهاية المضمنة والقدرة على إنشاء نقاط نهاية مخصصة، يمكنك الحصول على رؤى قيمة حول أداء التطبيق الخاص بك وسلامته. قم بتأمين نقاط النهاية هذه باستخدام Spring Security للتأكد من أن المستخدمين المصرح لهم فقط هم من يمكنهم الوصول، وسيكون لديك تطبيق جاهز للإنتاج يسهل إدارته ومراقبته.

يعد Actuator جزءًا أساسيًا من أي تطبيق Spring Boot، مما يتيح لك إبقاء إصبعك على اطلاع دائم ببيئة تشغيل التطبيق الخاص بك والاستجابة بسرعة للمشكلات عند ظهورها. ابدأ باستخدام Spring Boot Actuator اليوم لتعزيز إمكانية مراقبة تطبيقك وقدراته التشغيلية.

بيان الافراج تم إعادة نشر هذه المقالة على: https://dev.to/isaactony/a-beginners-guide-to-using-spring-boot-actuator-5g3n?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] للحذف هو - هي
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3