كيفية مراقبة تطبيقات Spring Boot باستخدام عامل Elastic APM Java

إشعار

يعد Azure Spring Apps هو الاسم الجديد لخدمة Azure Spring Cloud. رغم أن الخدمة تحمل اسماً جديداً، سترى الاسم القديم في بعض الأماكن لفترة من الوقت بينما نعمل على تحديث الأصول مثل لقطات الشاشة، ومقاطع الفيديو، والرسوم التخطيطية.

تنطبق هذه المقالة على: ✔️ Basic/Standard ❌ Enterprise

توضح هذه المقالة كيفية استخدام عامل Elastic APM لمراقبة تطبيقات Spring Boot التي تعمل في تطبيقات Azure Spring.

باستخدام حل Elastic Observability، يمكنك تحقيق إمكانية مراقبة موحدة من أجل:

يقدم الفيديو التالي إمكانية المراقبة الموحدة لتطبيقات Spring Boot باستخدام Elastic.


المتطلبات الأساسية

توزيع تطبيق Spring Petclinic

تستخدم هذه المقالة عينة Spring Petclinic للتنقل عبر الخطوات المطلوبة. استخدم الخطوات التالية لتوزيع نموذج التطبيق:

  1. اتبع الخطوات الواردة في توزيع تطبيقات Spring Boot باستخدام تطبيقات Azure Spring وMySQL حتى تصل إلى قسم توزيع تطبيقات Spring Boot وتعيين متغيرات البيئة.

  2. استخدم ملحق تطبيقات Azure Spring لـ Azure CLI مع الأمر التالي لإنشاء تطبيق لتشغيله في تطبيقات Azure Spring:

    az spring app create \
       --resource-group <your-resource-group-name> \
       --service <your-Azure-Spring-Apps-instance-name> \
       --name <your-app-name> \
       --is-public true
    

استخدام التخزين الثابت المخصص في تطبيقات Azure Spring

استخدم الخطوات التالية لتمكين التخزين الثابت المخصص:

  1. اتبع الخطوات الواردة في كيفية تمكين تخزينك الثابت الخاص في تطبيقات Azure Spring.

  2. استخدم أمر Azure CLI التالي لإضافة تخزين ثابت لتطبيقات Azure Spring.

    az spring app append-persistent-storage \
       --resource-group <your-resource-group-name> \
       --service <your-Azure-Spring-Apps-instance-name> \
       --name <your-app-name> \
       --persistent-storage-type AzureFileVolume \
       --share-name <your-Azure-file-share-name> \
       --mount-path <unique-mount-path> \
       --storage-name <your-mounted-storage-name>
    

عامل Elastic APM Java مرن

قبل المتابعة، تحتاج إلى معلومات اتصال خادم Elastic APM في متناول يدك، والتي تفترض أنك قمت بنشر Elastic على Azure. لمزيد من المعلومات، راجع كيفية توزيع Elastic وإدارته على Microsoft Azure. يمكنك الحصول على هذه المعلومات، باستخدام الخطوات التالية:

  1. في مدخل Microsoft Azure، انتقل إلى صفحة Overview لتوزيع Elastic، ثم حدد Manage Elastic Cloud Deployment.

    لقطة شاشة لصفحة Elasticsearch (Elastic Cloud) لمدخل Microsoft Azure.

  2. ضمن التوزيع الخاص بك على Elastic Cloud Console، حدد قسم APM وأسطول للحصول على نقطة نهاية Elastic APM Server والرمز المميز السري.

    لقطة شاشة لصفحة Elastic APM & Fleet مع تمييز نقطة نهاية النسخ والرمز المميز السري لخادم APM.

  3. قم بتنزيل عامل Elastic APM Java من Maven Central.

    لقطة شاشة ل Maven Central مع تمييز تنزيل jar.

  4. قم بتحميل عامل Upload Elastic APM إلى التخزين الثابت المخصص الذي قمت بتمكينه سابقاً. انتقل إلى Azure Fileshare وحدد Upload لإضافة ملف JAR العامل.

    لقطة شاشة لمدخل Azure تعرض جزء تحميل الملفات في صفحة مشاركة الملف.

  5. بعد أن يكون لديك نقطة نهاية Elastic APM والرمز المميز السري، استخدم الأمر التالي لتنشيط عامل Elastic APM Java عند توزيع التطبيقات. يشير العنصر النائب <agent-location> إلى موقع التخزين المُدخل لعامل Java Elastic APM.

    az spring app deploy \
        --name <your-app-name> \
        --artifact-path <unique-path-to-your-app-jar-on-custom-storage> \
        --jvm-options='-javaagent:<elastic-agent-location>' \
        --env ELASTIC_APM_SERVICE_NAME=<your-app-name> \
              ELASTIC_APM_APPLICATION_PACKAGES='<your-app-package-name>' \
              ELASTIC_APM_SERVER_URL='<your-Elastic-APM-server-URL>' \
              ELASTIC_APM_SECRET_TOKEN='<your-Elastic-APM-secret-token>'
    

أتمتة التوفير

يمكنك أيضا تشغيل مسار أتمتة التوفير باستخدام Terraform أو Bicep أو قالب Azure Resource Manager (قالب ARM). يمكن أن توفر البنية الأساسية لبرنامج ربط العمليات التجارية هذا تجربة عدم التدخل الكاملة للأداة ومراقبة أي تطبيقات جديدة تقوم بإنشائها ونشرها.

أتمتة تزويد باستخدام Terraform

لتكوين متغيرات البيئة في نموذج Terraform، قم بإضافة التعليمات البرمجية التالية إلى القالب، واستبدل العناصر النائبة <...> بقيمك الخاصة. لمزيد من المعلومات، راجع إدارة توزيع تطبيقات Active Azure Spring.

resource "azurerm_spring_cloud_java_deployment" "example" {
  ...
  jvm_options = "-javaagent:<elastic-agent-location>"
  ...
    environment_variables = {
      "ELASTIC_APM_SERVICE_NAME"="<your-app-name>",
      "ELASTIC_APM_APPLICATION_PACKAGES"="<your-app-package>",
      "ELASTIC_APM_SERVER_URL"="<your-Elastic-APM-server-URL>",
      "ELASTIC_APM_SECRET_TOKEN"="<your-Elastic-APM-secret-token>"
  }
}

أتمتة التوفير باستخدام ملف Bicep

لتكوين متغيرات البيئة في ملف Bicep، أضف التعليمات البرمجية التالية إلى الملف، واستبدل <العناصر النائبة ...> بقيمك الخاصة. لمزيد من المعلومات، راجع Microsoft.AppPlatform Spring/التطبيقات/النشر .

deploymentSettings: {
  environmentVariables: {
    ELASTIC_APM_SERVICE_NAME='<your-app-name>',
    ELASTIC_APM_APPLICATION_PACKAGES='<your-app-package>',
    ELASTIC_APM_SERVER_URL='<your-Elastic-APM-server-URL>',
    ELASTIC_APM_SECRET_TOKEN='<your-Elastic-APM-secret-token>'
  },
  jvmOptions: '-javaagent:<elastic-agent-location>',
  ...
}

أتمتة تزويد التوفير باستخدام قالب ARM

لتكوين متغيرات البيئة في قالب ARM، قم بإضافة التعليمة البرمجية التالية إلى القالب، واستبدل العناصر النائبة <...> بقيمك الخاصة. لمزيد من المعلومات، راجع Microsoft.AppPlatform Spring/التطبيقات/النشر .

"deploymentSettings": {
  "environmentVariables": {
    "ELASTIC_APM_SERVICE_NAME"="<your-app-name>",
    "ELASTIC_APM_APPLICATION_PACKAGES"="<your-app-package>",
    "ELASTIC_APM_SERVER_URL"="<your-Elastic-APM-server-URL>",
    "ELASTIC_APM_SECRET_TOKEN"="<your-Elastic-APM-secret-token>"
  },
  "jvmOptions": "-javaagent:<elastic-agent-location>",
  ...
}

عامل Elastic APM Java مرن

لتخطيط الترقية، راجع إصدارات الترقية لـ Elastic Cloud على Azure، وكسر التغييرات لـ APM. بعد ترقية خادم APM، قم بتحميل ملف JAR لعامل Elastic APM Java في التخزين الثابت المخصص. ثم أعد تشغيل تطبيقاتك باستخدام خيارات JVM المحدثة التي تشير إلى عامل Java Elastic APM الذي تمت ترقيته JAR.

مراقبة التطبيقات والمقاييس باستخدام Elastic APM

استخدم الخطوات التالية لمراقبة التطبيقات والمقاييس:

  1. في مدخل Microsoft Azure، انتقل إلى صفحة Overview لتوزيع Elastic، ثم حدد ارتباط Kibana.

    لقطة شاشة لمدخل Azure تعرض صفحة Elasticsearch مع تمييز ارتباط عنوان URL للنشر Kibana.

  2. بعد فتح Kibana، ابحث عن APM في شريط البحث، ثم حدد APM.

    لقطة شاشة ل Elastic / Kibana تعرض نتائج بحث APM.

Kibana APM هو التطبيق المجمّع لدعم مهام سير عمل Application Monitoring. هنا يمكنك عرض تفاصيل عالية المستوى مثل أوقات الطلب/الاستجابة ومعدل النقل والمعاملات في خدمة ذات التأثير الأكبر على المدة.

لقطة شاشة ل Elastic / Kibana تعرض صفحة نظرة عامة على خدمات APM.

يمكنك التنقل لأسفل في معاملة معينة لفهم التفاصيل الخاصة بالمعاملة مثل التتبع الموزّع.

لقطة شاشة ل Elastic / Kibana تعرض صفحة معاملات خدمات APM.

يلتقط عامل Elastic APM Java أيضاً مقاييس JVM من تطبيقات Azure Spring المتوفرة مع Kibana App للمستخدمين لاستكشاف الأخطاء وإصلاحها.

لقطة شاشة ل Elastic / Kibana تعرض صفحة APM Services JVM.

باستخدام محرك الذكاء الاصطناعي المدمج في حل Elastic، يمكنك أيضاً تمكين الكشف عن الحالات الشاذة على خدمات تطبيقات Azure Spring واختيار إجراء مناسب - مثل إعلام Teams وإنشاء مشكلة JIRA واستدعاء واجهة برمجة التطبيقات المستندة إلى إخطار على الويب وغير ذلك.

لقطة شاشة ل Elastic / Kibana تعرض صفحة خدمات APM مع عرض جزء Create rule وتمييز Actions.

الخطوات التالية