مشاركة عبر


تعقب وتصدير مقاييس صحة نقطة النهاية لخدمة Prometheus وDatadog

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

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

المتطلبات

  • قراءة الوصول إلى نقطة النهاية المطلوبة ورمز الوصول الشخصي (PAT) الذي يمكن إنشاؤه في الإعدادات في واجهة مستخدم الذكاء الاصطناعي Databricks Mosaic للوصول إلى نقطة النهاية.

  • نموذج موجود يخدم نقطة النهاية. يمكنك التحقق من صحة هذا عن طريق التحقق من صحة نقطة النهاية مع ما يلي:

    curl -n -X GET -H "Authorization: Bearer [PAT]" https://[DATABRICKS_HOST]/api/2.0/serving-endpoints/[ENDPOINT_NAME]
    
  • التحقق من صحة واجهة برمجة تطبيقات مقاييس التصدير:

    curl -n -X GET -H "Authorization: Bearer [PAT]" https://[DATABRICKS_HOST]/api/2.0/serving-endpoints/[ENDPOINT_NAME]/metrics
    

تقديم تعريفات مقاييس نقطة النهاية

مقياس ‏‏الوصف
زمن الانتقال (مللي ثانية) يلتقط متوسط (P50) والنسب المئوية 99 (P99) أوقات زمن الانتقال ذهابا وإيابا داخل Azure Databricks. لا يتضمن هذا زمن انتقال إضافي متعلق ب Databricks مثل المصادقة وتحديد المعدل
معدل الطلب (في الثانية) يقيس عدد الطلبات التي تتم معالجتها في الثانية. يتم حساب هذا المعدل من خلال إجمالي عدد الطلبات في غضون دقيقة ثم قسمة على 60 (عدد الثوان في الدقيقة).
معدل خطأ الطلب (في الثانية) يتعقب معدل استجابات خطأ HTTP 4xx و5xx في الثانية. على غرار معدل الطلب، يتم حسابه عن طريق تجميع العدد الإجمالي للطلبات غير الناجحة في غضون دقيقة وقسمة على 60.
استخدام وحدة المعالجة المركزية (٪) يظهر متوسط نسبة استخدام وحدة المعالجة المركزية عبر جميع النسخ المتماثلة للخادم. في سياق البنية الأساسية Databricks، تشير النسخة المتماثلة إلى عقد الجهاز الظاهري. اعتمادا على إعدادات التزامن المكونة، ينشئ Databricks نسخا متماثلة متعددة لإدارة حركة مرور النموذج بكفاءة.
استخدام الذاكرة (٪) يظهر متوسط نسبة استخدام الذاكرة عبر جميع النسخ المتماثلة للخادم.
التزامن المقدم التزامن المقدم هو الحد الأقصى لعدد الطلبات المتوازية التي يمكن للنظام التعامل معها. يضبط التزامن المقدم ديناميكيا ضمن الحدين الأدنى والأقصى لنطاق توسيع نطاق الحساب، ويتفاوت استجابة لحركة المرور الواردة.
استخدام وحدة معالجة الرسومات (٪) يمثل متوسط استخدام وحدة معالجة الرسومات، كما ذكر مصدر NVIDIA DCGM . إذا كان نوع المثيل يحتوي على وحدات معالجة الرسومات متعددة، يتم تعقب كل منها بشكل منفصل (مثل، gpu0، ، gpu1...، gpuN). يتم حساب متوسط الاستخدام عبر جميع النسخ المتماثلة للخادم ويتم أخذ عينات منه مرة واحدة في الدقيقة. ملاحظة: يعني أخذ العينات غير المتكرر أن هذا المقياس هو الأكثر دقة تحت تحميل ثابت.
استخدام ذاكرة وحدة معالجة الرسومات (٪) يشير إلى متوسط النسبة المئوية لذاكرة المخزن المؤقت للإطار المستخدمة على كل وحدة معالجة الرسومات استنادا إلى بيانات مصدر NVIDIA DCGM. كما هو الحال مع استخدام GPU، يتم حساب متوسط هذا المقياس عبر النسخ المتماثلة ويتم أخذ عينات كل دقيقة. إنها أكثر موثوقية في ظل ظروف تحميل متسقة.

تكامل Prometheus

إشعار

بغض النظر عن نوع التوزيع الذي لديك في بيئة الإنتاج الخاصة بك، يجب أن يكون تكوين الاستخراج مشابها.

تتبع الإرشادات الواردة في هذا القسم وثائق Prometheus لبدء خدمة Prometheus محليا باستخدام docker.

  1. yaml اكتب ملف تكوين وقم بتسمائه prometheus.yml. وفيما يلي مثال على ذلك:

     global:
      scrape_interval: 1m
      scrape_timeout: 10s
     scrape_configs:
      - job_name: "prometheus"
        metrics_path: "/api/2.0/serving-endpoints/[ENDPOINT_NAME]/metrics"
        scheme: "https"
        authorization:
         type: "Bearer"
         credentials: "[PAT_TOKEN]"
    
        static_configs:
         - targets: ["dbc-741cfa95-12d1.dev.databricks.com"]
    
  2. ابدأ Prometheus محليا باستخدام الأمر التالي:

       docker run \
       -p 9090:9090 \
       -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \
       prom/prometheus
    
  3. انتقل إلى http://localhost:9090 للتحقق مما إذا كانت خدمة Prometheus المحلية قيد التشغيل.

  4. تحقق من حالة قصاصة Prometheus وتصحيح الأخطاء من: http://localhost:9090/targets?search=

  5. بمجرد تشغيل الهدف بالكامل، يمكنك الاستعلام عن المقاييس المتوفرة، مثل cpu_usage_percentage أو mem_usage_percentage، في واجهة المستخدم.

تكامل Datadog

إشعار

يستند الإعداد الأولي لهذا المثال إلى الإصدار المجاني.

يحتوي Datadog على مجموعة متنوعة من العوامل التي يمكن نشرها في بيئات مختلفة. لأغراض العرض التوضيحي، يقوم التالي بتشغيل عامل Mac OS محليا الذي يلغي نقطة نهاية المقاييس في مضيف Databricks الخاص بك. يجب أن يكون تكوين استخدام عوامل أخرى في نمط مماثل.

  1. تسجيل حساب datadog.

  2. قم بتثبيت تكامل OpenMetrics في لوحة معلومات حسابك، بحيث يمكن ل Datadog قبول بيانات OpenMetrics ومعالجتها.

  3. اتبع وثائق Datadog لتشغيل عامل Datadog الخاص بك. على سبيل المثال، استخدم خيار حزمة DMG لتثبيت كل شيء بما في ذلك launchctl و datadog-agent.

  4. حدد موقع تكوين OpenMetrics. على سبيل المثال، التكوين في ~/.datadog-agent/conf.d/openmetrics.d/conf.yaml.default. فيما يلي مثال على ملف التكوين yaml .

    
     instances:
      - openmetrics_endpoint: https://[DATABRICKS_HOST]/api/2.0/serving-endpoints/[ENDPOINT_NAME]/metrics
    
       metrics:
       - cpu_usage_percentage:
           name: cpu_usage_percentage
           type: gauge
       - mem_usage_percentage:
           name: mem_usage_percentage
           type: gauge
       - provisioned_concurrent_requests_total:
           name: provisioned_concurrent_requests_total
           type: gauge
       - request_4xx_count_total:
           name: request_4xx_count_total
           type: gauge
       - request_5xx_count_total:
           name: request_5xx_count_total
           type: gauge
       - request_count_total:
           name: request_count_total
           type: gauge
       - request_latency_ms:
           name: request_latency_ms
           type: histogram
    
       tag_by_endpoint: false
    
       send_distribution_buckets: true
    
       headers:
         Authorization: Bearer [PAT]
         Content-Type: application/openmetrics-text
    
  5. ابدأ عامل datadog باستخدام launchctl start com.datadoghq.agent.

  6. في كل مرة تحتاج فيها إلى إجراء تغييرات على التكوين الخاص بك، تحتاج إلى إعادة تشغيل العامل لالتقاط التغيير.

     launchctl stop com.datadoghq.agent
     launchctl start com.datadoghq.agent
    
  7. تحقق من صحة العامل باستخدام datadog-agent health.

  8. تحقق من حالة العامل باستخدام datadog-agent status. يجب أن تكون قادرا على رؤية استجابة مثل ما يلي. إذا لم يكن الأمر كما هو، فصحح الأخطاء برسالة الخطأ. قد تكون المشكلات المحتملة بسبب رمز PAT منتهية الصلاحية أو عنوان URL غير صحيح.

     openmetrics (2.2.2)
     -------------------
       Instance ID: openmetrics: xxxxxxxxxxxxxxxx [OK]
       Configuration Source: file:/opt/datadog-agent/etc/conf.d/openmetrics.d/conf.yaml.default
       Total Runs: 1
       Metric Samples: Last Run: 2, Total: 2
       Events: Last Run: 0, Total: 0
       Service Checks: Last Run: 1, Total: 1
       Average Execution Time : 274ms
       Last Execution Date : 2022-09-21 23:00:41 PDT / 2022-09-22 06:00:41 UTC (xxxxxxxx)
       Last Successful Execution Date : 2022-09-21 23:00:41 PDT / 2022-09-22 06:00:41 UTC (xxxxxxx)
    
  9. يمكن أيضا رؤية حالة العامل من واجهة المستخدم في:http://127.0.0.1:5002/.

    إذا كان عاملك يعمل بشكل كامل، يمكنك الانتقال مرة أخرى إلى لوحة معلومات Datadog للاستعلام عن المقاييس. يمكنك أيضا إنشاء جهاز عرض أو تنبيه استنادا إلى بيانات القياس:https://app.datadoghq.com/monitors/create/metric.