محلل ملفات تعريف Java لـ Azure Monitor Application Insights

إشعار

ميزة محلل ملفات التعريف Java Profiler قيد المعاينة، بدءًا من 3.4.0.

يوفر محلل ملفات التعريف Application Insights Java Profiler نظامًا لـ:

  • إنشاء ملفات تعريف JDK Flight Recorder (JFR) عند الطلب من Java Virtual Machine (JVM).
  • إنشاء ملفات تعريف JFR تلقائيًا عند استيفاء شروط تشغيل معينة من JVM، مثل وحدة المعالجة المركزية أو الذاكرة التي تخترق حدًا تم تكوينه.

نظرة عامة

يستخدم محلل ملفات التعريف Application Insights Java Profiler JFR الذي يوفره JVM لتسجيل بيانات التوصيف، ما يسمح للمستخدمين بتنزيل تسجيلات JFR في وقت لاحق وتحليلها لتحديد سبب مشكلات الأداء.

يتم جمع هذه البيانات عند الطلب عند استيفاء شروط التشغيل. المشغلات المتوفرة هي حدود على استخدام وحدة المعالجة المركزية واستهلاك الذاكرة والطلب (مشغلات اتفاقية مستوى الخدمة). مشغلات الطلبات مراقبة النطاقات التي تم إنشاؤها بواسطة OpenTelemetry والسماح للمستخدم بتكوين متطلبات اتفاقية مستوى الخدمة (SLA) على مدى مدة تلك الامتدادات.

عند الوصول إلى حد، يتم جمع وتحميل ملف تعريف للنوع والمدة المكونين. ثم يكون ملف التعريف هذا مرئيا داخل جزء الأداء لواجهة مستخدم مدخل Application Insights المقترنة.

تحذير

ينفذ منشئ ملفات التعريف JFR بشكل افتراضي ملف تعريف «profile-without-env-data». ملف JFR هو سلسلة من الأحداث المنبعثة عبر JVM. تكوين «profile-without-env-data»، مشابه لتكوين «الملف الشخصي» الذي يأتي مع JVM، ومع ذلك فقد تم تعطيل بعض الأحداث التي لديها القدرة على احتواء معلومات نشر حساسة مثل متغيرات البيئة، والحجج المقدمة إلى JVM والعمليات التي تعمل على النظام.

العلامات التي لم تعد متوفرة هي:

  • jdk.JVMInformation
  • jdk.InitialSystemProperty
  • jdk.OSInformation
  • jdk.InitialEnvironmentVariable
  • jdk.SystemProcess

ومع ذلك، يجب عليك مراجعة جميع العلامات الممكّنة للتأكد من أن الملفات الشخصية لا تحتوي على بيانات حساسة.

راجع تكوين محتويات ملف التعريف عند إعداد تكوين ملف تعريف مخصص.

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

  • JVM مع إمكانية Java Flight Recorder (JFR)
    • تحديث Java 8 262+
    • Java 11+

تحذير

OpenJ9 JVM ليس مدعومًا

الاستخدام

أزرار التشغيل

للحصول على وصف أكثر تفصيلاً لمختلف المشغلات المتاحة، راجع نظرة عامة على ملف التعريف.

يراقب ApplicationInsights Java Agent وحدة المعالجة المركزية والذاكرة ومدة الطلب مثل معاملة تجارية. إذا خرق عتبة مكونة، يتم تشغيل ملف تعريف.

ملف التعريف الآن

يوجد زر ملف التعريف الآن في واجهة مستخدم محلل ملفات التعريف (راجع إعدادات محلل ملفات التعريف). يؤدي تحديد هذا الزر على الفور إلى طلب ملف تعريف في جميع العوامل المرفقة بمثيل Application Insights. مدة جمع المعلومات الافتراضية هي دقيقتان. يمكنك تغييره عن طريق التجاوز periodicRecordingDurationSeconds (راجع ملف التكوين).

تحذير

سيؤدي استدعاء ملف التعريف الآن إلى تمكين ميزة محلل ملفات التعريف، وسيطبق Application Insights مشغلات اتفاقية مستوى الخدمة الافتراضية لوحدة المعالجة المركزية والذاكرة. عندما يخرق تطبيقك اتفاقيات مستوى الخدمة هذه، سيجمع Application Insights ملفات تعريف Java. إذا كنت ترغب في تعطيل جمع المعلومات لاحقا، يمكنك القيام بذلك ضمن قائمة المشغل الموضحة في التثبيت.

CPU

حد وحدة CPU هو نسبة مئوية من استخدام جميع الذاكرات الأساسية المتوفرة على النظام.

على سبيل المثال، إذا تم تشبع نواة واحدة من جهاز ثمانية نواة، فسيتم اعتبار النسبة المئوية لوحدة CPU ‏12.5%.

الذاكرة

النسبة المئوية للذاكرة هي شغل منطقة الذاكرة المستقرة (OldGen) الحالية مقابل أقصى حجم ممكن للمنطقة.

يتم تقييم الإشغال بعد تنفيذ مجموعة محيازة. الحد الأقصى لحجم المنطقة التي تم شغلها هو الحجم الذي سيكون عليه إذا نمت كومة الذاكرة المؤقتة للجهاز الظاهري Java (JVM) إلى أقصى حجم لها.

وعلى سبيل المثال، خذ السيناريو التالي:

  • يمكن أن تنمو كومة الذاكرة المؤقتة Java إلى 1024 ميغابايت كحد أقصى.
  • يمكن أن ينمو الجيل المستأجر إلى 90% من الكومة.
  • وسيكون أقصى حجم ممكن للمحيازين هو 922 ميغابايت.
  • تم تعيين الحد الخاص بك عبر واجهة المستخدم إلى 75%، ومن ثمَّ فإن الحد الخاص بك سيكون 75% من 922 ميغابايت، 691 ميغابايت.

في هذا السيناريو، يحدث ملف تعريف في الحالات التالية:

  • يتم تنفيذ تجميع البيانات المهملة الكامل
  • يزيد إشغال المناطق المستأجرة عن 691 ميغابايت بعد التحصيل

طلب

تستند مشغلات اتفاقية مستوى الخدمة إلى OpenTelemetry، وهي تبدأ ملف تعريف إذا تم استيفاء معايير معينة.

يتم تشكيل كل تكوين مشغل فردي على النحو التالي:

  • Name - معرف فريد للمشغل.
  • Filter - تصفية طلبات الاهتمام للمشغل.
  • Aggregation - حساب نسبة الطلبات التي خرقت حدا معينا.
    • Threshold - قيمة دنيا (بالمللي ثانية) يتم عندها تحديد حدوث خرق طلب.
    • Minimum samples - الحد الأدنى لعدد العينات التي يجب جمعها للتجميع لإنتاج البيانات، هذا الإعداد هو لمنع تشغيل أحجام العينات الصغيرة.
    • Window - النافذة الزمنية المتداولة (بالمللي ثانية).
  • Threshold - قيمة الحد (النسبة المئوية) المطبقة على إخراج التجميع. إذا تم تجاوز هذه القيمة، يتم بدء ملف تعريف.

على سبيل المثال، سيؤدي السيناريو التالي إلى تشغيل ملف تعريف إذا: أكثر من 75٪ من الطلبات إلى نقطة نهاية معينة (/users/.*) تستغرق أكثر من 30 مللي ثانية داخل نافذة 60 ثانية، عند جمع 100 عينة على الأقل.

Screenshot of request trigger sample

التثبيت

ترشدك الخطوات التالية من خلال تمكين مكون جمع المعلومات على العامل وتكوين حدود الموارد التي تؤدي إلى تشغيل ملف تعريف إذا تم اختراقه.

  1. تكوين حدود الموارد التي تتسبب في تجميع ملف تعريف:

    1. استعرض للوصول إلى قسم الأداء -> منشئ ملفات التعريف في مثيل Application Insights. Screenshot of the link to open performance pane.Screenshot of the Profiler button from the Performance pane.

    2. حدد «Triggers»

    3. قم بتكوين مشغلات وحدة المعالجة المركزية أو الذاكرة أو الطلب المطلوبة (إذا تم تمكينها) وحدد تطبيق. Screenshot of trigger settings

تحذير

لا يدعم ملف تعريف Java مشغل «أخذ العينات». تكوين هذا لن يكون له أي تأثير.

بعد اكتمال هذه الخطوات، سيراقب العامل استخدام الموارد للعملية الخاصة بك ويشغل ملف تعريف عند تجاوز الحد. عند تشغيل ملف تعريف وإكماله، يمكن عرضه من مثيل Application Insights داخل قسم Performance -> Profiler. من تلك الشاشة يمكن تنزيل ملف التعريف، بمجرد تنزيل ملف تسجيل JFR يمكن فتحه وتحليله ضمن أداة من اختيارك، على سبيل المثال Oracle JDK Mission Control (JMC).

Screenshot of profiler page features and settings.

التكوين

يتم تعيين تكوين إعدادات تشغيل ملف التعريف، مثل العتبات وفترات التوصيف، داخل واجهة مستخدم ApplicationInsights ضمن Performance، وProfiler، وTriggers UI كما هو موضح في التثبيت.

بالإضافة إلى ذلك، يمكن تكوين العديد من المعلمات باستخدام متغيرات البيئة وملف التكوين applicationinsights.json.

تكوين محتوى ملف التعريف

إذا كنت ترغب في توفير تكوين ملف تعريف مخصص، فغير memoryTriggeredSettings، وcpuTriggeredSettings لتوفير المسار إلى .jfc ملف بالتكوين المطلوب.

ويمكن إنشاء/تحرير ملفات التعريف في واجهة مستخدم JDK Mission Control (JMC) ضمن Window->Flight Recording Template Manager القائمة ويتم العثور على التحكم في العلامات الفردية داخل Edit->Advanced واجهة المستخدم هذه.

متغيرات البيئة

  • APPLICATIONINSIGHTS_PREVIEW_PROFILER_ENABLED: منطقي (افتراضي: true) تمكين/ تعطيل ميزة جمع المعلومات. بشكل افتراضي، يتم تمكين الميزة داخل العامل (منذ العامل 3.4.9). ومع ذلك، على الرغم من تمكين هذه الميزة داخل العامل، لا يتم جمع ملفات التعريف ما لم يتم تمكينها داخل المدخل كما هو موضح في التثبيت.

ملف التكوين

مثال على التكوين:

{
  "preview": {
    "profiler": {
      "enabled": true,
      "cpuTriggeredSettings": "profile-without-env-data",
      "memoryTriggeredSettings": "profile-without-env-data",
      "manualTriggeredSettings": "profile-without-env-data",
      "enableRequestTriggering": true,
      "periodicRecordingDurationSeconds": 60
    }
  }
}

memoryTriggeredSettings يتم استخدام هذا التكوين إذا تم طلب ملف تعريف ذاكرة. يمكن أن تكون هذه القيمة واحدة مما يلي:

  • profile-without-env-data (القيمة الافتراضية). ملف تعريف مع بعض الأحداث الحساسة معطلة، راجع قسم التحذير للحصول على التفاصيل.
  • profile. يستخدم التكوين profile.jfc الذي يتم شحنه مع JFR.
  • مسار إلى ملف تكوين jfc مخصص على نظام الملفات، على سبيل المثال، /tmp/myconfig.jfc.

cpuTriggeredSettings يتم استخدام هذا التكوين إذا تم طلب ملف تعريف وحدة المعالجة المركزية. يمكن أن تكون هذه القيمة واحدة مما يلي:

  • profile-without-env-data (القيمة الافتراضية). ملف تعريف مع بعض الأحداث الحساسة معطلة، راجع قسم التحذير للحصول على التفاصيل.
  • profile. يستخدم التكوين jfc profile.jfc الذي يتم شحنه مع JFR.
  • مسار إلى ملف تكوين jfc مخصص على نظام الملفات، على سبيل المثال، /tmp/myconfig.jfc.

manualTriggeredSettings يتم استخدام هذا التكوين إذا تم طلب ملف تعريف يدوي. يمكن أن تكون هذه القيمة واحدة مما يلي:

  • profile-without-env-data (القيمة الافتراضية). ملف تعريف مع بعض الأحداث الحساسة معطلة، راجع قسم التحذير للحصول على التفاصيل.
  • profile. يستخدم التكوين jfc profile.jfc الذي يتم شحنه مع JFR.
  • مسار إلى ملف تكوين jfc مخصص على نظام الملفات، على سبيل المثال، /tmp/myconfig.jfc.

enableRequestTriggering ما إذا كان يجب تشغيل جمع معلومات JFR استنادا إلى تكوين الطلب. يمكن أن تكون هذه القيمة واحدة مما يلي:

  • true يتم تشغيل جمع المعلومات إذا تم خرق حد مشغل الطلب.
  • false (القيمة الافتراضية). لا يؤدي تكوين الطلب إلى تشغيل جمع المعلومات.

periodicRecordingDurationSeconds مدة تسجيل جمع المعلومات بالثوان عند بدء جلسة عمل جمع معلومات باستخدام الزر ملف التعريف الآن . القيمة الافتراضية هي 120.

الأسئلة الشائعة

ما المقصود بـ Azure Monitor Application Insights Java Profiling؟

Azure Monitor Application Insights يستخدم ملف تعريف Java Flight Recorder (JFR) لملف تعريف التطبيق الخاص بك باستخدام تكوين مخصص.

ما هو Java Flight Recorder؟

Java Flight Recorder (JFR) هو أداة لجمع بيانات جمع المعلومات لتطبيق Java قيد التشغيل. يتم دمج JFR في جهاز Java الظاهري (JVM) ويستخدم لاستكشاف مشكلات الأداء وإصلاحها. تعرف على المزيد حول وقت تشغيل Java Microsoft SQL Server Standard JFR.

ما هي الآثار المترتبة على السعر و/أو رسوم الترخيص لتمكين App Insights Java Profiling؟

Java Profiling هي ميزة مجانية مع Application Insights. يعتمد تسعير Azure Monitor Application Insights على تكلفة الاستيعاب.

ما هي معلومات تعريف Java التي يتم جمعها؟

تتضمن بيانات التوصيف التي تم جمعها بواسطة JFR: بيانات تحديد الطريقة والتنفيذ، وبيانات جمع البيانات المهملة، وملفات تعريف القفل.

كيف يمكن استخدام App Insights Java Profiling وتصور البيانات؟

ويمكن عرض تسجيل JFR وتحليله باستخدام الأداة المفضلة لديك، على سبيل المثال Java Mission Control (JMC).

هل يتم تقديم توصيات تشخيص الأداء والإصلاح مع ملف تعريف Java لتطبيق App Insights؟

"تشخيصات الأداء والتوصيات" هي ميزة جديدة متوفرة قريبا كتشخيصات Java Application Insights. يمكنك التسجيل لمعاينة هذه الميزة. يمكن عرض تسجيل JFR باستخدام Java Mission Control‏ (JMC).

ما الفرق بين التنميط التلقائي عند الطلب والتوصيف التلقائي لـ Java في App Insights؟

عند الطلب، يتم تشغيل التنميط بواسطة المستخدم في الوقت الفعلي بينما يكون التنميط التلقائي باستخدام مشغلات تم تكوينها مسبقًا.

استخدام ملف التعريف الآن لخيار جمع المعلومات عند الطلب. يقوم ملف التعريف الآن بملفات تعريف جميع الوكلاء المرفقين بمثيل Application Insights على الفور.

تم تشغيل التشكيل الجانبي الآلي لخرق في حد المورد.

ما هي مشغلات تكوين ملفات تعريف Java التي يمكنني تكوينها؟

يدعم Application Insights Java Agent حاليًا مراقبة استهلاك وحدة CPU والذاكرة. يتم تكوين حد وحدة CPU كنسبة مئوية من جميع الذاكرات الأساسية المتوفرة على الجهاز. الذاكرة هي شغل منطقة الذاكرة المستقرة (OldGen) الحالية مقابل أقصى حجم ممكن للمنطقة.

ما هي المتطلبات الأساسية المطلوبة لتمكين تكوين ملفات تعريف Java؟

راجع المتطلبات الأساسية في أعلى هذه المقالة.

هل يمكن استخدام Java Profiling لتطبيق الخدمات المصغرة؟

نعم، يمكنك وضع ملف تعريف لـ JVM يقوم بتشغيل خدمات مصغرة باستخدام JFR.