تصدير القياس عن بعد من Application Insights

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

هام

قبل إعداد التصدير المستمر، هناك بعض البدائل التي قد ترغب في مراعاتها:

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

المناطق المدعومة

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

  • جنوب شرق آسيا
  • كندا الوسطى
  • وسط الهند
  • شمال أوروبا
  • جنوب المملكة المتحدة
  • شرق أستراليا
  • شرق اليابان
  • وسط كوريا
  • فرنسا الوسطى
  • شرق آسيا
  • غرب الولايات المتحدة
  • وسط الولايات المتحدة
  • شرق الولايات المتحدة 2
  • جنوب وسط الولايات المتحدة
  • منطقة غرب الولايات المتحدة الأمريكية 2
  • شمال جنوب أفريقيا
  • North Central US
  • جنوب البرازيل
  • شمال سويسرا
  • جنوب شرق أستراليا
  • غرب المملكة المتحدة
  • وسط غرب ألمانيا
  • غرب سويسرا
  • أستراليا الوسطى 2
  • وسط الإمارات العربية المتحدة
  • جنوب شرق البرازيل
  • أستراليا الوسطى
  • شمال الإمارات العربية المتحدة
  • شرق النرويج
  • غرب اليابان

ملاحظة

سيستمر التصدير المستمر في العمل للتطبيقات في شرق الولايات المتحدة وغرب أوروبا إذا تم تكوين التصدير قبل 23 فبراير 2021. لا يمكن تكوين قواعد التصدير المستمر الجديدة على أي تطبيق في شرق الولايات المتحدة أو غرب أوروبا، بغض النظر عن وقت إنشاء التطبيق.

تصدير التكوين المتقدم للتخزين المستمر

لا يدعم التصدير المستمر ميزات أو تكوينات Azure Storage التالية:

إنشاء تصدير مستمر

ملاحظة

لا يمكن للتطبيق تصدير أكثر من 3 تيرابايت من البيانات يوميا. إذا تم تصدير أكثر من 3 تيرابايت يوميا، فسيتم تعطيل التصدير. للتصدير دون حد، استخدم التصدير المستند إلى إعدادات التشخيص.

  1. في مورد Application Insights لتطبيقك ضمن Configure على اليسار، افتح Continuous export وحدد Add.

  2. اختر أنواع بيانات تتبع الاستخدام التي تريد تصديرها.

  3. إنشاء حساب Azure Storage أو تحديده حيث تريد تخزين البيانات. لمزيد من المعلومات حول خيارات تسعير التخزين، راجع صفحة التسعير.

    حدد Add>Export destination>Storage account. ثم إما إنشاء متجر جديد أو اختيار متجر موجود.

    تحذير

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

  4. إنشاء حاوية في التخزين أو تحديدها.

ملاحظة

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

قد يكون هناك تأخير لمدة ساعة تقريباً قبل ظهور البيانات في المخزن.

بعد الانتهاء من التصدير الأول، ستجد البنية التالية في حاوية Blob Storage. (تختلف هذه البنية اعتمادا على البيانات التي تجمعها.)

الاسم الوصف
التوفر تقارير اختبارات الويب المتوفرة .
الحدث أحداث مخصصة تم إنشاؤها بواسطة TrackEvent().
استثناءات تقارير عن الاستثناءات في الخادم وفي المستعرض.
الرسائل أرسلت بواسطة TrackTrace، وبواسطة محولات تسجيل.
المقاييس تم إنشاؤه بواسطة استدعاء API المتري.
PerformanceCounters عدادات الأداء التي تم جمعها بواسطة Application Insights.
الطلبات أرسلت من قبل TrackRequest. تستخدم الوحدات القياسية الطلبات للإبلاغ عن وقت استجابة الخادم، والتي يتم قياسها على الخادم.

تحرير التصدير المستمر

حدد التصدير المستمر وحدد حساب التخزين لتحريره.

إيقاف التصدير المستمر

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

لإيقاف التصدير نهائياً، قم بحذفه. ولا يؤدي القيام بذلك إلى حذف بياناتك من التخزين.

ألا تستطيع إضافة أو تغيير تصدير؟

لإضافة أو تغيير عمليات التصدير، تحتاج إلى حقوق وصول المالك أو المساهم أو المساهمdk في Application Insights. تعرف على الأدوار.

ما هي الأحداث التي تحصل عليها؟

البيانات المصدرة هي البيانات الأولية التي نتلقاها من تطبيقك مع بيانات الموقع المضافة من عنوان IP الخاص بالعميل.

لا يتم تضمين البيانات التي تم تجاهلها عن طريق أخذ العينات في البيانات التي تم تصديرها.

لا يتم تضمين القياسات المحسوبة الأخرى. على سبيل المثال، لا نقوم بتصدير متوسط استخدام وحدة المعالجة المركزية، لكننا نقوم بتصدير القياس الخام عن بُعد الذي يتم من خلاله حساب المتوسط.

تتضمن البيانات أيضاً نتائج أي اختبارات ويب متوفرة قمت بإعدادها.

ملاحظة

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

فحص البيانات

يمكنك فحص التخزين مباشرة في المدخل. حدد الصفحة الرئيسية في القائمة الموجودة في أقصى اليسار. في الجزء العلوي حيث تظهر خدمات Azure، حدد حسابات التخزين. حدد اسم حساب التخزين، وفي صفحة Overview حدد Services>Blobs. وأخيرا، حدد اسم الحاوية.

لفحص Azure Storage في Visual Studio، حدد View>Cloud Explorer. إذا لم يكن لديك أمر القائمة هذا، فستحتاج إلى تثبيت Azure SDK. افتح مربع الحوار مشروع جديد ، وقم بتوسيع Visual C#/Cloud، وحدد الحصول على Microsoft Azure SDK ل .NET.

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

لقطة شاشة تعرض فحص مخزن الكائنات الثنائية كبيرة الحجم باستخدام أداة مناسبة.

ملاحظة

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

التاريخ والوقت بالتوقيت العالمي المتفق عليه ووقت إيداع بيانات تتبع الاستخدام في المتجر، وليس الوقت الذي تم إنشاؤه فيه. لهذا السبب، إذا قمت بكتابة التعليمات البرمجية لتنزيل البيانات، فيمكنها التنقل خطيا عبر البيانات.

إليك شكل المسار:

$"{applicationName}_{instrumentationKey}/{type}/{blobDeliveryTimeUtc:yyyy-MM-dd}/{ blobDeliveryTimeUtc:HH}/{blobId}_{blobCreationTimeUtc:yyyyMMdd_HHmmss}.blob"

المكان:

  • blobCreationTimeUtc هو الوقت الذي تم فيه إنشاء الكائن الثنائي كبير الحجم في التخزين المرحلي الداخلي.
  • blobDeliveryTimeUtc هو الوقت الذي يتم فيه نسخ الكائن الثنائي كبير الحجم إلى تخزين وجهة التصدير.

تنسيق البيانات

يتم تنسيق البيانات بحيث:

  • كل كائن ثنائي كبير الحجم هو ملف نصي يحتوي على عدة \nصفوف مفصولة. يحتوي على القياس عن بعد الذي تمت معالجته خلال فترة زمنية تبلغ نصف دقيقة تقريباً.

  • يمثل كل صف نقطة بيانات تتبع الاستخدام، مثل طلب أو طريقة عرض صفحة.

  • كل صف هو مستند JSON غير منسق. إذا كنت تريد عرض الصفوف، فافتح الكائن الثنائي كبير الحجم في Visual Studio وحدد تحرير>ملف تنسيقمتقدم>.

    لقطة شاشة تعرض عرض بيانات تتبع الاستخدام باستخدام أداة مناسبة

الفترات الزمنية محددة بعلامات، حيث 10000 علامة تجزئة = 1 مللي ثانية. على سبيل المثال، تُظهر هذه القيم وقتاً قدره 1 مللي ثانية لإرسال طلب من المتصفح، و3 مللي ثانية لاستلامه، و1.8 ثانية لمعالجة الصفحة في المتصفح:

"sendRequest": {"value": 10000.0},
"receiveRequest": {"value": 30000.0},
"clientProcess": {"value": 17970000.0}

للحصول على مرجع نموذج بيانات مفصل أنواع الخصائص والقيم، راجع نموذج بيانات تصدير Application Insights.

معالجة البيانات

على نطاق صغير، يمكنك كتابة بعض التعليمات البرمجية لفصل بياناتك وقراءتها في جدول بيانات. على سبيل المثال:

private IEnumerable<T> DeserializeMany<T>(string folderName)
{
   var files = Directory.EnumerateFiles(folderName, "*.blob", SearchOption.AllDirectories);
   foreach (var file in files)
   {
      using (var fileReader = File.OpenText(file))
      {
         string fileContent = fileReader.ReadToEnd();
         IEnumerable<string> entities = fileContent.Split('\n').Where(s => !string.IsNullOrWhiteSpace(s));
         foreach (var entity in entities)
         {
            yield return JsonConvert.DeserializeObject<T>(entity);
         }
      }
   }
}

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

حذف بياناتك القديمة

أنت مسؤول عن إدارة سعة التخزين الخاصة بك وحذف البيانات القديمة، إذا لزم الأمر.

إعادة إنشاء مفتاح التخزين الخاص بك

إذا قمت بتغيير مفتاح التخزين الخاص بك، سيتوقف التصدير المستمر عن العمل. سترى إشعاراً في حسابك في Azure.

حدد علامة التبويب تصدير مستمر وقم بتحرير التصدير. قم بتحرير قيمةتصدير الوجهة ، ولكن اترك نفس التخزين محددا. حدد «موافق» للتأكيد.

ستتم إعادة تشغيل التصدير المستمر.

تصدير عينات

للحصول على عينات التصدير، راجع:

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

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

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

هل يمكنني الحصول على تنزيل مخطط لمرة واحدة؟

يمكنك القيام بذلك. في الجزء العلوي من علامة التبويب، حدد Export Data.

لقد قمت بإعداد تصدير، ولكن لماذا لا توجد بيانات في متجري؟

هل تلقت Application Insights أي تتبع عن بُعد من تطبيقك منذ أن قمت بإعداد التصدير؟ ستتلقى بيانات جديدة فقط.

حاولت إعداد تصدير، ولكن لماذا تم رفض وصولي؟

إذا كان الحساب مملوكا لمؤسستك، فيجب أن تكون عضوا في مجموعات المالكين أو المساهمين.

هل يمكنني التصدير مباشرة إلى متجري الداخلي؟

كلا. يعمل محرك التصدير الخاص بنا حاليا فقط مع Azure Storage في الوقت الحالي.

هل هناك أي حد لكمية البيانات التي تضعها في متجري؟

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

كم عدد النقط التي يجب أن أراها في المخزن؟

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

لقد قمت بإعادة إنشاء المفتاح إلى التخزين الخاص بي، أو قمت بتغيير اسم الحاوية، ولكن لماذا لا يعمل التصدير؟

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

هل يمكنني إيقاف التصدير مؤقتاً؟

نعم. حدد تعطيل.

نماذج التعليمات البرمجية

التصدير المستند إلى إعدادات التشخيص

يفضل تصدير إعدادات التشخيص لأنه يوفر ميزات إضافية:

  • حسابات Azure Storage مع الشبكات الظاهرية وجدران الحماية والارتباطات الخاصة.
  • التصدير إلى Azure Event Hubs.

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

  • المخطط المحدث.
  • يتم إرسال بيانات التتبع عن بُعد فور وصولها بدلاً من التحميلات المجمعة.

هام

قد يتم تكبد تكاليف إضافية بسبب زيادة في المكالمات إلى الوجهة، مثل حساب التخزين.

للترحيل إلى تصدير إعدادات التشخيص:

  1. تمكين إعدادات التشخيص على Application Insights الكلاسيكي.
  2. تكوين تصدير البيانات: حدد Diagnostic settings>Add diagnostic setting من داخل مورد Application Insights.
  3. تحقق من تكوين تصدير البيانات الجديد بنفس طريقة تكوين التصدير المستمر

تنبيه

إذا كنت ترغب في تخزين سجلات التشخيص في مساحة عمل Log Analytics، فهناك نقطتان يجب مراعاتهما لتجنب رؤية البيانات المكررة في Application Insights:

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

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

نموذج بيانات تصدير Application Insights

يسرد هذا الجدول خصائص القياس عن بُعد المُرسلة من تطبيقات SDK لـ Application Insights إلى البوابة الإلكترونية. سترى هذه الخصائص في إخراج البيانات من Continuous Export. كما تظهر في عوامل تصفية الخصائص في Metric ExplorerوDiagnostic Search.

النقاط التي يجب ملاحظتها:

  • [0]في هذه الجداول تشير إلى نقطة في المسار يجب فيها إدراج فهرس; لكنها ليست دائماً صفر.
  • المدد الزمنية هي في أعشار ميكروثانية، حتى 10000000 == 1 ثانية.
  • التواريخ والأوقات هي UTC، وتعطى في شكل ISO yyyy-MM-DDThh:mm:ss.sssZ

مثال

// A server report about an HTTP request
{
  "request": [
    {
      "urlData": { // derived from 'url'
        "host": "contoso.org",
        "base": "/",
        "hashTag": ""
      },
      "responseCode": 200, // Sent to client
      "success": true, // Default == responseCode<400
      // Request id becomes the operation id of child events
      "id": "fCOhCdCnZ9I=",  
      "name": "GET Home/Index",
      "count": 1, // 100% / sampling rate
      "durationMetric": {
        "value": 1046804.0, // 10000000 == 1 second
        // Currently the following fields are redundant:
        "count": 1.0,
        "min": 1046804.0,
        "max": 1046804.0,
        "stdDev": 0.0,
        "sampledValue": 1046804.0
      },
      "url": "/"
    }
  ],
  "internal": {
    "data": {
      "id": "7f156650-ef4c-11e5-8453-3f984b167d05",
      "documentVersion": "1.61"
    }
  },
  "context": {
    "device": { // client browser
      "type": "PC",
      "screenResolution": { },
      "roleInstance": "WFWEB14B.fabrikam.net"
    },
    "application": { },
    "location": { // derived from client ip
      "continent": "North America",
      "country": "United States",
      // last octagon is anonymized to 0 at portal:
      "clientip": "168.62.177.0",
      "province": "",
      "city": ""
    },
    "data": {
      "isSynthetic": true, // we identified source as a bot
      // percentage of generated data sent to portal:
      "samplingRate": 100.0,
      "eventTime": "2016-03-21T10:05:45.7334717Z" // UTC
    },
    "user": {
      "isAuthenticated": false,
      "anonId": "us-tx-sn1-azr", // bot agent id
      "anonAcquisitionDate": "0001-01-01T00:00:00Z",
      "authAcquisitionDate": "0001-01-01T00:00:00Z",
      "accountAcquisitionDate": "0001-01-01T00:00:00Z"
    },
    "operation": {
      "id": "fCOhCdCnZ9I=",
      "parentId": "fCOhCdCnZ9I=",
      "name": "GET Home/Index"
    },
    "cloud": { },
    "serverDevice": { },
    "custom": { // set by custom fields of track calls
      "dimensions": [ ],
      "metrics": [ ]
    },
    "session": {
      "id": "65504c10-44a6-489e-b9dc-94184eb00d86",
      "isFirst": true
    }
  }
}

السياق

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

المسار النوع ملاحظات
context.custom.dimensions [0] كائن [ ] أزواج سلسلة قيمة المفتاح التي تم تعيينها بواسطة معلمة خصائص مخصصة. الحد الأقصى لطول المفتاح 100، قيم الحد الأقصى للطول 1024. أكثر من 100 قيمة فريدة، يمكن البحث في الخاصية ولكن لا يمكن استخدامها للتجزئة. الحد الأقصى 200 مفاتيح لكل ikey.
context.custom.metrics [0] كائن [ ] أزواج القيمة المفتاحية التي تم تعيينها بواسطة معلمة القياسات المخصصة وTrackMetrics. الحد الأقصى لطول المفتاح 100، قد تكون القيم رقمية.
context.data.eventTime سلسلة UTC
context.data.isSynthetic منطقي يبدو أن الطلب يأتي من اختبار بوت أو الويب.
context.data.samplingRate العدد النسبة المئوية لقياس بيانات تتبع الاستخدام التي تم إنشاؤها بواسطة SDK التي يتم إرسالها إلى المدخل. النطاق: 0.0-100.0
context.device عنصر جهاز العميل
context.device.browser سلسلة IE, Chrome, ...
context.device.browserVersion سلسلة Chrome 48.0, ...
context.device.deviceModel سلسلة
context.device.deviceName سلسلة
context.device.id سلسلة
context.device.locale سلسلة en-GB, de-DE, ...
context.device.network سلسلة
context.device.oemName سلسلة
context.device.os سلسلة
context.device.osVersion سلسلة نظام التشغيل المضيف
context.device.roleInstance سلسلة معرف مضيف الخادم
context.device.roleName سلسلة
context.device.screenResolution سلسلة
context.device.type سلسلة الكمبيوتر، متصفح، ...
context.location عنصر مشتق من clientip.
context.location.city سلسلة مشتق من clientip، إذا كان معروفاً
context.location.clientip سلسلة المثمن الأخير مجهول إلى 0.
context.location.continent سلسلة
context.location.country سلسلة
context.location.province سلسلة الولاية أو المقاطعة
context.operation.id سلسلة يتم عرض العناصر التي لها نفس operation id باعتبارها عناصر ذات صلة في المدخل. عادة ما تكون request id.
context.operation.name سلسلة عنوان URL أو اسم الطلب
context.operation.parentId سلسلة يسمح بالعناصر المرتبطة المتداخلة.
context.session.id سلسلة Id مجموعة من العمليات من نفس المصدر. تشير فترة 30 دقيقة بدون عملية إلى نهاية الجلسة.
context.session.isFirst منطقي
context.user.accountAcquisitionDate سلسلة
context.user.accountId سلسلة
context.user.anonAcquisitionDate سلسلة
context.user.anonId سلسلة
context.user.authAcquisitionDate سلسلة معرفات المستخدم المصادق عليها
context.user.authId سلسلة
context.user.isAuthenticated منطقي
context.user.storeRegion سلسلة
internal.data.documentVersion سلسلة
internal.data.id سلسلة Unique idالتي تم تعيينها عند تناول عنصر إلى Application Insights

الأحداث

الأحداث المخصصة التي تم إنشاؤها بواسطة TrackEvent().

المسار النوع ملاحظات
عدد الأحداث [0] عدد صحيح 100/(معدل أخذ العينات). على سبيل المثال، 4 => 25%
اسم الحدث [0] سلسلة اسم الحدث الحد الأقصى للطول 250.
الحدث [0] رابط سلسلة
الحدث [0] urlData.base سلسلة
الحدث [0] urlData.host سلسلة

استثناءات

تقارير الاستثناءات في الملقم وفي المستعرض.

المسار النوع ملاحظات
تجميع basicException [0] سلسلة
عدد basicException [0] عدد صحيح 100/(معدل أخذ العينات). على سبيل المثال، 4 => 25%
مجموعة الاستثناء basicException [0] سلسلة
نوع الاستثناء basicException [0] سلسلة
basicException [0] failedUserCodeMethod سلسلة
basicException [0] failedUserCodeAssembly سلسلة
basicException [0] handledAt سلسلة
basicException [0] hasFullStack منطقي
basicException [0] id سلسلة
طريقة basicException [0] سلسلة
رسالة basicException [0] سلسلة رسالة الاستثناء. أقصى طول 10 آلاف.
basicException [0] outerExceptionMessage سلسلة
basicException [0] outerExceptionThrownAtAssembly سلسلة
basicException [0] outerExceptionThrownAtMethod سلسلة
basicException [0] outerExceptionType سلسلة
basicException [0] outerId سلسلة
basicException [0] parsedStack [0] assembly سلسلة
basicException [0] parsedStack [0] fileName سلسلة
basicException [0] parsedStack [0] level عدد صحيح
basicException [0] parsedStack [0] line عدد صحيح
basicException [0] parsedStack [0] method سلسلة
basicException [0] stack سلسلة أقصى طول 10 آلاف
basicException [0] typeName سلسلة

تتبع الرسائل

أرسلت بواسطة TrackTrace، وبواسطة محولات تسجيل.

المسار النوع ملاحظات
اسم تسجيل الرسالة [0] سلسلة
معلمات [0] الرسالة سلسلة
رسالة [0] الخام سلسلة رسالة السجل، أقصى طول 10 آلاف.
الرسالة [0] severityLevel سلسلة

التبعية عن بعد

أرسلت من قبل TrackDependency. تستخدم للإبلاغ عن أداء واستخدام المكالمات إلى التبعيات في الملقم، والمكالمات AJAX في المستعرض.

المسار النوع ملاحظات
remoteDependency [0] async منطقي
remoteDependency [0] baseName سلسلة
remoteDependency [0] commandName سلسلة على سبيل المثال، "home/index"
عد remoteDependency [0] عدد صحيح 100/(معدل أخذ العينات). على سبيل المثال، 4 => 25%
remoteDependency [0] dependencyTypeName سلسلة HTTP, SQL, ...
remoteDependency [0] durationMetric.value العدد الوقت من الاستدعاء إلى إكمال الاستجابة حسب التبعية
remoteDependency [0] id سلسلة
remoteDependency [0] name سلسلة Url. الحد الأقصى للطول 250.
remoteDependency [0] resultCode سلسلة من تبعية HTTP
remoteDependency [0] success منطقي
نوع remoteDependency [0] سلسلة Http, Sql,...
remoteDependency [0] url سلسلة الحد الأقصى للطول 2000
remoteDependency [0] urlData.base سلسلة الحد الأقصى للطول 2000
remoteDependency [0] urlData.hashTag سلسلة
remoteDependency [0] urlData.host سلسلة الحد الأقصى للطول 200

الطلبات

أرسلت من قبل TrackRequest. تستخدم الوحدات القياسية هذا لتقارير وقت استجابة الخادم، والتي يتم قياسها على الخادم.

المسار النوع ملاحظات
طلب [0] العد عدد صحيح 100/(معدل أخذ العينات). على سبيل المثال، 4 => 25%
request [0] durationMetric.value العدد الوقت من الطلب للوصول إلى الاستجابة. 1e7 == 1s
request [0] id سلسلة Operation id
اسم طلب [0] سلسلة GET/POST + قاعدة رابط. الحد الأقصى للطول 250
طلب [0] responseCode عدد صحيح استجابة HTTP المرسلة إلى العميل
نجاح [0] طلب منطقي الافتراضي == (responseCode < 400)
طلب [0] رابط سلسلة لا يشمل المضيف
طلب [0] urlData.base سلسلة
طلب [0] urlData.hashTag سلسلة
طلب [0] urlData.host سلسلة

أداء عرض الصفحة

أرسلت من قبل المتصفح. يقيس الوقت اللازم لمعالجة الصفحة، بدءاً من بدء المستخدم لطلب العرض مكتملاً (باستثناء مكالمات AJAX غير المتزامن).

تظهر قيم السياق نظام التشغيل العميل وإصدار المستعرض.

المسار النوع ملاحظات
clientPerformance [0] clientProcess.value عدد صحيح الوقت من نهاية استلام HTML حتى عرض الصفحة.
اسم clientPerformance [0] سلسلة
clientPerformance [0] networkConnection.value عدد صحيح الوقت الذي استغرقه تأسيس اتصال شبكة اتصال.
clientPerformance [0] receiveRequest.value عدد صحيح الوقت من نهاية إرسال الطلب إلى تلقي HTML في الرد.
clientPerformance [0] sendRequest.value عدد صحيح الوقت المستغرق لإرسال طلب HTTP.
clientPerformance [0] total.value عدد صحيح الوقت من البدء في إرسال الطلب إلى عرض الصفحة.
clientPerformance [0] url سلسلة عنوان URL لهذا الطلب
clientPerformance [0] urlData.base سلسلة
clientPerformance [0] urlData.hashTag سلسلة
clientPerformance [0] urlData.host سلسلة
clientPerformance [0] urlData.protocol سلسلة

طرق عرض الصفحة

المرسلة بواسطة trackPageView() أو stopTrackPage

المسار النوع ملاحظات
عدد عرض [0] عدد صحيح 100/(معدل أخذ العينات). على سبيل المثال، 4 => 25%
عرض [0] durationMetric.value عدد صحيح يتم تعيين القيمة اختياريًا في trackPageView () أو عن طريق startTrackPage () - stopTrackPage (). ليس نفس قيم الأداء العميل.
عرض الاسم [0] سلسلة عنوان الصفحة. الحد الأقصى للطول 250
عرض [0] رابط سلسلة
عرض [0] urlData.base سلسلة
عرض [0] urlData.hashTag سلسلة
عرض [0] urlData.host سلسلة

التوفر

اختبارات ويب إتاحة التقارير.

المسار النوع ملاحظات
availability [0] availabilityMetric.name سلسلة التوافر
availability [0] availabilityMetric.value العدد 1.0 أو 0.0
عدد التوافر [0] عدد صحيح 100/(معدل أخذ العينات). على سبيل المثال، 4 => 25%
availability [0] dataSizeMetric.name سلسلة
availability [0] dataSizeMetric.value عدد صحيح
availability [0] durationMetric.name سلسلة
availability [0] durationMetric.value العدد مدة الاختبار. 1e7==1s
رسالة التوفر [0] سلسلة تشخيص الفشل
نتيجة توافر [0] سلسلة تمرير/فشل
availability [0] runLocation سلسلة مصدر جغرافي لـhttp req
availability [0] testName سلسلة
availability [0] testRunId سلسلة
availability [0] testTimestamp سلسلة

المقاييس

تم إنشاؤه بواسطة TrackMetric().

تم العثور على قيمة القياس في context.custom.metrics[0]

على سبيل المثال:

{
  "metric": [ ],
  "context": {
  ...
    "custom": {
      "dimensions": [
        { "ProcessId": "4068" }
      ],
      "metrics": [
        {
          "dispatchRate": {
            "value": 0.001295,
            "count": 1.0,
            "min": 0.001295,
            "max": 0.001295,
            "stdDev": 0.0,
            "sampledValue": 0.001295,
            "sum": 0.001295
          }
        }
      ]  
    }
  }
}

حول القيم المترية

يتم الإبلاغ عن قيم القياس، سواء في التقارير المترية أو في أي مكان آخر، باستخدام بنية كائن قياسية. على سبيل المثال:

"durationMetric": {
  "name": "contoso.org",
  "type": "Aggregation",
  "value": 468.71603053650279,
  "count": 1.0,
  "min": 468.71603053650279,
  "max": 468.71603053650279,
  "stdDev": 0.0,
  "sampledValue": 468.71603053650279
}

حالياً - على الرغم من أن هذا قد يتغير في المستقبل - في جميع القيم التي تم الإبلاغ عنها من وحدات SDK القياسية، count==1 وفقط الحقول name و value هي الحقول المفيدة. الحالة الوحيدة التي تكون مختلفة إذا قمت بكتابة المكالمات TrackMetric الخاصة بك التي قمت بتعيين المعلمات الأخرى.

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

في الجداول أعلاه، حذفنا عدد الحقول المستخدمة نادراً، count, min, max, stdDev, sampledValue.

بدلاً من المقاييس المجمعة مسبقًا، يمكنك استخدامأخذ العينات إذا كنت بحاجة إلى تقليل حجم بيانات تتبع الاستخدام.

المدد

ما لم يُذكر خلاف ذلك، يتم تمثيل المدد بعشر الميكروثانية، بحيث يعني 10000000.0 ثانية واحدة.

راجع أيضًا