استخدام عامل Application Insights Java In-Process في Azure Spring Apps

إشعار

يعد Azure Spring Apps هو الاسم الجديد لخدمة Azure Spring Cloud. رغم أن الخدمة تحمل اسماً جديداً، سترى الاسم القديم في بعض الأماكن لفترة من الوقت بينما نعمل على تحديث الأصول مثل لقطات الشاشة، ومقاطع الفيديو، والرسوم التخطيطية.

مع تطبيقات Spring Boot Native Image، استخدم Azure Monitor OpenTelemetry Distro / Application Insights في مشروع تطبيق Java للصورة الأصلية ل Spring Boot بدلا من وكيل Application Insights Java.

تنطبق هذه المقالة على: ✔️ الاستهلاك القياسي والمخصصة (معاينة) ✔️ Basic/Standard ✔️ Enterprise

توضح هذه المقالة كيفية مراقبة التطبيقات باستخدام عامل Application Insights Java في Azure Spring Apps.

باستخدام هذه الميزة، يمكنك:

  • البحث في بيانات التعقب باستخدام عوامل تصفية مختلفة.
  • عرض خريطة تبعية لتطبيقات Spring.
  • فحص أداء الطلب.
  • مراقبة المقاييس المباشرة في الوقت الحقيقي.
  • فحص حالات فشل الطلب.
  • فحص مقاييس التطبيق.
  • فحص سجل التطبيقات.

يمكن أن توفر Application Insights العديد من المنظورات التي يمكن ملاحظتها، بما في ذلك:

  • خريطة التطبيق
  • الأداء
  • الإخفاقات
  • المقاييس
  • القياسات المباشرة
  • التوافر
  • السجلات

استخدام ميزة Application Insights

عند تمكين ميزة Application Insights، يمكنك:

  • في جزء التنقل، حدد Application Insights لعرض صفحة نظرة عامة على Application Insights. تعرض لك صفحة Overview نظرة عامة على جميع التطبيقات قيد التشغيل.

  • حدد Application Map لمراجعة حالة المكالمات بين التطبيقات.

    لقطة شاشة لمدخل Azure تعرض صفحة خريطة تطبيق Application Insights.

  • حدد الارتباط بين خدمة العملاء وpetclinic لمراجعة المزيد من التفاصيل مثل استعلام من SQL.

  • حدد نقطة نهاية لمراجعة جميع التطبيقات التي تقدم طلبات إلى نقطة النهاية.

  • في جزء التنقل، حدد Performance لمشاهدة بيانات الأداء لجميع عمليات التطبيقات وتبعياتها وأدوارها.

    لقطة شاشة لمدخل Azure تعرض صفحة أداء Application Insights.

  • في جزء التنقل، حدد Failures لمشاهدة أي حالات فشل أو استثناءات غير متوقعة من تطبيقاتك.

    لقطة شاشة لمدخل Azure تعرض صفحة فشل Application Insights.

  • في جزء التنقل، حدد Metrics وحدد مساحة الاسم لمشاهدة كل من مقاييس Spring Boot والمقاييس المخصصة، إن وجدت.

    لقطة شاشة لمدخل Azure تعرض صفحة Application Insights Metrics.

  • في جزء التنقل، حدد Live Metrics لمشاهدة مقاييس الوقت الحقيقي لأبعاد مختلفة.

    لقطة شاشة لمدخل Azure تعرض صفحة Application Insights Live Metrics.

  • في جزء التنقل، حدد Availability لمراقبة توفر تطبيقات الويب واستجابتها عن طريق إنشاء اختبارات التوفر في Application Insights.

    لقطة شاشة لمدخل Azure تعرض صفحة توفر Application Insights.

  • في جزء التنقل، حدد Logs لعرض جميع سجلات التطبيقات، أو سجلات تطبيق واحد عند التصفية حسب cloud_RoleName.

    لقطة شاشة لمدخل Azure تعرض صفحة Application Insights Logs.

إدارة Application Insights باستخدام مدخل Microsoft Azure

قم بتمكين عامل Java In-Process باستخدام الإجراء التالي.

  1. انتقل إلى الخدمة | صفحة نظرة عامة على مثيل الخدمة الخاص بك ثم حدد Application Insights في قسم المراقبة .

  2. حدد Enable Application Insights لتمكين Application Insights في Azure Spring Apps.

  3. حدد مثيلاً موجوداً من Application Insights أو أنشئ مثيلاً جديداً.

  4. عند تمكين Application Insights، يمكنك تكوين معدل أخذ عينات اختياري واحد (افتراضي 10.0%).

    لقطة شاشة لمدخل Azure تعرض صفحة Application Insights ل Azure Spring Apps مع تمييز خانة الاختيار Enable Application Insights.

  5. حدد حفظ لحفظ التغيير.

إشعار

لا تستخدم نفس مثيل Application Insights في مثيلات Azure Spring Apps المختلفة، أو تظهر لك بيانات مختلطة.

يمكنك استخدام المدخل لفحص الإعدادات الحالية أو تحديثها في Application Insights.

إدارة Application Insights باستخدام مدخل Microsoft Azure

  1. حدد Application Insights.

  2. قم بتمكين Application Insights عن طريق تحديد Edit binding أو الارتباط التشعبي Unbound.

    لقطة شاشة لمدخل Azure Azure تعرض مثيل Azure Spring Apps مع صفحة Application Insights وخيار

  3. قم بتحرير Application Insights أو معدل أخذ العينات، ثم حدد Save.

تعطيل Application Insights

  1. حدد Application Insights.

  2. حدد Unbind binding لتعطيل Application Insights.

    لقطة شاشة لمدخل Azure تعرض مثيل Azure Spring Apps مع صفحة Application Insights وخيار ربط إلغاء الربط.

تغيير إعدادات Application Insights

حدد الاسم ضمن عمود Application Insights لفتح قسم Application Insights.

لقطة شاشة لمدخل Azure تعرض مثيل Azure Spring Apps مع صفحة Application Insights.

تحرير روابط Application Insights buildpack في Build Service

للتحقق من الإعدادات الحالية لروابطApplication Insights buildpack وتحديثها في Build Service، اتبع الخطوات التالية:

  1. حدد Build Service.
  2. اختر منشئك.
  3. حدد Edit ضمن عمود Bindings.

تم العثور على إعدادات Application Insights في عنصر ApplicationInsights المدرج ضمن عمود Binding type.

  1. حدد الارتباط التشعبي Bound، أو حدد Edit Binding ضمن القطع الناقص، لفتح وتحرير روابط Application Insights buildpack.

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

  2. قم بتحرير إعدادات الربط، ثم حدد Save.

    لقطة شاشة لمدخل Azure تعرض جزء تحرير الربط.

إدارة Application Insights باستخدام Azure CLI

يمكنك إدارة Application Insights باستخدام أوامر Azure CLI. في الأوامر التالية، تأكد من استبدال نص <العنصر النائب> بالقيم الموضحة. يشير العنصر النائب <service-instance-name> إلى اسم مثيل Azure Spring Apps.

تمكين "Application Insights"

لتكوين Application Insights عند إنشاء مثيل Azure Spring Apps، استخدم الأمر التالي. بالنسبة للوسيطة app-insights، يمكنك تحديد اسم Application Insights أو معرّف المورد.

az spring create \
    --resource-group <resource-group-name> \
    --name "service-instance-name" \
    --app-insights <name-or-resource-ID> \
    --sampling-rate <sampling-rate>
az spring create \
    --resource-group <resource-group-name> \
    --name "service-instance-name" \
    --app-insights <name-or-resource-ID> \
    --sampling-rate <sampling-rate> \
    --sku Enterprise

يمكنك أيضاً استخدام سلسلة اتصال Application Insights (المفضلة) أو مفتاح التقرير عن حالة النظام، كما هو موضح في المثال التالي.

az spring create \
    --resource-group <resource-group-name> \
    --name <service-instance-name> \
    --app-insights-key <connection-string-or-instrumentation-key> \
    --sampling-rate <sampling-rate>
az spring create \
    --resource-group <resource-group-name> \
    --name <service-instance-name> \
    --app-insights-key <connection-string-or-instrumentation-key> \
    --sampling-rate <sampling-rate> \
    --sku Enterprise

تعطيل Application Insights

لتعطيل Application Insights عند إنشاء مثيل Azure Spring Apps، استخدم الأمر التالي.

az spring create \
    --resource-group <resource-group-name> \
    --name <service-instance-name> \
    --disable-app-insights
az spring create \
    --resource-group <resource-group-name> \
    --name <service-instance-name> \
    --disable-app-insights \
    --sku Enterprise

فحص إعدادات Application Insights

للتحقق من إعدادات Application Insights لمثيل Azure Spring Apps موجود، استخدم الأمر التالي:

az spring app-insights show \
    --resource-group <resource-group-name> \
    --name <service-instance-name>

تحديث Application Insights

لتحديث Application Insights لاستخدام سلسلة اتصال (مفضلة) أو مفتاح تقرير عن حالة النظام، استخدم الأمر التالي:

az spring app-insights update \
    --resource-group <resource-group-name> \
    --name <service-instance-name> \
    --app-insights-key <connection-string-or-instrumentation-key> \
    --sampling-rate <sampling-rate>

لتحديث Application Insights لاستخدام اسم المورد أو معرّفه، استخدم الأمر التالي:

az spring app-insights update \
    --resource-group <resource-group-name> \
    --name <service-instance-name> \
    --app-insights <name-or-resource-ID> \
    --sampling-rate <sampling-rate>

تعطيل Application Insights باستخدام أمر التحديث

لتعطيل Application Insights على مثيل Azure Spring Apps، استخدم الأمر التالي.

az spring app-insights update \
    --resource-group <resource-group-name> \
    --name <service-instance-name> \
    --disable

إدارة روابط Application Insights buildpack

ينطبق هذا القسم على خطة المؤسسة فقط، ويوفر إرشادات تكمل القسم السابق.

تستخدم خطة Azure Spring Apps Enterprise روابط buildpack لدمج Azure Application Insights مع النوع ApplicationInsights. لمزيد من المعلومات، راجع كيفية تكوين تكامل APM وشهادات CA.

لإنشاء ربط Application Insights buildpack، استخدم الأمر التالي:

az spring build-service builder buildpack-binding create \
    --resource-group <your-resource-group-name> \
    --service <your-service-instance-name> \
    --name <your-binding-name> \
    --builder-name <your-builder-name> \
    --type ApplicationInsights \
    --properties sampling-percentage=<your-sampling-percentage> \
                 connection-string=<your-connection-string>

لإدراج جميع روابط buildpack، والعثور على روابط Application Insights من النوع ApplicationInsights، استخدم الأمر التالي:

az spring build-service builder buildpack-binding list \
    --resource-group <your-resource-group-name> \
    --service <your-service-resource-name> \
    --builder-name <your-builder-name>

لاستبدال ربط Application Insights buildpack، استخدم الأمر التالي:

az spring build-service builder buildpack-binding set \
    --resource-group <your-resource-group-name> \
    --service <your-service-instance-name> \
    --name <your-binding-name> \
    --builder-name <your-builder-name> \
    --type ApplicationInsights \
    --properties sampling-percentage=<your-sampling-percentage> \
                 connection-string=<your-connection-string>

للحصول على ربط Application Insights buildpack، استخدم الأمر التالي:

az spring build-service builder buildpack-binding show \
    --resource-group <your-resource-group-name> \
    --service <your-service-instance-name> \
    --name <your-binding-name> \
    --builder-name <your-builder-name>

للحصول على ربط Application Insights buildpack، استخدم الأمر التالي:

az spring build-service builder buildpack-binding delete \
    --resource-group <your-resource-group-name> \
    --service <your-service-instance-name> \
    --name <your-binding-name> \
    --builder-name <your-builder-name>

Automation

تصف الأقسام التالية كيفية أتمتة التوزيع باستخدام Bicep أو قوالب Azure Resource Manager (قوالب ARM) أو Terraform.

Bicep

للنشر باستخدام ملف Bicep، انسخ المحتوى التالي إلى ملف main.bicep . لمزيد من المعلومات، راجع Microsoft.AppPlatform Spring/monitoringSettings.

param springName string
param location string = resourceGroup().location

resource spring 'Microsoft.AppPlatform/Spring@2020-07-01' = {
  name: springName
  location: location
  properties: {}
}

resource monitorSetting 'Microsoft.AppPlatform/Spring/monitoringSettings@2020-11-01-preview' = {
  parent: spring
  name: 'default'
  properties: {
    appInsightsInstrumentationKey: '00000000-0000-0000-0000-000000000000'
    appInsightsSamplingRate: 88
  }
}

قوالب ARM

للتوزيع باستخدام قالب ARM، انسخ المحتوى التالي إلى ملف azuredeploy.json. لمزيد من المعلومات، راجع Microsoft.AppPlatform Spring/monitoringSettings.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "springName": {
      "type": "string"
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "resources": [
    {
      "type": "Microsoft.AppPlatform/Spring",
      "apiVersion": "2020-07-01",
      "name": "[parameters('springName')]",
      "location": "[parameters('location')]",
      "properties": {}
    },
    {
      "type": "Microsoft.AppPlatform/Spring/monitoringSettings",
      "apiVersion": "2020-11-01-preview",
      "name": "[format('{0}/{1}', parameters('springName'), 'default')]",
      "properties": {
        "appInsightsInstrumentationKey": "00000000-0000-0000-0000-000000000000",
        "appInsightsSamplingRate": 88
      },
      "dependsOn": [
        "[resourceId('Microsoft.AppPlatform/Spring', parameters('springName'))]"
      ]
    }
  ]
}

Terraform

لتوزيع Terraform، استخدم القالب التالي. لمزيد من المعلومات، راجع azurerm_spring_cloud_service.

provider "azurerm" {
  features {}
}

resource "azurerm_resource_group" "example" {
  name     = "example-resources"
  location = "West Europe"
}

resource "azurerm_application_insights" "example" {
  name                = "tf-test-appinsights"
  location            = azurerm_resource_group.example.location
  resource_group_name = azurerm_resource_group.example.name
  application_type    = "web"
}

resource "azurerm_spring_cloud_service" "example" {
  name                = "example-springcloud"
  resource_group_name = azurerm_resource_group.example.name
  location            = azurerm_resource_group.example.location
  sku_name            = "S0"

  config_server_git_setting {
    uri          = "https://github.com/Azure-Samples/piggymetrics"
    label        = "config"
    search_paths = ["dir1", "dir2"]
  }

  trace {
    connection_string = azurerm_application_insights.example.connection_string
    sample_rate       = 10.0
  }

  tags = {
    Env = "staging"
  }
}

التنفيذ التلقائي في خطة المؤسسة معلق للدعم. تتم إضافة الوثائق بمجرد توفرها.

تحديث/ترقية عامل Java

يتم تحديث/ترقية عامل Java بانتظام باستخدام JDK، مما قد يؤثر على السيناريوهات التالية.

إشعار

يتم تحديث/ترقية إصدار JDK كل ثلاثة أشهر سنويا.

  • لا تتأثر التطبيقات الموجودة التي تستخدم عامل Java قبل التحديث/الترقية.
  • تستخدم التطبيقات التي تم إنشاؤها بعد التحديث/الترقية الإصدار الجديد من عامل Java.
  • تتطلب التطبيقات الموجودة التي لم تستخدم عامل Java سابقا إعادة التشغيل أو إعادة التوزيع لاستخدام الإصدار الجديد من عامل Java.

يتم تحديث/ترقية عامل Java عند تحديث buildpack.

التحميل السريع لتكوين عامل Java

تحتوي Azure Spring Apps على آلية التحميل السريع لضبط إعدادات تكوين العامل دون إعادة تشغيل التطبيقات.

إشعار

آلية التحميل السريع تتأخر بدقائق.

  • إذا تم تمكين عامل Java بالفعل، فإن التغييرات التي تم إجراؤها على مثيل SamplingRate أو قيمة Application Insights لا تتطلب إعادة تشغيل التطبيق.

  • إذا قمت بتمكين عامل Java، فيجب عليك إعادة تشغيل التطبيقات.

  • عند تعطيل عامل Java، تتوقف التطبيقات عن إرسال جميع بيانات المراقبة بعد تأخير في دقائق. يمكنك إعادة تشغيل التطبيقات لإزالة العامل من بيئة وقت تشغيل Java.

مطابقة المفهوم بين Azure Spring Apps وApplication Insights

Azure Spring Apps Application Insights
App * مخطط التطبيق/الدور
* المقاييس المباشرة/الدور
* حالات الفشل/الأدوار/دور السحابة
* الأداء/الأدوار/دور السحابة
App Instance * مخطط التطبيق/مثيل الدور
* المقاييس المباشرة/اسم الخدمة
* حالات الفشل/الأدوار/مثيل السحابة
* الأداء/الأدوار/مثيل السحابة

يتم تغيير الاسم App Instance من Azure Spring Apps أو إنشاؤه في السيناريوهات التالية:

  • إنشاء تطبيق جديد.
  • توزيع ملف JAR أو التعليمات البرمجية المصدر إلى تطبيق موجود.
  • بدء توزيع أزرق/أخضر.
  • إعادة تشغيل التطبيق.
  • إيقاف توزيع تطبيق، ثم إعادة تشغيله.

عند تخزين البيانات في Application Insights، فإنها تحتوي على محفوظات مثيلات تطبيق Azure Spring Apps التي تم إنشاؤها أو توزيعها منذ تمكين عامل Java. على سبيل المثال، في مدخل Application Insights، يمكنك مراجعة بيانات التطبيق التي تم إنشاؤها أمس، ولكن بعد ذلك تم حذفها ضمن نطاق زمني محدد، مثل آخر 24 ساعة. توضح السيناريوهات التالية كيفية عمل ذلك:

  • لقد أنشأت تطبيقاً حوالي الساعة 8:00 صباحاً اليوم من Azure Spring Apps مع تمكين عامل Java، ثم قمت بنشر ملف JAR إلى هذا التطبيق حوالي الساعة 8:10 صباحاً اليوم. بعد إجراء بعض الاختبارات، يمكنك تغيير التعليمات البرمجية وتوزيع ملف JAR جديد إلى هذا التطبيق في الساعة 8:30 صباحاً اليوم. بعد ذلك، خذ استراحة، وعندما تعود حوالي الساعة 11:00 صباحاً، يمكنك التحقق من بعض البيانات من Application Insights. أنت ترى:
    • ثلاثة مثيلات في مخطط التطبيق مع نطاقات زمنية في آخر 24 ساعة، وحالات فشل وأداء ومقاييس.
    • مثيل واحد في مخطط التطبيق مع نطاق زمني في الساعة الأخيرة، وحالات فشل وأداء ومقاييس.
    • مثيل واحد في المقاييس المباشرة.
  • لقد أنشأت تطبيقاً حوالي الساعة 8:00 صباحاً اليوم من Azure Spring Apps مع تمكين عامل Java، ثم قمت بنشر ملف JAR إلى هذا التطبيق حوالي الساعة 8:10 صباحاً اليوم. حوالي الساعة 8:30 صباحاً اليوم، يمكنك تجربة توزيع أزرق/أخضر مع ملف JAR آخر. لديك حالياً اثنين من عمليات التوزيع لهذا التطبيق. بعد استراحة حوالي الساعة 11:00 صباحاً اليوم، تريد التحقق من بعض البيانات من Application Insights. أنت ترى:
    • ثلاثة مثيلات في مخطط التطبيق مع نطاقات زمنية في آخر 24 ساعة، وحالات فشل وأداء ومقاييس.
    • مثيلان في مخطط التطبيق مع نطاقات زمنية في آخر 24 ساعة، وحالات فشل وأداء ومقاييس.
    • مثيلان في المقاييس المباشرة.

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