Bagikan melalui


Memantau metrik Aplikasi Apache Spark dengan Prometheus dan Grafana

Gambaran Umum

Dalam tutorial ini, Anda akan mempelajari cara menggunakan solusi metrik aplikasi Apache Spark ke kluster Azure Kubernetes Service (AKS) dan mempelajari cara mengintegrasikan dasbor Grafana.

Anda dapat menggunakan solusi ini untuk mengumpulkan dan mengkueri data metrik Apache Spark mendekati real-time. Dasbor Grafana terintegrasi memungkinkan Anda untuk mendiagnosis dan memantau aplikasi Apache Spark Anda. Kode sumber dan konfigurasi telah bersumber terbuka di GitHub.

Prasyarat

  1. Azure CLI
  2. Klien helm 3.30+
  3. kubectl
  4. Azure Kubernetes Service (AKS)

Atau gunakan Azure Cloud Shell, yang sudah menyertakan Azure CLI, klien Helm, dan kubectl out of the box.

Masuk ke Azure

az login
az account set --subscription "<subscription_id>"

Membuat instans Azure Kubernetes Service (AKS)

Gunakan perintah Azure CLI untuk membuat kluster Kube di langganan Anda.

az aks create --name <kubernetes_name> --resource-group <kubernetes_resource_group> --location <location> --node-vm-size Standard_D2s_v3
az aks get-credentials --name <kubernetes_name> --resource-group <kubernetes_resource_group>

Catatan: Langkah ini dapat dilewati jika Anda sudah memiliki kluster AKS.

Membuat perwakilan layanan dan memberikan izin ke ruang kerja Synapse

az ad sp create-for-rbac --name <service_principal_name> --role Contributor --scopes /subscriptions/<subscription_id>

Hasilnya akan terlihat seperti ini:

{
  "appId": "abcdef...",
  "displayName": "<service_principal_name>",
  "name": "http://<service_principal_name>",
  "password": "abc....",
  "tenant": "<tenant_id>"
}

Catat appId, kata sandi, dan tenantID.

screenshot grant permission srbac

  1. Masuk ke ruang kerja Azure Synapse Analytics Anda sebagai Admin Synapse

  2. Di Synapse Studio, di panel sebelah kiri, pilih Kelola > Kontrol akses

  3. Klik tombol Tambahkan di kiri atas untuk menambahkan penetapan peran

  4. Untuk Cakupan, pilih Ruang kerja

  5. Untuk Peran, pilih Operator Komputasi Synapse

  6. Untuk Pengguna tertentu, masukkan <service_principal_name> Anda dan klik perwakilan layanan Anda

  7. Klik Terapkan (Tunggu 3 menit agar izin berlaku.)

Catatan

Harap pastikan perwakilan layanan Anda setidaknya memiliki peran "Pembaca" di ruang kerja Synapse Anda. Buka tab Access Control (IAM) portal Microsoft Azure dan periksa pengaturan izin.

Pasang konektor, server Prometheus, dasbor Grafana

  1. Tambahkan bagan repositori synapse ke klien Helm.
helm repo add synapse-charts https://github.com/microsoft/azure-synapse-spark-metrics/releases/download/helm-chart
  1. Pasang komponen melalui klien Helm:
helm install spo synapse-charts/synapse-prometheus-operator --create-namespace --namespace spo \
    --set synapse.workspaces[0].workspace_name="<workspace_name>" \
    --set synapse.workspaces[0].tenant_id="<tenant_id>" \
    --set synapse.workspaces[0].service_principal_name="<service_principal_app_id>" \
    --set synapse.workspaces[0].service_principal_password="<service_principal_password>" \
    --set synapse.workspaces[0].subscription_id="<subscription_id>" \
    --set synapse.workspaces[0].resource_group="<workspace_resource_group_name>"
  • workspace_name: nama ruang kerja Synapse.
  • subscription_id: ID langganan ruang kerja Synapse.
  • workspace_resource_group_name: Nama grup sumber daya ruang kerja Synapse.
  • tenant_id: ID penyewa ruang kerja Synapse.
  • service_principal_app_id: Perwakilan layanan "appId"
  • service_principal_password: Kata sandi perwakilan layanan yang Anda buat.

Masuk ke Grafana

Dapatkan kata sandi dan alamat default Grafana. Anda dapat mengubah kata sandi di pengaturan Grafana.

kubectl get secret --namespace spo spo-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
kubectl -n spo get svc spo-grafana

Dapatkan ip layanan, salin & tempel ip eksternal ke browser, dan masuk dengan nama pengguna "admin" dan kata sandi.

Gunakan Dasbor Grafana

Temukan Synapse Dashboard di sudut kiri atas halaman Grafana (Beranda -> Ruang Kerja Synapse/Aplikasi Synapse), coba jalankan kode contoh di Synapse Studio dan tunggu beberapa detik untuk penarikan metrik.

Anda juga dapat menggunakan dasbor "Synapse Workspace/Workspace" dan "Synapse Workspace/Spark pools" untuk mendapatkan ringkasan tentang ruang kerja dan kumpulan Apache Spark Anda.

Menghapus instalan

Menghapus komponen dengan perintah Helm sebagai berikut.

helm delete <release_name> -n <namespace>

Menghapus kluster AKS.

az aks delete --name <kubernetes_cluster_name> --resource-group <kubernetes_cluster_rg>

Pengenalan komponen

Azure Synapse Analytics menyediakan Bagan helm berdasarkan Operator Prometheus dan Konektor Prometheus Synapse. Bagan Helm mencakup server Prometheus, server Grafana, dan dasbor Grafana untuk metrik tingkat aplikasi Apache Spark. Anda dapat menggunakan Prometheus, sistem pemantauan sumber terbuka yang populer, untuk mengumpulkan metrik ini dalam waktu dekat secara real-time dan menggunakan Grafana untuk visualisasi.

Synapse Prometheus Connector

Synapse Prometheus Connector membantu menyambungkan kumpulan Azure Synapse Apache Spark dan server Prometheus Anda. Ini mengimplementasikan:

  1. Autentikasi: Ini adalah autentikasi berbasis AAD dan dapat secara otomatis me-refresh token AAD dari perwakilan layanan untuk penemuan aplikasi, menelan metrik, dan fungsi lainnya.
  2. Penemuan aplikasi Apache Spark: Saat Anda mengirimkan aplikasi di ruang kerja target, Synapse Prometheus Connector dapat secara otomatis menemukan aplikasi ini.
  3. Metadata aplikasi Apache Spark: Ini mengumpulkan informasi aplikasi dasar dan mengekspor data ke Prometheus.

Synapse Prometheus Connector dirilis sebagai gambar docker yang dihosting di Microsoft Container Registry. Gambar ini sumbernya terbuka dan terletak di metrik aplikasi Azure Synapse Apache Spark.

Server Prometheus

Prometheus adalah toolkit pemantauan dan pemberitahuan sumber terbuka. Prometheus lulus dari Cloud Native Computing Foundation (CNCF) dan menjadi standar de facto untuk pemantauan cloud-native. Prometheus dapat membantu kami mengumpulkan, mengkueri, dan menyimpan sejumlah besar data seri waktu, dan dapat dengan mudah diintegrasikan dengan Grafana. Dalam solusi ini, kami menyebarkan komponen Prometheus berdasarkan grafik helm.

Grafana dan dasbor

Grafana adalah perangkat lunak visualisasi dan analitik sumber terbuka. Ini memungkinkan Anda untuk mengkueri, memvisualisasikan, memperingatkan, dan menjelajahi metrik Anda. Azure Synapse Analytics menyediakan serangkaian dasbor Grafana default untuk memvisualisasikan metrik tingkat aplikasi Apache Spark.

Dasbor "Synapse Workspace / Workspace" menyediakan tampilan tingkat ruang kerja dari semua kumpulan Apache Spark, jumlah aplikasi, core cpu, dll.

screenshot dashboard workspace

Dasbor "Synapse Workspace/Apache Spark pools" berisi metrik aplikasi Apache Spark yang berjalan di kumpulan Apache Spark yang dipilih selama periode waktu tertentu.

screenshot dashboard sparkpool

Dasbor "Synapse Workspace/Apache Spark Application" berisi aplikasi Apache Spark yang dipilih.

screenshot dashboard application

Templat dasbor di atas sumbernya telah dibuka dalam metrik aplikasi Azure Synapse Apache Spark.