تكوين Microsoft Azure Monitor Application Insights JavaScript SDK

يوفر Azure Application Insights JavaScript SDK تكوينا لتتبع تطبيقات الويب الخاصة بك ومراقبتها وتصحيحها.

تكوين SDK

حقول التكوين هذه اختيارية و افتراضية إلى خطأ ما لم يذكر خلاف ذلك.

للحصول على إرشادات حول كيفية إضافة تكوين SDK، راجع إضافة تكوين SDK.

Name نوع الإعداد الافتراضي
AccountId

مُعرف حساب اختياري، إذا كان تطبيقك يقوم بتجميع المستخدمين في حسابات. لا توجد مسافات أو فواصل أو فاصلات منقوطة أو متساوية أو أشرطة عمودية
سلسلة قيمة فارغة
addRequestContext

توفير طريقة لإثراء سجلات التبعيات مع السياق في بداية استدعاء واجهة برمجة التطبيقات. الافتراضي غير معرف. تحتاج إلى التحقق مما إذا كان xhr موجودا إذا قمت بتكوين xhr سياق ذي صلة. تحتاج إلى التحقق مما إذا كنت تقوم بتكوين fetch سياق ذي صلة وما fetch response إذا كنت fetch request موجودا. وإلا فقد لا تحصل على البيانات التي تحتاجها.
(requestContext: IRequestionContext) => {[key: string]: any} غير مُعرف
ajaxPerfLookupDelay

الافتراضيات إلى 25 مللي ثانية. مقدار الوقت للانتظار قبل إعادة المحاولة للعثور على توقيتات windows.performance لطلب Ajax، الوقت بالمللي ثانية ويتم تمريره مباشرة إلى setTimeout().
عددي 25
appId

يُستخدم AppId للارتباط بين تبعيات AJAX التي تحدث من جانب العميل مع طلبات من جانب الخادم. عند تمكين واجهة برمجة تطبيقات Beacon، لا يمكن استخدامها تلقائيا، ولكن يمكن تعيينها يدويا في التكوين. القيمة الافتراضية خالية
سلسلة قيمة فارغة
autoTrackPageVisitTime

إذا كان صحيحاً، على صفحة عرض، يتم تعقب وقت عرض الصفحة السابقة وإرسالها كبيانات تتبع الاستخدام ويتم بدء مؤقت جديد لعرض الصفحة الحالية. يتم إرساله كمقياس مخصص اسمه PageVisitTime في milliseconds ويتم حسابه عبر دالة Date now() (إذا كانت متوفرة) ويعود مرة أخرى إلى (new Date()).getTime() إذا كانت now() غير متوفرة (IE8 أو أقل). الافتراضي خطأ.
boolean true
convertUndefined

توفير خيار للمستخدم لتحويل حقل غير معرف إلى قيمة معرفة من قبل المستخدم.
any غير مُعرف
cookieCfg

تمكين الإعدادات الافتراضية لاستخدام ملفات تعريف الارتباط، راجع إعدادات ICookieCfgConfig للحصول على الإعدادات الافتراضية الكاملة.
ICookieCfgConfig
[اختياري]
(منذ 2.6.0)
غير مُعرف
cookieDomain

مجال ملفات تعريف الارتباط المخصص. من المفيد إذا كنت تريد مشاركة ملفات تعريف الارتباط Application Insights عبر المجالات الفرعية.
(منذ الإصدار 2.6.0) إذا cookieCfg.domain تم تعريفها، فإنها لها الأسبقية على هذه القيمة.
الاسم المستعار لـ cookieCfg.domain
[اختياري]
قيمة فارغة
cookiePath

مسار ملف تعريف الارتباط المُخصص. من المفيد إذا كنت تريد مشاركة ملفات تعريف الارتباط Application Insights خلف بوابة تطبيق.
إذا cookieCfg.path تم تعريفه، فإنه يأخذ الأسبقية.
الاسم المستعار لـ cookieCfg.path
[اختياري]
(منذ 2.6.0)
قيمة فارغة
مجالات عنوان الارتباط

تمكين عناوين الارتباطات لمجالات معينة
string[] غير مُعرف
correlationHeaderExcludedDomains

تعطيل عناوين الارتباطات لمجالات معينة
string[] غير مُعرف
correlationHeaderExcludePatterns

تعطيل عناوين الارتباطات باستخدام التعبيرات العادية
regex[] غير مُعرف
createPerfMgr

دالة رد الاتصال التي سيتم استدعاؤها لإنشاء مثيل IPerfManager عند الحاجة enablePerfMgr ويتم تمكينها، تمكنك من تجاوز الإنشاء الافتراضي ل PerfManager() دون الحاجة إلى setPerfMgr() بعد التهيئة.
(core: IAppInsightsCore, notificationManager: INotificationManager) => IPerfManager غير مُعرف
customHeaders

قدرة المستخدم على توفير عناوين إضافية عند استخدام نقطة نهاية مخصصة. لا تتم إضافة customHeaders في لحظة إيقاف تشغيل المستعرض عند استخدام مرسل الملحق. وإضافة عناوين مخصصة غير مدعومة على IE9 أو أي إصدار سابق.
[{header: string, value: string}] غير مُعرف
diagnosticLogInterval

الفاصل الزمني للاستقصاء(الداخلي) (بالملّي ثانية) لقائمة انتظار تسجيل الدخول الداخلية
عددي 10000
disableAjaxTracking

إذا كان صحيحًا، فلا يتم تجميع اتصالات Ajax تلقائيًا. الافتراضي خطأ.
boolean true
disableCookiesUsage

خطأ افتراضي. قيمة منطقية تشير إلى ما إذا كان يجب تعطيل استخدام ملفات تعريف الارتباط بواسطة SDK. إذا كان صحيحا، فإن SDK لا تخزن أو تقرأ أي بيانات من ملفات تعريف الارتباط.
(منذ الإصدار 2.6.0) إذا cookieCfg.enabled تم تعريفه، فإنه يأخذ الأسبقية. يمكن إعادة تمكين استخدام ملفات تعريف الارتباط بعد التهيئة عبر core.getCookieMgr().setEnabled(true).
الاسم المستعار لـ cookieCfg.enabled
[اختياري]
true
تعطيل عناوين التصحيح

إذا كانت خاطئة، يضيف SDK عنوانين ("Request-Id" و"Request-Context") إلى جميع طلبات التبعية لربطها بالطلبات المقابلة على جانب الخادم. الافتراضي خطأ.
boolean true
disableDataLossAnalysis

إذا كانت خاطئة، يتم التحقق من المخازن المؤقتة لمرسل بيانات تتبع الاستخدام الداخلية عند بدء التشغيل للعناصر التي لم يتم إرسالها بعد.
boolean صحيح
disableExceptionTracking

إذا كان صحيحًا، فلا يتم تجميع الاستثناءات تلقائيًا. الافتراضي خطأ.
boolean true
disableFetchTracking

الإعداد الافتراضي ل disableFetchTracking هو false، مما يعني أنه ممكن. ومع ذلك، في الإصدارات السابقة ل 2.8.10، تم تعطيله بشكل افتراضي. عند التعيين إلى true، لا يتم جمع طلبات الإحضار تلقائيا. تم تغيير الإعداد الافتراضي من true إلى false في الإصدار 2.8.0.
boolean true
disableFlushOnBeforeUnload

خطأ افتراضي. إذا كان صحيحا، لا يتم استدعاء أسلوب المسح عند تشغيل الحدث onBeforeUnload
boolean true
disableIkeyDeprecationMessage

تعطيل رسالة خطأ إهمال مفتاح تقرير عن حالة النظام. إذا كان صحيحا، فلن يتم إرسال رسائل الخطأ.
boolean صحيح
disableInstrumentationKeyValidation

إذا كان صحيحاً، يتم تجاوز التحقق من صحة مفتاح الأجهزة. القيمة الافتراضية هي خطأ.
boolean true
disableTelemetry

إذا كان صحيحًا، فلا يتم تجميع بيانات تتبع الاستخدام أو إرسالها. الافتراضي خطأ.
boolean true
disableXhr

لا تستخدم XMLHttpRequest أو XDomainRequest (ل IE < 9) بشكل افتراضي بدلا من محاولة استخدام fetch() أو sendBeacon. إذا لم يتوفر أي نقل آخر، فإنه يستخدم XMLHttpRequest
boolean true
distributedTracingMode

تعيين وضع التتبع الموزع. إذا تم تعيين وضع الذكاء الاصطناعي_AND_W3C أو وضع W3C، يتم إنشاء عناوين سياق تتبع W3C (traceparent/tracestate) وتضمينها في جميع الطلبات الصادرة. يتم توفير AI_AND_W3C للتوافق الخلفي مع أي خدمات تطبيقات Application Insights القديمة.
رقمي أو DistributedTracingModes DistributedTracing Modes.AI_AND_W3C
enableAjaxErrorStatusText

خطأ افتراضي. إذا كان صحيحا، قم بتضمين نص بيانات خطأ الاستجابة المنطقي في حدث التبعية على طلبات AJAX الفاشلة.
boolean true
enableAjaxPerfTracking

خطأ افتراضي. ضع علامة لتمكين البحث وتضمين توقيتات إضافية ل window.performance للمستعرض في قياسات Ajax (XHR وجلب) المبلغ عنها.
boolean true
enableAutoRouteTracking

تعقب تغييرات المسار تلقائياً في تطبيقات الصفحة المفردة (SPA). إذا كان صحيحا، يرسل كل تغيير مسار عرض صفحة جديد إلى Application Insights. يتم تسجيل تغييرات مسار التجزئة (example.com/foo#bar) أيضاً كطرق عرض صفحة جديدة.
ملاحظة: إذا قمت بتمكين هذا الحقل، فلا تقم بتمكين history الكائن لتكوين موجه React لأنك ستحصل على أحداث عرض صفحة متعددة.
boolean true
تمكينCorsCorrelation

إذا كان صحيحا، يضيف SDK عنوانين ("Request-Id" و"Request-Context") إلى جميع طلبات CORS لربط تبعيات AJAX الصادرة بالطلبات المقابلة على جانب الخادم. الافتراضي هو false
boolean true
enableDebug

إذا كان صحيحاً، يتم طرح بيانات تصحيح الأخطاء الداخلية واستثناء بدلاً من التسجيل، بغض النظر عن إعدادات تسجيل عدة تطوير البرامج SDK. الافتراضي خطأ.
ملاحظة: يؤدي تمكين هذا الإعداد إلى إسقاط بيانات تتبع الاستخدام كلما حدث خطأ داخلي. يمكن أن يكون مفيدا لتحديد المشكلات المتعلقة بتكوين SDK أو استخدامه بسرعة. إذا كنت لا تريد فقدان بيانات تتبع الاستخدام في أثناء تصحيح الأخطاء، ففكر في استخدام loggingLevelConsole أو loggingLevelTelemetry بدلاً من enableDebug.
boolean true
enablePerfMgr

عند التمكين (صحيح) فإنه ينشئ perfEvents المحلية للتعليمات البرمجية التي تم وضع علامة عليها لإصدار perfEvents (عبر مساعد doPerf(). يمكن استخدامه لتحديد مشكلات الأداء داخل SDK استنادا إلى استخدامك أو اختياريا داخل التعليمات البرمجية الخاصة بك.
boolean true
enableRequestHeaderTracking

إذا كان صحيحا، يتم تعقب رؤوس طلبات AJAX وإحضارها، الإعداد الافتراضي هو خطأ. إذا لم يتم تكوين ignoreHeaders، فلن يتم تسجيل عناوين Authorization وX-API-Key.
boolean true
enableResponseHeaderTracking

إذا كان صحيحا، يتم تعقب رؤوس استجابة طلب AJAX وجلبه، والافتراضي خطأ. إذا لم يتم تكوين ignoreHeaders، فلن يتم تسجيل عنوان WWW-Authenticate.
boolean true
enableSessionStorageBuffer

القيمة الافتراضية true. إذا كان صحيحاً، يتم تخزين المخزن المؤقت مع جميع بيانات تتبع الاستخدام غير المُرسلة في موقع تخزين جلسة العمل. تتم استعادة المخزن المؤقت عند تحميل الصفحة
boolean صحيح
enableUnhandledPromiseRejectionTracking

إذا كان صحيحا، يتم تحديد رفض الوعد غير المعالج تلقائيا كخطأ JavaScript. عندما يكون disableExceptionTracking صحيحا (لا تتعقب الاستثناءات)، يتم تجاهل قيمة التكوين ولا يتم الإبلاغ عن رفض الوعد غير المعالج.
boolean true
eventsLimitInMem

عدد الأحداث التي يمكن الاحتفاظ بها في الذاكرة قبل بدء SDK في إسقاط الأحداث عند عدم استخدام Session Storage (الافتراضي).
رقم 10000
استبعادRequestFromAutoTrackingPatterns

توفير طريقة لاستبعاد مسار معين من التتبع التلقائي لطلب XMLHttpRequest أو إحضار. إذا تم تعريفه، بالنسبة لطلب Ajax / fetch الذي يتطابق عنوان URL للطلب مع أنماط regex، يتم إيقاف تشغيل التعقب التلقائي. الافتراضي غير معرف.
string[] | RegExp[] غير مُعرف
featureOptIn

تعيين تفاصيل الاشتراك في الميزة.

يتوفر حقل التكوين هذا فقط في الإصدار 3.0.3 والإصدارات الأحدث.
IFeatureOptIn غير مُعرف
idLength

يحدد الطول الافتراضي المستخدم لإنشاء جلسة عمل عشوائية جديدة ومعرفات المستخدم. الإعدادات الافتراضية إلى 22، كانت القيمة الافتراضية السابقة 5 (إصدار 2.5.8 أو أقل)، إذا كنت بحاجة إلى الاحتفاظ بالحد الأقصى السابق للطول يجب تعيين القيمة إلى 5.
عددي 22
تجاهل العناوين

AJAX وإحضار عناوين الطلب والاستجابة ليتم تجاهلها في بيانات السجل. لتجاوز الإعداد الافتراضي أو تجاهله، أضف صفيفا يحتوي على كافة الرؤوس المراد استبعادها أو صفيف فارغ إلى التكوين.
string[] ["التخويل"، "X-API-Key"، "WWW-Authenticate"]
isBeaconApiDisabled

إذا كانت خاطئة، يرسل SDK جميع بيانات تتبع الاستخدام باستخدام واجهة برمجة تطبيقات Beacon
boolean صحيح
isBrowserLinkTrackingEnabled

الافتراضي خطأ. إذا كان صحيحا، فإن SDK يتعقب جميع طلبات ارتباط المستعرض.
boolean true
isRetryDisabled

خطأ افتراضي. إذا كانت خاطئة، فأعد المحاولة على 206 (نجاح جزئي)، و408 (مهلة)، و429 (طلبات كثيرة جداً)، و500 (خطأ داخلي في الخادم)، و503 (خدمة غير متوفرة)، و0 (دون اتصال، فقط في حالة الكشف عنها)
boolean true
isStorageUseDisabled

إذا كان صحيحا، لا تقوم SDK بتخزين أو قراءة أي بيانات من التخزين المحلي وتخزين الجلسة. الافتراضي خطأ.
boolean true
loggingLevelConsole

تسجيل الأخطاء الداخلية لـ Application Insights إلى وحدة التحكم.
0: إيقاف التشغيل،
1: الأخطاء الحرجة فقط،
2: كل شيء (أخطاء وتحذيرات)
عددي 0
loggingLevelTelemetry

إرسال الأخطاء الداخلية لـ Application Insights كبيانات تتبع الاستخدام.
0: إيقاف التشغيل،
1: الأخطاء الحرجة فقط،
2: كل شيء (أخطاء وتحذيرات)
عددي 1
maxAjaxCallsPerView

الافتراضي 500 - يتحكم في عدد مكالمات Ajax التي تتم مراقبتها لكل طريقة عرض صفحة. تعيين إلى -1 لمراقبة جميع اتصالات Ajax (غير المحدود) على الصفحة.
عددي 500
maxAjaxPerfLookupAttempts

الإعدادات الافتراضية معينة على 3. الحد الأقصى لعدد المرات للبحث عن توقيت window.performance (إذا كان متوفرا) مطلوب. لا تملأ جميع المستعرضات window.performance قبل الإبلاغ عن نهاية طلب XHR. لطلبات الإحضار، تتم إضافتها بعد اكتمالها.
عددي 3
maxBatchInterval

كم من الوقت تستغرق دُفعة بيانات تتبع الاستخدام قبل الإرسال (بالملّي ثانية)
عددي 15000
maxBatchSizeInBytes

الحد الأقصى لحجم دُفعة بيانات تتبع الاستخدام. إذا تجاوزت الدُفعة هذا الحد، يتم إرسالها على الفور وبدء دُفعة جديدة
عددي 10000
namePrefix

قيمة اختيارية يتم استخدامها ك postfix اسم ل localStorage واسم ملف تعريف ارتباط جلسة العمل.
سلسلة غير مُعرف
onunloadDisableBeacon

خطأ افتراضي. عند إغلاق علامة التبويب، يرسل SDK جميع بيانات تتبع الاستخدام المتبقية باستخدام واجهة برمجة تطبيقات Beacon
boolean true
onunloadDisableFetch

إذا كان الإحضار حافظا مدعوما، فلا تستخدمه لإرسال الأحداث أثناء إلغاء التحميل، فقد يستمر في العودة إلى الجلب() دون حفظ
boolean true
overridePageViewDuration

إذا كان صحيحاً، يتم تغيير السلوك الافتراضي لـ trackPageView لتسجيل نهاية الفاصل الزمني لمدة عرض الصفحة عند الاتصال بـ trackPageView. إذا كانت الحالة خطأ (false) ولم يتم توفير مدة مُخصصة لـ trackPageView، يتم حساب أداء عرض الصفحة باستخدام واجهة برمجة التطبيقات لتوقيت التنقل. الافتراضي خطأ.
boolean true
perfEvtsSendAll

عند تمكين enablePerfMgr وIPerfManager قم بإطلاق INotificationManager.perfEvent() تحدد هذه العلامة ما إذا كان يتم تشغيل حدث (وإرسالها إلى جميع وحدات الإصغاء) لجميع الأحداث (true) أو فقط للأحداث 'الأصل' (<افتراضي> خاطئ).
IPerfEvent الأصل هو حدث لا يزال فيه IPerfEvent آخر قيد التشغيل عند نقطة إنشاء الحدث ولا تكون الخاصية الأصل الخاصة به فارغة أو غير معرفة. منذ إصدار v2.5.7
boolean true
samplingPercentage

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

تعيين اسم ملحق عدة تطوير البرامج SDK. يسمح فقط بالأحرف الأبجدية. تتم إضافة اسم الملحق كبادئة إلى علامة 'ai.internal.sdkVersion' (على سبيل المثال، 'ext_javascript:2.0.0'). الوضع الافتراضي خالٍ.
سلسلة قيمة فارغة
sessionCookiePostfix

قيمة اختيارية يتم استخدامها كاسم postfix لاسم ملف تعريف ارتباط جلسة العمل. إذا لم يتم تعريفه، يتم استخدام namePrefix كاسم postfix لاسم ملف تعريف ارتباط جلسة العمل.
سلسلة غير مُعرف
sessionExpirationMs

يتم تسجيل جلسة عمل إذا كان قد استمر لهذا المقدار من الوقت بالملّي ثانية. الافتراضي هو 24 ساعة
عددي 86400000
sessionRenewalMs

يتم تسجيل جلسة عمل إذا كان المستخدم غير نشط لهذا المقدار من الوقت بالملّي ثانية. الافتراضي هو 30 دقيقة
عددي 1800000
خنقMgrCfg

تعيين خنق تكوين mgr حسب المفتاح.

يتوفر حقل التكوين هذا فقط في الإصدار 3.0.3 والإصدارات الأحدث.
{[key: number]: IThrottleMgrConfig} غير مُعرف
userCookiePostfix

قيمة اختيارية يتم استخدامها ك postfix اسم لاسم ملف تعريف ارتباط المستخدم. إذا لم يتم تحديده، فلن تتم إضافة postfix على اسم ملف تعريف ارتباط المستخدم.
سلسلة غير مُعرف

بدءا من الإصدار 2.6.0، يوفر Azure Application Insights JavaScript SDK إدارة ملفات تعريف الارتباط المستندة إلى المثيل التي يمكن تعطيلها وإعادة تمكينها بعد التهيئة.

إذا قمت بتعطيل ملفات تعريف الارتباط أثناء التهيئة باستخدام disableCookiesUsage أو cookieCfg.enabled التكوينات، يمكنك إعادة تمكينها باستخدام setEnabled وظيفة كائن ICookieMgr.

تحل إدارة ملفات تعريف الارتباط المستندة إلى المثيل محل الوظائف العمومية السابقة ل CoreUtils و disableCookies()setCookie()getCookie()و و.deleteCookie()

للاستفادة من تحسينات اهتزاز الشجرة المقدمة في الإصدار 2.6.0، يوصى بعدم استخدام الوظائف العمومية بعد الآن.

ICookieMgrConfig هو تكوين ملف تعريف ارتباط لإدارة ملفات تعريف الارتباط المستندة إلى المثيل المضافة في 2.6.0. تسمح لك الخيارات المتوفرة بتمكين أو تعطيل استخدام ملفات تعريف الارتباط بواسطة SDK. يمكنك أيضا تعيين مجالات ومسارات ملفات تعريف الارتباط المخصصة وتخصيص الوظائف لجلب ملفات تعريف الارتباط وإعدادها وحذفها.

يتم تعريف خيارات ICookieMgrConfig في الجدول التالي.

Name نوع Default ‏‏الوصف
مُمكَّن boolean صحيح يستخدم المثيل الحالي ل SDK هذا المنطقي للإشارة إلى ما إذا كان استخدام ملفات تعريف الارتباط ممكنا أم لا. إذا كان خطأ، فإن مثيل SDK الذي تمت تهيئته بواسطة هذا التكوين لا يخزن أو يقرأ أي بيانات من ملفات تعريف الارتباط.
المجال سلسلة قيمة فارغة مجال ملفات تعريف الارتباط المخصص. من المفيد إذا كنت تريد مشاركة ملفات تعريف الارتباط Application Insights عبر المجالات الفرعية. إذا لم يتم توفيرها، فاستخدم القيمة الجذرية cookieDomain.
path سلسلة / تحديد المسار لاستخدام ملف تعريف الارتباط، إذا لم يتم توفيره، فإنه يستخدم أي قيمة من قيمة الجذر cookiePath .
تجاهل الحسابات string[] غير مُعرف حدد اسم (أسماء) ملفات تعريف الارتباط التي سيتم تجاهلها، مما يؤدي إلى عدم قراءة أو كتابة أي اسم ملف تعريف ارتباط مطابق. قد لا يزال يتم إزالتها أو حذفها بشكل صريح. لا تحتاج إلى تكرار الاسم في blockedCookies التكوين. (منذ الإصدار 2.8.8)
المجموعات المحظورة string[] غير مُعرف حدد اسم (أسماء) ملفات تعريف الارتباط التي لن تكتب أبدا. يمنع إنشاء أي اسم ملف تعريف ارتباط أو تحديثه، ولكن لا يزال من الممكن قراءته ما لم يتم تضمينه أيضا في ignoreCookies. قد لا يزال يتم إزالتها أو حذفها بشكل صريح. إذا لم يتم توفيره، فسيتم تعيينه افتراضيا إلى نفس القائمة في ignoreCookies. (منذ الإصدار 2.8.8)
getCookie (name: string) => string قيمة فارغة دالة لإحضار قيمة ملف تعريف الارتباط المسماة، إذا لم يتم توفيرها، فإنها تستخدم تحليل ملف تعريف الارتباط الداخلي / التخزين المؤقت.
setCookie (name: string, value: string) => void قيمة فارغة دالة لتعيين ملف تعريف الارتباط المسمى بالقيمة المحددة، الذي يتم استدعاؤه فقط عند إضافة ملف تعريف ارتباط أو تحديثه.
delCookie (name: string, value: string) => void قيمة فارغة دالة لحذف ملف تعريف الارتباط المسمى مع القيمة المحددة، مفصولة عن setCookie لتجنب الحاجة إلى تحليل القيمة لتحديد ما إذا كان تتم إضافة ملف تعريف الارتباط أو إزالته. إذا لم يتم توفيره فإنه يستخدم تحليل ملفات تعريف الارتباط الداخلية / التخزين المؤقت.

مخطط المصدر

يساعدك دعم خريطة المصدر على تصحيح أخطاء تعليمة JavaScript البرمجية التي تم تصغيرها مع القدرة على توحيد مكامن الاستدعاء الملغومة لبيانات تتبع الاستخدام للاستثناء.

  • متوافق مع جميع عمليات التكامل الحالية في لوحة تفاصيل الاستثناء
  • يدعم جميع JavaScript SDKs الحالية والمستقبلية، بما في ذلك Node.JS، دون الحاجة إلى ترقية SDK

يدعم Application Insights تحميل خرائط المصدر إلى حاوية كائن ثنائي كبير الحجم لحساب Azure Storage. يمكنك استخدام خرائط المصدر لتوحيد مكدسات الاستدعاءات الموجودة في صفحة تفاصيل المعاملة من طرف إلى طرف. يمكنك أيضا استخدام خرائط المصدر لتوحيد أي استثناء تم إرساله بواسطة JavaScript SDK أو Node.js SDK.

Screenshot that shows selecting the option to unminify a call stack by linking with a storage account.

إنشاء حساب تخزين جديد وحاوية كائن ثنائي كبير الحجم

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

  1. إنشاء حساب تخزين جديد.

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

    Screenshot that shows setting the container access level to Private.

دفع خرائط المصدر إلى حاوية الكائن الثنائي كبير الحجم

دمج مسار النشر المستمر مع حساب التخزين الخاص بك عن طريق تكوينه لتحميل خرائط المصدر تلقائيا إلى حاوية blob المكونة.

يمكنك تحميل خرائط المصدر إلى حاوية Azure Blob Storage بنفس بنية المجلد التي تم تجميعها ونشرها معها. حالة الاستخدام الشائعة هي بادئة مجلد نشر بإصداره، على سبيل المثال، 1.2.3/static/js/main.js. عند التوحيد عبر حاوية كائن ثنائي كبير الحجم ل Azure تسمى sourcemaps، يحاول المسار إحضار خريطة مصدر موجودة في sourcemaps/1.2.3/static/js/main.js.map.

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

Screenshot that shows adding an Azure file copy task to your pipeline to upload your source maps to Azure Blob Storage.

تكوين مورد Application Insights باستخدام حساب تخزين خريطة المصدر

لديك خياران لتكوين مورد Application Insights الخاص بك باستخدام حساب تخزين خريطة المصدر.

علامة التبويب تفاصيل المعاملة من طرف إلى طرف

من علامة التبويب تفاصيل المعاملة من طرف إلى طرف، حدد توحيد. تكوين المورد الخاص بك إذا لم يتم تكوينه.

  1. في مدخل Microsoft Azure، اعرض تفاصيل استثناء تم تصغيره.
  2. تحديد تكبير.
  3. إذا لم يتم تكوين المورد الخاص بك، فكونه.
علامة تبويب الخصائص

لتكوين أو تغيير حساب التخزين أو حاوية الكائن الثنائي كبير الحجم المرتبطة بمورد Application Insights الخاص بك:

  1. انتقل إلى علامة التبويب Properties لمورد Application Insights.

  2. حدد Change source map Blob Container.

  3. حدد حاوية كائن ثنائي كبير الحجم مختلفة كحاوية خريطة المصدر.

  4. حدد تطبيق.

    Screenshot that shows reconfiguring your selected Azure blob container on the Properties pane.

عرض مخزن الاستدعاءات غير المنقوز

لعرض مكدس الاستدعاءات غير المحدد، حدد عنصر بيانات تتبع الاستخدام للاستثناء في مدخل Microsoft Azure، وابحث عن الخرائط المصدر التي تطابق مكدس الاستدعاءات، واسحب الخرائط المصدر وأفلتها في مكدس الاستدعاءات في مدخل Microsoft Azure. يجب أن يكون للمخطط المصدر نفس اسم الملف المصدر لإطار مكدس، ولكن مع ملحق map .

إذا واجهت مشكلات تتضمن دعم مخطط المصدر لتطبيقات JavaScript، فراجع استكشاف أخطاء دعم مخطط المصدر لتطبيقات JavaScript وإصلاحها.

Animation demonstrating unminify feature.

اهتزاز الشجرة

يزيل اهتزاز الشجرة التعليمات البرمجية غير المستخدمة من حزمة JavaScript النهائية.

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

تحسينات وتوصيات تهز الشجرة

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

  • CoreUtils
  • EventHelper
  • Util
  • UrlHelper
  • DateTimeUtils
  • ConnectionStringParser

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

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

وظائف وبدائل مهملة تهز الشجرة

ينطبق هذا القسم عليك فقط إذا كنت تستخدم الدالات المهملة وتريد تحسين حجم الحزمة. نوصي باستخدام وظائف الاستبدال لتقليل الحجم ودعم جميع إصدارات Internet Explorer.

القائمه استبدال
CoreUtils @microsoft/applicationinsights-core-js
CoreUtils._canUseCookies لا يوجد. لا تستخدم لأنها تتسبب في تضمين كافة مرجع CoreUtils في التعليمات البرمجية النهائية.
أعد بناء التعليمات البرمجية لمعالجة ملفات تعريف الارتباط لاستخدام appInsights.getCookieMgr().setEnabled(true/false) لتعيين القيمة والتحقق appInsights.getCookieMgr().isEnabled() من القيمة.
CoreUtils.isTypeof isTypeof
CoreUtils.isUndefined isUndefined
CoreUtils.isNullOrUndefined isNullOrUndefined
CoreUtils.hasOwnProperty hasOwnProperty
CoreUtils.isFunction isFunction
CoreUtils.isObject isObject
CoreUtils.isDate isDate
CoreUtils.isArray isArray
CoreUtils.isError isError
CoreUtils.isString isString
CoreUtils.isNumber رقم isNumber
CoreUtils.isBoolean isBoolean
CoreUtils.toISOString toISOString أو getISOString
CoreUtils.arrForEach arrForEach
CoreUtils.arrIndexOf arrIndexOf
CoreUtils.arrMap arrMap
CoreUtils.arrReduce arrReduce
CoreUtils.strTrim strTrim
CoreUtils.objCreate objCreateFn
CoreUtils.objKeys objKeys
CoreUtils.objDefineAccessors objDefineAccessors
CoreUtils.addEventHandler addEventHandler
CoreUtils.dateNow التاريخ الآن
CoreUtils.isIE isIE
CoreUtils.disableCookies disableCookies
يؤدي الرجوع إلى أي منهما إلى الإشارة إلى CoreUtils للتوافق مع الإصدارات السابقة.
إعادة بناء التعليمات البرمجية لمعالجة ملفات تعريف الارتباط لاستخدام appInsights.getCookieMgr().setEnabled(false)
CoreUtils.newGuid newGuid
CoreUtils.perfNow perfNow
CoreUtils.newId معرف جديد
CoreUtils.randomValue قيمة عشوائية
CoreUtils.random32 random32
CoreUtils.mwcRandomSeed mwcRandomSeed
CoreUtils.mwcRandom32 mwcRandom32
CoreUtils.generateW3CId generateW3CId
EventHelper @microsoft/applicationinsights-core-js
EventHelper.Attach حدث إرفاق
EventHelper.AttachEvent حدث إرفاق
EventHelper.Detach فصل الحدث
EventHelper.DetachEvent فصل الحدث
Util @microsoft/applicationinsights-common-js
Util.NotSpecified strNotSpecified
Util.createDomEvent createDomEvent
Util.disableStorage utlDisableStorage
Util.isInternalApplicationInsightsEndpoint isInternalApplicationInsightsEndpoint
Util.canUseLocalStorage utlCanUseLocalStorage
Util.getStorage utlGetLocalStorage
Util.setStorage utlSetLocalStorage
Util.removeStorage utlRemoveStorage
Util.canUseSessionStorage utlCanUseSessionStorage
Util.getSessionStorageKeys utlGetSessionStorageKeys
Util.getSessionStorage utlGetSessionStorage
Util.setSessionStorage utlSetSessionStorage
Util.removeSessionStorage utlRemoveSessionStorage
Util.disableCookies disableCookies
يؤدي الرجوع إلى أي منهما إلى الإشارة إلى CoreUtils للتوافق مع الإصدارات السابقة.
إعادة بناء التعليمات البرمجية لمعالجة ملفات تعريف الارتباط لاستخدام appInsights.getCookieMgr().setEnabled(false)
Util.canUseCookies canUseCookies
يؤدي الرجوع إلى أي منهما إلى الإشارة إلى CoreUtils للتوافق مع الإصدارات السابقة.
إعادة بناء التعليمات البرمجية لمعالجة ملفات تعريف الارتباط لاستخدام appInsights.getCookieMgr().isEnabled()
Util.disallowsSameSiteNone uaDisallowsSameSiteNone
Util.setCookie coreSetCookie
يؤدي الرجوع إلى الإشارة إلى CoreUtils للتوافق مع الإصدارات السابقة.
إعادة بناء التعليمات البرمجية لمعالجة ملفات تعريف الارتباط لاستخدام appInsights.getCookieMgr().set(name: string, value: string)
Util.stringToBoolOrDefault stringToBoolOrDefault
Util.getCookie coreGetCookie
يؤدي الرجوع إلى الإشارة إلى CoreUtils للتوافق مع الإصدارات السابقة.
إعادة بناء التعليمات البرمجية لمعالجة ملفات تعريف الارتباط لاستخدام appInsights.getCookieMgr().get(name: string)
Util.deleteCookie coreDeleteCookie
يؤدي الرجوع إلى الإشارة إلى CoreUtils للتوافق مع الإصدارات السابقة.
إعادة بناء التعليمات البرمجية لمعالجة ملفات تعريف الارتباط لاستخدام appInsights.getCookieMgr().del(name: string, path?: string)
Util.trim strTrim
Util.newId معرف جديد
Util.random32 ---
لا يوجد استبدال، أعد بناء التعليمات البرمجية الخاصة بك لاستخدام random32 الأساسية (صحيح)
Util.generateW3CId generateW3CId
Util.isArray isArray
Util.isError isError
Util.isDate isDate
Util.toISOStringForIE8 toISOString
Util.getIEVersion getIEVersion
Util.msToTimeSpan msToTimeSpan
Util.isCrossOriginError isCrossOriginError
Util.dump dumpObj
Util.getExceptionName getExceptionName
Util.addEventHandler حدث إرفاق
Util.IsBeaconApiSupported isBeaconApiSupported
Util.getExtension getExtensionByName
UrlHelper @microsoft/applicationinsights-common-js
UrlHelper.parseUrl urlParseUrl
UrlHelper.getAbsoluteUrl urlGetAbsoluteUrl
UrlHelper.getPathName urlGetPathName
UrlHelper.getCompeteUrl urlGetCompleteUrl
UrlHelper.parseHost urlParseHost
UrlHelper.parseFullHost urlParseFullHost
DateTimeUtils @microsoft/applicationinsights-common-js
DateTimeUtils.Now dateTimeUtilsNow
DateTimeUtils.GetDuration dateTimeUtilsDuration
الاتصال StringParser @microsoft/applicationinsights-common-js
الاتصال ionStringParser.parse تحليل الاتصال String

إعلامات الخدمة

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

حاليا، لا يتم إرسال إعلامات نشطة.

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

راجع «dedicated troubleshooting article».

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

يقدم هذا القسم إجابات للأسئلة الشائعة.

كيف يمكنني تحديث تكوين خادم الجهات الخارجية ل JavaScript SDK؟

يحتاج الخادم إلى أن يكون قادراً على قبول الاتصالات مع تلك العناوين الموجودة. الاعتماد على التكوين Access-Control-Allow-Headers من جانب الخادم غالباً ما يكون من الضروري لتوسيع القائمة من جانب الخادم عن طريق إضافة Request-Id وRequest-Context، وtraceparent (عنوان W3C الموزع).

الرؤوس التي تسمح بالتحكم في الوصول: Request-Id، وtraceparent، وRequest-Context، و<your header>

كيف يمكنني تعطيل التتبع الموزع ل JavaScript SDK؟

يمكن تعطيل التتبع الموزع في التكوين.

هل يتم التقاط استجابات HTTP 502 و503 دائما بواسطة Application Insights؟

‏‏لا. لا يتم دائما التقاط أخطاء "بوابة غير صحيحة 502" و"خدمة 503 غير متوفرة" بواسطة Application Insights. إذا كان يتم استخدام JavaScript من جانب العميل فقط للمراقبة، فسيكون هذا السلوك متوقعا لأنه يتم إرجاع استجابة الخطأ قبل الصفحة التي تحتوي على رأس HTML مع عرض قصاصة JavaScript للمراقبة.

إذا تم إرسال استجابة 502 أو 503 من خادم مع تمكين المراقبة من جانب الخادم، يتم تجميع الأخطاء بواسطة Application Insights SDK.

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

في هذا السيناريو، قد يتم إرجاع استجابة 502 أو 503 إلى عميل بسبب مشكلة في طبقة الوكيل العكسي، لذلك لا يتم التقاطها خارج الصندوق بواسطة Application Insights. للمساعدة في اكتشاف المشكلات في هذه الطبقة، قد تحتاج إلى إعادة توجيه السجلات من الوكيل العكسي إلى Log Analytics وإنشاء قاعدة مخصصة للتحقق من استجابات 502 أو 503. لمعرفة المزيد حول الأسباب الشائعة لأخطاء 502 و503، راجع استكشاف أخطاء HTTP ل "502 بوابة غير صحيحة" و"خدمة 503 غير متوفرة" في Azure App Service وإصلاحها.

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