أرسل خدمة السحابة أو الجهاز الظاهري أو بيانات تشخيص بنية الخدمة إلى Application Insights

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

تقوم هذه المقالة بتوضيح كيفية إرسال البيانات من ملحق تشخيص Azure إلى Application Insights.

وتم توضيح تكوين التشخيص

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

مثال تكوين متلقي لـApplication Insights:

<SinksConfig>
    <Sink name="ApplicationInsights">
      <ApplicationInsights>{Insert InstrumentationKey}</ApplicationInsights>
      <Channels>
        <Channel logLevel="Error" name="MyTopDiagData"  />
        <Channel logLevel="Verbose" name="MyLogData"  />
      </Channels>
    </Sink>
</SinksConfig>
"SinksConfig": {
    "Sink": [
        {
            "name": "ApplicationInsights",
            "ApplicationInsights": "{Insert InstrumentationKey}",
            "Channels": {
                "Channel": [
                    {
                        "logLevel": "Error",
                        "name": "MyTopDiagData"
                    },
                    {
                        "logLevel": "Error",
                        "name": "MyLogData"
                    }
                ]
            }
        }
    ]
}
  • تكون سمةالمتلقيالاسمقيمة سلسلة تحدد المتلقي بشكل فريد.

  • يقوم عنصرApplicationInsightsبتحديد مفتاح الأجهزة من مورد تفاصيل التطبيق حيث يتم إرسال بيانات التشخيص Azure.

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

    • تُشير سمةالاسمبشكل فريد إلى تلك القناة.
    • تتيح سمةloglevelتحديد مستوى السجل الذي تسمح به القناة. مستويات السجل المتوفرة بترتيب معظم المعلومات إلى أقلها هي:
      • مطول
      • ‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏‏المعلومات
      • تحذير
      • Error
      • هام

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

يقوم الرسم التالي بتوضيح هذه العلاقة.

Diagnostics Public Configuration

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

Diagnostics Sinks Configuration with Application Insights

مثال تكوين متلقي كامل

فيما يلي مثال كامل لملف التكوين العام الذي

  1. قم بإرسال جميع الأخطاء إلى Application Insights (المحدد في عقدة DiagnosticMonitorConfiguration)
  2. أيضًا يقوم بإرسال سجلات مستوى الرسالة المطولة لسجلات التطبيق (المحدد في عقدةالسجلات).
<WadCfg>
  <DiagnosticMonitorConfiguration overallQuotaInMB="4096"
       sinks="ApplicationInsights.MyTopDiagData"> <!-- All info below sent to this channel -->
    <DiagnosticInfrastructureLogs />
    <PerformanceCounters>
      <PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT3M" />
      <PerformanceCounterConfiguration counterSpecifier="\Memory\Available MBytes" sampleRate="PT3M" />
    </PerformanceCounters>
    <WindowsEventLog scheduledTransferPeriod="PT1M">
      <DataSource name="Application!*" />
    </WindowsEventLog>
    <Logs scheduledTransferPeriod="PT1M" scheduledTransferLogLevelFilter="Verbose"
            sinks="ApplicationInsights.MyLogData"/> <!-- This specific info sent to this channel -->
  </DiagnosticMonitorConfiguration>

<SinksConfig>
    <Sink name="ApplicationInsights">
      <ApplicationInsights>{Insert InstrumentationKey}</ApplicationInsights>
      <Channels>
        <Channel logLevel="Error" name="MyTopDiagData"  />
        <Channel logLevel="Verbose" name="MyLogData"  />
      </Channels>
    </Sink>
  </SinksConfig>
</WadCfg>
"WadCfg": {
    "DiagnosticMonitorConfiguration": {
        "overallQuotaInMB": 4096,
        "sinks": "ApplicationInsights.MyTopDiagData", "_comment": "All info below sent to this channel",
        "DiagnosticInfrastructureLogs": {
        },
        "PerformanceCounters": {
            "PerformanceCounterConfiguration": [
                {
                    "counterSpecifier": "\\Processor(_Total)\\% Processor Time",
                    "sampleRate": "PT3M"
                },
                {
                    "counterSpecifier": "\\Memory\\Available MBytes",
                    "sampleRate": "PT3M"
                }
            ]
        },
        "WindowsEventLog": {
            "scheduledTransferPeriod": "PT1M",
            "DataSource": [
                {
                    "name": "Application!*"
                }
            ]
        },
        "Logs": {
            "scheduledTransferPeriod": "PT1M",
            "scheduledTransferLogLevelFilter": "Verbose",
            "sinks": "ApplicationInsights.MyLogData", "_comment": "This specific info sent to this channel"
        }
    },
    "SinksConfig": {
        "Sink": [
            {
                "name": "ApplicationInsights",
                "ApplicationInsights": "{Insert InstrumentationKey}",
                "Channels": {
                    "Channel": [
                        {
                            "logLevel": "Error",
                            "name": "MyTopDiagData"
                        },
                        {
                            "logLevel": "Verbose",
                            "name": "MyLogData"
                        }
                    ]
                }
            }
        ]
    }
}

في التكوين السابق، تحتوي الخطوط التالية على المعاني التالية:

قم بإرسال كافة البيانات التي يتم تجميعها بواسطة التشخيص Azure

<DiagnosticMonitorConfiguration overallQuotaInMB="4096" sinks="ApplicationInsights">
"DiagnosticMonitorConfiguration": {
    "overallQuotaInMB": 4096,
    "sinks": "ApplicationInsights",
}

قم بإرسال سجلات الخطأ فقط إلى Application Insights

<DiagnosticMonitorConfiguration overallQuotaInMB="4096" sinks="ApplicationInsights.MyTopDiagdata">
"DiagnosticMonitorConfiguration": {
    "overallQuotaInMB": 4096,
    "sinks": "ApplicationInsights.MyTopDiagData",
}

قم بإرسال سجلات تطبيق الرسالة المطولة إلى Application Insights

<Logs scheduledTransferPeriod="PT1M" scheduledTransferLogLevelFilter="Verbose" sinks="ApplicationInsights.MyLogData"/>
"DiagnosticMonitorConfiguration": {
    "overallQuotaInMB": 4096,
    "sinks": "ApplicationInsights.MyLogData",
}

القيود

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

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

  • معرفة كيفيةعرض معلومات تشخيص Azureفي Application Insights.
  • قم باستخدامPowerShellمن أجل تمكين ملحق تشخيص Azure للتطبيق الخاص بك.
  • قم باستخدامVisual Studioمن أجل تمكين ملحق تشخيص Azure للتطبيق الخاص بك