تمكين مراقبة التطبيقات في Azure App Service لتطبيقات .NET Node.js وPython وJava
مقالة
يعد الاختراق التلقائي، الذي يشار إليه أيضا باسم مراقبة وقت التشغيل، أسهل طريقة لتمكين Application Insights ل Azure App Service دون الحاجة إلى أي تغييرات في التعليمات البرمجية أو تكوينات متقدمة. استنادا إلى السيناريو المحدد، قم بتقييم ما إذا كنت تحتاج إلى مراقبة أكثر تقدما من خلال الأجهزة اليدوية.
إشعار
في 31 مارس 2025، سينتهي دعم إدخال مفاتيح الأجهزة. سيستمر استيعاب مفتاح الأجهزة في العمل ولكننا لن نقوم بتوفير تحديثات أو أي دعم للميزة. الانتقال إلى سلاسل الاتصال للاستفادة من الإمكانات الجديدة.
إذا تم الكشف عن كل من مراقبة البنية التلقائية والأجهزة اليدوية المستندة إلى SDK، يتم الالتزام بإعدادات الأجهزة اليدوية فقط. يمنع هذا الترتيب إرسال البيانات المكررة. لمعرفة المزيد، راجع استكشاف الأخطاء وإصلاحها.
حدد Application Insights في قائمة التنقل اليسرى لخدمة التطبيق، ثم حدد تمكين.
إنشاء مورد جديد أو تحديد مورد Application Insights موجود لهذا التطبيق.
إشعار
عند تحديد موافق لإنشاء مورد جديد، تتم مطالبتك بتطبيق إعدادات المراقبة. يؤدي تحديد متابعة إلى ربط مورد Application Insights الجديد بخدمة التطبيق. ثم تتم إعادة تشغيل خدمة التطبيق.
بعد تحديد المورد الذي يجب استخدامه، يمكنك اختيار الطريقة التي تريد أن يجمع بها Application Insights البيانات لكل نظام أساسي لتطبيقك. ASP.NET خيارات المجموعة الأساسية مستحسنة أو معطلة.
هام
إذا تم الكشف عن كل من مراقبة البنية التلقائية والأجهزة اليدوية المستندة إلى SDK، يتم الالتزام بإعدادات الأجهزة اليدوية فقط. يمنع هذا الترتيب إرسال البيانات المكررة. لمعرفة المزيد، راجع استكشاف الأخطاء وإصلاحها.
إشعار
الجمع بين APPINSIGHTS_JAVASCRIPT_ENABLED و urlCompression غير مدعوم. لمزيد من المعلومات، راجع استكشاف الأخطاء وإصلاحها.
البنية التلقائية في مدخل Microsoft Azure
حدد Application Insights في قائمة التنقل اليسرى لخدمة التطبيق، ثم حدد تمكين.
إنشاء مورد جديد أو تحديد مورد Application Insights موجود لهذا التطبيق.
إشعار
عند تحديد موافق لإنشاء مورد جديد، تتم مطالبتك بتطبيق إعدادات المراقبة. يؤدي تحديد متابعة إلى ربط مورد Application Insights الجديد بخدمة التطبيق. ثم تتم إعادة تشغيل خدمة التطبيق.
بعد تحديد المورد الذي يجب استخدامه، يمكنك اختيار الطريقة التي تريد أن يجمع بها Application Insights البيانات لكل نظام أساسي لتطبيقك. ASP.NET تكون مراقبة التطبيق قيد التشغيل بشكل افتراضي مع مستويين مختلفين من التجميع، مستحسن وأساسي.
يلخص الجدول التالي البيانات التي تم جمعها لكل مسار.
بيانات
مستحسن
أساسي
إضافة اتجاهات استخدام لوحدة المعالجة المركزية والذاكرة والإدخال/الإخراج
نعم
لا
تجميع اتجاهات الاستخدام، وتمكين الارتباط مع المعاملات من نتائج التوفر
نعم
نعم
تجميع الاستثناءات غير المعالجة بواسطة عملية المضيف
نعم
نعم
تحسين دقة مقاييس APM تحت الحمل، استنادًا لأخذ العينات
حدد Application Insights في قائمة التنقل اليسرى لخدمة التطبيق، ثم حدد تمكين.
إنشاء مورد جديد أو تحديد مورد Application Insights موجود لهذا التطبيق.
إشعار
عند تحديد موافق لإنشاء مورد جديد، تتم مطالبتك بتطبيق إعدادات المراقبة. يؤدي تحديد متابعة إلى ربط مورد Application Insights الجديد بخدمة التطبيق. ثم تتم إعادة تشغيل خدمة التطبيق.
هام
إذا تم الكشف عن كل من مراقبة البنية التلقائية والأجهزة اليدوية المستندة إلى SDK، يتم الالتزام بإعدادات الأجهزة اليدوية فقط. يمنع هذا الترتيب إرسال البيانات المكررة. لمعرفة المزيد، راجع قسم استكشاف الأخطاء وإصلاحها.
إشعار
يمكنك تكوين العامل المرفق تلقائيا باستخدام APPLICATIONINSIGHTS_CONFIGURATION_CONTENT متغير البيئة في شفرة متغير App Service Environment. للحصول على تفاصيل حول خيارات التكوين التي يمكن تمريرها عبر متغير البيئة هذا، راجع تكوين Node.js.
يتم دمج Application Insights لـNode.js مع Azure App Service على لينكس - حاويات تعتمد على التعليمات البرمجية والعرف، ومع خدمة التطبيقات على Windows للتطبيقات المستندة إلى التعليمات البرمجية. التكامل في المعاينة العامة.
البنية التلقائية في مدخل Microsoft Azure
حدد Application Insights في قائمة التنقل اليسرى لخدمة التطبيق، ثم حدد تمكين.
إنشاء مورد جديد أو تحديد مورد Application Insights موجود لهذا التطبيق.
إشعار
عند تحديد موافق لإنشاء مورد جديد، تتم مطالبتك بتطبيق إعدادات المراقبة. يؤدي تحديد متابعة إلى ربط مورد Application Insights الجديد بخدمة التطبيق. ثم تتم إعادة تشغيل خدمة التطبيق.
بمجرد تحديد المورد الذي يجب استخدامه، يتم تعيين كل شيء على الانتقال.
هام
للحصول على الشروط القانونية التي تنطبق على ميزات Azure الموجودة في الإصدار التجريبي، أو المعاينة، أو التي لم يتم إصدارها بعد في التوفر العام، راجع شروط الاستخدام التكميلية لمعاينات Microsoft Azure.
إشعار
استخدم البنية التلقائية على App Service فقط إذا كنت لا تستخدم الأجهزة اليدوية ل OpenTelemetry في التعليمات البرمجية الخاصة بك، مثل Azure Monitor OpenTelemetry Distro أو Azure Monitor OpenTelemetry Exporter. هذا لمنع إرسال البيانات المكررة. لمعرفة المزيد حول هذا الموضوع، راجع قسم استكشاف الأخطاء وإصلاحها في هذه المقالة.
يتكامل Application Insights ل Python مع خدمة تطبيقات Linux Azure المستندة إلى التعليمات البرمجية. التكامل في المعاينة العامة ويضيف Python SDK، وهو في GA. وهو يعد أدوات لمكتبات Python الشائعة في التعليمات البرمجية الخاصة بك، ما يتيح لك جمع التبعيات والسجلات والمقاييس وربطها تلقائيا. لمعرفة المكالمات والمقاييس التي يتم جمعها، راجع مكتبات Python
يتم جمع بيانات تتبع الاستخدام للتسجيل على مستوى مسجل الجذر. لمعرفة المزيد حول التسلسل الهرمي للتسجيل الأصلي في Python، قم بزيارة وثائق تسجيل Python.
المتطلبات الأساسية
إصدار Python 3.11 أو إصدار سابق.
يجب نشر App Service كتعليق برمجي. الحاويات المخصصة غير مدعومة.
البنية التلقائية في مدخل Microsoft Azure
حدد Application Insights في قائمة التنقل اليسرى لخدمة التطبيق، ثم حدد تمكين.
إنشاء مورد جديد أو تحديد مورد Application Insights موجود لهذا التطبيق.
إشعار
عند تحديد موافق لإنشاء مورد جديد، تتم مطالبتك بتطبيق إعدادات المراقبة. يؤدي تحديد متابعة إلى ربط مورد Application Insights الجديد بخدمة التطبيق. ثم تتم إعادة تشغيل خدمة التطبيق.
يمكنك تحديد المورد، وهو جاهز للاستخدام.
مكتبات Python
بعد وضع تقرير عن حالة النظام، يمكنك جمع المكالمات والمقاييس من مكتبات Python هذه:
لاستخدام أدوات OpenTelemetry Django، تحتاج إلى تعيين DJANGO_SETTINGS_MODULE متغير البيئة في إعدادات App Service للإشارة من مجلد التطبيق إلى وحدة الإعدادات.
يمكنك جمع المزيد من البيانات تلقائيا عند تضمين مكتبات الأجهزة من مجتمع OpenTelemetry.
تنبيه
نحن لا ندعم أو نضمن جودة مكتبات الأجهزة المجتمعية. اقتراح واحد لنشرنا أو نشره أو التصويت عليه في مجتمع الملاحظات لدينا. كن على علم، يعتمد بعضها على مواصفات OpenTelemetry التجريبية وقد يقدم تغييرات كسرية مستقبلية.
لإضافة مجتمع OpenTelemetry Instrumentation Library، قم بتثبيته عبر ملف التطبيق requirements.txt الخاص بك. يلتقط التثبيت التلقائي ل OpenTelemetry تلقائيا ويجهز جميع المكتبات المثبتة. ابحث عن قائمة مكتبات المجتمع هنا.
تتم الترقية من الإصدار 2.8.9 تلقائياً، دون أي إجراءات إضافية. يتم تسليم وحدات بت المراقبة الجديدة في الخلفية إلى خدمة التطبيق الهدف، ويتم التقاطها عند إعادة تشغيل التطبيق.
للتحقق من إصدار الملحق الذي تقوم بتشغيله، انتقل إلى https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
الترقية من الإصدارات 1.0.0 - 2.6.5
بدءا من الإصدار 2.8.9، يتم استخدام ملحق الموقع المثبت مسبقا. إذا كنت تستخدم إصداراً أقدم، فيمكنك التحديث بإحدى طريقتين:
الترقية عن طريق التمكين عبر مدخل Microsoft Azure: حتى إذا كان لديك ملحق Application Insights ل App Service مثبتا، فإن واجهة المستخدم تعرض الزر تمكين فقط. خلف الكواليس، تتم إزالة ملحق الموقع الخاص القديم.
قم بتعيين إعدادات التطبيق لتمكين ملحق ApplicationInsightsAgentالموقع المثبت مسبقا . لمزيد من المعلومات، راجع تمكين من خلال PowerShell.
قم بإزالة ملحق الموقع الخاص المسمى ملحق Application Insights ل Azure App Service يدويا.
إذا تم إجراء الترقية من إصدار قبل 2.5.1، فتحقق من ApplicationInsights إزالة DLLs من مجلد سلة التطبيقات. لمزيد من المعلومات، راجع استكشاف الأخطاء وإصلاحها.
الترقية من الإصدارات 2.8.9 وما فوق
تتم الترقية من الإصدار 2.8.9 تلقائياً، دون أي إجراءات إضافية. يتم تسليم وحدات بت المراقبة الجديدة في الخلفية إلى خدمة التطبيق الهدف، ويتم التقاطها عند إعادة تشغيل التطبيق.
للتحقق من إصدار الملحق الذي تقوم بتشغيله، انتقل إلى https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
الترقية من الإصدارات 1.0.0 - 2.6.5
بدءا من الإصدار 2.8.9، يتم استخدام ملحق الموقع المثبت مسبقا. إذا كنت تستخدم إصداراً أقدم، فيمكنك التحديث بإحدى طريقتين:
الترقية عن طريق التمكين عبر مدخل Microsoft Azure: حتى إذا كان لديك ملحق Application Insights ل App Service مثبتا، فإن واجهة المستخدم تعرض الزر تمكين فقط. خلف الكواليس، تتم إزالة ملحق الموقع الخاص القديم.
قم بتعيين إعدادات التطبيق لتمكين ملحق ApplicationInsightsAgentالموقع المثبت مسبقا . لمزيد من المعلومات، راجع تمكين من خلال PowerShell.
قم بإزالة ملحق الموقع الخاص المسمى ملحق Application Insights ل Azure App Service يدويا.
إذا تم إجراء الترقية من إصدار قبل 2.5.1، فتحقق من ApplicationInsights إزالة DLLs من مجلد سلة التطبيقات. لمزيد من المعلومات، راجع استكشاف الأخطاء وإصلاحها.
يتم تحديث إصدار Application Insights Java تلقائيا كجزء من تحديثات App Service. إذا واجهت مشكلة تم إصلاحها في الإصدار الأخير من وكيل Application Insights Java، يمكنك تحديثها يدويا.
قم بتحميل ملف jar لعامل Java إلى App Service.
أ. أولا، احصل على أحدث إصدار من Azure CLI باتباع الإرشادات هنا.
ب. بعد ذلك، احصل على أحدث إصدار من وكيل Application Insights Java باتباع الإرشادات هنا.
جـ. بعد ذلك، انشر ملف jar لعامل Java إلى App Service باستخدام الأمر التالي: az webapp deploy --src-path applicationinsights-agent-{VERSION_NUMBER}.jar --target-path java/applicationinsights-agent-{VERSION_NUMBER}.jar --type static --resource-group {YOUR_RESOURCE_GROUP} --name {YOUR_APP_SVC_NAME}. بدلا من ذلك، يمكنك استخدام هذا الدليل لنشر العامل من خلال المكون الإضافي Maven.
تعطيل Application Insights عبر علامة التبويب Application Insights في مدخل Microsoft Azure.
بمجرد تحميل ملف jar العامل، انتقل إلى تكوينات App Service. إذا كنت بحاجة إلى استخدام أمر بدء التشغيل ل Linux، فضمن وسيطات JVM:
لا يحترم JAVA_OPTS أمر بدء التشغيل JavaSE أو CATALINA_OPTS Tomcat.
إذا كنت لا تستخدم أمر بدء التشغيل، قم بإنشاء متغير بيئة جديد، JAVA_OPTS ل JavaSE أو CATALINA_OPTS ل Tomcat، بالقيمة -javaagent:{PATH_TO_THE_AGENT_JAR}/applicationinsights-agent-{VERSION_NUMBER}.jar.
لتطبيق التغييرات، أعد تشغيل التطبيق.
إشعار
إذا قمت بتعيين JAVA_OPTS ل JavaSE أو CATALINA_OPTS لمتغير بيئة Tomcat، يجب عليك تعطيل Application Insights في مدخل Microsoft Azure. بدلا من ذلك، إذا كنت تفضل تمكين Application Insights من مدخل Microsoft Azure، فتأكد من عدم تعيين JAVA_OPTS لمتغير JavaSE أو CATALINA_OPTS لمتغير Tomcat في إعدادات تكوينات App Service.
يتم تحديث إصدار Node.js Application Insights تلقائيا كجزء من تحديثات App Service ولا يمكن تحديثه يدويا.
إذا واجهت مشكلة تم إصلاحها في أحدث إصدار من Application Insights SDK، يمكنك إزالة البنى التلقائية ووضع علامة يدويا على تطبيقك باستخدام أحدث إصدار من SDK.
يتم تحديث إصدار Application Insights Python تلقائيا كجزء من تحديثات App Service ولا يمكن تحديثه يدويا.
إذا واجهت مشكلة تم إصلاحها في أحدث إصدار من Application Insights SDK، يمكنك إزالة البنى التلقائية ووضع علامة يدويا على تطبيقك باستخدام أحدث إصدار من SDK.
لا نقدم حاليا خيارات لتكوين ملحق المراقبة ل ASP.NET Core.
لتكوين أخذ العينات، والذي يمكنك التحكم فيه مسبقا عبر ملف applicationinsights.config ، يمكنك الآن التفاعل معه عبر إعدادات التطبيق مع البادئة MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessorالمقابلة .
على سبيل المثال، لتغيير النسبة المئوية لأخذ العينات الأولية، يمكنك إنشاء إعداد تطبيق ل MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor_InitialSamplingPercentage وقيمة .100
لتعطيل أخذ العينات، عيِّن MicrosoftAppInsights_AdaptiveSamplingTelemetryProcessor_MinSamplingPercentage إلى قيمة 100.
للحصول على قائمة بإعدادات وتعريفات معالج القياس عن بعد لأخذ العينات التكيفية المدعومة، راجع التعليمات البرمجية ووثائق أخذ العينات.
بعد تحديد المورد الذي تريد استخدامه، يمكنك ضبط عامل Java. إذا لم تقم بتكوين عامل Java، يتم تطبيق التكوينات الافتراضية.
تتوفر المجموعة الكاملة من التكوينات . تحتاج فقط إلى لصق ملف json صالح. استبعاد سلسلة الاتصال وأي تكوينات قيد المعاينة - يمكنك إضافة العناصر الموجودة حاليا في المعاينة عندما تصبح متوفرة بشكل عام.
بمجرد تعديل التكوينات من خلال مدخل Microsoft Azure، APPLICATIONINSIGHTS_CONFIGURATION_FILE يتم ملء متغير البيئة تلقائيا ويظهر في لوحة إعدادات App Service. يحتوي هذا المتغير على محتوى json الكامل الذي قمت بلصقه في مربع نص تكوين مدخل Microsoft Azure لتطبيق Java الخاص بك.
يمكن تكوين عامل Node.js باستخدام JSON. APPLICATIONINSIGHTS_CONFIGURATION_CONTENT تعيين متغير البيئة إلى سلسلة JSON أو تعيين APPLICATIONINSIGHTS_CONFIGURATION_FILE متغير البيئة إلى مسار الملف الذي يحتوي على JSON.
إذا تم تعيينه إلى None، يعطل جمع وتصدير بيانات تتبع الاستخدام للتسجيل.
OTEL_METRICS_EXPORTER
إذا تم تعيينه إلى None، يعطل جمع وتصدير القياس عن بعد القياسي.
OTEL_TRACES_EXPORTER
إذا تم تعيينه إلى None، يعطل جمع وتصدير بيانات تتبع الاستخدام الموزعة.
OTEL_BLRP_SCHEDULE_DELAY
تحديد الفاصل الزمني لتصدير التسجيل بالمللي ثانية. الافتراضيات إلى 5000.
OTEL_BSP_SCHEDULE_DELAY
تحديد الفاصل الزمني لتصدير التتبع الموزع بالمللي ثانية. الافتراضيات إلى 5000.
OTEL_TRACES_SAMPLER_ARG
تحديد نسبة بيانات تتبع الاستخدام الموزعة التي سيتم أخذ عينات منها. تتراوح القيم المقبولة من 0 إلى 1. الافتراضي هو 1.0، ما يعني أنه لا يتم أخذ عينات من بيانات تتبع الاستخدام.
OTEL_PYTHON_DISABLED_INSTRUMENTATIONS
تحديد الأجهزة OpenTelemetry التي يجب تعطيلها. عند التعطيل، لا يتم تنفيذ الأجهزة كجزء من البنية التلقائية. يقبل قائمة مفصولة بفواصل بأسماء المكتبات الصغيرة. على سبيل المثال، قم بتعيينه إلى "psycopg2,fastapi" لتعطيل أجهزة Psycopg2 وFastAPI. يتم تعيينه افتراضيا إلى قائمة فارغة، مما يتيح جميع الأجهزة المدعومة.
يتم تمكين المراقبة من جانب العميل بشكل افتراضي لتطبيقات ASP.NET Core مع المجموعة الموصى بها ، بغض النظر عما إذا كان إعداد APPINSIGHTS_JAVASCRIPT_ENABLED التطبيق موجودا أم لا.
إذا كنت ترغب في تعطيل المراقبة من جانب العميل:
حدد Settings>Configuration.
ضمن إعدادات التطبيق، قم بإنشاء إعداد تطبيق جديد بالمعلومات التالية:
الاسم:APPINSIGHTS_JAVASCRIPT_ENABLED
القيمة: false
احفظ الإعدادات. أعد تشغيل التطبيق.
المراقبة من جانب العميل هي اختيار ASP.NET. لتمكين المراقبة من جانب العميل:
حدد Settings>Configuration.
ضمن إعدادات التطبيق، قم بإنشاء إعداد تطبيق جديد:
الاسم: أدخل APPINSIGHTS_JAVASCRIPT_ENABLED.
القيمة: أدخل true.
احفظ الإعدادات ثم أعد تشغيل التطبيق.
لتعطيل المراقبة من جانب العميل، قم إما بإزالة زوج قيمة المفتاح المقترن من إعدادات التطبيق أو قم بتعيين القيمة إلى خطأ.
لتمكين المراقبة من جانب العميل، يمكن لعامل Java إدخال مستعرض SDK Loader (معاينة) في صفحات HTML للتطبيق الخاص بك، بما في ذلك تكوين سلسلة الاتصال المناسبة.
التمديد الرئيسي، الذي يتحكم في مراقبة وقت التشغيل.
~2 لنظام تشغيل Windows أو ~3 لنظام تشغيل Linux
XDT_MicrosoftApplicationInsights_Mode
في الوضع الافتراضي، يتم تمكين الميزات الأساسية فقط لضمان الأداء الأمثل.
disabled أو recommended.
XDT_MicrosoftApplicationInsights_PreemptSdk
لتطبيقات ASP.NET Core فقط. تمكين Interop (التشغيل المتداخل) مع Application Insights SDK. تحميل الملحق جنبا إلى جنب مع SDK واستخدامه لإرسال بيانات تتبع الاستخدام. (يعطل Application Insights SDK.)
1
تعريفات إعدادات التطبيق
اسم إعداد التطبيق
التعريف
القيمة
ApplicationInsightsAgent_EXTENSION_VERSION
التمديد الرئيسي، الذي يتحكم في مراقبة وقت التشغيل.
~2
XDT_MicrosoftApplicationInsights_Mode
في الوضع الافتراضي، يتم تمكين الميزات الأساسية فقط لضمان الأداء الأمثل.
default أو recommended
InstrumentationEngine_EXTENSION_VERSION
يتحكم في تشغيل محرك InstrumentationEngine إعادة الكتابة الثنائية. هذا الإعداد له آثار على الأداء ويؤثر على وقت البدء/بدء التشغيل البارد.
~1
XDT_MicrosoftApplicationInsights_BaseExtensions
يتحكم في ما إذا تم التقاط نص جدول SQL وAzure مع استدعاءات التبعية. تحذير الأداء: يتأثر وقت بدء التشغيل البارد للتطبيق. يتطلب هذا الإعداد InstrumentationEngine.
~1
تعريفات إعدادات التطبيق
اسم إعداد التطبيق
التعريف
القيمة
ApplicationInsightsAgent_EXTENSION_VERSION
التمديد الرئيسي، الذي يتحكم في مراقبة وقت التشغيل.
~2في Windows أو في~3Linux.
XDT_MicrosoftApplicationInsights_Java
ضع علامة للتحكم فيما إذا تم تضمين وكيل Java.
0 أو 1 (ينطبق فقط في Windows).
إشعار
Snapshot Debugger غير متوفر لتطبيقات Java.
تعريفات إعدادات التطبيق
اسم إعداد التطبيق
التعريف
القيمة
ApplicationInsightsAgent_EXTENSION_VERSION
التمديد الرئيسي، الذي يتحكم في مراقبة وقت التشغيل.
~2في Windows أو في~3Linux.
XDT_MicrosoftApplicationInsights_NodeJS
وضع علامة للتحكم في حالة تضمين عامل Node.js.
0 أو 1 (ينطبق فقط في Windows).
إشعار
Snapshot Debugger غير متوفر للتطبيقات Node.js.
تعريفات إعدادات التطبيق
اسم إعداد التطبيق
التعريف
القيمة
APPLICATIONINSIGHTS_CONNECTION_STRING
سلسلة الاتصالات لمورد Application Insights.
مثال: abcd1234-ab12-cd34-abcd1234abcd
ApplicationInsightsAgent_EXTENSION_VERSION
التمديد الرئيسي، الذي يتحكم في مراقبة وقت التشغيل.
~3
إشعار
Snapshot Debugger غير متوفر لتطبيقات Python.
إعدادات تطبيق App Service باستخدام Azure Resource Manager
يمكن إدارة إعدادات التطبيق ل Azure App Service وتكوينها باستخدام قوالب Azure Resource Manager. يمكنك استخدام هذا الأسلوب عند نشر موارد App Service جديدة مع أتمتة Resource Manager أو تعديل إعدادات الموارد الموجودة.
البنية الأساسية لإعدادات التطبيق JSON لمورد App Service:
أتمتة إنشاء مورد Application Insights والارتباط بمورد App Service الذي تم إنشاؤه حديثا
لإنشاء قالب Resource Manager مع إعدادات Application Insights الافتراضية، ابدأ العملية كما لو كنت ستنشئ تطبيق ويب جديدا مع تمكين Application Insights.
إنشاء مورد خدمات التطبيق الجديد بمعلومات تطبيق الويب المطلوبة. تمكين Application Insights في علامة التبويب Monitoring .
حدد "Review + create". ثم حدد تنزيل قالب للأتمتة.
ينشئ هذا الخيار أحدث قالب Resource Manager مع تكوين جميع الإعدادات المطلوبة.
في النموذج التالي، استبدل كافة مثيلات AppMonitoredSite باسم موقعك:
إشعار
إذا كنت تستخدم Windows، فقم بتعيين ApplicationInsightsAgent_EXTENSION_VERSION إلى ~2. إذا كنت تستخدم Linux، فقم بتعيين ApplicationInsightsAgent_EXTENSION_VERSION إلى ~3.
لتمكين مراقبة التطبيق من خلال PowerShell، يجب تغيير إعدادات التطبيق الأساسية فقط. تمكن العينة التالية مراقبة التطبيق لموقع ويب يسمى AppMonitoredSite في مجموعة AppMonitoredRGالموارد . يقوم بتكوين البيانات لإرسالها إلى 012345678-abcd-ef01-2345-6789abcd مفتاح تقرير عن حالة النظام.
إذا كنت تستخدم Windows، فقم بتعيين ApplicationInsightsAgent_EXTENSION_VERSION إلى ~2. إذا كنت تستخدم Linux، فقم بتعيين ApplicationInsightsAgent_EXTENSION_VERSION إلى ~3.
تعتمد التفاصيل على نوع المشروع. القائمة التالية هي مثال لتطبيق ويب.
إضافة ملفات إلى مشروعك:
ApplicationInsights.config
ai.js
تثبيت حزم NuGet:
Application Insights API: واجهة برمجة التطبيقات الأساسية
واجهة برمجة تطبيقات Application Insights لتطبيقات الويب: تستخدم لإرسال بيانات تتبع الاستخدام من الخادم
واجهة برمجة تطبيقات Application Insights لتطبيقات JavaScript: تستخدم لإرسال بيانات تتبع الاستخدام من العميل
يتضمن التجميعات في الحزم:
Microsoft.ApplicationInsights
Microsoft.ApplicationInsights.Platform
إدراج عناصر في:
Web.config
packages.config
يُدرج المقتطفات في التعليمات البرمجية الخاصة بالعميل والخادم لتهيئتها باستخدام معرف مورد Application Insights. على سبيل المثال، في تطبيق MVC، يتم إدراج التعليمات البرمجية في الصفحة الرئيسية Views/Shared/_Layout.cshtml. بالنسبة للمشاريع الجديدة فقط، يمكنك إضافة Application Insights إلى مشروع موجود يدويا.
ما الفرق بين المقاييس القياسية من Application Insights مقابل مقاييس Azure App Service؟
تجمع Application Insights بيانات تتبع الاستخدام للطلبات التي قدمتها إلى التطبيق. إذا حدث الفشل في WebApps/WebServer، ولم يصل الطلب إلى تطبيق المستخدم، فلن يكون لدى Application Insights أي بيانات تتبع الاستخدام عنه.
لا تتطابق مدة serverresponsetime الحساب بواسطة Application Insights بالضرورة مع وقت استجابة الخادم الذي لاحظته تطبيقات الويب. هذا السلوك لأن Application Insights تحسب المدة فقط عندما يصل الطلب فعليا إلى تطبيق المستخدم. إذا كان الطلب عالقا أو في قائمة الانتظار في WebServer، يتم تضمين وقت الانتظار في مقاييس Web Apps ولكن ليس في مقاييس Application Insights.
عند إنشاء تطبيق ويب مع ASP.NET Core أوقات التشغيل في App Service، فإنه ينشر صفحة HTML ثابتة واحدة كمنشئ موقع ويب. لا نوصي باستكشاف مشكلة في القالب الافتراضي وإصلاحها. نشر تطبيق قبل استكشاف مشكلة وإصلاحها.
بيانات تتبع الاستخدام المفقودة
Windows
ApplicationInsightsAgent_EXTENSION_VERSION تحقق من تعيين إعداد التطبيق إلى قيمة ~2.
استعرض إلى https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
تأكد من أن حالة ملحق Application Insights هي Pre-Installed Site Extension, version 2.8.x.xxxx, is running.
إذا لم يكن قيد التشغيل، فاتبع الإرشادات الواردة في القسم تمكين مراقبة Application Insights.
تأكد من وجود مصدر الحالة ويبدو مثل Status source D:\home\LogFiles\ApplicationInsights\status\status_RD0003FF0317B6_4248_1.json.
إذا لم تكن هناك قيمة مشابهة، فهذا يعني أن التطبيق ليس قيد التشغيل حالياً أو غير معتمد. للتأكد من تشغيل التطبيق، حاول زيارة نقاط نهاية عنوان URL/التطبيق يدويا، مما يسمح بتوفير معلومات وقت التشغيل.
تأكد من أن IKeyExists هو True. إذا كانت False، فأضف APPINSIGHTS_INSTRUMENTATIONKEY وAPPLICATIONINSIGHTS_CONNECTION_STRING مع ikey GUID إلى إعدادات التطبيق.
إذا كان التطبيق الخاص بك يشير إلى أي حزم Application Insights، فقد لا يسري تمكين تكامل App Service، وقد لا تظهر البيانات في Application Insights. مثال على ذلك هو إذا كنت قد قمت مسبقا باستخدام تطبيقك باستخدام ASP.NET Core SDK أو حاولت استخدامها. لإصلاح المشكلة، في مدخل Microsoft Azure، قم بتشغيل Interop مع Application Insights SDK.
هام
هذه الوظيفة قيد المعاينة.
يتم إرسال البيانات باستخدام نهج بدون تعليمات برمجية، حتى إذا تم استخدام Application Insights SDK في الأصل أو حاول استخدامه.
هام
إذا استخدم التطبيق Application Insights SDK لإرسال أي بيانات تتبع الاستخدام، تعطيل بيانات تتبع الاستخدام. بمعنى آخر، سيتم تعطيل بيانات تتبع الاستخدام المخصصة (على سبيل المثال، أي Track*() أساليب) والإعدادات المخصصة (مثل أخذ العينات).
Linux
ApplicationInsightsAgent_EXTENSION_VERSION تحقق من تعيين إعداد التطبيق إلى قيمة ~3.
استعرض إلى https://your site name.scm.azurewebsites.net/ApplicationInsights.
داخل هذا الموقع، قم بتأكيد:
مصدر الحالة موجود ويبدو مثل Status source /var/log/applicationinsights/status_abcde1234567_89_0.json.
يتم عرض القيمة Auto-Instrumentation enabled successfully . في حالة عدم وجود قيمة مماثلة، فهذا يعني أن التطبيق لا يعمل أو غير مدعوم. للتأكد من تشغيل التطبيق، حاول زيارة نقاط نهاية عنوان URL/التطبيق يدويا، مما يسمح بتوفير معلومات وقت التشغيل.
IKeyExists هو True. إذا كانت False، فأضف APPINSIGHTS_INSTRUMENTATIONKEY وAPPLICATIONINSIGHTS_CONNECTION_STRING مع ikey GUID إلى إعدادات التطبيق.
لا يدعم موقع الويب الافتراضي المنشور مع تطبيقات الويب المراقبة التلقائية من جانب العميل
عند إنشاء تطبيق ويب باستخدام أوقات تشغيل ASP.NET Core في App Service، فإنه ينشر صفحة HTML ثابتة واحدة كمبدأ موقع ويب. تقوم صفحة الويب الثابتة أيضا بتحميل ASP. جزء ويب مدار بواسطة NET في IIS. يسمح هذا السلوك باختبار المراقبة من جانب الخادم بدون تعليمات برمجية ولكنه لا يدعم المراقبة التلقائية من جانب العميل.
إذا كنت ترغب في اختبار الخادم بدون تعليمات برمجية والمراقبة من جانب العميل ASP.NET Core في تطبيق ويب App Service، نوصي باتباع الدلائل الرسمية لإنشاء تطبيق ويب ASP.NET Core. بعد ذلك، استخدم الإرشادات الواردة في المقالة الحالية لتمكين المراقبة.
PHP وWordPress غير مدعومين
PHP ومواقع WordPress غير مدعومتين. لا يوجد حالياً أي SDK / وكيل معتمد رسميًا لمراقبة جانب الخادم لأحمال العمل هذه. لتعقب المعاملات من جانب العميل على موقع PHP أو WordPress، أضف JavaScript من جانب العميل إلى صفحات الويب الخاصة بك باستخدام JavaScript SDK.
يوفر الجدول التالي شرحا لما تعنيه هذه القيم وأسبابها الأساسية والإصلاحات الموصى بها.
قيمة المشكلة
الشرح
Fix
AppAlreadyInstrumented:true
تشير هذه القيمة إلى أن الملحق اكتشف بعض جوانب SDK الموجودة بالفعل في التطبيق ويتراجع. مرجع إلى Microsoft.ApplicationInsights.AspNetCore أو Microsoft.ApplicationInsights يمكن أن يسبب هذه القيمة.
إزالة المراجع. تتم إضافة بعض هذه المراجع بشكل افتراضي من قوالب Visual Studio معينة. الإصدارات القديمة من مرجع Microsoft.ApplicationInsightsVisual Studio .
AppAlreadyInstrumented:true
يمكن أن يتسبب وجود Microsoft.ApplicationsInsights DLL في مجلد التطبيق من عملية نشر سابقة أيضا في هذه القيمة.
قم بتنظيف مجلد التطبيق للتأكد من إزالة DLLs هذه. تحقق من كل من دليل سلة التطبيق المحلي ودليل wwwroot على App Service. (للتحقق من دليل wwwroot لتطبيق ويب App Service، حدد Advanced Tools (Kudu) >Debug console>CMD>home\site\wwwroot).
IKeyExists:false
تشير هذه القيمة إلى أن مفتاح الأجهزة غير موجود في إعداد APPINSIGHTS_INSTRUMENTATIONKEYالتطبيق . تتضمن الأسباب المحتملة إزالة القيم عن طريق الخطأ أو النسيان لتعيين القيم في البرنامج النصي التلقائي.
تأكد من وجود الإعداد في إعدادات تطبيق خدمة التطبيقات.
إشعار
عند إنشاء تطبيق ويب مع ASP.NET أوقات التشغيل في App Service، فإنه ينشر صفحة HTML ثابتة واحدة كمنشئ موقع ويب. لا نوصي باستكشاف مشكلة في قالب افتراضي وإصلاحها. نشر تطبيق قبل استكشاف مشكلة وإصلاحها.
بيانات تتبع الاستخدام المفقودة
ApplicationInsightsAgent_EXTENSION_VERSION تحقق من تعيين إعداد التطبيق إلى قيمة ~2.
استعرض إلى https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
تأكد من أن Application Insights Extension Status و Pre-Installed Site Extension, version 2.8.x.xxxx قيد التشغيل.
إذا لم يكن قيد التشغيل، فاتبع الإرشادات لتمكين مراقبة Application Insights.
تأكد من وجود مصدر الحالة ويبدو مثل Status source D:\home\LogFiles\ApplicationInsights\status\status_RD0003FF0317B6_4248_1.json.
إذا لم تكن هناك قيمة مشابهة، فهذا يعني أن التطبيق ليس قيد التشغيل حالياً أو غير معتمد. للتأكد من تشغيل التطبيق، حاول زيارة نقاط نهاية عنوان URL/التطبيق يدويا، مما يسمح بتوفير معلومات وقت التشغيل.
تأكد من أن IKeyExists هو true.
إذا لم يكن الأمر كما هو، أضف APPINSIGHTS_INSTRUMENTATIONKEY و APPLICATIONINSIGHTS_CONNECTION_STRING باستخدام GUID لمفتاح تقرير عن حالة النظام إلى إعدادات التطبيق الخاص بك.
تأكد من عدم وجود إدخالات لـ AppAlreadyInstrumented وAppContainsDiagnosticSourceAssembly وAppContainsAspNetTelemetryCorrelationAssembly.
إذا كان أي من هذه الإدخالات موجودة، قم بإزالة الحزم التالية من تطبيقك: Microsoft.ApplicationInsights وSystem.Diagnostics.DiagnosticSource وMicrosoft.AspNet.TelemetryCorrelation.
لا يدعم موقع الويب الافتراضي المنشور مع تطبيقات الويب المراقبة التلقائية من جانب العميل
عند إنشاء تطبيق ويب باستخدام أوقات تشغيل ASP.NET في App Service، فإنه ينشر صفحة HTML ثابتة واحدة كمبدأ موقع ويب. تقوم صفحة الويب الثابتة أيضا بتحميل ASP. جزء ويب مدار بواسطة NET في IIS. تسمح هذه الصفحة باختبار المراقبة من جانب الخادم بدون تعليمات برمجية ولكنها لا تدعم المراقبة التلقائية من جانب العميل.
إذا كنت ترغب في اختبار الخادم بدون تعليمات برمجية والمراقبة من جانب العميل ASP.NET في تطبيق ويب App Service، نوصي باتباع الدلائل الرسمية لإنشاء تطبيق ويب ASP.NET Framework. بعد ذلك، استخدم الإرشادات الواردة في المقالة الحالية لتمكين المراقبة.
APPINSIGHTS_JAVASCRIPT_ENABLED وurlCompression غير مدعومين
إذا كنت تستخدم APPINSIGHTS_JAVASCRIPT_ENABLED=true في الحالات التي يتم فيها ترميز المحتوى، فقد تحصل على أخطاء مثل:
خطأ في إعادة كتابة عنوان URL 500.
500.53 خطأ الوحدة النمطية لإعادة كتابة عنوان URL مع الرسالة "لا يمكن تطبيق قواعد إعادة الكتابة الصادرة عند ترميز محتوى استجابة HTTP ('gzip')."
يحدث خطأ بسبب APPINSIGHTS_JAVASCRIPT_ENABLED تعيين إعداد التطبيق إلى true وترميز المحتوى موجود في نفس الوقت. هذا السيناريو غير مدعوم. الحل البديل هو إزالة APPINSIGHTS_JAVASCRIPT_ENABLED من إعدادات التطبيق الخاص بك. لسوء الحظ، إذا كانت أدوات JavaScript من جانب العميل/المستعرض لا تزال مطلوبة، فإن مراجع SDK اليدوية مطلوبة لصفحات الويب الخاصة بك. اتبع الإرشادات الخاصة بالأجهزة اليدوية باستخدام JavaScript SDK.
للحصول على أحدث المعلومات حول وكيل/ملحق Application Insights، راجع ملاحظات الإصدار.
PHP وWordPress غير مدعومين
PHP ومواقع WordPress غير مدعومتين. لا يوجد حالياً أي SDK / وكيل معتمد رسميًا لمراقبة جانب الخادم لأحمال العمل هذه. لتعقب المعاملات من جانب العميل على موقع PHP أو WordPress، أضف JavaScript من جانب العميل إلى صفحات الويب الخاصة بك باستخدام JavaScript SDK.
يوفر الجدول التالي شرحا لما تعنيه هذه القيم وأسبابها الأساسية والإصلاحات الموصى بها.
قيمة المشكلة
الشرح
Fix
AppAlreadyInstrumented:true
تشير هذه القيمة إلى أن الملحق اكتشف بعض جوانب SDK الموجودة بالفعل في التطبيق ويتراجع. يمكن أن يؤدي مرجع إلى System.Diagnostics.DiagnosticSourceأو Microsoft.AspNet.TelemetryCorrelationأو Microsoft.ApplicationInsights إلى هذه القيمة.
إزالة المراجع. تتم إضافة بعض هذه المراجع بشكل افتراضي من قوالب Visual Studio معينة. قد تضيف الإصدارات القديمة من Visual Studio مراجع إلى Microsoft.ApplicationInsights.
AppAlreadyInstrumented:true
يمكن أن يتسبب وجود DLLs السابقة في مجلد التطبيق من عملية نشر سابقة أيضا في هذه القيمة.
قم بتنظيف مجلد التطبيق للتأكد من إزالة DLLs هذه. تحقق من كل من دليل سلة التطبيق المحلي ودليل wwwroot على مورد App Service. للتحقق من دليل wwwroot لتطبيق ويب App Service، حدد Advanced Tools (Kudu)>Debug console>CMD>home\site\wwwroot.
تشير هذه القيمة إلى أن الملحق اكتشف مراجع إلى Microsoft.AspNet.TelemetryCorrelation في التطبيق ويتراجع.
قم بإزالة المرجع.
AppContainsDiagnosticSourceAssembly**:true
تشير هذه القيمة إلى أن الملحق اكتشف مراجع إلى System.Diagnostics.DiagnosticSource في التطبيق ويتراجع.
على سبيل ASP.NET، قم بإزالة المرجع.
IKeyExists:false
تشير هذه القيمة إلى أن مفتاح الأجهزة غير موجود في إعداد APPINSIGHTS_INSTRUMENTATIONKEYالتطبيق . قد تكون الأسباب المحتملة هي إزالة القيم عن طريق الخطأ، أو نسيت تعيين القيم في البرنامج النصي التلقائي.
تأكد من وجود الإعداد في إعدادات تطبيق خدمة التطبيقات.
System.IO.FileNotFoundException بعد الترقية 2.8.44
يقوم الإصدار 2.8.44 من التثبيت التلقائي بترقية Application Insights SDK إلى 2.20.0. يحتوي Application Insights SDK على مرجع غير مباشر إلى System.Runtime.CompilerServices.Unsafe.dll من خلال System.Diagnostics.DiagnosticSource.dll. إذا كان التطبيق يحتوي على إعادة توجيه ربط ل System.Runtime.CompilerServices.Unsafe.dll وإذا لم تكن هذه المكتبة موجودة في مجلد التطبيق، فقد يطرح System.IO.FileNotFoundException.
لحل هذه المشكلة، قم بإزالة إدخال إعادة توجيه الربط من System.Runtime.CompilerServices.Unsafe.dll ملف web.config. إذا أراد التطبيق استخدام System.Runtime.CompilerServices.Unsafe.dll، فقم بتعيين إعادة توجيه الربط كما هو موضح هنا:
كحل مؤقت، يمكنك تعيين إعداد ApplicationInsightsAgent_EXTENSION_VERSION التطبيق إلى قيمة 2.8.37. يؤدي هذا الإعداد إلى تشغيل App Service لاستخدام ملحق Application Insights القديم. وينبغي ألا تستخدم عوامل التخفيف المؤقتة إلا كعملية مؤقتة.
بيانات تتبع الاستخدام المفقودة
ApplicationInsightsAgent_EXTENSION_VERSION تحقق من تعيين إعداد التطبيق إلى قيمة ~2 على Windows، ~3 على Linux
افحص ملف السجل لمعرفة أن العامل بدأ بنجاح: استعرض للوصول إلى https://yoursitename.scm.azurewebsites.net/، ضمن تغيير SSH إلى الدليل الجذر، يقع ملف السجل ضمن LogFiles/ApplicationInsights.
بعد تمكين مراقبة التطبيق لتطبيق Java الخاص بك، يمكنك التحقق من أن العامل يعمل من خلال النظر في المقاييس المباشرة - حتى قبل النشر والتطبيق إلى App Service، سترى بعض الطلبات من البيئة. تذكر أن المجموعة الكاملة من بيانات تتبع الاستخدام متوفرة فقط عندما يتم نشر تطبيقك وتشغيله.
قم بتعيين APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_LEVEL متغير البيئة إلى debug إذا كنت لا ترى أي أخطاء ولا يوجد بيانات تتبع الاستخدام.
بيانات تتبع الاستخدام المفقودة
Windows
ApplicationInsightsAgent_EXTENSION_VERSION تحقق من تعيين إعداد التطبيق إلى قيمة ~2.
استعرض إلى https://yoursitename.scm.azurewebsites.net/ApplicationInsights.
تأكد من أن Application Insights Extension Status هي Pre-Installed Site Extension, version 2.8.x.xxxx, is running.
قد يؤدي استخدام البنى التلقائية أعلى الأجهزة اليدوية إلى تكرار القياس عن بعد وزيادة التكلفة. لاستخدام البنية التلقائية ل App Service OpenTelemetry، قم أولا بإزالة الأجهزة اليدوية ل OpenTelemetry من التعليمات البرمجية الخاصة بك.
بيانات تتبع الاستخدام المفقودة
إذا كنت تفتقد بيانات تتبع الاستخدام، فاتبع هذه الخطوات للتأكد من تمكين البنى التلقائية بشكل صحيح.
تأكد من تمكين التضمين التلقائي في تجربة Application Insights على مورد App Service.
تأكد من ApplicationInsightsAgent_EXTENSION_VERSION تعيين إعداد التطبيق إلى قيمة ~3 وأن يشير APPLICATIONINSIGHTS_CONNECTION_STRING إلى مورد Application Insights المناسب.
تحقق من تشخيصات البنية التلقائية وسجلات الحالة.
أ. انتقل إلى /var/log/applicationinsights/ وافتح status_*.json.
ب. تأكد من AgentInitializedSuccessfully تعيين إلى true وأن IKey يكون لديك iKey صالح.
applicationinsights-extension.log قد يعرض الملف الموجود في المجلد نفسه تشخيصات مفيدة أخرى.
تطبيقات Django
إذا كان تطبيقك يستخدم Django وكان إما يفشل في بدء تشغيل إعدادات غير صحيحة أو استخدامها، فتأكد من تعيين DJANGO_SETTINGS_MODULE متغير البيئة. راجع قسم Django Instrumentation للحصول على التفاصيل.