AWS में Databricks मॉनिटरिंग और ऑब्ज़र्वेबिलिटी बेस्ट प् रैक्टिसेज़
Databricks डेटा analytics और AI/ML वर्कलोड प्रबंधित करने के लिए एक प्लेटफॉर्म है। यह गाइड AWS पर Databricks चलाने वाले ग्राहकों को ऑब्ज़र्वेबिलिटी के लिए AWS Native services या OpenSource Managed Services का उपयोग करके इन वर्कलोड की मॉनिटरिंग में सहायता करने का लक्ष्य रखती है।
Databricks की मॉनिटरिंग क्यों करें
Databricks clusters प्रबंधित करने वाली Operation टीमों को वर्कलोड स्थिति, errors, performance bottlenecks ट्रैक करने के लिए एक integrated, customized डैशबोर्ड; अवांछित व्यवहार पर alerting, जैसे समय के साथ कुल resource usage, या errors का प्रतिशत; और रूट कॉज़ एनालिसिस के लिए centralized logging, साथ ही अतिरिक्त customized metrics निकालने से लाभ होता है।
क्या मॉनिटर करें
Databricks अपने cluster instances में Apache Spark चलाता है, जिसमें metrics expose करने के लिए native सुविधाएं हैं। ये metrics drivers, workers, और cluster में execute हो रहे workloads के बारे में जानकारी देंगे।
Spark चलाने वाले instances में storage, CPU, memory, और networking के बारे में अतिरिक्त उपयोगी जानकारी होगी। यह समझना महत्वपूर्ण है कि कौन से बाहरी कारक Databricks cluster के प्रदर्शन को प्रभावित कर सकते हैं। कई instances वाले clusters के मामले में, bottlenecks और सामान्य स्वास्थ्य को समझना भी महत्वपूर्ण है।
कैसे मॉनिटर करें
Collectors और उनकी dependencies इंस्टॉल करने के लिए, Databricks init scripts की आवश्यकता होगी। ये ऐसी scripts हैं जो Databricks cluster के प्रत्येक instance में boot time पर चलाई जाती हैं।
Databricks cluster permissions को instance profiles का उपयोग करके metrics और logs भेजने की अनुमति भी चाहिए।
अंत में, Databricks cluster Spark configuration में metrics namespace कॉन्फ़िगर करना एक बेस्ट प्रैक्टिस है, testApp को cluster के उचित reference से बदलें।
चित्र 1: metrics namespace Spark configuration का उदाहरण
DataBricks के लिए एक अच्छे ऑब्ज़र्वेबिलिटी समाधान के प्रमुख भाग
1) Metrics: Metrics ऐसी संख्याएं हैं जो एक समय अवधि में मापी गई गतिविधि या किसी विशेष प्रक्रिया का व र्णन करती हैं। Databricks पर विभिन्न प्रकार के metrics यहां दिए गए हैं:
System resource-level metrics, जैसे CPU, memory, disk, और network। Custom Metrics Source, StreamingQueryListener, और QueryExecutionListener का उपयोग करके Application Metrics, MetricsSystem द्वारा expose किए गए Spark Metrics।
2) Logs: Logs हुई serial events का एक representation हैं, और वे उनके बारे में एक linear कहानी बताते हैं। Databricks पर विभिन्न प्रकार के logs यहां दिए गए हैं:
- Event logs
- Audit logs
- Driver logs: stdout, stderr, log4j custom logs (structured logging enable करें)
- Executor logs: stdout, stderr, log4j custom logs (structured logging enable करें)
3) Traces: Stack traces end-to-end visibility प्रदान करते हैं, और वे stages के माध्यम से पूरे flow को दिखाते हैं। यह तब उपयोगी है जब आपको debug करना हो यह पहचानने के लिए कि कौन से stages/codes errors/performance issues का कारण बनते हैं।
4) Dashboards: Dashboards किसी application/service के golden metrics का एक बेहतरीन summary view प्रदान करते हैं।
5) Alerts: Alerts engineers को उन स्थितियों के बारे में सूचित करते हैं जिन पर ध्यान देने की आवश्यकता है।