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

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

هام

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

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

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

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

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

إشعار

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

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

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

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

إشعار

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

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

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

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

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

    تحذير

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

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

إشعار

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

إشعار

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

فحص البيانات

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

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

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

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

إشعار

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

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

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

$"{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 Storage، ولكن هذا الحد كبير. الأمر متروك لك للتحكم في كمية التخزين التي تستخدمها.

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

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

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

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

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

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

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

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

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

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

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

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

هام

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

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

  1. تمكين إعدادات التشخيص على Classic Application Insights.
  2. تكوين تصدير البيانات: حدد إعدادات>التشخيص إضافة إعداد تشخيص من داخل مورد 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 boolean يبدو أن الطلب يأتي من اختبار بوت أو الويب.
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 boolean
context.user.accountAcquisitionDate سلسلة
context.user.accountId سلسلة
context.user.anonAcquisitionDate سلسلة
context.user.anonId سلسلة
context.user.authAcquisitionDate سلسلة معرفات المستخدم المصادق عليها
context.user.authId سلسلة
context.user.isAuthenticated boolean
context.user.storeRegion سلسلة
internal.data.documentVersion سلسلة
internal.data.id سلسلة Unique idالتي تم تعيينها عند تناول عنصر إلى Application Insights

حدث

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

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

استثناءات

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

المسار نوع ملاحظات
تجميع basicException [0] سلسلة
عدد basicException [0] integer 100/(معدل أخذ العينات). على سبيل المثال، 4 => 25%
مجموعة الاستثناء basicException [0] سلسلة
نوع الاستثناء basicException [0] سلسلة
basicException [0] failedUserCodeMethod سلسلة
basicException [0] failedUserCodeAssembly سلسلة
basicException [0] handledAt سلسلة
basicException [0] hasFullStack boolean
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 integer
basicException [0] parsedStack [0] line integer
basicException [0] parsedStack [0] method سلسلة
basicException [0] stack سلسلة أقصى طول 10 آلاف
basicException [0] typeName سلسلة

تتبع الرسائل

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

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

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

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

المسار نوع ملاحظات
remoteDependency [0] async boolean
remoteDependency [0] baseName سلسلة
remoteDependency [0] commandName سلسلة على سبيل المثال، "home/index"
عد remoteDependency [0] integer 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 boolean
نوع remoteDependency [0] سلسلة Http, Sql,...
remoteDependency [0] url سلسلة الحد الأقصى للطول 2000
remoteDependency [0] urlData.base سلسلة الحد الأقصى للطول 2000
remoteDependency [0] urlData.hashTag سلسلة
remoteDependency [0] urlData.host سلسلة الحد الأقصى للطول 200

الطلبات

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

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

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

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

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

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

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

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

المسار نوع ملاحظات
عدد عرض [0] integer 100/(معدل أخذ العينات). على سبيل المثال، 4 => 25%
عرض [0] durationMetric.value integer يتم تعيين القيمة اختياريًا في 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] integer 100/(معدل أخذ العينات). على سبيل المثال، 4 => 25%
availability [0] dataSizeMetric.name سلسلة
availability [0] dataSizeMetric.value integer
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 ثانية واحدة.

(راجع أيضًا )