Bagikan melalui


Melacak dan mengekspor metrik kesehatan titik akhir penyajian ke Prometheus dan Datadog

Artikel ini memberikan gambaran umum tentang melayani metrik kesehatan titik akhir dan menunjukkan cara menggunakan API ekspor metrik untuk mengekspor metrik titik akhir ke Prometheus dan Datadog.

Metrik kesehatan titik akhir mengukur infrastruktur dan metrik seperti latensi, tingkat permintaan, tingkat kesalahan, penggunaan CPU, penggunaan memori, dll. Ini memberi tahu Anda bagaimana infrastruktur penyajian Anda berperilaku.

Persyaratan

  • Baca akses ke titik akhir yang diinginkan dan token akses pribadi (PAT) yang dapat dihasilkan dalam Pengaturan di Databricks Pembelajaran Mesin UI untuk mengakses titik akhir.

  • Model yang ada melayani titik akhir. Anda dapat memvalidasi ini dengan memeriksa kesehatan titik akhir dengan yang berikut ini:

    curl -n -X GET -H "Authorization: Bearer [PAT]" https://[DATABRICKS_HOST]/api/2.0/serving-endpoints/[ENDPOINT_NAME]
    
  • Validasi API metrik ekspor:

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

Menyajikan definisi metrik titik akhir

Metrik Deskripsi
Latensi (ms) Mengambil waktu latensi pulang pergi median (P50) dan persentil ke-99 (P99) dalam Azure Databricks. Ini tidak termasuk latensi tambahan terkait Databricks seperti autentikasi dan pembatasan tarif
Tingkat permintaan (per detik) Mengukur jumlah permintaan yang diproses per detik. Tarif ini dihitung dengan menjumlahkan jumlah permintaan dalam satu menit lalu dibagi 60 (jumlah detik dalam satu menit).
Tingkat kesalahan permintaan (per detik) Melacak tingkat respons kesalahan HTTP 4xx dan 5xx per detik. Mirip dengan tingkat permintaan, ini dihitung dengan menggabungkan jumlah total permintaan yang tidak berhasil dalam satu menit dan membagi dengan 60.
Penggunaan CPU (%) Memperlihatkan persentase pemanfaatan CPU rata-rata di semua replika server. Dalam konteks infrastruktur Databricks, replika mengacu pada simpul komputer virtual. Bergantung pada pengaturan konkurensi yang dikonfigurasi, Databricks membuat beberapa replika untuk mengelola lalu lintas model secara efisien.
Penggunaan memori (%) Menunjukkan persentase pemanfaatan memori rata-rata di semua replika server.
Konkurensi yang disediakan Konkurensi yang disediakan adalah jumlah maksimum permintaan paralel yang dapat ditangani sistem. Konkurensi yang disediakan secara dinamis menyesuaikan dalam batas minimum dan maksimum rentang peluasan skala komputasi, bervariasi sebagai respons terhadap lalu lintas masuk.
Penggunaan GPU (%) Mewakili pemanfaatan GPU rata-rata, seperti yang dilaporkan oleh pengekspor NVIDIA DCGM . Jika jenis instans memiliki beberapa GPU, masing-masing dilacak secara terpisah (seperti, , gpu0, gpu1..., gpuN). Pemanfaatan rata-rata di semua replika server dan diambil sampelnya sekali dalam satu menit. Catatan: Pengambilan sampel yang jarang berarti metrik ini paling akurat di bawah beban konstan.
Penggunaan memori GPU (%) Menunjukkan persentase rata-rata memori buffer bingkai yang digunakan pada setiap GPU berdasarkan data pengekspor NVIDIA DCGM. Seperti halnya penggunaan GPU, metrik ini rata-rata di seluruh replika dan diambil sampelnya setiap menit. Ini paling dapat diandalkan dalam kondisi beban yang konsisten.

Integrasi Prometheus

Catatan

Terlepas dari jenis penyebaran mana yang Anda miliki di lingkungan produksi Anda, konfigurasi pengikisan harus serupa.

Panduan di bagian ini mengikuti dokumentasi Prometheus untuk memulai layanan Prometheus secara lokal menggunakan docker.

  1. yaml Tulis file konfigurasi dan beri nama prometheus.yml. Berikut ini adalah contohnya:

     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. Mulai Prometheus secara lokal dengan perintah berikut:

       docker run \
       -p 9090:9090 \
       -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \
       prom/prometheus
    
  3. Navigasi ke http://localhost:9090 untuk memeriksa apakah layanan Prometheus lokal Anda aktif dan berjalan.

  4. Periksa status scraper Prometheus dan kesalahan debug dari: http://localhost:9090/targets?search=

  5. Setelah target sepenuhnya aktif dan berjalan, Anda dapat mengkueri metrik yang disediakan, seperti cpu_usage_percentage atau mem_usage_percentage, di UI.

Integrasi Datadog

Catatan

Penyiapan awal untuk contoh ini didasarkan pada edisi gratis.

Datadog memiliki berbagai agen yang dapat disebarkan di lingkungan yang berbeda. Untuk tujuan demonstrasi, berikut ini meluncurkan agen Mac OS secara lokal yang mengikis titik akhir metrik di host Databricks Anda. Konfigurasi untuk menggunakan agen lain harus dalam pola yang sama.

  1. Daftarkan akun datadog.

  2. Instal integrasi OpenMetrics di dasbor akun Anda, sehingga Datadog dapat menerima dan memproses data OpenMetrics.

  3. Ikuti dokumentasi Datadog untuk menyiapkan dan menjalankan agen Datadog Anda. Untuk contoh ini, gunakan opsi paket DMG untuk menginstal semuanya termasuk launchctl dan datadog-agent.

  4. Temukan konfigurasi OpenMetrics Anda. Untuk contoh ini, konfigurasinya ada di ~/.datadog-agent/conf.d/openmetrics.d/conf.yaml.default. Berikut ini adalah contoh file konfigurasi 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. Mulai agen datadog menggunakan launchctl start com.datadoghq.agent.

  6. Setiap kali Anda perlu membuat perubahan pada konfigurasi, Anda perlu menghidupkan ulang agen untuk mengambil perubahan.

     launchctl stop com.datadoghq.agent
     launchctl start com.datadoghq.agent
    
  7. Periksa kesehatan agen dengan datadog-agent health.

  8. Periksa status agen dengan datadog-agent status. Anda akan dapat melihat respons seperti berikut ini. Jika tidak, debug dengan pesan kesalahan. Potensi masalah mungkin disebabkan oleh token PAT yang kedaluwarsa, atau URL yang salah.

     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. Status agen juga dapat dilihat dari UI di:http://127.0.0.1:5002/.

    Jika agen Anda sepenuhnya aktif dan berjalan, Anda dapat menavigasi kembali ke dasbor Datadog Anda untuk mengkueri metrik. Anda juga dapat membuat monitor atau pemberitahuan berdasarkan data metrik:https://app.datadoghq.com/monitors/create/metric.