مراجعة نتائج اختبار TrackAvailability()

توضح هذه المقالة كيفية مراجعة نتائج اختبار TrackAvailability() في مدخل Microsoft Azure والاستعلام عن البيانات باستخدام Log Analytics. يجب دائما استخدام الاختباراتالقياسية إذا كان ذلك ممكنا لأنها تتطلب القليل من الاستثمار، وعدم الصيانة، ولديها متطلبات أساسية قليلة.

المتطلبات الأساسية

هام

يتطلب TrackAvailability() إجراء استثمار مطور في كتابة التعليمات البرمجية المخصصة المعقدة المحتملة و maintanining.

التحقق من إمكانية التوّفر

ابدأ بمراجعة الرسم البياني في علامة التبويب Availability لمورد Application Insights.

إشعار

ستظهر الاختبارات التي تم إنشاؤها باستخدام TrackAvailability() CUSTOM بجوار اسم الاختبار.

لقطة شاشة تعرض علامة تبويب التوفر مع نتائج ناجحة.

لمشاهدة تفاصيل المعاملة من طرف إلى طرف، ضمن Drill into، حدد Successful أو Failed. ثم حدد عينة. يمكنك أيضًا الوصول إلى تفاصيل المعاملات الشاملة عن طريق تحديد نقطة بيانات على الرسم البياني.

لقطة شاشة توضح تحديد نموذج اختبار التوفر.

لقطة شاشة تعرض تفاصيل المعاملة من طرف إلى طرف.

الاستعلام في Log Analytics

يمكنك استخدام Log Analytics لعرض نتائج التوفر والتبعيات والمزيد. لمعرفة المزيد حول Log Analytics، راجع نظرة عامة على استعلام السجل.

لقطة شاشة تعرض نتائج التوفر.

لقطة شاشة تعرض علامة التبويب استعلام جديد مع تبعيات محدودة ب 50.

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

إشعار

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

لاتباع هذه الإرشادات، يجب عليك استخدام الخطة المخصصة للسماح بتعديل التعليمات البرمجية في محرر خدمة التطبيقات.

إنشاء وظيفة تشغيل المؤقت

  1. إنشاء مورد وظائف Azure.

    • إذا كان لديك بالفعل مورد Application Insights:

      • بشكل افتراضي، تقوم Azure Functions بإنشاء مورد Application Insights. ولكن إذا كنت تريد استخدام مورد قمت بإنشائه مسبقا، يجب تحديد ذلك أثناء الإنشاء.

      • اتبع إرشادات كيفية إنشاء مورد Azure Functions بالتعديل التالي:

        في علامة التبويب Monitoring ، حدد مربع القائمة المنسدلة Application Insights ثم أدخل اسم المورد أو حدده.

        لقطة شاشة توضح تحديد مورد Application Insights الموجود في علامة التبويب Monitoring.

    • إذا لم يكن لديك مورد Application Insights تم إنشاؤه حتى الآن للدالة المشغلة بواسطة المؤقت:

      • بشكل افتراضي، عند إنشاء تطبيق Azure Functions الخاص بك، فإنه ينشئ مورد Application Insights لك. اتبع الإرشادات الخاصة بكيفية إنشاء مورد Azure Functions.

    إشعار

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

  2. أنشئ وظيفة تشغيل مؤقت.

    1. في تطبيق الوظائف لديك، حدد علامة التبويب Functions.
    2. حدد إضافة. في جزء Add function ، حدد التكوينات التالية:
      1. بيئة التطوير: التطوير في المدخل
      2. تحديد قالب: مشغل المؤقت
    3. حدد Add لإنشاء دالة مشغل المؤقت.

    لقطة شاشة توضح كيفية إضافة دالة مشغل مؤقت إلى تطبيق الوظائف.

إضافة تعليمة برمجية وتحريرها في محرر خدمة التطبيقات

انتقل إلى تطبيق الوظائف المنشور، وضمن أدوات التطوير، حدد علامة التبويب App Service Editor .

لإنشاء ملف جديد، انقر بزر الماوس الأيمن ضمن دالة مشغل المؤقت (على سبيل المثال، TimerTrigger1) وحدد New File. ثم أدخل اسم الملف وحدد Enter.

  1. إنشاء ملف جديد يسمى function.proj ولصق التعليمات البرمجية التالية:

    <Project Sdk="Microsoft.NET.Sdk"> 
        <PropertyGroup> 
            <TargetFramework>netstandard2.0</TargetFramework> 
        </PropertyGroup> 
        <ItemGroup> 
            <PackageReference Include="Microsoft.ApplicationInsights" Version="2.15.0" /> <!-- Ensure you’re using the latest version --> 
        </ItemGroup> 
    </Project> 
    

     لقطة شاشة تعرض function.proj في محرر خدمة التطبيقات.

  2. إنشاء ملف جديد يسمى runAvailabilityTest.csx ولصق التعليمات البرمجية التالية:

    using System.Net.Http; 
    
    public async static Task RunAvailabilityTestAsync(ILogger log) 
    { 
        using (var httpClient = new HttpClient()) 
        { 
            // TODO: Replace with your business logic 
            await httpClient.GetStringAsync("https://www.bing.com/"); 
        } 
    } 
    
  3. REGION_NAME حدد متغير البيئة كموقع توفر Azure صالح.

    قم بتشغيل الأمر التالي في Azure CLI لسرد المناطق المتوفرة.

    az account list-locations -o table
    
  4. انسخ التعليمات البرمجية التالية في ملف run.csx . (يمكنك استبدال التعليمات البرمجية الموجودة مسبقا.)

    #load "runAvailabilityTest.csx" 
    
    using System; 
    
    using System.Diagnostics; 
    
    using Microsoft.ApplicationInsights; 
    
    using Microsoft.ApplicationInsights.Channel; 
    
    using Microsoft.ApplicationInsights.DataContracts; 
    
    using Microsoft.ApplicationInsights.Extensibility; 
    
    private static TelemetryClient telemetryClient; 
    
    // ============================================================= 
    
    // ****************** DO NOT MODIFY THIS FILE ****************** 
    
    // Business logic must be implemented in RunAvailabilityTestAsync function in runAvailabilityTest.csx 
    
    // If this file does not exist, please add it first 
    
    // ============================================================= 
    
    public async static Task Run(TimerInfo myTimer, ILogger log, ExecutionContext executionContext) 
    
    { 
        if (telemetryClient == null) 
        { 
            // Initializing a telemetry configuration for Application Insights based on connection string 
    
            var telemetryConfiguration = new TelemetryConfiguration(); 
            telemetryConfiguration.ConnectionString = Environment.GetEnvironmentVariable("APPLICATIONINSIGHTS_CONNECTION_STRING"); 
            telemetryConfiguration.TelemetryChannel = new InMemoryChannel(); 
            telemetryClient = new TelemetryClient(telemetryConfiguration); 
        } 
    
        string testName = executionContext.FunctionName; 
        string location = Environment.GetEnvironmentVariable("REGION_NAME"); 
        var availability = new AvailabilityTelemetry 
        { 
            Name = testName, 
    
            RunLocation = location, 
    
            Success = false, 
        }; 
    
        availability.Context.Operation.ParentId = Activity.Current.SpanId.ToString(); 
        availability.Context.Operation.Id = Activity.Current.RootId; 
        var stopwatch = new Stopwatch(); 
        stopwatch.Start(); 
    
        try 
        { 
            using (var activity = new Activity("AvailabilityContext")) 
            { 
                activity.Start(); 
                availability.Id = Activity.Current.SpanId.ToString(); 
                // Run business logic 
                await RunAvailabilityTestAsync(log); 
            } 
            availability.Success = true; 
        } 
    
        catch (Exception ex) 
        { 
            availability.Message = ex.Message; 
            throw; 
        } 
    
        finally 
        { 
            stopwatch.Stop(); 
            availability.Duration = stopwatch.Elapsed; 
            availability.Timestamp = DateTimeOffset.UtcNow; 
            telemetryClient.TrackAvailability(availability); 
            telemetryClient.Flush(); 
        } 
    } 
    
    

نموذج التعليمات البرمجية لاختبار الويب متعدد الخطوات

اتبع نفس الإرشادات أعلاه، وبدلا من ذلك الصق التعليمات البرمجية التالية في ملف runAvailabilityTest.csx :

using System.Net.Http; 

public async static Task RunAvailabilityTestAsync(ILogger log) 
{ 
    using (var httpClient = new HttpClient()) 
    { 
        // TODO: Replace with your business logic 
        await httpClient.GetStringAsync("https://www.bing.com/"); 

        // TODO: Replace with your business logic for an additional monitored endpoint, and logic for additional steps as needed
        await httpClient.GetStringAsync("https://www.learn.microsoft.com/"); 
    } 
}

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