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
İ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.
Azure Synapse Analytics çalışma alanınızda Synapse Yönetici istrator olarak oturum açın
Synapse Studio'da sol taraftaki bölmede Erişim denetimini yönet'i > seçin
Rol ataması eklemek için sol üst taraftaki Ekle düğmesine tıklayın
Kapsam için Çalışma Alanı'nı seçin
Rol için Synapse İşlem İşleci'ni seçin
Kullanıcı seçin için service_principal_name> girin <ve hizmet sorumlunuza tıklayın
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
- Helm istemcisine synapse-charts deposu ekleyin.
helm repo add synapse-charts https://github.com/microsoft/azure-synapse-spark-metrics/releases/download/helm-chart
- 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:
- 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.
- Apache Spark uygulama bulma: Hedef çalışma alanında uygulama gönderdiğinizde Synapse Prometheus Bağlan or bu uygulamaları otomatik olarak bulabilir.
- 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.
"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.
"Synapse Çalışma Alanı / Apache Spark Uygulaması" panosu seçili Apache Spark uygulamasını içerir.
Yukarıdaki pano şablonları Azure Synapse Apache Spark uygulama ölçümlerinde açık kaynaklıdır.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin