مراقبة التطبيق لخدمة التطبيقات Azure Node.js
لا تتطلب مراقبة تطبيقات الويب Node.js التي تعمل على Azure App Services أي تعديلات على التعليمات البرمجية. ترشدك هذه المقالة خلال تمكين مراقبة Azure Monitor Application Insights وتوفر إرشادات أولية لأتمتة عملية عمليات النشر واسعة النطاق.
تمكين "Application Insights"
الطريقة السهلة لتمكين مراقبة التطبيقات لتطبيقات Node.js التي تعمل على خدمات تطبيقات Azure هي من خلال مدخل Microsoft Azure. سيؤدي تشغيل مراقبة التطبيق في مدخل Microsoft Azure إلى تثبيت تطبيقك تلقائيًا باستخدام Application Insights، ولا يتطلب أي تغييرات في التعليمة البرمجية.
إشعار
يمكنك تكوين العامل المرفق تلقائيا باستخدام متغير البيئة APPLICATIONINSIGHTS_CONFIGURATION_CONTENT في شفرة متغير App Service Environment. للحصول على تفاصيل حول خيارات التكوين التي يمكن تمريرها عبر متغير البيئة هذا، راجع تكوين Node.js.
إشعار
إذا تم الكشف عن كل من الأجهزة التلقائية والأجهزة اليدوية المستندة إلى SDK، يتم الالتزام بإعدادات الأجهزة اليدوية فقط. هذا لمنع إرسال البيانات المكررة. لمزيد من المعلومات، راجع قسم استكشاف الأخطاء وإصلاحها في هذه المقالة.
البنية التلقائية من خلال مدخل Microsoft Azure
للحصول على قائمة كاملة بسيناريوهات البنية التلقائية المدعومة، راجع البيئات واللغات وموفري الموارد المعتمدين.
يمكنك تشغيل المراقبة لتطبيقات Node.js التي تعمل في Azure App Service بنقرة واحدة فقط، ولا يتطلب الأمر تغيير التعليمات البرمجية. يتم دمج Application Insights لـNode.js مع Azure App Service على لينكس - حاويات تعتمد على التعليمات البرمجية والعرف، ومع خدمة التطبيقات على Windows للتطبيقات المستندة إلى التعليمات البرمجية. التكامل في المعاينة العامة. يضيف التكامل SDK Node.js، وهو في التوفر العام
اختر Application Insights في لوحة تحكم Azure لخدمة التطبيق، ثم حدد Enable.
اختر إنشاء مورد جديد أو حدد موردا Insights للتطبيق لهذا التطبيق.
إشعار
عند تحديدموافقلإنشاء مورد جديد ستتم مطالبتكبتطبيق إعدادات المراقبة. سيؤدي تحديدمتابعةإلى ربط مورد Application Insights الجديد بخدمة التطبيق الخاص بك، وسيؤدي ذلك أيضاً إلىإعادة تشغيل خدمة التطبيق.
بمجرد تحديد المورد الذي يجب استخدامه، يتم تعيين كل شيء على الانتقال.
التكوين
يمكن تكوين عامل Node.js باستخدام JSON. APPLICATIONINSIGHTS_CONFIGURATION_CONTENT
تعيين متغير البيئة إلى سلسلة JSON أو تعيين APPLICATIONINSIGHTS_CONFIGURATION_FILE
متغير البيئة إلى مسار الملف الذي يحتوي على JSON.
"samplingPercentage": 80,
"enableAutoCollectExternalLoggers": true,
"enableAutoCollectExceptions": true,
"enableAutoCollectHeartbeat": true,
"enableSendLiveMetrics": true,
...
تتوفر المجموعة الكاملة من التكوينات ، ما عليك سوى استخدام ملف json صالح.
تمكين المراقبة من جانب العميل
لتمكين مراقبة العميل لتطبيق Java الخاص بك، تحتاج إلىإضافة جانب العميل في Java Script SDK يدوياً إلى التطبيق الخاص بك.
أتمتة المراقبة
لتمكين جمع القياس عن بعد باستخدام Application Insights، تحتاج فقط تعيين إعدادات التطبيق التالية:
تعريفات إعدادات التطبيق
اسم إعداد التطبيق | التعريف | القيمة |
---|---|---|
ApplicationInsightsAgent_EXTENSION_VERSION | التمديد الرئيسي، الذي يتحكم في مراقبة وقت التشغيل. | ~2 في Windows أو في~3 Linux. |
XDT_MicrosoftApplicationInsights_NodeJS | وضع علامة للتحكم في حالة تضمين عامل Node.js. | 0 أو 1 تنطبق فقط في Windows. |
إشعار
لا يتوفر محلل الملفات ومصحح اللقطات لتطبيقات Node.js
إعدادات تطبيق App Service باستخدام Azure Resource Manager
يمكن إدارة إعدادات التطبيق ل Azure App Service وتكوينها باستخدام قوالب Azure Resource Manager. يمكنك استخدام هذا الأسلوب عند نشر موارد App Service جديدة مع أتمتة Resource Manager أو تعديل إعدادات الموارد الموجودة.
البنية الأساسية لإعدادات التطبيق JSON لمورد App Service:
"resources": [
{
"name": "appsettings",
"type": "config",
"apiVersion": "2015-08-01",
"dependsOn": [
"[resourceId('Microsoft.Web/sites', variables('webSiteName'))]"
],
"tags": {
"displayName": "Application Insights Settings"
},
"properties": {
"key1": "value1",
"key2": "value2"
}
}
]
للحصول على مثال لقالب Resource Manager مع إعدادات التطبيق المكونة ل Application Insights، يمكن أن يكون هذا القالب مفيدا. على وجه التحديد، راجع القسم الذي يبدأ في السطر 238.
أتمتة إنشاء مورد Application Insights والارتباط بمورد App Service الذي تم إنشاؤه حديثا
لإنشاء قالب Resource Manager مع إعدادات Application Insights الافتراضية، ابدأ العملية كما لو كنت ستنشئ تطبيق ويب جديدا مع تمكين Application Insights.
إنشاء مورد خدمات التطبيق الجديد بمعلومات تطبيق الويب المطلوبة. تمكين Application Insights في علامة التبويب Monitoring .
حدد "Review + create". ثم حدد تنزيل قالب للأتمتة.
ينشئ هذا الخيار أحدث قالب Resource Manager مع تكوين جميع الإعدادات المطلوبة.
في النموذج التالي، استبدل كافة مثيلات AppMonitoredSite
باسم موقعك:
إشعار
إذا كنت تستخدم Windows، فقم بتعيين ApplicationInsightsAgent_EXTENSION_VERSION
إلى ~2
. إذا كنت تستخدم Linux، فقم بتعيين ApplicationInsightsAgent_EXTENSION_VERSION
إلى ~3
.
{
"resources": [
{
"name": "[parameters('name')]",
"type": "Microsoft.Web/sites",
"properties": {
"siteConfig": {
"appSettings": [
{
"name": "APPINSIGHTS_INSTRUMENTATIONKEY",
"value": "[reference('microsoft.insights/components/AppMonitoredSite', '2015-05-01').InstrumentationKey]"
},
{
"name": "APPLICATIONINSIGHTS_CONNECTION_STRING",
"value": "[reference('microsoft.insights/components/AppMonitoredSite', '2015-05-01').ConnectionString]"
},
{
"name": "ApplicationInsightsAgent_EXTENSION_VERSION",
"value": "~2"
}
]
},
"name": "[parameters('name')]",
"serverFarmId": "[concat('/subscriptions/', parameters('subscriptionId'),'/resourcegroups/', parameters('serverFarmResourceGroup'), '/providers/Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]",
"hostingEnvironment": "[parameters('hostingEnvironment')]"
},
"dependsOn": [
"[concat('Microsoft.Web/serverfarms/', parameters('hostingPlanName'))]",
"microsoft.insights/components/AppMonitoredSite"
],
"apiVersion": "2016-03-01",
"location": "[parameters('location')]"
},
{
"apiVersion": "2016-09-01",
"name": "[parameters('hostingPlanName')]",
"type": "Microsoft.Web/serverfarms",
"location": "[parameters('location')]",
"properties": {
"name": "[parameters('hostingPlanName')]",
"workerSizeId": "[parameters('workerSize')]",
"numberOfWorkers": "1",
"hostingEnvironment": "[parameters('hostingEnvironment')]"
},
"sku": {
"Tier": "[parameters('sku')]",
"Name": "[parameters('skuCode')]"
}
},
{
"apiVersion": "2015-05-01",
"name": "AppMonitoredSite",
"type": "microsoft.insights/components",
"location": "West US 2",
"properties": {
"ApplicationId": "[parameters('name')]",
"Request_Source": "IbizaWebAppExtensionCreate"
}
}
],
"parameters": {
"name": {
"type": "string"
},
"hostingPlanName": {
"type": "string"
},
"hostingEnvironment": {
"type": "string"
},
"location": {
"type": "string"
},
"sku": {
"type": "string"
},
"skuCode": {
"type": "string"
},
"workerSize": {
"type": "string"
},
"serverFarmResourceGroup": {
"type": "string"
},
"subscriptionId": {
"type": "string"
}
},
"$schema": "https://schema.management.azure.com/schemas/2014-04-01-preview/deploymentTemplate.json#",
"contentVersion": "1.0.0.0"
}
تمكين من خلال PowerShell
لتمكين مراقبة التطبيق من خلال PowerShell، يجب تغيير إعدادات التطبيق الأساسية فقط. تمكن العينة التالية مراقبة التطبيق لموقع ويب يسمى AppMonitoredSite
في مجموعة AppMonitoredRG
الموارد . يقوم بتكوين البيانات لإرسالها إلى 012345678-abcd-ef01-2345-6789abcd
مفتاح تقرير عن حالة النظام.
إشعار
نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. راجع تثبيت Azure PowerShell للبدء. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.
إشعار
إذا كنت تستخدم Windows، فقم بتعيين ApplicationInsightsAgent_EXTENSION_VERSION إلى ~2
. إذا كنت تستخدم Linux، فقم بتعيين ApplicationInsightsAgent_EXTENSION_VERSION إلى ~3
.
$app = Get-AzWebApp -ResourceGroupName "AppMonitoredRG" -Name "AppMonitoredSite" -ErrorAction Stop
$newAppSettings = @{} # case-insensitive hash map
$app.SiteConfig.AppSettings | %{$newAppSettings[$_.Name] = $_.Value} # preserve non Application Insights application settings.
$newAppSettings["APPINSIGHTS_INSTRUMENTATIONKEY"] = "012345678-abcd-ef01-2345-6789abcd"; # set the Application Insights instrumentation key
$newAppSettings["APPLICATIONINSIGHTS_CONNECTION_STRING"] = "InstrumentationKey=012345678-abcd-ef01-2345-6789abcd"; # set the Application Insights connection string
$newAppSettings["ApplicationInsightsAgent_EXTENSION_VERSION"] = "~2"; # enable the ApplicationInsightsAgent
$app = Set-AzWebApp -AppSettings $newAppSettings -ResourceGroupName $app.ResourceGroup -Name $app.Name -ErrorAction Stop
استكشاف الأخطاء وإصلاحها
فيما يلي دليل استكشاف الأخطاء وإصلاحها خطوة بخطوة للمراقبة المستندة إلى الملحقات/الوكلاء للتطبيقات المستندة إلى Node.js التي تعمل على خدمات تطبيقات Azure.
تحقق من
ApplicationInsightsAgent_EXTENSION_VERSION
تعيين إعداد التطبيق إلى قيمة "~2".استعرض إلى
https://yoursitename.scm.azurewebsites.net/ApplicationInsights
.تأكد من أن
Application Insights Extension Status
هيPre-Installed Site Extension, version 2.8.x.xxxx, is running.
إذا لم يكن قيد التشغيل، اتبع مراقبة الإرشادات لتمكين Application Insights.
انتقل إلى D:\local\Temp\status.json وفتح status.json.
تأكد من تعيين
SDKPresent
إلى خطأ وAgentInitializedSuccessfully
إلى وIKey
إلى صحيح.فيما يلي مثال لملف JSON:
"AppType":"node.js", "MachineName":"c89d3a6d0357", "PID":"47", "AgentInitializedSuccessfully":true, "SDKPresent":false, "IKey":"00000000-0000-0000-0000-000000000000", "SdkVersion":"1.8.10"
إذا
SDKPresent
كان صحيحاً هذا يشير إلى أن الملحق الكشف عن وجود بعض جوانب SDK بالفعل في التطبيق ثم سيتم التراجع.
ما الفرق بين المقاييس القياسية من Application Insights مقابل مقاييس Azure App Service؟
تجمع Application Insights بيانات تتبع الاستخدام للطلبات التي قدمتها إلى التطبيق. إذا حدث الفشل في WebApps/WebServer، ولم يصل الطلب إلى تطبيق المستخدم، فلن يكون لدى Application Insights أي بيانات تتبع الاستخدام عنه.
لا تتطابق مدة serverresponsetime
الحساب بواسطة Application Insights بالضرورة مع وقت استجابة الخادم الذي لاحظته تطبيقات الويب. هذا السلوك لأن Application Insights تحسب المدة فقط عندما يصل الطلب فعليا إلى تطبيق المستخدم. إذا كان الطلب عالقا أو في قائمة الانتظار في WebServer، يتم تضمين وقت الانتظار في مقاييس Web Apps ولكن ليس في مقاييس Application Insights.
اختبار الاتصال بين مضيف التطبيق وخدمة الاستيعاب
ترسل Application Insights SDKs والوكلاء بيانات تتبع الاستخدام للحصول على استيعابها كمكالمات REST إلى نقاط نهاية الاستيعاب الخاصة بنا. يمكنك اختبار الاتصال من خادم الويب أو الجهاز المضيف للتطبيق إلى نقاط نهاية خدمة الاستيعاب باستخدام عملاء REST الخام من أوامر PowerShell أو curl. راجع استكشاف أخطاء بيانات تتبع استخدام التطبيق المفقودة وإصلاحها في Azure Monitor Application Insights.
ملاحظات الإصدار
للحصول على آخر التحديثات وإصلاحات الأخطاء، راجع ملاحظات الإصدار.
الخطوات التالية
- مراقبة وظائف Azure مع Application Insights.
- تمكين التشخيص Azureلإرساله إلى Application Insights.
- مراقبة مقاييس صحة الخدمةللتأكد من توفر الخدمة والاستجابة لها.
- تلقي إعلامات التنبيهكلما وقعت أحداث تشغيلية أو تجاوزت المقاييس حداً معيناً.
- استخدمApplication Insights لتطبيقات JavaScript وصفحات الويبللحصول على قياس العميل عن بُعد من المتصفحات التي تزور صفحة ويب.
- نظرة عامة على التوفر