أخذ العينات في Application Insights

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

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

إشعار

  • إذا كنت قد اعتمدت OpenTelemetry Distro الخاص بنا وتبحث عن خيارات التكوين، فشاهد تمكين أخذ العينات.

إشعار

تعتمد الوثائق التالية على واجهة برمجة تطبيقات Application Insights الكلاسيكية. الخطة طويلة الأجل ل Application Insights هي جمع البيانات باستخدام OpenTelemetry. لمزيد من المعلومات، راجع تمكين Azure Monitor OpenTelemetry لتطبيقات .NET Node.js وPython وJava وخريطة طريق OpenTelemetry الخاصة بنا. تتوفر إرشادات الترحيل ل .NET Node.js وPython.

لقطة شاشة لخيارات تكوين أخذ العينات.

موجز

  • هناك ثلاثة أنواع مختلفة من أخذ العينات: أخذ العينات التكيفية وأخذ العينات بمعدل ثابت وأخذ عينات الاستيعاب.
  • يتم تمكين أخذ العينات التكيفية افتراضيا في جميع أحدث إصدارات ASP.NET Application Insights ومجموعات تطوير البرامج الأساسية (SDKs) وAzure Functions ASP.NET.
  • يتوفر أخذ العينات بمعدل ثابت في الإصدارات الأخيرة من Application Insights SDKs ASP.NET ASP.NET Core وJava (كل من العامل وSDK) وJavaScript وPython.
  • في Java، تتوفر تجاوزات أخذ العينات، وتكون مفيدة عندما تحتاج إلى تطبيق معدلات أخذ عينات مختلفة على تبعيات وطلبات وفحوصات صحية محددة. استخدم تجاوزات أخذ العينات لضبط بعض التبعيات الصاخبة، بينما على سبيل المثال، يتم الاحتفاظ بجميع الأخطاء المهمة عند 100%. هذا السلوك هو شكل من أشكال أخذ العينات الثابتة الذي يمنحك مستوى دقيق من التحكم في القياس عن بعد الخاص بك.
  • يعمل أخذ عينات الاستيعاب على نقطة نهاية خدمة Application Insights. يتم تطبيقه فقط في حالة عدم وجود عينات أخرى سارية المفعول. إذا أخذ SDK عينات بيانات تتبع الاستخدام، فسيتم تعطيل أخذ عينات الاستيعاب.
  • بالنسبة لتطبيقات الويب، إذا قمت بتسجيل أحداث مخصصة وتحتاج إلى التأكد من الاحتفاظ بمجموعة من الأحداث أو تجاهلها معًا، فيجب أن يكون للأحداث قيمة OperationId نفسها.
  • إذا كتبت استعلامات Analytics، فينبغي أن تأخذ العينات في الاعتبار. على وجه الخصوص، بدلًا من مجرد عد السجلات، ينبغي لك استخدام summarize sum(itemCount).
  • دائمًا ما يتم الاحتفاظ ببعض أنواع بيانات تتبع الاستخدام، بما في ذلك مقاييس الأداء والمقاييس المخصصة، بغض النظر عما إذا كان أخذ العينات ممكنًا أم لا.

يلخص الجدول التالي أنواع العينات المتاحة لكل SDK ونوع التطبيق:

تطبيق Insights SDK دعم أخذ العينات التكيفية دعم أخذ العينات بمعدل ثابت دعم أخذ عينات الاستيعاب
ASP.NET نعم (افتراضيًّا) نعم فقط في حالة عدم وجود أخذ عينات أخرى سارية
ASP.NET Core نعم (افتراضيًّا) نعم فقط في حالة عدم وجود أخذ عينات أخرى سارية
دالات Azure نعم (افتراضيًّا) لا فقط في حالة عدم وجود أخذ عينات أخرى سارية
Java لا نعم فقط في حالة عدم وجود أخذ عينات أخرى سارية
JavaScript لا نعم فقط في حالة عدم وجود أخذ عينات أخرى سارية
Node.JS لا نعم فقط في حالة عدم وجود أخذ عينات أخرى سارية
Python لا نعم فقط في حالة عدم وجود أخذ عينات أخرى سارية
كل الآخرين لا لا نعم

إشعار

  • يستخدم Java Application Agent 3.4.0 والإحدث أخذ العينات محدودة المعدل كافتراضي عند إرسال بيانات تتبع الاستخدام إلى Application Insights. لمزيد من المعلومات، راجع أخذ العينات محدودة السعر.
  • تنطبق المعلومات الواردة في معظم هذه الصفحة على الإصدارات الحالية من حزم SDK لـ Application Insights. للحصول على معلومات حول الإصدارات القديمة من SDKs، راجع إصدارات SDK القديمة.

متى تستخدم أخذ العينات

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

المزايا الرئيسية لأخذ العينات هي:

  • تسقط خدمة Application Insights نقاط البيانات ("التقييدات") عندما يرسل تطبيقك معدلا عاليا من بيانات تتبع الاستخدام في فترة زمنية قصيرة. يقلل أخذ العينات من احتمالية حدوث التقييد في التطبيق الخاص بك.
  • للاحتفاظ بحصة نقاط البيانات لطبقة التسعير الخاصة بك.
  • لتقليل حركة مرور الشبكة من مجموعة بيانات تتبع الاستخدام.

كيف يعمل أخذ العينات

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

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

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

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

أنواع أخذ العينات

هناك ثلاث طرق مختلفة لأخذ العينات:

  • يضبط أخذ العينات التكيفية تلقائيًّا حجم بيانات تتبع الاستخدام المرسل من SDK في تطبيق ASP.NET/ASP.NET Core ومن وظائف Azure. إنه أخذ العينات الافتراضي عند استخدام ASP.NET أو ASP.NET Core SDK. لا يتوفر أخذ العينات التكيفية حاليا إلا لبيانات تتبع الاستخدام من جانب الخادم الأساسي ASP.NET/ASP.NET وAzure Functions.

  • يقلل أخذ العينات بمعدل ثابت من حجم بيانات تتبع الاستخدام المرسل من كل من ASP.NET أو ASP.NET Core أو خادم Java ومن مستعرضات المستخدمين. لقد عيّنت المعدل. يقوم العميل والخادم بمزامنة أخذ العينات الخاصة بهم بحيث يمكنك، في البحث، التنقل بين طرق عرض الصفحة والطلبات ذات الصلة.

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

هام

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

أخذ العينات التكيفية

يؤثر أخذ العينات التكيفية على حجم بيانات تتبع الاستخدام المُرسَل من تطبيق خادم الويب إلى نقطة نهاية خدمة Application Insights.

تلميح

يتم تمكين أخذ العينات التكيفية افتراضيًّا عند استخدام ASP.NET SDK أو ASP.NET Core SDK، كما يتم تمكينه افتراضيًّا لوظائف Azure.

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

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

يتم تعديل أعداد المقاييس مثل معدل الطلب ومعدل الاستثناء للتعويض عن معدل أخذ العينات، بحيث تعرض القيم التقريبية في Metric Explorer.

تكوين أخذ العينات التكيفية لتطبيقات ASP.NET

إشعار

ينطبق هذا القسم على تطبيقات ASP.NET، وليس تطبيقات ASP.NET Core. تعرف على تكوين أخذ العينات التكيفية لتطبيقات ASP.NET Core لاحقًا في هذا المستند.

في ApplicationInsights.config، يمكنك ضبط العديد من المعلمات في عقدة AdaptiveSamplingTelemetryProcessor. الأرقام المعروضة هي القيم الافتراضية:

  • <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>

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

  • <EvaluationInterval>00:00:15</EvaluationInterval>

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

  • <SamplingPercentageDecreaseTimeout>00:02:00</SamplingPercentageDecreaseTimeout>

    عندما تتغير قيمة النسبة المئوية لأخذ العينات، فإنها تحدد مدى سرعة تقليل النسبة المئوية لأخذ العينات مرة أخرى لالتقاط بيانات أقل.

  • <SamplingPercentageIncreaseTimeout>00:15:00</SamplingPercentageIncreaseTimeout>

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

  • <MinSamplingPercentage>0.1</MinSamplingPercentage>

    مع اختلاف نسبة أخذ العينات، ما القيمة الدنيا المسموح لنا بتعيينها؟

  • <MaxSamplingPercentage>100.0</MaxSamplingPercentage>

    نظرًا لاختلاف نسبة أخذ العينات، ما القيمة القصوى المسموح لنا بتعيينها؟

  • <MovingAverageRatio>0.25</MovingAverageRatio>

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

  • <InitialSamplingPercentage>100</InitialSamplingPercentage>

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

  • <ExcludedTypes>type;type</ExcludedTypes>

    قائمة محددة بفاصلة منقوطة للأنواع التي لا تريد أن تخضع لأخذ العينات. الأنواع المعترف بها هي: Dependency، Event، Exception، PageView، Request، Trace. يتم إرسال جميع بيانات تتبع الاستخدام للأنوع المحددة؛ يتم أخذ عينات من الأنواع التي لم يتم تحديدها.

  • <IncludedTypes>type;type</IncludedTypes>

    قائمة محددة بفاصلة منقوطة للأنواع التي تريد إخضاعها لأخذ العينات. الأنواع المعترف بها هي: Dependency، Event، Exception، PageView، Request، Trace. يتم أخذ عينات من الأنواع المحددة؛ يتم إرسال جميع بيانات تتبع الاستخدام من الأنواع الأخرى دائما.

لإيقاف أخذ العينات التكيفية، أزل AdaptiveSamplingTelemetryProcessorالعقدة (العقد) من ApplicationInsights.config.

البديل: تكوين أخذ العينات التكيفية في التعليمات البرمجية

بدلًا من تعيين معلمة أخذ العينات في الملف .config، يمكنك تعيين هذه القيم برمجيًّا.

  1. أزل جميع عقد AdaptiveSamplingTelemetryProcessor من ملف .config.

  2. استخدم القصاصة البرمجية التالية لتكوين أخذ العينات التكيفية:

    using Microsoft.ApplicationInsights;
    using Microsoft.ApplicationInsights.Extensibility;
    using Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation;
    using Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel;
    
    // ...
    
    var builder = TelemetryConfiguration.Active.DefaultTelemetrySink.TelemetryProcessorChainBuilder;
    // For older versions of the Application Insights SDK, use the following line instead:
    // var builder = TelemetryConfiguration.Active.TelemetryProcessorChainBuilder;
    
    // Enable AdaptiveSampling so as to keep overall telemetry volume to 5 items per second.
    builder.UseAdaptiveSampling(maxTelemetryItemsPerSecond:5);
    
    // If you have other telemetry processors:
    builder.Use((next) => new AnotherProcessor(next));
    
    builder.Build();
    

    (تعرف على معالجات بيانات تتبع الاستخدام).

يمكنك أيضًا ضبط معدل أخذ العينات لكل نوع من أنواع بيانات تتبع الاستخدام على حدة، أو يمكنك أيضًا استبعاد أنواع معينة من أخذ العينات على الإطلاق:

// The following configures adaptive sampling with 5 items per second, and also excludes Dependency telemetry from being subjected to sampling.
builder.UseAdaptiveSampling(maxTelemetryItemsPerSecond:5, excludedTypes: "Dependency");

تكوين أخذ العينات التكيفية لتطبيقات ASP.NET Core

ASP.NET يمكن تكوين التطبيقات الأساسية في التعليمات البرمجية أو من appsettings.json خلال الملف. لمزيد من المعلومات، راجع التكوين في ASP.NET Core.

يتم تمكين أخذ العينات التكيفية افتراضيًّا لجميع تطبيقات ASP.NET Core. يمكنك تعطيل سلوك أخذ العينات أو تخصيصه.

إيقاف تشغيل أخذ العينات التكيفية

يمكن تعطيل ميزة أخذ العينات الافتراضية أثناء إضافة خدمة Application Insights.

أضف ApplicationInsightsServiceOptions بعد WebApplication.CreateBuilder() الأسلوب في Program.cs الملف:

var builder = WebApplication.CreateBuilder(args);

var aiOptions = new Microsoft.ApplicationInsights.AspNetCore.Extensions.ApplicationInsightsServiceOptions();
aiOptions.EnableAdaptiveSampling = false;
builder.Services.AddApplicationInsightsTelemetry(aiOptions);

var app = builder.Build();

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

تكوين إعدادات أخذ العينات

استخدم أساليب TelemetryProcessorChainBuilder الامتداد التالية لتخصيص سلوك أخذ العينات.

هام

إذا كنت تستخدم هذه الطريقة لتكوين أخذ العينات، فيرجى التأكد من تعيين خاصية aiOptions.EnableAdaptiveSampling على false عند الاتصال بـ AddApplicationInsightsTelemetry(). بعد إجراء هذا التغيير، تحتاج بعد ذلك إلى اتباع الإرشادات الموجودة في كتلة التعليمات البرمجية التالية بالضبط من أجل إعادة تمكين أخذ العينات التكيفية مع التخصيصات الخاصة بك في مكانها. يمكن أن يؤدي عدم القيام بذلك إلى زيادة استيعاب البيانات. اختبر دائمًا ما بعد تغيير إعدادات أخذ العينات، وقم بتعيين حد أقصى مناسب للبيانات اليومية للمساعدة في التحكم في التكاليف.

using Microsoft.ApplicationInsights.AspNetCore.Extensions;
using Microsoft.ApplicationInsights.Extensibility;

var builder = WebApplication.CreateBuilder(args);

builder.Services.Configure<TelemetryConfiguration>(telemetryConfiguration =>
{
   var telemetryProcessorChainBuilder = telemetryConfiguration.DefaultTelemetrySink.TelemetryProcessorChainBuilder;

   // Using adaptive sampling
   telemetryProcessorChainBuilder.UseAdaptiveSampling(maxTelemetryItemsPerSecond: 5);

   // Alternately, the following configures adaptive sampling with 5 items per second, and also excludes DependencyTelemetry from being subject to sampling:
   // telemetryProcessorChainBuilder.UseAdaptiveSampling(maxTelemetryItemsPerSecond:5, excludedTypes: "Dependency");

   telemetryProcessorChainBuilder.Build();
});

builder.Services.AddApplicationInsightsTelemetry(new ApplicationInsightsServiceOptions
{
   EnableAdaptiveSampling = false,
});

var app = builder.Build();

يمكنك تخصيص إعدادات أخذ العينات الأخرى باستخدام فئة SamplingPercentageEstimatorSettings :

using Microsoft.ApplicationInsights.WindowsServer.Channel.Implementation;

telemetryProcessorChainBuilder.UseAdaptiveSampling(new SamplingPercentageEstimatorSettings
{
     MinSamplingPercentage = 0.01,
     MaxSamplingPercentage = 100,
     MaxTelemetryItemsPerSecond = 5
 }, null, excludedTypes: "Dependency"); 

تكوين أخذ العينات التكيفية لوظائف Azure

اتبع الإرشادات من هذه الصفحة لتكوين أخذ العينات التكيفية للتطبيقات التي تعمل في Azure Functions.

أخذ العينات بمعدل ثابت

يقلل أخذ العينات بمعدل ثابت من حركة المرور المرسلة من خادم الويب ومستعرضات الويب. على عكس أخذ العينات التكيفية، فإنه يقلل بيانات تتبع الاستخدام بمعدل ثابت تحدده أنت. يُتاح أخذ العينات بمعدل ثابت لتطبيقات ASP.NET وASP.NET Core وJava وPython.

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

في Metrics Explorer، يتم ضرب المعدلات مثل عدد الطلبات والاستثناءات في عامل للتعويض عن معدل أخذ العينات، بحيث تكون دقيقة قدر الإمكان.

تكوين أخذ العينات بمعدل ثابت لتطبيقات ASP.NET

  1. تعطيل أخذ العينات التكيفية: في ApplicationInsights.config، قم بإزالة العقدة AdaptiveSamplingTelemetryProcessor أو التعليق عليها.

    <TelemetryProcessors>
        <!-- Disabled adaptive sampling:
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.AdaptiveSamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
            <MaxTelemetryItemsPerSecond>5</MaxTelemetryItemsPerSecond>
        </Add>
        -->
    
  2. تمكين وحدة أخذ العينات ذات المعدل الثابت. أضف هذه القصاصة البرمجية إلى ApplicationInsights.config:

    في هذا المثال، SamplingPercentage هو 20، لذلك يتم أخذ عينات 20٪ من جميع العناصر. يتم ضرب القيم في Metrics Explorer في (100/20) = 5 للتعويض.

    <TelemetryProcessors>
        <Add Type="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.SamplingTelemetryProcessor, Microsoft.AI.ServerTelemetryChannel">
            <!-- Set a percentage close to 100/N where N is an integer. -->
            <!-- E.g. 50 (=100/2), 33.33 (=100/3), 25 (=100/4), 20, 1 (=100/100), 0.1 (=100/1000) -->
            <SamplingPercentage>20</SamplingPercentage>
        </Add>
    </TelemetryProcessors>
    

    بدلًا من ذلك، بدلًا من تعيين معلمة أخذ العينات في الملف ApplicationInsights.config، يمكنك تعيين هذه القيم برمجيًّا:

    using Microsoft.ApplicationInsights.Extensibility;
    using Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel;
    
    // ...
    
    var builder = TelemetryConfiguration.Active.DefaultTelemetrySink.TelemetryProcessorChainBuilder;
    // For older versions of the Application Insights SDK, use the following line instead:
    // var builder = TelemetryConfiguration.Active.TelemetryProcessorChainBuilder;
    
    builder.UseSampling(10.0); // percentage
    
    // If you have other telemetry processors:
    builder.Use((next) => new AnotherProcessor(next));
    
    builder.Build();
    

    (تعرف على معالجات بيانات تتبع الاستخدام).

تكوين أخذ العينات بمعدل ثابت لتطبيقات ASP.NET Core

  1. تعطيل أخذ العينات التكيفية

    يمكن إجراء التغييرات بعد WebApplication.CreateBuilder() الأسلوب، باستخدام ApplicationInsightsServiceOptions:

    var builder = WebApplication.CreateBuilder(args);
    
    var aiOptions = new Microsoft.ApplicationInsights.AspNetCore.Extensions.ApplicationInsightsServiceOptions();
    aiOptions.EnableAdaptiveSampling = false;
    builder.Services.AddApplicationInsightsTelemetry(aiOptions);
    
    var app = builder.Build();
    
  2. تمكين وحدة أخذ العينات ذات المعدل الثابت

    يمكن إجراء التغييرات بعد WebApplication.CreateBuilder() الأسلوب :

    var builder = WebApplication.CreateBuilder(args);
    
    builder.Services.Configure<TelemetryConfiguration>(telemetryConfiguration =>
    {
        var builder = telemetryConfiguration.DefaultTelemetrySink.TelemetryProcessorChainBuilder;
    
        // Using fixed rate sampling
        double fixedSamplingPercentage = 10;
        builder.UseSampling(fixedSamplingPercentage);
        builder.Build();
    });
    
    builder.Services.AddApplicationInsightsTelemetry(new ApplicationInsightsServiceOptions
    {
        EnableAdaptiveSampling = false,
    });
    
    var app = builder.Build(); 
    

تكوين تجاوزات أخذ العينات وأخذ العينات بمعدل ثابت لتطبيقات Java

بشكل افتراضي، لا يتم تمكين أخذ العينات في البنية التلقائية ل Java وSDK. يتم حاليا دعم التأسيس التلقائي ل Java وتجاوزات أخذ العينات وأخذ العينات بمعدل ثابت. أخذ العينات التكيفية غير مدعوم في Java.

تكوين البنية التلقائية ل Java

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

إشعار

فيما يخص النسبة المئوية لأخذ العينات، اختر نسبة مئوية قريبة من 100/N حيث N هو عدد صحيح. لا يدعم أخذ العينات حاليًّا القيم الأخرى.

تكوين أخذ العينات بمعدل ثابت لتطبيقات OpenCensus Python

صك تطبيقك مع أحدث مصدري OpenCensus Azure Monitor exporters.

إشعار

أخذ العينات بمعدل ثابت غير متاح لمصدر المقاييس. هذا يعني أن المقاييس المخصصة هي الأنواع الوحيدة لبيانات تتبع الاستخدام حيث لا يمكن تكوين أخذ العينات. سيرسل مُصدِّر المقاييس جميع بيانات تتبع الاستخدام التي يتتبعها.

أخذ العينات بمعدل ثابت للتتبع

يمكنك تحديد sampler كجزء من التكوين الخاص بك Tracer . إذا لم يتم توفير عينات صريحة ProbabilitySampler ، يتم استخدام بشكل افتراضي. ProbabilitySampler سيستخدم معدل 1/10000 بشكل افتراضي، مما يعني أن واحدا من كل 10000 طلب يتم إرساله إلى Application Insights. إذا كنت ترغب في تحديد معدل أخذ العينات، فشاهد التفاصيل التالية.

لتحديد معدل أخذ العينات، تأكد من قيام Tracer بتحديد جهاز أخذ العينات بمعدل أخذ العينات بين 0.0 و1.0 ضمنًا. يمثل معدل أخذ العينات 1.0 100٪، ما يعني أنه يتم إرسال جميع طلباتك كقياس عن بعد إلى Application Insights.

tracer = Tracer(
    exporter=AzureExporter(
        instrumentation_key='00000000-0000-0000-0000-000000000000',
    ),
    sampler=ProbabilitySampler(1.0),
)

أخذ العينات بمعدل ثابت للسجلات

يمكنك تكوين أخذ العينات بمعدل ثابت لـ AzureLogHandler عن طريق تعديل الوسيطة الاختيارية logging_sampling_rate. إذا لم يتم توفير أي وسيطة، يتم استخدام معدل أخذ العينات 1.0. يمثل معدل أخذ العينات 1.0 100٪، ما يعني أنه يتم إرسال جميع طلباتك كقياس عن بعد إلى Application Insights.

handler = AzureLogHandler(
    instrumentation_key='00000000-0000-0000-0000-000000000000',
    logging_sampling_rate=0.5,
)

تكوين عينات ذات معدل ثابت لصفحات الويب باستخدام JavaScript

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

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

تلميح

في تطبيقات ASP.NET مع تضمين JavaScript، عادةً ما يتم إدخال القصاصة البرمجية بتنسيق _Layout.cshtml.

أدخل سطرًا مثل samplingPercentage: 10, قبل مفتاح الجهاز:

<script>
    var appInsights = // ... 
    ({ 
      // Value must be 100/N where N is an integer.
      // Valid examples: 50, 25, 20, 10, 5, 1, 0.1, ...
      samplingPercentage: 10, 

      instrumentationKey: ...
    }); 

    window.appInsights = appInsights; 
    appInsights.trackPageView(); 
</script>

إشعار

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

فيما يخص النسبة المئوية لأخذ العينات، اختر نسبة مئوية قريبة من 100/N حيث N هو عدد صحيح. لا يدعم أخذ العينات حاليًّا القيم الأخرى.

تنسيق أخذ العينات من جانب الخادم والعميل

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

إذا كان العميل والخادم لا يعرضان عينات متناسقة:

  • تحقق من أنك قمت بتمكين أخذ العينات على الخادم والعميل على حدٍّ سواء.
  • تحقق من تعيين النسبة المئوية نفسها لأخذ العينات في العميل والخادم على حدٍّ سواء.
  • تأكد من أن إصدار SDK هو 2.0 أو أعلى.

أخذ عينات الاستيعاب

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

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

عيِّن معدل أخذ العينات في صفحة الاستخدام والتكاليف المقدرة:

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

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

يتجاهل أخذ العينات نقاط بيانات معينة، ما يجعلها غير متوفرة في أي ميزة Application Insights مثل التصدير المستمر.

لا يعمل أخذ عينات الاستيعاب جنبا إلى جنب مع أخذ العينات التكيفية أو ذات المعدل الثابت. يتم تنشيط أخذ العينات التكيفية تلقائيا باستخدام ASP.NET SDK أو ASP.NET Core SDK أو في Azure App Service أو باستخدام Application Insights Agent. عندما تتلقى نقطة نهاية خدمة Application Insights بيانات تتبع الاستخدام وتكتشف معدل أخذ عينات أقل من 100٪ (يشير إلى أخذ العينات النشط)، فإنها تتجاهل أي معدل معين لأخذ عينات الاستيعاب.

تحذير

تشير القيمة المعروضة في لوحة المدخل إلى القيمة التي عينتها لأخذ عينات العرض. فلا يمثل معدل أخذ العينات الفعلي إذا كان أي نوع من أخذ عينات SDK (أخذ العينات التكيفية أو أخذ العينات بمعدل ثابت) قيد التشغيل.

ما نوع أخذ العينات الذي ينبغي لك استخدامه؟

استخدم أخذ عينات الاستيعاب في الحالات الآتية:

  • غالبًا ما تستخدم حصتك الشهرية من بيانات تتبع الاستخدام.
  • عندما تحصل على الكثير من بيانات تتبع الاستخدام من مستعرضات الويب للمستخدمين.
  • أنت تستخدم إصدارا من SDK لا يدعم أخذ العينات - على سبيل المثال ASP.NET إصدارات أقدم من 2.0.

استخدم أخذ العينات بمعدل ثابت في الحالات الآتية:

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

استخدم أخذ العينات التكيفية في الحالات الآتية:

إذا لم تنطبق شروط استخدام الأشكال الأخرى لأخذ العينات، نوصي بأخذ العينات التكيفية. يتم تمكين هذا الإعداد افتراضيًّا في ASP.NET/ASP.NET Core SDK. لا يقلل من نسبة استخدام الشبكة حتى يتم الوصول إلى معدل أدنى معين، لذلك ربما لا يتم أخذ عينات من المواقع منخفضة الاستخدام على الإطلاق.

معرفة ما إذا كان أخذ العينات قيد التشغيل أم لا

استخدم استعلام Analytics للعثور على معدل أخذ العينات.

union requests,dependencies,pageViews,browserTimings,exceptions,traces
| where timestamp > ago(1d)
| summarize RetainedPercentage = 100/avg(itemCount) by bin(timestamp, 1h), itemType

إذا رأيت أن RetainedPercentage لأي نوع أقل من 100، فهذا النوع من بيانات تتبع الاستخدام يتم أخذ عينات منه.

هام

لا يأخذ Application Insights عينات الجلسة أو المقاييس (بما في ذلك المقاييس المخصصة) أو أنواع بيانات تتبع الاستخدام لعداد الأداء في أي من تقنيات أخذ العينات. دائمًا ما يتم استبعاد هذه الأنواع من أخذ العينات لأن تقليل الدقة قد يكون غير مرغوب فيه للغاية لأنواع بيانات تتبع الاستخدام هذه.

دقة استعلام السجل ومعدلات العينة العالية

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

تحذير

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

مع زيادة معدلات أخذ العينات، تنخفض دقة الاستعلامات المستندة إلى السجل ويتم تضخيمها. يؤثر فقط على دقة الاستعلامات المستندة إلى السجل عند تمكين أخذ العينات وتكون معدلات العينة في نطاق أعلى (~ 60٪). يختلف التأثير استنادا إلى أنواع بيانات تتبع الاستخدام وعدد بيانات تتبع الاستخدام لكل عملية وعوامل أخرى.

تستخدم SDKs مقاييس مجمعة مسبقا لحل المشكلات الناجمة عن أخذ العينات. لمزيد من المعلومات حول هذه المقاييس، راجع Azure Application Insights - Azure Monitor | Microsoft Docs. تحدد SDKs الخصائص ذات الصلة للبيانات المسجلة واستخراج الإحصائيات قبل أخذ العينات. لتقليل استخدام الموارد والتكاليف، يتم تجميع المقاييس. ينتج عن هذه العملية بعض عناصر القياس عن بعد القياسية في الدقيقة، بدلا من آلاف عناصر بيانات تتبع الاستخدام للحدث. على سبيل المثال، قد تبلغ هذه المقاييس عن "قام تطبيق الويب هذا بمعالجة 25 طلبا" إلى حساب MDM، مع itemCount 100 في سجل بيانات تتبع الاستخدام للطلب المرسل. توفر هذه المقاييس المجمعة مسبقا أرقاما دقيقة وموثوقة حتى عندما يؤثر أخذ العينات على نتائج الاستعلام المستندة إلى السجل. يمكنك عرضها في جزء Metrics من مدخل Application Insights.

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

هل يؤثر أخذ العينات على دقة التنبيه؟

  • نعم. يمكن تشغيل التنبيهات عند أخذ عينات من البيانات فقط. يمكن أن تؤدي التصفية القوية إلى عدم تشغيل التنبيهات كما هو متوقع.

إشعار

لا يتم تطبيق أخذ العينات على القياسات، ولكن يمكن اشتقاق القياسات من البيانات التي تم أخذ عينات منها. وبهذه الطريقة قد يؤثر أخذ العينات بشكل غير مباشر على دقة التنبيه.

ما سلوك أخذ العينات الافتراضي في ASP.NET وASP.NET Core SDKs؟

  • إذا كنت تستخدم أحد أحدث إصدارات SDK أعلاه، يتم تمكين أخذ العينات التكيفية بشكل افتراضي مع خمسة عناصر بيانات تتبع الاستخدام في الثانية. بشكل افتراضي، يضيف النظام عقدتين AdaptiveSamplingTelemetryProcessor : واحدة تتضمن Event النوع في أخذ العينات، بينما تستبعد الأخرى ذلك. يحد هذا التكوين من بيانات تتبع الاستخدام إلى خمسة Event عناصر من النوع وخمسة عناصر من جميع الأنواع الأخرى مجتمعة، ما Events يضمن أخذ عينات بشكل منفصل عن أنواع بيانات تتبع الاستخدام الأخرى.

استخدم الأمثلة الواردة في القسم السابق من هذه الصفحة لتغيير هذا السلوك الافتراضي.

هل يمكن أخذ عينات بيانات تتبع الاستخدام أكثر من مرة؟

  • ‏‏لا. تتجاهل معالجات SamplingTelemetryProcessors العناصر من اعتبارات أخذ العينات في حالة أخذ عينات من العنصر بالفعل. وينطبق الشيء نفسه على أخذ عينات الاستيعاب أيضا، والذي لا يطبق أخذ العينات على تلك العناصر التي تم أخذ عينات منها بالفعل في SDK نفسها.

لماذا لا يتم أخذ عينة بسيطة "جمع X بالمائة من كل نوع من أنواع بيانات تتبع الاستخدام"؟

  • في حين أن نهج أخذ العينات هذا من شأنه توفير مستوى عالٍ من الدقة في التقريبات المترية، إلا أنه سيقيد القدرة على ربط البيانات التشخيصية لكل مستخدم وجلسة وطلب، وهو أمر بالغ الأهمية لعمليات التشخيص. لذلك، يعمل أخذ العينات بشكل أفضل مع نهج مثل "جمع جميع عناصر بيانات تتبع الاستخدام ل X بالمائة من مستخدمي التطبيق"، أو "جمع جميع بيانات تتبع الاستخدام ل X بالمائة من طلبات التطبيق". بالنسبة لعناصر بيانات تتبع الاستخدام غير المقترنة بالطلبات (مثل المعالجة غير المتزامنة في الخلفية)، فإن الاحتياطي هو "جمع X بالمائة من جميع العناصر لكل نوع من أنواع بيانات تتبع الاستخدام".

هل يمكن أن تتغير نسبة أخذ العينات بمرور الوقت؟

  • نعم، يعمل أخذ العينات التكيفية على تغيير نسبة أخذ العينات تدريجيًّا، بناءً على الحجم الملحوظ حاليًّا لبيانات تتبع الاستخدام.

إذا كنت أستخدم أخذ العينات بمعدل ثابت، كيف يمكنني معرفة النسبة المئوية لأخذ العينات التي تعمل بشكل أفضل لتطبيقي؟

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

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

ماذا يحدث إذا كوّنت النسبة المئوية لأخذ العينات لتكون منخفضة جدًّا؟

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

ماذا يحدث إذا كوّنت النسبة المئوية لأخذ العينات لتكون مرتفعة جدًّا؟

  • يؤدي تكوين نسبة مرتفعة جدًّا من العينات (ليست قوية بدرجة كافية) إلى انخفاض غير كافٍ في حجم بيانات تتبع الاستخدام التي تم جمعها. لا يزال بإمكانك تجربة فقدان بيانات تتبع الاستخدام المتعلقة بالتقييد، وقد تكون تكلفة استخدام Application Insights أعلى مما خططت له بسبب الرسوم الزائدة.

ماذا يحدث إذا قمت بتكوين كل من إعدادات IncludedTypes و ExcludedTypes؟

  • من الأفضل عدم تعيين كل من ExcludedTypes و IncludedTypes في التكوين الخاص بك لمنع أي تعارضات وضمان إعدادات واضحة لجمع بيانات تتبع الاستخدام.
  • يتم استبعاد أنواع بيانات تتبع الاستخدام المدرجة في ExcludedTypes حتى إذا تم تعيينها أيضا في IncludedTypes الإعدادات. سيكون للنماذج المستبعدة الأسبقية على النماذج المضمنة.

على أي منصات يمكنني استخدام أخذ العينات؟

  • يمكن أن يحدث أخذ عينات الاستيعاب تلقائيا لأي قياس عن بعد فوق حجم معين، إذا لم يكن SDK يقوم بأخذ العينات. سيعمل هذا التكوين، على سبيل المثال، إذا كنت تستخدم إصدارا قديما من ASP.NET SDK أو Java SDK.
  • إذا كنت تستخدم ASP.NET الحالية أو ASP.NET Core SDKs (مستضافة إما في Azure أو على الخادم الخاص بك)، فستحصل على أخذ العينات التكيفية بشكل افتراضي، ولكن يمكنك التبديل إلى معدل ثابت كما هو موضح سابقا. باستخدام أخذ العينات بمعدل ثابت، تتم مزامنة SDK للمستعرض تلقائيًّا مع عينة من الأحداث ذات الصلة.
  • إذا كنت تستخدم وكيل Java الحالي، فيمكنك تكوين applicationinsights.json (بالنسبة لـ Java SDK، عليك تكوين ApplicationInsights.xml) لإجراء أخذ العينات بمعدل ثابت. يتم إيقاف تشغيل أخذ العينات افتراضيًّا. باستخدام أخذ العينات بمعدل ثابت، يُجري مستعرض SDK والخادم المزامنة تلقائيًّا لعينة من الأحداث ذات الصلة.

هناك بعض الأحداث النادرة التي أرغب دائمًا في رؤيتها. كيف يمكنني تجاوزهم لوحدة أخذ العينات؟

  • أفضل طريقة لرؤية أحداث معينة دائما هي كتابة TelemetryInitializer مخصص، والذي يعين SamplingPercentage إلى 100 على عنصر بيانات تتبع الاستخدام الذي تريد الاحتفاظ به، كما هو موضح في المثال التالي. يتم ضمان تشغيل المهايئات قبل معالجات القياس عن بعد (بما في ذلك أخذ العينات)، لذلك يضمن أن جميع تقنيات أخذ العينات تتجاهل هذا العنصر من أي اعتبارات لأخذ العينات. تتوفر مُهيئات بيانات تتبع الاستخدام المخصصة في ASP.NET SDK وASP.NET Core SDK و JavaScript SDK وJava SDK. فعلى سبيل المثال، يمكنك تكوين مُهيئ بيانات تتبع الاستخدام باستخدام ASP.NET SDK:

    public class MyTelemetryInitializer : ITelemetryInitializer
    {
        public void Initialize(ITelemetry telemetry)
        {
            if(somecondition)
            {
                ((ISupportSampling)telemetry).SamplingPercentage = 100;
            }
        }
    }
    

إصدارات SDK الأقدم

يُتاح أخذ العينات التكيفية لـ Application Insights SDK لـ ASP.NET v2.0.0-beta3 والإصدارات الأحدث، Microsoft.ApplicationInsights.AspNetCore SDK v2.2.0-beta1 والإصدارات الأحدث، ويتم تمكينه افتراضيًا.

يُعد أخذ العينات بمعدل ثابت أحد ميزات SDK في إصدارات ASP.NET من 2.0.0 وJava SDK الإصدار 2.0.1 وما بعده.

قبل الإصدار 2.5.0-beta2 من ASP.NET SDK وv2.2.0-beta3 من ASP.NET Core SDK، كانت قرارات أخذ العينات للتطبيقات التي تحدد "المستخدم" (مثل معظم تطبيقات الويب) تعتمد على تجزئة معرف المستخدم. بالنسبة للتطبيقات التي لا تحدد المستخدمين (مثل خدمات الويب)، فإنها تستند إلى قرار معرف عملية الطلب. تستخدم الإصدارات الأخيرة من كل من ASP.NET وSDKs الأساسية ASP.NET الآن معرف العملية لاتخاذ قرارات أخذ العينات.

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