Aracılığıyla paylaş


Prometheus ve Grafana ile Apache Spark Uygulamaları ölçümlerini izleme

Genel Bakış

Bu öğreticide Apache Spark uygulama ölçümleri çözümünü bir Azure Kubernetes Service (AKS) kümesine dağıtmayı ve Grafana panolarını tümleştirmeyi öğreneceksiniz.

Apache Spark ölçüm verilerini neredeyse gerçek zamanlı olarak toplamak ve sorgulamak için bu çözümü kullanabilirsiniz. Tümleşik Grafana panoları Apache Spark uygulamanızı tanılamanıza ve izlemenize olanak tanır. Kaynak kodu ve yapılandırmalar GitHub'da açık kaynaklıdır.

Önkoşullar

  1. Azure CLI
  2. Helm istemcisi 3.30+
  3. kubectl
  4. Azure Kubernetes Service (AKS)

İsterseniz Azure CLI, Helm istemcisi ve kubectl'yi içeren Azure Cloud Shell'i de kullanabilirsiniz.

Azure'da oturum açma

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

Azure Kubernetes hizmet örneği oluşturma (AKS)

Aboneliğinizde bir Kubernetes kümesi oluşturmak için Azure CLI komutunu kullanın.

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>

Not: Zaten bir AKS kümeniz varsa bu adım atlanabilir.

Hizmet sorumlusu oluşturma ve Synapse çalışma alanına izin verme

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

Sonuç şöyle görünmelidir:

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

appId, parola ve tenantID değerlerini not edin.

screenshot grant permission srbac

  1. Azure Synapse Analytics çalışma alanınızda Synapse Yönetici istrator olarak oturum açın

  2. Synapse Studio'da sol taraftaki bölmede Erişim denetimini yönet'i > seçin

  3. Rol ataması eklemek için sol üst taraftaki Ekle düğmesine tıklayın

  4. Kapsam için Çalışma Alanı'nı seçin

  5. Rol için Synapse İşlem İşleci'ni seçin

  6. Kullanıcı seçin için service_principal_name> girin <ve hizmet sorumlunuza tıklayın

  7. Uygula'ya tıklayın (İznin geçerlilik kazanması için 3 dakika bekleyin.)

Dekont

Synapse çalışma alanınızda hizmet sorumlunuzun en azından "Okuyucu" rolü olduğundan emin olun. Azure portalının Erişim Denetimi (IAM) sekmesine gidin ve izin ayarlarını denetleyin.

Bağlayıcıyı, Prometheus sunucusunu, Grafana panosunu yükleme

  1. Helm istemcisine synapse-charts deposu ekleyin.
helm repo add synapse-charts https://github.com/microsoft/azure-synapse-spark-metrics/releases/download/helm-chart
  1. Helm istemcisi aracılığıyla bileşenleri yükleyin:
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: Synapse çalışma alanı adı.
  • subscription_id: Synapse çalışma alanı abonelik kimliği.
  • workspace_resource_group_name: Synapse çalışma alanı kaynak grubu adı.
  • tenant_id: Synapse çalışma alanı kiracı kimliği.
  • service_principal_app_id: Hizmet sorumlusu "appId"
  • service_principal_password: Oluşturduğunuz hizmet sorumlusu parolası.

Grafana'da oturum açın

Grafana'nın varsayılan parolasını ve adresini alın. Grafana ayarlarında parolayı değiştirebilirsiniz.

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

Hizmet ip'sini alın, harici ip'yi kopyalayıp tarayıcıya yapıştırın ve "admin" kullanıcı adı ve parolayla oturum açın.

Grafana Panolarını kullanma

Grafana sayfasının sol üst köşesinde Synapse Panosu'nu bulun (Giriş -> Synapse Çalışma Alanı / Synapse Uygulaması), Synapse Studio'da örnek bir kod çalıştırmayı deneyin ve ölçümlerin çekilmesi için birkaç saniye bekleyin.

Ayrıca, çalışma alanınıza ve Apache Spark havuzlarınıza genel bir bakış elde etmek için "Synapse Çalışma Alanı / Çalışma Alanı" ve "Synapse Çalışma Alanı / Apache Spark havuzları" panolarını kullanabilirsiniz.

uygulamasını kaldırma

Helm komutuyla bileşenleri aşağıdaki gibi kaldırın.

helm delete <release_name> -n <namespace>

AKS kümesini silin.

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

Bileşenlere giriş

Azure Synapse Analytics, Prometheus Operatörünü ve Synapse Prometheus Bağlan or'ı temel alan bir Helm grafiği sağlar. Helm grafiğiNde Prometheus sunucusu, Grafana sunucusu ve Apache Spark uygulama düzeyinde ölçümler için Grafana panoları bulunur. Popüler bir açık kaynak izleme sistemi olan Prometheus'ı kullanarak bu ölçümleri neredeyse gerçek zamanlı olarak toplayabilir ve grafana'yı görselleştirme için kullanabilirsiniz.

Synapse Prometheus Bağlan or

Synapse Prometheus Bağlan or, Azure Synapse Apache Spark havuzuyla Prometheus sunucunuzu bağlamanıza yardımcı olur. Şu işlemleri uygular:

  1. Kimlik doğrulaması: AAD tabanlı kimlik doğrulamasıdır ve uygulama bulma, ölçüm alımı ve diğer işlevler için hizmet sorumlusunun AAD belirtecini otomatik olarak yenileyebilir.
  2. Apache Spark uygulama bulma: Hedef çalışma alanında uygulama gönderdiğinizde Synapse Prometheus Bağlan or bu uygulamaları otomatik olarak bulabilir.
  3. Apache Spark uygulama meta verileri: Temel uygulama bilgilerini toplar ve verileri Prometheus'a aktarır.

Synapse Prometheus Bağlan or, Microsoft Container Registry'de barındırılan bir docker görüntüsü olarak yayınlanır. Açık kaynaktır ve Azure Synapse Apache Spark uygulama ölçümlerinde bulunur.

Prometheus sunucusu

Prometheus bir açık kaynak izleme ve uyarı araç setidir. Prometheus, Cloud Native Computing Foundation'dan (CNCF) mezun oldu ve bulutta yerel izleme için fiili standart haline geldi. Prometheus çok miktarda zaman serisi verilerini toplamamıza, sorgulamamıza ve depolamamıza yardımcı olabilir ve Grafana ile kolayca tümleştirilebilir. Bu çözümde Prometheus bileşenini helm grafiğine göre dağıtacağız.

Grafana ve panolar

Grafana, açık kaynak görselleştirme ve analiz yazılımıdır. Ölçümlerinizi sorgulamanıza, görselleştirmenize, uyarı vermenize ve keşfetmenize olanak tanır. Azure Synapse Analytics, Apache Spark uygulama düzeyi ölçümlerini görselleştirmek için bir dizi varsayılan Grafana panosu sağlar.

"Synapse Çalışma Alanı / Çalışma Alanı" panosu tüm Apache Spark havuzları, uygulama sayıları, cpu çekirdekleri vb. için çalışma alanı düzeyinde bir görünüm sağlar.

screenshot dashboard workspace

"Synapse Çalışma Alanı / Apache Spark havuzları" panosu, seçilen Apache Spark havuzunda çalıştırılan Apache Spark uygulamalarının zaman aralığındaki ölçümlerini içerir.

screenshot dashboard sparkpool

"Synapse Çalışma Alanı / Apache Spark Uygulaması" panosu seçili Apache Spark uygulamasını içerir.

screenshot dashboard application

Yukarıdaki pano şablonları Azure Synapse Apache Spark uygulama ölçümlerinde açık kaynaklıdır.