استخدام لوحات المعلومات لتصور مقاييس Azure Databricks
إشعار
تعتمد هذه المقالة على مكتبة مصدر مفتوح مستضافة على GitHub على: https://github.com/mspnp/spark-monitoring.
تدعم المكتبة الأصلية Azure Databricks Runtimes 10.x (Spark 3.2.x) والإصدارات السابقة.
ساهمت Databricks بإصدار محدث لدعم أوقات تشغيل Azure Databricks 11.0 (Spark 3.3.x) وما فوق على l4jv2
الفرع في: https://github.com/mspnp/spark-monitoring/tree/l4jv2.
يرجى ملاحظة أن الإصدار 11.0 غير متوافق مع الإصدارات السابقة بسبب أنظمة التسجيل المختلفة المستخدمة في أوقات تشغيل Databricks. تأكد من استخدام البنية الصحيحة لوقت تشغيل Databricks. المكتبة ومستودع GitHub في وضع الصيانة. لا توجد خطط لمزيد من الإصدارات، وسيكون دعم الإصدار هو أفضل جهد فقط. للحصول على أي أسئلة إضافية حول المكتبة أو خارطة الطريق لمراقبة وتسجيل بيئات Azure Databricks، يرجى الاتصال ب azure-spark-monitoring-help@databricks.com.
توضح هذه المقالة كيفية إعداد لوحة معلومات Grafana لمراقبة وظائف Azure Databricks لمشكلات الأداء.
Azure Databricksهي خدمة تحليلات سريعة وقوية وتعاونية تستند إلى Apache Spark وتجعل من السهل تطوير ونشر حلول تحليلات البيانات الضخمة والذكاء الاصطناعي بسرعة. المراقبة هي مكون مهم لتشغيل أحمال عمل Azure Databricks في الإنتاج. الخطوة الأولى هي جمع المقاييس في مساحة عمل للتحليل. في Azure، أفضل حل لإدارة بيانات السجل هو Azure Monitor. لا يدعم Azure Databricks في الأصل إرسال بيانات السجل إلى Azure Monitor، ولكن تتوفر مكتبة لهذه الوظيفة في GitHub.
تتيح هذه المكتبة تسجيل مقاييس خدمة Azure Databricks بالإضافة إلى مقاييس أحداث استعلام تدفق بنية Apache Spark. بمجرد توزيع هذه المكتبة بنجاح إلى مجموعة Azure Databricks، يمكنك نشر مجموعة من لوحات معلومات Grafana التي يمكنك نشرها كجزء من بيئة الإنتاج الخاصة بك.
المتطلبات الأساسية
تكوين مجموعة Azure Databricks لاستخدام مكتبة المراقبة، كما هو موضح في GitHub readme.
توزيع مساحة عمل Azure Log Analytics
لتوزيع مساحة عمل Azure Log Analytics، اتبع الخطوات التالية:
انتقل إلى
/perftools/deployment/loganalytics
الدليل.وزع قالب logAnalyticsDeploy.json الخاص بـAzure Resource Manager. لمزيد من المعلومات حول نشر قوالب Resource Manager، راجع نشر الموارد باستخدام قوالب Resource Manager وAzure CLI. يتضمن القالب المعلمات التالية:
- الموقع: المنطقة التي يتم فيها نشر مساحة عمل Log Analytics ولوحات المعلومات.
- serviceTier: مستوى تسعير مساحة العمل. انظر هنا للحصول على قائمة بالقيم الصالحة.
- dataRetention (اختياري): عدد الأيام التي يتم فيها الاحتفاظ ببيانات السجل في مساحة عمل Log Analytics. القيمة الافتراضية هي 30 يومًا. إذا كان مستوى التسعير هو
Free
، فيجب أن يكون استبقاء البيانات سبعة أيام. - workspaceName (اختياري): اسم لمساحة العمل. إذا لم يتم تحديده، يقوم القالب بإنشاء اسم.
az deployment group create --resource-group <resource-group-name> --template-file logAnalyticsDeploy.json --parameters location='East US' serviceTier='Standalone'
ينشئ هذا القالب مساحة العمل وينشئ أيضًا مجموعة من الاستعلامات المعرفة مسبقًا تستخدمها لوحة المعلومات.
نشر Grafana في جهاز ظاهري
Grafana هو مشروع مصدر مفتوح يمكنك نشره لتصور مقاييس السلسلة الزمنية المخزنة في مساحة عمل Azure Log Analytics باستخدام المكون الإضافي Grafana لـ Azure Monitor. تنفذ Grafana على جهاز ظاهري (VM) وتتطلب حساب تخزين وشبكة ظاهرية وموارد أخرى. لنشر جهاز ظاهري مع صورة Grafana المعتمدة من Bitnami والموارد المرتبطة بها، اتبع الخطوات التالية:
استخدم Azure CLI لقبول شروط الصورة Azure Marketplace لـ Grafana.
az vm image terms accept --publisher bitnami --offer grafana --plan default
انتقل إلى الدليل في
/spark-monitoring/perftools/deployment/grafana
النسخة المحلية من مستودع GitHub.انشر قالب grafanaDeploy.json الخاص بـ Resource Manager كما يلي:
export DATA_SOURCE="https://raw.githubusercontent.com/mspnp/spark-monitoring/master/perftools/deployment/grafana/AzureDataSource.sh" az deployment group create \ --resource-group <resource-group-name> \ --template-file grafanaDeploy.json \ --parameters adminPass='<vm password>' dataSource=$DATA_SOURCE
بمجرد اكتمال النشر، يتم تثبيت صورة Bitnami ل Grafana على الجهاز الظاهري.
تحديث كلمة مرور Grafana
كجزء من عملية الإعداد، يقوم البرنامج النصي لتثبيت Grafana بإخراج كلمة مرور مؤقتة للمستخدم المسؤول. تحتاج إلى كلمة المرور المؤقتة هذه لتسجيل الدخول. للحصول على كلمة المرور المؤقتة، اتبع الخطوات التالية:
- قم بتسجيل الدخول إلى بوابة Azure.
- حدد مجموعة الموارد حيث تم نشر الموارد.
- حدد الجهاز الظاهري حيث تم تثبيت Grafana. إذا استخدمت اسم المعلمة الافتراضي في قالب النشر، يتم تمهيد اسم الجهاز الظاهري مع sparkmonitoring-vm-grafana.
- في قسم Support + troubleshooting، انقر فوق Boot diagnostics لفتح صفحة تشخيصات التمهيد.
- انقر فوق Serial log في صفحة تشخيصات التمهيد.
- ابحث عن السلسلة التالية:"Setting Bitnami application password to".
- انسخ كلمة المرور إلى مكان آمن.
بعد ذلك، قم بتغيير كلمة مرور مسؤول Grafana باتباع الخطوات التالية:
- في مدخل Microsoft Azure، حدد الجهاز الظاهري وانقر فوق Overview.
- استخدام عنوان IP العام.
- افتح مستعرض ويب وانتقل إلى عنوان URL التالي:
http://<IP address>:3000
. - في شاشة تسجيل الدخول إلى Grafana، أدخل المسؤول لاسم المستخدم، واستخدم كلمة مرور Grafana من الخطوات السابقة.
- بمجرد تسجيل الدخول، حدد Configuration (رمز الترس).
- حدد Server Admin.
- في علامة التبويب Users، حدد تسجيل دخول المسؤول .
- تحديث كلمة المرور.
إنشاء مصدر بيانات Azure Monitor
إنشاء كيان خدمة يسمح لـ Grafana بإدارة الوصول إلى مساحة عمل Log Analytics. لمزيد من المعلومات، راجع إنشاء كيان خدمة Azure باستخدام Azure CLI
az ad sp create-for-rbac --name http://<service principal name> \ --role "Log Analytics Reader" \ --scopes /subscriptions/mySubscriptionID
لاحظ قيم appId وكلمة المرور والمستأجر في الإخراج من هذا الأمر:
{ "appId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "displayName": "azure-cli-2019-03-27-00-33-39", "name": "http://<service principal name>", "password": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "tenant": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" }
سجل الدخول إلى Grafana كما هو موضح سابقا. حدد Configuration (أيقونة الترس) ثم Data Sources.
في علامة التبويب Data Sources، انقر فوق Add data source.
حدد Azure Monitor كنوع مصدر البيانات.
في قسم Settings، أدخل اسمًا لمصدر البيانات في مربع نص Name.
في قسم Azure Monitor API Details، أدخل المعلومات التالية:
- معرف الاشتراك: معرف اشتراك Azure الخاص بك.
- معرف المستأجر: معرف المستأجر من وقت سابق.
- معرف العميل: قيمة "appId" من وقت سابق.
- سر العميل: قيمة "كلمة المرور" من وقت سابق.
في قسم Azure Log Analytics API Details ، حدد خانة الاختيار نفس التفاصيل مثل Azure Monitor API .
انقر فوق حفظ واختبار. إذا تم تكوين مصدر بيانات Log Analytics بشكل صحيح، يتم عرض رسالة نجاح.
إنشاء لوحة المعلومات
إنشاء لوحات المعلومات في Grafana باتباع الخطوات التالية:
انتقل إلى الدليل في
/perftools/dashboards/grafana
النسخة المحلية من مستودع GitHub.تشغيل الاستعلام التالي:
export WORKSPACE=<your Azure Log Analytics workspace ID> export LOGTYPE=SparkListenerEvent_CL sh DashGen.sh
الإخراج من البرنامج النصي هو ملف يسمى SparkMonitoringDash.json.
ارجع إلى لوحة معلومات Grafana وحدد Create (رمز علامة الجمع).
حدد استيراد.
انقر فوق Upload ملف .json.
حدد ملف SparkMonitoringDash.json الذي تم إنشاؤه في الخطوة 2.
في قسم Options، ضمن ALA، حدد مصدر بيانات Azure Monitor الذي تم إنشاؤه مسبقًا.
انقر فوق استيراد.
المرئيات في لوحات المعلومات
تتضمن كل من لوحات معلومات Azure Log Analytics وGrafana مجموعة من مرئيات السلسلة الزمنية. كل رسم بياني هو مخطط سلسلة زمنية لبيانات القياس المتعلقة بمهمةApache Spark ومراحل المهمة والمهام التي تشكل كل مرحلة.
المرئيات هي:
زمن انتقال المهمة
تظهر هذه المرئيات زمن انتقال التنفيذ لوظيفة ما، وهي طريقة عرض رزينة حول الأداء العام للوظيفة. يعرض مدة تنفيذ المهمة من البداية إلى الاكتمال. لاحظ أن وقت بدء المهمة ليس هو نفس وقت إرسال الوظيفة. يتم تمثيل زمن الانتقال كنسب مئوية (10٪، 30٪، 50٪، 90٪) من تنفيذ المهمة المفهرسة بواسطة معرف نظام المجموعة ومعرف التطبيق.
زمن انتقال المرحلة
تظهر المرئيات زمن انتقال كل مرحلة لكل نظام مجموعة، ولكل تطبيق، ولكل مرحلة فردية. هذه المرئيات مفيدة لتحديد مرحلة معينة تعمل ببطء.
زمن انتقال المهمة
تظهر هذه المرئيات زمن انتقال تنفيذ المهمة. يتم تمثيل زمن الانتقال كنسبة مئوية لتنفيذ المهمة لكل مجموعة واسم مرحلة وتطبيق.
مجموع تنفيذ المهمة لكل مضيف
يُظهر هذا التصور مجموع زمن انتقال تنفيذ المهمة لكل مضيف يعمل على مجموعة. يحدد عرض زمن انتقال تنفيذ المهمة لكل مضيف المضيفين الذين لديهم زمن انتقال إجمالي أعلى بكثير من المضيفين الآخرين. قد يعني هذا أن المهام تم توزيعها بشكل غير فعال أو غير متساو على المضيفين.
مقاييس المهام
يعرض هذا العرض المرئي مجموعة من مقاييس التنفيذ لتنفيذ مهمة معينة. تتضمن هذه المقاييس حجم ومدة تبديل البيانات ومدة عمليات التسلسل وإلغاء التسلسل وغيرها. للحصول على المجموعة الكاملة من المقاييس، اعرض استعلام Log Analytics لللوحة. هذا التصور مفيد لفهم العمليات التي تشكل مهمة وتحديد استهلاك الموارد لكل عملية. تمثل الارتفاعات في الرسم البياني عمليات مكلفة يجب التحقيق فيها.
معدل نقل نظام المجموعة
هذا التصور هو عرض عالي المستوى لعناصر العمل المفهرسة بواسطة نظام المجموعة والتطبيق لتمثيل مقدار العمل المنجز لكل نظام مجموعة وتطبيق. يعرض عدد المهام والمهام والمراحل المكتملة لكل نظام مجموعة وتطبيق ومرحلة بزيادات دقيقة واحدة.
تدفق معدل النقل/زمن الانتقال
يرتبط هذا العرض المرئي بالمقاييس المقترنة باستعلام دفق منظم. يعرض الرسم البياني عدد صفوف الإدخال في الثانية وعدد الصفوف التي تتم معالجتها في الثانية. يتم تمثيل مقاييس الدفق أيضًا لكل تطبيق. يتم إرسال هذه المقاييس عند إنشاء الحدث OnQueryProgress أثناء معالجة استعلام الدفق المنظم ويمثل المرئيات زمن انتقال البث كمقدار الوقت، بالمللي ثانية، المأخوذ لتنفيذ دفعة استعلام.
استهلاك الموارد لكل منفذ
التالي هو مجموعة من المرئيات للوحة المعلومات تظهر نوع معين من الموارد وكيفية استهلاكها لكل منفذ على كل نظام مجموعة. تساعد هذه المرئيات في تحديد القيم الخارجية في استهلاك الموارد لكل منفذ. على سبيل المثال، إذا انحرف تخصيص العمل لمنفذ معين، فسيتم رفع استهلاك الموارد فيما يتعلق بالمنفذين الآخرين الذين يعملون على نظام المجموعة. يمكن تحديد ذلك بواسطة الارتفاعات في استهلاك الموارد للمنفذ.
مقاييس وقت حساب المنفذ
التالي هو مجموعة من المرئيات للوحة المعلومات التي تظهر نسبة المنفذ تسلسل الوقت، وإلغاء تسلسل الوقت، ووقت وحدة المعالجة المركزية، ووقت الجهاز الظاهري Java إلى إجمالي وقت حساب المنفذ. يوضح هذا بشكل مرئي مقدار مساهمة كل من هذه المقاييس الأربعة في المعالجة الإجمالية للمنفذ.
مقاييس التبديل العشوائي
تعرض المجموعة النهائية من المرئيات مقاييس تبديل البيانات المقترنة باستعلام دفق منظم عبر جميع المنفذين. وتشمل هذه قراءة وحدات البايت العشوائية، وخلط وحدات البايت المكتوبة، والذاكرة العشوائية، واستخدام القرص في الاستعلامات حيث يتم استخدام نظام الملفات.