Application Insights ل Java 2.x

تنبيه

تنطبق هذه المقالة على Application Insights Java 2.x، والذي لم يعد مستحسنا.

يمكن العثور على وثائق أحدث إصدار على Application Insights Java 3.x.

في هذه المقالة، ستتعلم كيفية استخدام Application Insights Java 2.x. توضح لك هذه المقالة كيفية:

  • ابدأ، وتعرف على كيفية إعداد الطلبات وتتبع التبعيات وجمع عدادات الأداء وتشخيص مشكلات الأداء والاستثناءات وكتابة التعليمات البرمجية لتعقب ما يفعله المستخدمون بتطبيقك.
  • إرسال سجلات التتبع إلى Application Insights واستكشافها باستخدام مدخل Application Insights.
  • مراقبة التبعيات والاستثناءات التي تم اكتشافها وأوقات تنفيذ الأسلوب في تطبيقات الويب Java.
  • تصفية بيانات تتبع الاستخدام في تطبيق Java على الويب.
  • استكشف مقاييس أداء نظام Linux في Application Insights باستخدام collectd.
  • قياس مقاييس التعليمات البرمجية للتطبيق المستند إلى جهاز Java الظاهري (JVM). تصدير البيانات إلى أنظمة المراقبة المفضلة لديك باستخدام مراقبة تطبيق Micrometer.

ملاحظة

في 31 مارس 2025، سينتهي دعم استيعاب مفاتيح الأجهزة. سيستمر استيعاب مفتاح الأجهزة في العمل ولكننا لن نقوم بتوفير تحديثات أو أي دعم للميزة. الانتقال إلى سلاسل الاتصال للاستفادة من الإمكانات الجديدة.

ابدأ مع Application Insights في مشروع ويب Java

في هذا القسم، يمكنك استخدام Application Insights SDK لإعداد الطلبات وتتبع التبعيات وجمع عدادات الأداء وتشخيص مشكلات الأداء والاستثناءات وكتابة التعليمات البرمجية لتتبع ما يفعله المستخدمون بتطبيقك.

تُعد Application Insights خدمة تحليلات موسعة لمطوري الويب تساعدك على فهم أداء واستخدام تطبيقك المباشر. يدعم Application Insights تطبيقات Java التي تعمل على Linux أو Unix أو Windows.

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

تحتاج:

احصل على مفتاح أدوات Application Insights

  1. تسجيل الدخول إلى ⁧⁩مدخل Azure⁧⁩.

  2. في مدخل Azure، قم بإنشاء مورد Application Insights. اضبط نوع التطبيق على تطبيق ويب Java.

  3. ابحث عن مفتاح الأجهزة للمورد الجديد. ستحتاج إلى لصق هذا المفتاح في مشروع التعليمات البرمجية الخاص بك قريبًا.

    لقطة شاشة لجزء Overview لمورد Application Insights في مدخل Microsoft Azure مع تمييز مفتاح الأجهزة.

أضف Application Insights SDK لـ Java إلى مشروعك

اختر نوع مشروعك.

إذا تم إعداد مشروعك بالفعل لاستخدام Maven للبناء، فقم بدمج الكود التالي في ملف pom.xml. ثم قم بتحديث تبعيات المشروع للحصول على الثنائيات وتحميلها.

    <dependencies>
      <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>applicationinsights-web-auto</artifactId>
        <!-- or applicationinsights-web for manual web filter registration -->
        <!-- or applicationinsights-core for bare API -->
        <version>2.6.4</version>
      </dependency>
    </dependencies>

الأسئلة المتداولة

  • ما هي العلاقة بين -web-auto-webالمكونات و و-core؟

    • applicationinsights-web-auto يمنحك المقاييس التي تتعقب عدد طلبات HTTP servlet وأوقات الاستجابة عن طريق تسجيل عامل تصفية Application Insights servlet تلقائيا في وقت التشغيل.
    • applicationinsights-web يمنحك أيضا المقاييس التي تتعقب عدد طلبات HTTP servlet وأوقات الاستجابة. ولكن التسجيل اليدوي لعامل تصفية Application Insights servlet في التطبيق الخاص بك مطلوب.
    • applicationinsights-core يمنحك واجهة برمجة التطبيقات العارية، على سبيل المثال، إذا لم يكن تطبيقك مستندا إلى servlet.
  • كيف يمكنني تحديث SDK إلى أحدث إصدار؟

    • اعتبارا من نوفمبر 2020، لمراقبة تطبيقات Java، نوصي باستخدام Application Insights Java 3.x. لمزيد من المعلومات حول كيفية البدء، راجع Application Insights Java 3.x .

أضف ملف ApplicationInsights.xml

أضف ApplicationInsights.xml إلى مجلد الموارد في مشروعك، أو تأكد من إضافته إلى مسار فئة توزيع المشروع. انسخ ملف XML التالي فيه.

استبدل مفتاح الأجهزة بالمفتاح الذي حصلت عليه من مدخل Azure.

<?xml version="1.0" encoding="utf-8"?>
<ApplicationInsights xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings" schemaVersion="2014-05-30">

   <!-- The key from the portal: -->
   <InstrumentationKey>** Your instrumentation key **</InstrumentationKey>

   <!-- HTTP request component (not required for bare API) -->
   <TelemetryModules>
      <Add type="com.microsoft.applicationinsights.web.extensibility.modules.WebRequestTrackingTelemetryModule"/>
      <Add type="com.microsoft.applicationinsights.web.extensibility.modules.WebSessionTrackingTelemetryModule"/>
      <Add type="com.microsoft.applicationinsights.web.extensibility.modules.WebUserTrackingTelemetryModule"/>
   </TelemetryModules>

   <!-- Events correlation (not required for bare API) -->
   <!-- These initializers add context data to each event -->
   <TelemetryInitializers>
      <Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebOperationIdTelemetryInitializer"/>
      <Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebOperationNameTelemetryInitializer"/>
      <Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebSessionTelemetryInitializer"/>
      <Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebUserTelemetryInitializer"/>
      <Add type="com.microsoft.applicationinsights.web.extensibility.initializers.WebUserAgentTelemetryInitializer"/>
   </TelemetryInitializers>

</ApplicationInsights>

اختياريًا، يمكن أن يكون ملف التكوين في أي موقع يمكن الوصول إليه للتطبيق الخاص بك. تحدد خاصية النظام -Dapplicationinsights.configurationDirectory الدليل الذي يحتوي على ApplicationInsights.xml. على سبيل المثال، سيتم تكوين ملف تكوين موجود في E:\myconfigs\appinsights\ApplicationInsights.xml باستخدام الخاصية -Dapplicationinsights.configurationDirectory="E:\myconfigs\appinsights".

  • يتم إرسال مفتاح الأجهزة مع كل عنصر من عناصر القياس عن بُعد ويخبر Application Insights لعرضه في المورد الخاص بك.
  • مكون طلب HTTP اختياري. يقوم تلقائيًا بإرسال بيانات التتبع عن الطلبات وأوقات الاستجابة إلى البوابة.
  • ارتباط الحدث هو إضافة إلى مكون طلب HTTP. يقوم بتعيين معرف لكل طلب تم تلقيه من قبل الخادم. ثم يضيف هذا المعرف كخاصية إلى كل عنصر من عناصر القياس عن بعد كخاصية Operation.Id. يسمح لك بربط بيانات تتبع الاستخدام المقترنة بكل طلب عن طريق تعيين عامل تصفية في البحث التشخيصي.

طرق بديلة لضبط مفتاح الأجهزة

تبحث Application Insights SDK عن المفتاح بهذا الترتيب:

  • خاصية النظام: -DAPPINSIGHTS_INSTRUMENTATIONKEY=your_ikey
  • متغير البيئة: APPINSIGHTS_INSTRUMENTATIONKEY
  • ملف التكوين: ApplicationInsights.xml

يمكنك أيضًا تعيينه في الكود :

    String instrumentationKey = "00000000-0000-0000-0000-000000000000";

    if (instrumentationKey != null)
    {
        TelemetryConfiguration.getActive().setInstrumentationKey(instrumentationKey);
    }

إضافة وكيل

قم بتثبيت عامل Java لالتقاط مكالمات HTTP الصادرة واستعلامات JDBC وتسجيل التطبيق وتسمية أفضل للعملية.

تشغيل التطبيق الخاص بك

إما تشغيله في وضع تتبع الأخطاء على جهاز التطوير الخاص بك أو نشره على الخادم الخاص بك.

عرض القياس عن بُعد في Application Insights

ارجع إلى مورد Application Insights في مدخل Microsoft Azure.

تظهر بيانات طلبات HTTP في جزء النظرة العامة. إذا لم يكن موجودا، فانتظر بضع ثوان ثم حدد تحديث.

لقطة شاشة تعرض نظرة عامة على بيانات العينة.

تعرف على المزيد حول المقاييس.

انقر فوق أي مخطط لمشاهدة مقاييس مجمعة أكثر تفصيلاً.

لقطة شاشة تعرض جزء فشل Application Insights مع المخططات.

بيانات المثيل

انقر فوق نوع طلب محدد لرؤية مثيلات فردية.

لقطة شاشة تعرض التنقل في طريقة عرض عينة معينة.

Log Analytics: لغة استعلام قوية

أثناء تجميع المزيد من البيانات، يمكنك تشغيل الاستعلامات لتجميع البيانات والعثور على مثيلات فردية. Log Analytics هي أداة قوية لفهم الأداء والاستخدام، ولأغراض التشخيص.

لقطة شاشة تعرض مثالا على Log Analytics في مدخل Microsoft Azure.

قم بتثبيت تطبيقك على الخادم

الآن نشر التطبيق الخاص بك إلى الخادم، والسماح للأشخاص باستخدامه، ومشاهدة بيانات تتبع الاستخدام تظهر في المدخل.

  • تأكد من أن جدار الحماية يسمح للتطبيق بإرسال القياس عن بُعد إلى هذه المنافذ:

    • dc.services.visualstudio.com:443
    • f5.services.visualstudio.com:443
  • إذا كان يجب توجيه نسبة استخدام الشبكة الصادرة من خلال جدار حماية، فحدد خصائص http.proxyHost النظام و http.proxyPort.

  • على خوادم Windows، قم بتثبيت:

Azure App Service، خدمة Azure Kubernetes، تكوين الأجهزة الظاهرية

أفضل وأسهل نهج لمراقبة تطبيقاتك التي تعمل على أي موفري موارد Azure هو استخدام Application Insights Java 3.x.

الاستثناءات وفشل الطلب

يتم جمع الاستثناءات التي لم تتم معالجتها وإخفاقات الطلبات تلقائيًا بواسطة عامل تصفية الويب Application Insights.

لتجميع البيانات حول الاستثناءات الأخرى، يمكنك إدراج استدعاءات trackException () في شفرتك .

استدعاءات طريقة المراقبة والتبعيات الخارجية

قم بتثبيت عامل Java للأساليب والمكالمات الداخلية المحددة في السجل التي تم إجراؤها من خلال JDBC، مع بيانات التوقيت، ولتسمية العملية التلقائية.

تتبع W3C الموزع

يدعم Application Insights Java SDK الآن تتبع W3C الموزع .

يتم شرح تكوين SDK الوارد بشكل أكبر في ارتباط بيانات تتبع الاستخدام في Application Insights.

يتم تحديد تكوين SDK الصادر في ملف AI-Agent.xml .

عدادات الأداء

حدد Investigate>Metrics لمشاهدة مجموعة من عدادات الأداء.

لقطة شاشة تعرض جزء Metrics لمورد Application Insights في مدخل Microsoft Azure مع تحديد وحدات البايت الخاصة بالعملية.

تخصيص مجموعة عداد الأداء

لتعطيل مجموعة المجموعة القياسية من عدادات الأداء، أضف الشفرة التالية أسفل العقدة الجذرية لملف ApplicationInsights.xml:

    <PerformanceCounters>
       <UseBuiltIn>False</UseBuiltIn>
    </PerformanceCounters>

جمع المزيد من عدادات الأداء

يمكنك تحديد المزيد من عدادات الأداء التي سيتم جمعها.

عدادات JMX (التي يعرضها جهاز Java الظاهري)
    <PerformanceCounters>
      <Jmx>
        <Add objectName="java.lang:type=ClassLoading" attribute="TotalLoadedClassCount" displayName="Loaded Class Count"/>
        <Add objectName="java.lang:type=Memory" attribute="HeapMemoryUsage.used" displayName="Heap Memory Usage-used" type="composite"/>
      </Jmx>
    </PerformanceCounters>
  • displayName: الاسم المعروض في مدخل Application Insights.
  • objectName: اسم كائن JMX.
  • attribute: سمة اسم كائن JMX المراد إحضاره.
  • type (اختياري): نوع سمة كائن JMX:
    • الافتراضي: نوع بسيط، مثل int أو long.
    • composite: بيانات عداد perf بتنسيق Attribute.Data.
    • tabular: بيانات عداد الأداء بتنسيق صف جدول.
عدادات أداء Windows

يعد كل عداد أداء Windows عضوًا في فئة ما (بنفس الطريقة التي يكون بها الحقل عضوًا في الفصل). يمكن أن تكون الفئات إما عمومية أو تحتوي على مثيلات ذات تعداد رقمي أو مسمى.

    <PerformanceCounters>
      <Windows>
        <Add displayName="Process User Time" categoryName="Process" counterName="%User Time" instanceName="__SELF__" />
        <Add displayName="Bytes Printed per Second" categoryName="Print Queue" counterName="Bytes Printed/sec" instanceName="Fax" />
      </Windows>
    </PerformanceCounters>
  • displayName: الاسم المعروض في مدخل Application Insights.
  • categoryName: فئة عداد الأداء (عنصر الأداء) التي يرتبط بها عداد الأداء هذا.
  • counterName: اسم عداد الأداء.
  • instanceName: اسم مثيل فئة عداد الأداء أو سلسلة فارغة ("")، إذا كانت الفئة تحتوي على مثيل واحد. إذا كان categoryName هو Process وكان عداد الأداء الذي تريد جمعه من عملية JVM الحالية التي يعمل عليها تطبيقك، فحدد "__SELF__".

عدادات أداء يونكس

تثبيت تم جمعه باستخدام المكون الإضافي Application Insights للحصول على مجموعة واسعة من بيانات النظام والشبكة.

الحصول على بيانات المستخدم وجلسة العمل

الآن أنت ترسل بيانات تتبع الاستخدام من خادم الويب الخاص بك. للحصول على طريقة العرض الكاملة 360 درجة للتطبيق الخاص بك، يمكنك إضافة المزيد من المراقبة:

إرسال القياس عن بُعد الخاص بك

الآن بعد أن قمت بتثبيت SDK، يمكنك استخدام واجهة برمجة التطبيقات لإرسال بيانات تتبع الاستخدام الخاصة بك:

توفر اختبارات الويب

يمكن لـ Application Insights اختبار موقع الويب الخاص بك على فترات منتظمة للتحقق من أنه يعمل ويستجيب بشكل جيد.

تعرف على المزيد حول كيفية إعداد اختبارات ويب التوفر.

استكشاف الأخطاء وإصلاحها

راجع «dedicated troubleshooting article».

اختبار الاتصال بين مضيف التطبيق وخدمة الاستيعاب

ترسل Application Insights SDKs والوكلاء بيانات تتبع الاستخدام للحصول على استيعابها كمكالمات REST إلى نقاط نهاية الاستيعاب الخاصة بنا. يمكنك اختبار الاتصال من خادم الويب أو الجهاز المضيف للتطبيق إلى نقاط نهاية خدمة الاستيعاب باستخدام عملاء REST الأوليين من أوامر PowerShell أو curl. راجع استكشاف أخطاء بيانات تتبع استخدام التطبيق المفقودة وإصلاحها في Azure Monitor Application Insights.

استكشاف سجلات تتبع Java في Application Insights

إذا كنت تستخدم Logback أو Log4J (v1.2 أو v2.0) للتتبع، يمكنك إرسال سجلات التتبع لديك تلقائيًا إلى Application Insights حيث يمكنك استكشافها والبحث فيها.

تلميح

تحتاج إلى تعيين مفتاح تقرير عن حالة النظام Application Insights مرة واحدة فقط لتطبيقك. إذا كنت تستخدم إطار عمل مثل Java Spring، فربما قمت بالفعل بتسجيل المفتاح في مكان آخر في تكوين تطبيقك.

استخدام عامل Application Insights Java

بشكل افتراضي، يلتقط عامل Application Insights Java تلقائيا التسجيل الذي يتم تنفيذه على WARN المستوى وما فوق.

يمكنك تغيير حد التسجيل الذي يتم التقاطه باستخدام ملف AI-Agent.xml :

<?xml version="1.0" encoding="utf-8"?>
<ApplicationInsightsAgent>
   <Instrumentation>
      <BuiltIn>
         <Logging threshold="info"/>
      </BuiltIn>
   </Instrumentation>
</ApplicationInsightsAgent>

يمكنك تعطيل تسجيل تسجيل عامل Java باستخدام ملف AI-Agent.xml :

<?xml version="1.0" encoding="utf-8"?>
<ApplicationInsightsAgent>
   <Instrumentation>
      <BuiltIn>
         <Logging enabled="false"/>
      </BuiltIn>
   </Instrumentation>
</ApplicationInsightsAgent>

البدائل

بدلا من استخدام عامل Java، يمكنك اتباع هذه الإرشادات.

تثبيت Java SDK

اتبع الإرشادات لتثبيت Application Insights SDK ل Java، إذا لم تكن قد فعلت ذلك بالفعل.

إضافة مكتبات تسجيل إلى المشروع

اختر الطريقة المناسبة لمشروعك.

Maven

إذا تم إعداد مشروعك بالفعل لاستخدام Maven للبناء، فقم بدمج أحد القصاصات البرمجية التالية في ملف pom.xml . ثم قم بتحديث تبعيات المشروع للحصول على الثنائيات وتحميلها.

Logback


    <dependencies>
       <dependency>
          <groupId>com.microsoft.azure</groupId>
          <artifactId>applicationinsights-logging-logback</artifactId>
          <version>[2.0,)</version>
       </dependency>
    </dependencies>

Log4J v2.0


    <dependencies>
       <dependency>
          <groupId>com.microsoft.azure</groupId>
          <artifactId>applicationinsights-logging-log4j2</artifactId>
          <version>[2.0,)</version>
       </dependency>
    </dependencies>

Log4J v1.2


    <dependencies>
       <dependency>
          <groupId>com.microsoft.azure</groupId>
          <artifactId>applicationinsights-logging-log4j1_2</artifactId>
          <version>[2.0,)</version>
       </dependency>
    </dependencies>
Gradle

إذا تم إعداد مشروعك بالفعل لاستخدام Gradle للبناء، أضف أحد الأسطر التالية إلى dependencies المجموعة في ملف build.gradle . ثم قم بتحديث تبعيات المشروع للحصول على الثنائيات وتحميلها.

Logback


    compile group: 'com.microsoft.azure', name: 'applicationinsights-logging-logback', version: '2.0.+'

Log4J v2.0

    compile group: 'com.microsoft.azure', name: 'applicationinsights-logging-log4j2', version: '2.0.+'

Log4J v1.2

    compile group: 'com.microsoft.azure', name: 'applicationinsights-logging-log4j1_2', version: '2.0.+'

اتبع الإرشادات لتثبيت Application Insights Java SDK يدويا وتنزيل jar. في صفحة Maven Central، حدد jar الارتباط في قسم التنزيل للملحق المناسب. أضف جرة الملحق التي تم تنزيلها إلى المشروع.

المسجل تنزيل المكتبة
Logback Logback appender Jar applicationinsights-logging-logback
Log4J v2.0 Log4J v2 appender Jar applicationinsights-logging-log4j2
Log4j v1.2 Log4J v1.2 appender Jar applicationinsights-logging-log4j1_2

إضافة الملحق إلى إطار عمل التسجيل

لبدء الحصول على التتبعات، قم بدمج القصاصة البرمجية ذات الصلة بملف تكوين Logback أو Log4J.

Logback


    <appender name="aiAppender" 
      class="com.microsoft.applicationinsights.logback.ApplicationInsightsAppender">
        <instrumentationKey>[APPLICATION_INSIGHTS_KEY]</instrumentationKey>
    </appender>
    <root level="trace">
      <appender-ref ref="aiAppender" />
    </root>

Log4J v2.0


    <Configuration packages="com.microsoft.applicationinsights.log4j.v2">
      <Appenders>
        <ApplicationInsightsAppender name="aiAppender" instrumentationKey="[APPLICATION_INSIGHTS_KEY]" />
      </Appenders>
      <Loggers>
        <Root level="trace">
          <AppenderRef ref="aiAppender"/>
        </Root>
      </Loggers>
    </Configuration>

Log4J v1.2


    <appender name="aiAppender" 
         class="com.microsoft.applicationinsights.log4j.v1_2.ApplicationInsightsAppender">
        <param name="instrumentationKey" value="[APPLICATION_INSIGHTS_KEY]" />
    </appender>
    <root>
      <priority value ="trace" />
      <appender-ref ref="aiAppender" />
    </root>

يمكن الرجوع إلى إلحاقات Application Insights بواسطة أي مسجل تم تكوينه وليس بالضرورة بواسطة مسجل الجذر، كما هو موضح في نماذج التعليمات البرمجية السابقة.

استكشف تتبعاتك في مدخل Application Insights

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

سيتم عرض الاستثناءات المرسلة عبر المسجلين على المدخل كاستثناء بيانات تتبع الاستخدام.

لقطة شاشة تعرض جزء البحث لمورد Application Insights في مدخل Microsoft Azure.

مراقبة التبعيات والاستثناءات التي تم التقاطها وأوقات تنفيذ الأسلوب في تطبيقات الويب Java

إذا كنت قد وضعت علامة على تطبيق Java على الويب باستخدام Application Insights SDK، يمكنك استخدام عامل Java للحصول على رؤى أعمق، دون أي تغييرات في التعليمات البرمجية:

  • التبعيات: بيانات حول المكالمات التي يقوم بها التطبيق الخاص بك إلى مكونات أخرى، بما في ذلك:

    • استدعاءات HTTP الصادرة: يتم تسجيل المكالمات التي يتم إجراؤها عبر Apache HttpClientو OkHttpو java.net.HttpURLConnection .
    • مكالمات Redis: يتم التقاط المكالمات التي يتم إجراؤها عبر عميل Jedis.
    • استعلامات JDBC: بالنسبة إلى MySQL وPostgreSQL، إذا استغرق الاستدعاء أكثر من 10 ثوان، يقوم العامل بالإبلاغ عن خطة الاستعلام.
  • تسجيل التطبيق: التقاط سجلات التطبيق وربطها بطلبات HTTP وبيانات تتبع الاستخدام الأخرى:

    • لوجي 4ج 1.2
    • لوجي4j2
    • تسجيل الدخول
  • تسمية أفضل للعملية: تستخدم لتجميع الطلبات في المدخل.

    • Spring: استنادا إلى @RequestMapping.
    • JAX-RS: استنادا @Pathإلى .

لاستخدام عامل Java، يمكنك تثبيته على الخادم الخاص بك. يجب أن تكون تطبيقات الويب الخاصة بك مزودة بتطبيق Insights Java SDK.

تثبيت وكيل Application Insights لـ Java

  1. على الجهاز الذي يعمل بخادم Java، قم بتنزيل عامل 2.x. تأكد من أن إصدار عامل Java 2.x الذي تستخدمه يطابق إصدار 2.x Application Insights Java SDK الذي تستخدمه.

  2. تحرير البرنامج النصي بدء تشغيل ملقم التطبيق وإضافة الوسيطة JVM التالية:

    -javaagent:<full path to the agent JAR file>

    على سبيل المثال، في Tomcat على جهاز Linux:

    export JAVA_OPTS="$JAVA_OPTS -javaagent:<full path to agent JAR file>"

  3. أعد تشغيل خادم التطبيق.

تكوين العامل

إنشاء ملف باسم AI-Agent.xml ووضعه في نفس المجلد مثل ملف jar العامل.

تعيين محتوى ملف XML. تحرير المثال التالي لتضمين أو حذف الميزات التي تريدها.

<?xml version="1.0" encoding="utf-8"?>
<ApplicationInsightsAgent>
   <Instrumentation>
      <BuiltIn enabled="true">

         <!-- capture logging via Log4j 1.2, Log4j2, and Logback, default is true -->
         <Logging enabled="true" />

         <!-- capture outgoing HTTP calls performed through Apache HttpClient, OkHttp,
              and java.net.HttpURLConnection, default is true -->
         <HTTP enabled="true" />

         <!-- capture JDBC queries, default is true -->
         <JDBC enabled="true" />

         <!-- capture Redis calls, default is true -->
         <Jedis enabled="true" />

         <!-- capture query plans for JDBC queries that exceed this value (MySQL, PostgreSQL),
              default is 10000 milliseconds -->
         <MaxStatementQueryLimitInMS>1000</MaxStatementQueryLimitInMS>

      </BuiltIn>
   </Instrumentation>
</ApplicationInsightsAgent>

مزيد من التكوين (Spring Boot)

java -javaagent:/path/to/agent.jar -jar path/to/TestApp.jar

بالنسبة إلى Azure App Service، اتبع الخطوات التالية:

  1. حدد إعدادات>إعدادات التطبيق.

  2. ضمن App Settings، أضف زوجا جديدا من قيم المفاتيح:

    • المفتاح: JAVA_OPTS
    • القيمة: -javaagent:D:/home/site/wwwroot/applicationinsights-agent-2.6.4.jar

    يجب حزم العامل كمورد في مشروعك بحيث ينتهي به الأمر في الدليل D:/home/site/wwwroot/ . للتأكد من أن وكيلك موجود في دليل App Service الصحيح، انتقل إلى Development Tools>Advanced Tools>Debug Console وافحص محتويات دليل الموقع.

  3. احفظ الإعدادات وأعد تشغيل التطبيق. تنطبق هذه الخطوات فقط على خدمات التطبيقات التي تعمل على Windows.

ملاحظة

يجب أن يكون AI-Agent.xml وملف jar العامل في نفس المجلد. غالبا ما يتم وضعها معا في مجلد /resources للمشروع.

تمكين تتبع W3C الموزع

أضف القصاصة البرمجية التالية إلى AI-Agent.xml:

<Instrumentation>
   <BuiltIn enabled="true">
      <HTTP enabled="true" W3C="true" enableW3CBackCompat="true"/>
   </BuiltIn>
</Instrumentation>

ملاحظة

يتم تمكين وضع التوافق مع الإصدارات السابقة بشكل افتراضي. المعلمة enableW3CBackCompat اختيارية ويجب استخدامها فقط عندما تريد إيقاف تشغيلها.

من الناحية المثالية، سيكون هذا هو الحال عندما يتم تحديث جميع خدماتك إلى إصدارات أحدث من SDKs التي تدعم بروتوكول W3C. نوصي بالانتقال إلى إصدارات أحدث من SDKs مع دعم W3C في أقرب وقت ممكن.

تأكد من أن كل من التكوينات الواردة والصادرة (العامل) هي نفسها تماما.

عرض البيانات

في مورد Application Insights، تظهر التبعية المجمعة عن بعد وأوقات تنفيذ الأسلوب ضمن لوحة للأداء.

للبحث عن مثيلات فردية لتقارير التبعية والاستثناء والأسلوب، افتح البحث.

تعرف على المزيد حول كيفية تشخيص مشكلات التبعية.

أسئلة أو مشاكل؟

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

تصفية بيانات تتبع الاستخدام عن بعد في تطبيق Java على الويب

توفر عوامل التصفية طريقة لتحديد التتبع عن بُعد الذي يرسله تطبيق⁧⁩ Java على الويب إلى Application Insights.⁧⁩ هناك بعض عوامل التصفية الجاهزة التي يمكنك استخدامها. يمكنك أيضا كتابة عوامل التصفية المخصصة الخاصة بك.

تحتوي عوامل التصفية الجاهزة ما يلي:

  • تتبع مستوى الخطورة.
  • عناوين URL أو كلمات أساسية أو رموز استجابة محددة.
  • الاستجابات السريعة. بمعنى آخر، الطلبات التي استجاب لها تطبيقك بسرعة.
  • أسماء أحداث محددة.

ملاحظة

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

إذا وجد أن هذا مصدر قلق، فاستخدم⁧⁩أخذ العينات⁧⁩بدلاً من ذلك.

تعيين عوامل التصفية

في ApplicationInsights.xml، أضف قسما TelemetryProcessors مثل هذا المثال:


    <ApplicationInsights>
      <TelemetryProcessors>

        <BuiltInProcessors>
           <Processor type="TraceTelemetryFilter">
                  <Add name="FromSeverityLevel" value="ERROR"/>
           </Processor>

           <Processor type="RequestTelemetryFilter">
                  <Add name="MinimumDurationInMS" value="100"/>
                  <Add name="NotNeededResponseCodes" value="200-400"/>
           </Processor>

           <Processor type="PageViewTelemetryFilter">
                  <Add name="DurationThresholdInMS" value="100"/>
                  <Add name="NotNeededNames" value="home,index"/>
                  <Add name="NotNeededUrls" value=".jpg,.css"/>
           </Processor>

           <Processor type="TelemetryEventFilter">
                  <!-- Names of events we don't want to see -->
                  <Add name="NotNeededNames" value="Start,Stop,Pause"/>
           </Processor>

           <!-- Exclude telemetry from availability tests and bots -->
           <Processor type="SyntheticSourceFilter">
                <!-- Optional: specify which synthetic sources,
                     comma-separated
                     - default is all synthetics -->
                <Add name="NotNeededSources" value="Application Insights Availability Monitoring,BingPreview"
           </Processor>

        </BuiltInProcessors>

        <CustomProcessors>
          <Processor type="com.fabrikam.MyFilter">
            <Add name="Successful" value="false"/>
          </Processor>
        </CustomProcessors>

      </TelemetryProcessors>
    </ApplicationInsights>

افحص المجموعة الكاملة من المعالجات المضمنة.

عوامل تصفية مدمجة

يناقش هذا القسم عوامل التصفية المضمنة المتوفرة.

مرشح القياس عن بُعد


           <Processor type="MetricTelemetryFilter">
                  <Add name="NotNeeded" value="metric1,metric2"/>
           </Processor>
  • NotNeeded: قائمة مفصولة بفواصل لأسماء المقاييس المخصصة

تصفية بيانات تتبع الاستخدام لعرض الصفحة


           <Processor type="PageViewTelemetryFilter">
                  <Add name="DurationThresholdInMS" value="500"/>
                  <Add name="NotNeededNames" value="page1,page2"/>
                  <Add name="NotNeededUrls" value="url1,url2"/>
           </Processor>
  • DurationThresholdInMS: تشير المدة إلى الوقت المستغرق لتحميل الصفحة. إذا تم تعيين هذه المعلمة، فلن يتم الإبلاغ عن الصفحات التي تم تحميلها بشكل أسرع من هذا الوقت.
  • NotNeededNames: قائمة مفصولة بفواصل بأسماء الصفحات.
  • NotNeededUrls: قائمة مفصولة بفواصل لأجزاء URL. على سبيل المثال، ⁧"home"⁩تتم تصفية كافة الصفحات التي تحتوي على "الصفحة الرئيسية" في URL.

طلب عامل تصفية بيانات تتبع الاستخدام


           <Processor type="RequestTelemetryFilter">
                  <Add name="MinimumDurationInMS" value="500"/>
                  <Add name="NotNeededResponseCodes" value="page1,page2"/>
                  <Add name="NotNeededUrls" value="url1,url2"/>
           </Processor>

تصفية المصدر الاصطناعي

تصفية جميع بيانات تتبع الاستخدام التي تحتوي على قيم في الخاصية SyntheticSource . يتم تضمين الطلبات من الروبوتات والعناكب واختبارات التوفر.

تصفية بيانات تتبع الاستخدام لجميع الطلبات الاصطناعية:


           <Processor type="SyntheticSourceFilter" />

تصفية بيانات تتبع الاستخدام لمصادر اصطناعية محددة:


           <Processor type="SyntheticSourceFilter" >
                  <Add name="NotNeeded" value="source1,source2"/>
           </Processor>
  • NotNeeded: قائمة مفصولة بفواصل بأسماء المصادر الاصطناعية

تصفية حدث بيانات تتبع الاستخدام

تصفية الأحداث المخصصة التي تم تسجيلها باستخدام TrackEvent():


           <Processor type="TelemetryEventFilter" >
                  <Add name="NotNeededNames" value="event1, event2"/>
           </Processor>
  • NotNeededNames: قائمة بأسماء الأحداث مفصولة بفواصل

تتبع المكدس لتصفية بيانات تتبع الاستخدام

تصفية تتبعات السجل التي تم تسجيلها باستخدام TrackTrace() أو جامع إطار عمل التسجيل:


           <Processor type="TraceTelemetryFilter">
                  <Add name="FromSeverityLevel" value="ERROR"/>
           </Processor>
  • القيم الصالحة FromSeverityLevel هي:

    • إيقاف التشغيل: يقوم بتصفية جميع التتبعات.
    • TRACE: لا توجد تصفية. يساوي مستوى TRACE.
    • INFO: يقوم بتصفية مستوى TRACE.
    • تحذير: يقوم بتصفية TRACE وINFO.
    • خطأ: يقوم بتصفية WARN و INFO و TRACE.
    • CRITICAL: يقوم بتصفية الكل باستثناء CRITICAL.

عوامل تصفية مخصصة

توضح لك الأقسام التالية خطوات إنشاء عوامل التصفية المخصصة الخاصة بك.

ترميز عامل التصفية الخاص بك

في التعليمات البرمجية الخاصة بك، قم بإنشاء فئة التي⁧TelemetryProcessor⁩ تنفذ:


    package com.fabrikam.MyFilter;
    import com.microsoft.applicationinsights.extensibility.TelemetryProcessor;
    import com.microsoft.applicationinsights.telemetry.Telemetry;

    public class SuccessFilter implements TelemetryProcessor {

        /* Any parameters that are required to support the filter.*/
        private final String successful;

        /* Initializers for the parameters, named "setParameterName" */
        public void setNotNeeded(String successful)
        {
            this.successful = successful;
        }

        /* This method is called for each item of telemetry to be sent.
           Return false to discard it.
           Return true to allow other processors to inspect it. */
        @Override
        public boolean process(Telemetry telemetry) {
            if (telemetry == null) { return true; }
            if (telemetry instanceof RequestTelemetry)
            {
                RequestTelemetry requestTelemetry = (RequestTelemetry)    telemetry;
                return request.getSuccess() == successful;
            }
            return true;
        }
    }

استدعاء عامل التصفية في ملف التكوين

الآن، في ApplicationInsights.xml:



    <ApplicationInsights>
      <TelemetryProcessors>
        <CustomProcessors>
          <Processor type="com.fabrikam.SuccessFilter">
            <Add name="Successful" value="false"/>
          </Processor>
        </CustomProcessors>
      </TelemetryProcessors>
    </ApplicationInsights>

استدعاء عامل التصفية (Java Spring)

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

@Bean
public TelemetryProcessor successFilter() {
      return new SuccessFilter();
}

يمكنك إنشاء معلمات عامل التصفية الخاصة بك في application.properties. ثم يمكنك استخدام إطار عمل التكوين الخارجي ل Spring Boot لتمرير هذه المعلمات إلى عامل التصفية المخصص الخاص بك.

استكشاف الأخطاء وإصلاحها

يقدم هذا القسم تلميح استكشاف الأخطاء وإصلاحها.

عامل التصفية لا يعمل

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

تم جمعها: مقاييس أداء Linux في Application Insights (مهمل)

لاستكشاف مقاييس أداء نظام Linux في Application Insights، قم بالتكوين المجمع مع المكون الإضافي Application Insights الخاص به. يقوم هذا الحل مفتوح المصدر بجمع إحصائيات مختلفة للنظام والشبكة.

عادة، ستستخدم collectd إذا كنت قد قمت بالفعل باستخدام خدمة ويب Java باستخدام Application Insights. فهو يمنحك المزيد من البيانات لمساعدتك على تحسين أداء تطبيقك أو تشخيص المشكلات.

الحصول على مفتاح الأدوات

في مدخل Microsoft Azure، افتح مورد Application Insights حيث تريد أن تظهر البيانات. أو يمكنك إنشاء مورد جديد.

خذ نسخة من مفتاح الأجهزة، الذي يحدد المورد.

لقطة شاشة تعرض جزء النظرة العامة لمورد Application Insights في مدخل Microsoft Azure مع تمييز مفتاح الأجهزة.

تثبيت collectd والمكون الإضافي

على أجهزة خادم Linux:

  1. قم بتثبيت الإصدار 5.4.0 من collectd أو إصدار أحدث.
  2. قم بتنزيل المكون الإضافي للكاتب الذي تم جمعه في Application Insights. لاحظ رقم الإصدار.
  3. انسخ جرة المكون الإضافي إلى /usr/share/collectd/java.
  4. تحرير /etc/collectd/collectd.conf:
    • تأكد من تمكين المكون الإضافي Java .

    • قم بتحديث JVMArg لتضمين java.class.path jar التالي. تحديث رقم الإصدار ليطابق الإصدار الذي قمت بتنزيله:

      • /usr/share/collectd/java/applicationinsights-collectd-1.0.5.jar
    • أضف هذه القصاصة البرمجية باستخدام مفتاح تقرير عن حالة النظام من المورد الخاص بك:

      
           LoadPlugin "com.microsoft.applicationinsights.collectd.ApplicationInsightsWriter"
           <Plugin ApplicationInsightsWriter>
              InstrumentationKey "Your key"
           </Plugin>
      

      فيما يلي جزء من عينة ملف تكوين:

      
          ...
          # collectd plugins
          LoadPlugin cpu
          LoadPlugin disk
          LoadPlugin load
          ...
      
          # Enable Java Plugin
          LoadPlugin "java"
      
          # Configure Java Plugin
          <Plugin "java">
            JVMArg "-verbose:jni"
            JVMArg "-Djava.class.path=/usr/share/collectd/java/applicationinsights-collectd-1.0.5.jar:/usr/share/collectd/java/collectd-api.jar"
      
            # Enabling Application Insights plugin
            LoadPlugin "com.microsoft.applicationinsights.collectd.ApplicationInsightsWriter"
      
            # Configuring Application Insights plugin
            <Plugin ApplicationInsightsWriter>
              InstrumentationKey "12345678-1234-1234-1234-123456781234"
            </Plugin>
      
            # Other plugin configurations ...
            ...
          </Plugin>
          ...
      

تكوين المكونات الإضافية الأخرى التي تم جمعها، والتي يمكنها جمع بيانات مختلفة من مصادر مختلفة.

أعد التشغيل collectd وفقا لدليله.

عرض البيانات في Application Insights

في مورد Application Insights، افتح Metrics وأضف المخططات. حدد المقاييس التي تريد رؤيتها من الفئة المخصصة .

تُجمع هذه القياسات بشكل افتراضي عبر جميع الأجهزة المضيفة التي تم جمع القياسات منها. لعرض المقاييس لكل مضيف، في جزء تفاصيل المخطط ، قم بتشغيل التجميع، ثم اختر التجميع حسب CollectD-Host.

استبعاد تحميل إحصائيات محددة

بشكل افتراضي، يرسل المكون الإضافي Application Insights جميع البيانات التي تم جمعها بواسطة جميع المكونات الإضافية الممكنة collectd read .

لاستبعاد البيانات من مكونات إضافية أو مصادر بيانات معينة:

  • قم بتحرير ملف التكوين.

  • في <Plugin ApplicationInsightsWriter>، أضف خطوط التوجيه مثل تلك الموجودة في الجدول التالي:

    التوجيه التأثير
    Exclude disk استبعاد جميع البيانات التي تم جمعها بواسطة disk المكون الإضافي.
    Exclude disk:read,write استبعاد المصادر المسماة readdisk ومن write المكون الإضافي.

توجيهات منفصلة في سطر جديد.

هل من مشكلات؟

يقدم هذا القسم تلميحات حول استكشاف الأخطاء وإصلاحها.

لا أرى البيانات في المدخل

جرب هذه الخيارات:

  • افتح البحث لمعرفة ما إذا كانت الأحداث الأولية قد وصلت أم لا. أحياناً يستغرق الأمر وقتاً أطول للظهور في مستكشف القياسات.
  • قد تحتاج إلى تعيين استثناءات جدار الحماية للبيانات الصادرة.
  • تمكين التتبع في المكون الإضافي Application Insights. أضف هذا السطر في <Plugin ApplicationInsightsWriter>:
    • SDKLogger true
  • افتح محطة طرفية وابدأ collectd في الوضع المطول للاطلاع على أي مشكلات يقوم بالإبلاغ عنها:
    • sudo collectd -f

مشكلة معروفة

المكون الإضافي لكتابة Application Insights غير متوافق مع بعض المكونات الإضافية للقراءة. ترسل NaNبعض المكونات الإضافية أحيانا ، ولكن المكون الإضافي Application Insights يتوقع رقم نقطة عائمة.

  • الأعراض: collectd يعرض السجل الأخطاء التي تتضمن "الذكاء الاصطناعي: ... بناء الجملةError: رمز مميز غير متوقع N."
  • الحل البديل: استبعاد البيانات التي تم جمعها بواسطة المكونات الإضافية لكتابة المشكلة.

تقيس مراقبة تطبيق الميكرومتر القياسات الخاصة برمز التطبيق المستند إلى JVM وتتيح لك تصدير البيانات إلى أنظمة المراقبة المفضلة لديك. يعلمك هذا القسم كيفية استخدام Micrometer مع Application Insights لكل من Spring Boot والتطبيقات غير Spring Boot.

استخدام Spring Boot 1.5x

أضف التبعيات التالية إلى ملف pom.xml أو build.gradle :

  • Application Insights spring-boot-starter 2.5.0 أو أحدث.
  • Micrometer Azure Registry 1.1.0 أو أعلى.
  • Micrometer Spring Legacy 1.1.0 أو أعلى. يقوم بنسخ التعليمات البرمجية الخاصة بالتكوين التلقائي في إطار عمل Spring.
  • مورد ApplicationInsights.

اتبع هذه الخطوات:

  1. قم بتحديث ملف pom.xml لتطبيق Spring Boot الخاص بك وأضف التبعيات التالية فيه:

    <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>applicationinsights-spring-boot-starter</artifactId>
        <version>2.5.0</version>
    </dependency>
    
    <dependency>
        <groupId>io.micrometer</groupId>
        <artifactId>micrometer-spring-legacy</artifactId>
        <version>1.1.0</version>
    </dependency>
    
    <dependency>
        <groupId>io.micrometer</groupId>
        <artifactId>micrometer-registry-azure-monitor</artifactId>
        <version>1.1.0</version>
    </dependency>
    
    
  2. قم بتحديث ملف application.properties أو YML باستخدام مفتاح تقرير عن حالة النظام Application Insights باستخدام الخاصية التالية:

    azure.application-insights.instrumentation-key=<your-instrumentation-key-here>

  3. إنشاء التطبيق الخاص بك وتشغيله.

يجب أن تساعدك الخطوات السابقة على تشغيل المقاييس المجمعة مسبقا تلقائيا إلى Azure Monitor.

استخدام Spring 2.x

أضف التبعيات التالية إلى ملف pom.xml أو build.gradle :

  • Application Insights Spring-boot-starter 2.1.2 أو أعلى
  • بادئات Azure-spring-boot-metrics-2.0.7 أو أحدث
  • مورد Application Insights

اتبع هذه الخطوات:

  1. قم بتحديث ملف pom.xml لتطبيق Spring Boot الخاص بك وأضف التبعية التالية فيه:

    <dependency> 
          <groupId>com.microsoft.azure</groupId>
          <artifactId>azure-spring-boot-metrics-starter</artifactId>
          <version>2.0.7</version>
    </dependency>
    
  2. قم بتحديث ملف application.properties أو YML باستخدام مفتاح تقرير عن حالة النظام Application Insights باستخدام الخاصية التالية:

    azure.application-insights.instrumentation-key=<your-instrumentation-key-here>

  3. إنشاء التطبيق الخاص بك وتشغيله.

يجب أن تساعدك الخطوات السابقة على التشغيل باستخدام المقاييس المجمعة مسبقا التي تم تجميعها تلقائيا إلى Azure Monitor. لمزيد من المعلومات حول كيفية ضبط بداية Application Insights Spring Boot، راجع readme على GitHub.

المقاييس الافتراضية:

  • مقاييس مكونة تلقائيا ل Tomcat وJVM وLogback Metrics وLog4J Metrics ومقاييس وقت التشغيل ومقاييس المعالج وFileDescriptorMetrics.
  • على سبيل المثال، إذا كانت Netflix Hystrix موجودة على مسار الفصل الدراسي، فسنحصل على هذه المقاييس أيضا.
  • يمكن أن تكون المقاييس التالية متاحة عن طريق إضافة الفاصوليا المعنية:
    • CacheMetrics(CaffeineCacheو EhCache2GuavaCacheو HazelcastCacheو وJCache)
    • DataBaseTableMetrics
    • HibernateMetrics
    • JettyMetrics
    • OkHttp3 المقاييس
    • Kafka المقاييس

إيقاف تشغيل مجموعة المقاييس التلقائية:

  • قياسات JVM:
    • management.metrics.binders.jvm.enabled=false
  • قياسات تسجيل الدخول:
    • management.metrics.binders.logback.enabled=false
  • قياسات الاستعداد:
    • management.metrics.binders.uptime.enabled=false
  • قياسات المعالج:
    • management.metrics.binders.processor.enabled=false
  • FileDescriptorMetrics:
    • management.metrics.binders.files.enabled=false
  • مقاييس Hystrix إذا كانت المكتبة على classpath:
    • management.metrics.binders.hystrix.enabled=false
  • مقاييس AspectJ إذا كانت المكتبة على classpath:
    • spring.aop.enabled=false

ملاحظة

حدد الخصائص السابقة في ملف application.properties أو application.yml لتطبيق Spring Boot.

استخدم ميكرومتر مع تطبيقات الويب بخلاف Spring Boot

أضف التبعيات التالية إلى ملف pom.xml أو build.gradle :

اتبع هذه الخطوات:

  1. أضف التبعيات التالية في ملف pom.xml أو build.gradle :

        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-azure-monitor</artifactId>
            <version>1.1.0</version>
        </dependency>
    
        <dependency>
            <groupId>com.microsoft.azure</groupId>
            <artifactId>applicationinsights-web-auto</artifactId>
            <version>2.5.0</version>
        </dependency>
    
  2. إذا لم تكن قد فعلت ذلك بالفعل، فأضف ملف ApplicationInsights.xml في مجلد الموارد. لمزيد من المعلومات، راجع إضافة ملف ApplicationInsights.xml.

  3. نموذج فئة Servlet (يصدر مقياس مؤقت):

        @WebServlet("/hello")
        public class TimedDemo extends HttpServlet {
    
          private static final long serialVersionUID = -4751096228274971485L;
    
          @Override
          @Timed(value = "hello.world")
          protected void doGet(HttpServletRequest request, HttpServletResponse response)
              throws ServletException, IOException {
    
            response.getWriter().println("Hello World!");
            MeterRegistry registry = (MeterRegistry) getServletContext().getAttribute("AzureMonitorMeterRegistry");
    
        //create new Timer metric
            Timer sampleTimer = registry.timer("timer");
            Stream<Integer> infiniteStream = Stream.iterate(0, i -> i+1);
            infiniteStream.limit(10).forEach(integer -> {
              try {
                Thread.sleep(1000);
                sampleTimer.record(integer, TimeUnit.MILLISECONDS);
              } catch (Exception e) {}
               });
          }
          @Override
          public void init() throws ServletException {
            System.out.println("Servlet " + this.getServletName() + " has started");
          }
          @Override
          public void destroy() {
            System.out.println("Servlet " + this.getServletName() + " has stopped");
          }
    
        }
    
    
  4. فئة التكوين النموذجية:

         @WebListener
         public class MeterRegistryConfiguration implements ServletContextListener {
    
           @Override
           public void contextInitialized(ServletContextEvent servletContextEvent) {
    
         // Create AzureMonitorMeterRegistry
           private final AzureMonitorConfig config = new AzureMonitorConfig() {
             @Override
             public String get(String key) {
                 return null;
             }
            @Override
               public Duration step() {
                 return Duration.ofSeconds(60);}
    
             @Override
             public boolean enabled() {
                 return false;
             }
         };
    
      MeterRegistry azureMeterRegistry = AzureMonitorMeterRegistry.builder(config);
    
             //set the config to be used elsewhere
             servletContextEvent.getServletContext().setAttribute("AzureMonitorMeterRegistry", azureMeterRegistry);
    
           }
    
           @Override
           public void contextDestroyed(ServletContextEvent servletContextEvent) {
    
           }
         }
    

لمعرفة المزيد حول المقاييس، راجع وثائق Micrometer.

يمكن العثور على نموذج التعليمة البرمجية الأخرى بشأن كيفية إنشاء أنواع مختلفة من القياسات في مستودع Micrometer GitHub الرسمي.

ربط المزيد من مجموعة المقاييس

توضح لك الأقسام التالية كيفية جمع المزيد من المقاييس.

SpringBoot/Spring

أنشئ وحدة من فئة المقياس المعني. على سبيل المثال، لنفترض أنك بحاجة إلى مقاييس ذاكرة التخزين المؤقت ل Guava:

    @Bean
    GuavaCacheMetrics guavaCacheMetrics() {
        Return new GuavaCacheMetrics();
    }

لا يتم تمكين العديد من المقاييس بشكل افتراضي ولكن يمكن ربطها بالطريقة السابقة. للحصول على قائمة كاملة، راجع مستودع Micrometer GitHub.

تطبيقات Non-Spring

أضف تعليمة الربط البرمجية التالية إلى ملف التكوين:

    New GuavaCacheMetrics().bind(registry);

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