سجلات تتبع Xplornet / .NET Core و Python في Application Insights

أرسل سجلات التتبع التشخيصية لتطبيق ASP.NET/ASP.NET Core من ILogger أو NLog أو log4Net أو System.Diagnostics.Trace إلى Azure Application Insights . بالنسبة لتطبيقات Python، أرسل سجلات التتبع التشخيصية باستخدام AzureLogHandler في OpenCensus Python لـ Azure Monitor. يمكنك بعد ذلك استكشافها والبحث عنها. يتم دمج هذه السجلات مع ملفات السجل الأخرى من التطبيق الخاص بك. يمكنك استخدامها لتحديد الآثار المرتبطة بكل طلب مستخدم وربطها بأحداث وتقارير استثناءات أخرى.

إشعار

هل تحتاج إلى وحدة تسجيل الدخول؟ إنه محول مفيد لأجهزة تسجيل الحطاب التابعة لجهات خارجية. ولكن إذا لم تكن تستخدم NLog أو log4Net أو System.Diagnostics.Trace بالفعل، ففكر فقط في الاتصال بـ Application Insights TrackTrace () مباشرةً.

إشعار

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

تثبيت تسجيل على التطبيق الخاص بك

قم بتثبيت إطار عمل التسجيل الذي اخترته في مشروعك، والذي يجب أن يؤدي إلى إدخال في app.config أو web.config.

 <configuration>
  <system.diagnostics>
    <trace>
      <listeners>
        <add name="myAppInsightsListener" type="Microsoft.ApplicationInsights.TraceListener.ApplicationInsightsTraceListener, Microsoft.ApplicationInsights.TraceListener" />
      </listeners>
    </trace>
  </system.diagnostics>
</configuration>

تكوين Application Insights لتجميع السجلات

أضف Application Insights إلى مشروعك إذا لم تكن قد فعلت ذلك بعد وكان هناك خيار لتضمين جامع السجل.

أو انقر بزر الماوس الأيمن فوق مشروعك في مستكشف الحلول من أجل تكوين Application Insights . حدد الخيار تكوين مجموعة التتبع .

إشعار

لا توجد قائمة Application Insights أو خيار أداة تجميع السجلات؟ حاول استكشاف الأخطاء وإصلاحها.

تثبيت يدوي

استخدم هذه الطريقة إذا كان نوع مشروعك غير مدعوم من قبل مثبّت Application Insights. على سبيل المثال، إذا كان مشروعًا لسطح مكتب Windows.

  1. إذا كنت تخطط لاستخدام log4Net أو NLog، فقم بتثبيته في مشروعك.

  2. في مستكشف الحلول انقر بزر الماوس الأيمن فوق مشروعك، وحدد إدارة حزم NuGet .

  3. ابحث عن Application Insights.

  4. حدد إحدى الحزم التالية:

تقوم حزمة NuGet بتثبيت التجميعات الضرورية وتعديل web.config أو app.config إذا كان ذلك ممكنًا.

ILogger

للحصول على أمثلة لاستخدام تطبيق Application Insights ILogger مع تطبيقات وحدة التحكم وASP.NET Core، راجع ApplicationInsightsLoggerProvider لسجلات .NET Core ILogger .

إدخال مكالمات سجل التشخيص

إذا كنت تستخدم System.Diagnostics.Trace، فستكون المكالمة النموذجية:

System.Diagnostics.Trace.TraceWarning("Slow response - database01");

إذا كنت تفضل log4net أو NLog، فاستخدم:

    logger.Warn("Slow response - database01");

استخدام أحداث مصدر الأحداث

يمكنك تكوين أحداث System.Diagnostics.Tracing.EventSource ليتم إرسالها إلى Application Insights كتتبع. أولًا، قم بتثبيت حزمة Microsoft.ApplicationInsights.EventSourceListener NuGet. ثم قم بتحرير القسم TelemetryModules من ملف ApplicationInsights.config .

    <Add Type="Microsoft.ApplicationInsights.EventSourceListener.EventSourceTelemetryModule, Microsoft.ApplicationInsights.EventSourceListener">
      <Sources>
        <Add Name="MyCompany" Level="Verbose" />
      </Sources>
    </Add>

لكل مصدر، يمكنك ضبط المعلمات التالية:

  • يحدد الاسم اسم مصدر الحدث المراد تجميعه.
  • يحدد المستوى مستوى التسجيل المراد تجميعه: حرج ، خطأ ، إعلامي ، LogAlways ، مطول ، أو تحذير .
  • الكلمات الرئيسية (اختياري) حدد قيمة عدد صحيح لتركيبات الكلمات الرئيسية المراد استخدامها.

استخدام أحداث DiagnosticSource

يمكنك تكوين أحداث System.Diagnostics.DiagnosticSource ليتم إرسالها إلى Application Insights كتتبع. أولًا، قم بتثبيت حزمة Microsoft.ApplicationInsights.DiagnosticSourceListener NuGet. ثم قم بتحرير قسم "TelemetryModules" من ملف ApplicationInsights.config .

    <Add Type="Microsoft.ApplicationInsights.DiagnosticSourceListener.DiagnosticSourceTelemetryModule, Microsoft.ApplicationInsights.DiagnosticSourceListener">
      <Sources>
        <Add Name="MyDiagnosticSourceName" />
      </Sources>
    </Add>

لكل مصدر تشخيص تريد تتبعه، أضف إدخالاً مع Name تعيين السمة إلى اسم مصدر التشخيص الخاص بك.

استخدام أحداث ETW

يمكنك تكوين Event Tracing for Windows (ETW) ليتم إرسالها إلى Application Insights كتتبع. أولًا، قم بتثبيت حزمة Microsoft.ApplicationInsights.EtwCollector NuGet. ثم قم بتحرير قسم "TelemetryModules" من ملف ApplicationInsights.config .

إشعار

لا يمكن جمع أحداث ETW إلا إذا كانت العملية التي تستضيف SDK تعمل تحت هوية عضو في Performance Log Users أو المسؤولين.

    <Add Type="Microsoft.ApplicationInsights.EtwCollector.EtwCollectorTelemetryModule, Microsoft.ApplicationInsights.EtwCollector">
      <Sources>
        <Add ProviderName="MyCompanyEventSourceName" Level="Verbose" />
      </Sources>
    </Add>

لكل مصدر، يمكنك ضبط المعلمات التالية:

  • ProviderName هو اسم موفر ETW المراد جمعه.
  • يحدد ProviderGuid المعرف الفريد العمومي (GUID) لموفر ETW لتجميعه. يمكن استخدامه بدلًا من ProviderName.
  • يحدد المستوى مستوى التسجيل المطلوب تجميعه. يمكن أن يكون هامًا أو خطأ أو معلوماتي أو LogAlways أو مطوّل أو تحذير .
  • الكلمات الرئيسية (اختياري) حدد القيمة الصحيحة لمجموعات الكلمات الرئيسية المراد استخدامها.

استخدم Trace API مباشرة

يمكنك استدعاء Application Insights لتتبع API بصفة مباشرة. تستخدم محولات التسجيل واجهة برمجة التطبيقات هذه.

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

TelemetryConfiguration configuration = TelemetryConfiguration.CreateDefault();
var telemetryClient = new TelemetryClient(configuration);
telemetryClient.TrackTrace("Slow response - database01");

الميزة TrackTrace هي أنه يمكنك وضع بيانات طويلة نسبيًا في الرسالة. على سبيل المثال، يمكنك تشفير بيانات POST هناك.

يمكنك أيضًا إضافة مستوى خطورة إلى رسالتك. ومثل غيره من عمليات القياس عن بُعد، يمكنك إضافة قيم خاصية للمساعدة في التصفية أو البحث عن مجموعات مختلفة من الآثار. على سبيل المثال:

TelemetryConfiguration configuration = TelemetryConfiguration.CreateDefault();
var telemetryClient = new TelemetryClient(configuration);
telemetryClient.TrackTrace("Slow database response",
                            SeverityLevel.Warning,
                            new Dictionary<string, string> { { "database", "db.ID" } });

الآن يمكنك بسهولة التصفية في البحث في المعاملات جميع الرسائل ذات مستوى خطورة معين التي تتعلق بقاعدة بيانات معينة.

AzureLogHandler for OpenCensus Python

يسمح لك معالج سجل Azure Monitor بتصدير سجلات Python إلى Azure Monitor.

قم بتجهيز تطبيقك باستخدام OpenCensus Python SDK لـAzure Monitor.

يوضح هذا المثال كيفية إرسال سجل مستوى تحذير إلى Azure Monitor.

import logging

from opencensus.ext.azure.log_exporter import AzureLogHandler

logger = logging.getLogger(__name__)
logger.addHandler(AzureLogHandler(connection_string='InstrumentationKey=<your-instrumentation_key-here>'))
logger.warning('Hello, World!')

التعرف على سجلاتك

شغّل تطبيقك في وضع التصحيح أو انشره مباشرةً.

في جزء نظرة عامة على التطبيق في مدخل Application Insights، حدد Transaction Search.

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

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

إشعار

إذا كان تطبيقك يرسل الكثير من البيانات وكنت تستخدم Application Insights SDK لـASP.NET إصدار 2.0.0-beta3 أو أحدث، فقد تعمل ميزة أخذ العينات التكيفية وترسل جزءًا فقط من تتبعك عن بُعد. تعرف على المزيد حول أخذ العينات.

استكشاف الأخطاء وإصلاحها

ابحث عن إجابات على الأسئلة الشائعة.

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

يحتوي System.Diagnostics.Tracing على ميزة المسح التلقائي . تتسبب هذه الميزة في تدفق SDK مع كل عنصر قياس عن بُعد، وهو أمر غير مرغوب فيه، ويمكن أن يتسبب في حدوث مشكلات في محول التسجيل مثل التأخير في القياس عن بُعد، والشبكة المحملة بشكل زائد، والإرسال غير الفعال.

كيف أعمل هذا لـJava؟

في أجهزة Java غير المشفرة، الموصى بها، يتم جمع السجلات خارج الصندوق. استخدم عامل Java 3.0.

يجمع عامل Java Application Insights السجلات من Log4j و Logback و java.util.logging خارج الصندوق.

لماذا لا يوجد خيار Application Insights في قائمة سياق المشروع؟

  • تأكد من تثبيت Developer Analytics Tools على جهاز التطوير. في Visual Studio، انتقل إلى الأدوات > الإضافات والتحديثات ، ابحث عن أدوات تحليلات المطورين . إذا لم يكن موجودًا في علامة التبويب مثبت ، فافتح علامة التبويب عبر الإنترنت وقم بتثبيته.
  • قد يكون نوع المشروع هذا من النوع الذي لا تدعمه أدوات تحليلات المطور. استخدم التثبيت اليدوي .

لماذا لا يوجد خيار محول السجل في أداة التكوين؟

  • قم بتثبيت إطار عمل التسجيل أولًا.
  • إذا كنت تستخدم System.Diagnostics.Trace، فتأكد من تكوينه في web.config.
  • تأكد من أن لديك أحدث إصدار من Application Insights. في Visual Studio، انتقل إلى الأدوات> الملحقات والتحديثات، وافتح علامة التبويب تحديثات. إذا كانت أدوات تحليلات المطورين موجودة، فحددها لتحديثها.

لماذا أحصل على رسالة الخطأ "لا يمكن أن يكون مفتاح تقرير عن حالة النظام فارغًا"؟

من المحتمل أنك قمت بتثبيت حزمة NuGet لمحول التسجيل دون تثبيت Application Insights. في مستكشف الحلول، انقر بزر الماوس الأيمن فوق ApplicationInsights.config ، وحدد Update Application Insights . تتم مطالبتك بتسجيل الدخول إلى Azure وإنشاء مورد Application Insights أو إعادة استخدام مورد موجود. يجب أن يحل المشكلة.

قد يستغرق الأمر بعض الوقت حتى تمر جميع الأحداث والطلبات عبر خط الأنابيب.

ما مقدار البيانات التي يتم الاحتفاظ بها؟

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

لماذا لا أرى بعض إدخالات السجل التي توقعتها؟

ربما يرسل تطبيقك كميات هائلة من البيانات وأنت تستخدم Application Insights SDK لـ ASP.NET الإصدار 2.0.0-beta3 أو إصدار أحدث. في هذه الحالة، قد تعمل ميزة أخذ العينات التكيفية وترسل جزءًا فقط من القياس عن بُعد الخاص بك. تعرف على المزيد حول أخذ العينات.

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