Monitorowanie metryk aplikacji platformy Apache Spark przy użyciu rozwiązań Prometheus i Grafana
Omówienie
Z tego samouczka dowiesz się, jak wdrożyć rozwiązanie metryk aplikacji platformy Apache Spark w klastrze usługi Azure Kubernetes Service (AKS) i dowiedzieć się, jak zintegrować pulpity nawigacyjne platformy Grafana.
To rozwiązanie umożliwia zbieranie i wykonywanie zapytań dotyczących danych metryk platformy Apache Spark niemal w czasie rzeczywistym. Zintegrowane pulpity nawigacyjne narzędzia Grafana umożliwiają diagnozowanie i monitorowanie aplikacji platformy Apache Spark. Kod źródłowy i konfiguracje zostały otwarte w witrynie GitHub.
Wymagania wstępne
- Interfejs wiersza polecenia platformy Azure
- Klient programu Helm w wersji 3.30 lub nowszej
- kubectl
- Azure Kubernetes Service (AKS)
Możesz też użyć usługi Azure Cloud Shell, która zawiera już interfejs wiersza polecenia platformy Azure, klienta programu Helm i gotowe rozwiązanie kubectl.
Logowanie się do platformy Azure
az login
az account set --subscription "<subscription_id>"
Tworzenie wystąpienia usługi Azure Kubernetes Service (AKS)
Użyj polecenia interfejsu wiersza polecenia platformy Azure, aby utworzyć klaster Kubernetes w ramach subskrypcji.
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>
Uwaga: ten krok można pominąć, jeśli masz już klaster usługi AKS.
Tworzenie jednostki usługi i udzielanie uprawnień do obszaru roboczego usługi Synapse
az ad sp create-for-rbac --name <service_principal_name> --role Contributor --scopes /subscriptions/<subscription_id>
Wynik powinien wyglądać następująco:
{
"appId": "abcdef...",
"displayName": "<service_principal_name>",
"name": "http://<service_principal_name>",
"password": "abc....",
"tenant": "<tenant_id>"
}
Zanotuj identyfikator appId, hasło i identyfikator dzierżawy.
Zaloguj się do obszaru roboczego usługi Azure Synapse Analytics jako Administracja istrator usługi Synapse
W programie Synapse Studio w okienku po lewej stronie wybierz pozycję Zarządzaj > kontrolą dostępu
Kliknij przycisk Dodaj w lewym górnym rogu, aby dodać przypisanie roli
W obszarze Zakres wybierz pozycję Obszar roboczy
W obszarze Rola wybierz pozycję Operator obliczeniowy usługi Synapse
W polu Wybierz użytkownika wprowadź <service_principal_name> i kliknij jednostkę usługi
Kliknij przycisk Zastosuj (poczekaj 3 minuty, aby uprawnienia zaczęły obowiązywać).
Uwaga
Upewnij się, że jednostka usługi jest co najmniej "Czytelnik" w obszarze roboczym usługi Synapse. Przejdź do karty Kontrola dostępu (IAM) w witrynie Azure Portal i sprawdź ustawienia uprawnień.
Instalowanie łącznika, serwera Prometheus, pulpitu nawigacyjnego narzędzia Grafana
- Dodaj repozytorium synapse-charts do klienta programu Helm.
helm repo add synapse-charts https://github.com/microsoft/azure-synapse-spark-metrics/releases/download/helm-chart
- Instalowanie składników za pośrednictwem klienta programu 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: nazwa obszaru roboczego usługi Synapse.
- subscription_id: identyfikator subskrypcji obszaru roboczego usługi Synapse.
- workspace_resource_group_name: nazwa grupy zasobów obszaru roboczego usługi Synapse.
- tenant_id: identyfikator dzierżawy obszaru roboczego usługi Synapse.
- service_principal_app_id: jednostka usługi "appId"
- service_principal_password: utworzone hasło jednostki usługi.
Zaloguj się do aplikacji Grafana
Pobierz domyślne hasło i adres narzędzia Grafana. Hasło można zmienić w ustawieniach narzędzia Grafana.
kubectl get secret --namespace spo spo-grafana -o jsonpath="{.data.admin-password}" | base64 --decode ; echo
kubectl -n spo get svc spo-grafana
Pobierz adres IP usługi, skopiuj i wklej zewnętrzny adres IP do przeglądarki, a następnie zaloguj się przy użyciu nazwy użytkownika "admin" i hasła.
Korzystanie z pulpitów nawigacyjnych narzędzia Grafana
Znajdź pulpit nawigacyjny usługi Synapse w lewym górnym rogu strony Grafana (Strona główna —> Obszar roboczy usługi Synapse / Aplikacja synapse), spróbuj uruchomić przykładowy kod w programie Synapse Studio i poczekać kilka sekund na ściąganie metryk.
Ponadto możesz użyć pulpitów nawigacyjnych "Obszar roboczy usługi Synapse / Obszar roboczy" i "Obszar roboczy usługi Synapse / Pule platformy Apache Spark", aby uzyskać przegląd obszaru roboczego i pul platformy Apache Spark.
Odinstaluj program
Usuń składniki za pomocą polecenia programu Helm w następujący sposób.
helm delete <release_name> -n <namespace>
Usuń klaster usługi AKS.
az aks delete --name <kubernetes_cluster_name> --resource-group <kubernetes_cluster_rg>
Wprowadzenie do składników
Usługa Azure Synapse Analytics udostępnia pakiet Helm oparty na operatorach Prometheus i Synapse Prometheus Połączenie or. Wykres Helm zawiera metryki na poziomie aplikacji Platformy Apache Spark, serwer Grafana i pulpity nawigacyjne platformy Grafana. Możesz użyć rozwiązania Prometheus, popularnego systemu monitorowania typu open source, aby zebrać te metryki niemal w czasie rzeczywistym i użyć narzędzia Grafana do wizualizacji.
Synapse Prometheus Połączenie or
Usługa Synapse Prometheus Połączenie or pomaga połączyć pulę usługi Azure Synapse Apache Spark i serwer Prometheus. Implementuje:
- Uwierzytelnianie: jest to uwierzytelnianie oparte na usłudze AAD i może automatycznie odświeżyć token usługi AAD jednostki usługi na potrzeby odnajdywania aplikacji, pozyskiwania metryk i innych funkcji.
- Odnajdywanie aplikacji platformy Apache Spark: po przesłaniu aplikacji w docelowym obszarze roboczym usługa Synapse Prometheus Połączenie or może automatycznie odnajdywać te aplikacje.
- Metadane aplikacji platformy Apache Spark: zbiera podstawowe informacje o aplikacji i eksportuje dane do rozwiązania Prometheus.
Usługa Synapse Prometheus Połączenie or jest udostępniana jako obraz platformy Docker hostowany w usłudze Microsoft Container Registry. Jest on typu open source i znajduje się w metrykach aplikacji platformy Apache Spark w usłudze Azure Synapse.
Serwer Prometheus
Prometheus to zestaw narzędzi do monitorowania i zgłaszania alertów typu open source. Prometheus ukończył Cloud Native Computing Foundation (CNCF) i stał się de facto standardem monitorowania natywnego dla chmury. Prometheus może pomóc nam zbierać, wykonywać zapytania i przechowywać ogromne ilości danych szeregów czasowych i można je łatwo zintegrować z narzędziem Grafana. W tym rozwiązaniu wdrożymy składnik Prometheus na podstawie wykresu helm.
Grafana i pulpity nawigacyjne
Grafana to oprogramowanie do wizualizacji i analizy typu open source. Umożliwia wykonywanie zapytań, wizualizowanie, zgłaszanie alertów i eksplorowanie metryk. Usługa Azure Synapse Analytics udostępnia zestaw domyślnych pulpitów nawigacyjnych narzędzia Grafana do wizualizacji metryk na poziomie aplikacji platformy Apache Spark.
Pulpit nawigacyjny "Obszar roboczy/obszar roboczy usługi Synapse" udostępnia widok na poziomie obszaru roboczego wszystkich pul platformy Apache Spark, liczby aplikacji, rdzeni procesora CPU itp.
Pulpit nawigacyjny "Obszar roboczy usługi Synapse / pule platformy Apache Spark" zawiera metryki aplikacji platformy Apache Spark uruchomionych w wybranej puli platformy Apache Spark w danym okresie.
Pulpit nawigacyjny "Obszar roboczy usługi Synapse / aplikacja Apache Spark" zawiera wybraną aplikację platformy Apache Spark.
Powyższe szablony pulpitów nawigacyjnych zostały oparte na oprogramowaniu open source w metrykach aplikacji platformy Apache Spark w usłudze Azure Synapse.