مراقبة حالة المفهرس ونتائجه في Azure الذكاء الاصطناعي Search

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

المراقبة باستخدام مدخل Microsoft Azure

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

Indexers list

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

يمكنك التحديد على مفهرس في القائمة للاطلاع على مزيد من التفاصيل حول عمليات التشغيل الحالية والأخيرة للمفهرس.

Indexer summary and execution history

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

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

Indexer execution details

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

Indexer details with errors

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

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

المراقبة باستخدام مقاييس مراقبة Azure

Azure الذكاء الاصطناعي Search هو مورد مراقب في Azure Monitor، ما يعني أنه يمكنك استخدام Metrics Explorer لمشاهدة المقاييس الأساسية حول عدد المستندات المعالجة بواسطة المفهرس واستدعاءات المهارات. يمكن استخدام هذه المقاييس لمراقبة تقدم المفهرس وإعداد التنبيهات.

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

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

تظهر لقطة الشاشة التالية عدد المستندات التي تمت معالجتها بواسطة المفهرسات داخل خدمة على مدار ساعة، مقسمة حسب اسم المفهرس.

Indexer documents processed metric

يمكنك أيضا تكوين الرسم البياني لمعرفة عدد استدعاءات المهارة على مدار نفس الفاصل الزمني للساعة.

Indexer skills invoked metric

المراقبة باستخدام الحصول على حالة المفهرس (REST API)

يمكنك استرداد حالة المفهرس ومحفوظات تنفيذه باستخدام الأمر الحصول على حالة المفهرس:

GET https://[service name].search.windows.net/indexers/[indexer name]/status?api-version=2020-06-30
api-key: [Search service admin key]

تحتوي الاستجابة على حالة المفهرس الإجمالية، واستدعاء المفهرس الأخير (أو قيد التقدم)، ومحفوظات استدعاءات المفهرس الأخيرة.

{
    "status":"running",
    "lastResult": {
        "status":"success",
        "errorMessage":null,
        "startTime":"2018-11-26T03:37:18.853Z",
        "endTime":"2018-11-26T03:37:19.012Z",
        "errors":[],
        "itemsProcessed":11,
        "itemsFailed":0,
        "initialTrackingState":null,
        "finalTrackingState":null
     },
    "executionHistory":[ {
        "status":"success",
         "errorMessage":null,
        "startTime":"2018-11-26T03:37:18.853Z",
        "endTime":"2018-11-26T03:37:19.012Z",
        "errors":[],
        "itemsProcessed":11,
        "itemsFailed":0,
        "initialTrackingState":null,
        "finalTrackingState":null
    }]
}

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

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

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

عند إعادة تعيين مفهرس لتحديث حالة تعقب التغيير الخاصة به، تتم إضافة إدخال محفوظات تنفيذ منفصل بحالة إعادة تعيين .

لمزيد من المعلومات حول رموز الحالة وبيانات مراقبة المفهرس، راجع الحصول على حالة المفهرس.

المراقبة باستخدام .NET

يكتب المثال C# التالي معلومات حول حالة المفهرس ويتم تشغيل نتائج أحدث (أو مستمر) إلى وحدة التحكم.

static void CheckIndexerStatus(SearchIndexerClient indexerClient, SearchIndexer indexer)
{
    try
    {
        string indexerName = "hotels-sql-idxr";
        SearchIndexerStatus execInfo = indexerClient.GetIndexerStatus(indexerName);

        Console.WriteLine("Indexer has run {0} times.", execInfo.ExecutionHistory.Count);
        Console.WriteLine("Indexer Status: " + execInfo.Status.ToString());

        IndexerExecutionResult result = execInfo.LastResult;

        Console.WriteLine("Latest run");
        Console.WriteLine("Run Status: {0}", result.Status.ToString());
        Console.WriteLine("Total Documents: {0}, Failed: {1}", result.ItemCount, result.FailedItemCount);

        TimeSpan elapsed = result.EndTime.Value - result.StartTime.Value;
        Console.WriteLine("StartTime: {0:T}, EndTime: {1:T}, Elapsed: {2:t}", result.StartTime.Value, result.EndTime.Value, elapsed);

        string errorMsg = (result.ErrorMessage == null) ? "none" : result.ErrorMessage;
        Console.WriteLine("ErrorMessage: {0}", errorMsg);
        Console.WriteLine(" Document Errors: {0}, Warnings: {1}\n", result.Errors.Count, result.Warnings.Count);
    }
    catch (Exception e)
    {
        // Handle exception
    }
}

سيبدو الإخراج في وحدة التحكم كما يلي:

Indexer has run 18 times.
Indexer Status: Running
Latest run
  Run Status: Success
  Total Documents: 7, Failed: 0
  StartTime: 11:29:31 PM, EndTime: 11:29:31 PM, Elapsed: 00:00:00.2560000
  ErrorMessage: none
  Document Errors: 0, Warnings: 0

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

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

عند إعادة تعيين مفهرس لتحديث حالة تعقب التغييرات الخاصة به، تتم إضافة إدخال محفوظات منفصل بحالة إعادة تعيين .

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

لمزيد من المعلومات حول رموز الحالة ومعلومات مراقبة المفهرس، راجع مرجع واجهة برمجة التطبيقات التالي: