Udostępnij za pośrednictwem


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

  1. Interfejs wiersza polecenia platformy Azure
  2. Klient programu Helm w wersji 3.30 lub nowszej
  3. kubectl
  4. 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.

screenshot grant permission srbac

  1. Zaloguj się do obszaru roboczego usługi Azure Synapse Analytics jako Administracja istrator usługi Synapse

  2. W programie Synapse Studio w okienku po lewej stronie wybierz pozycję Zarządzaj > kontrolą dostępu

  3. Kliknij przycisk Dodaj w lewym górnym rogu, aby dodać przypisanie roli

  4. W obszarze Zakres wybierz pozycję Obszar roboczy

  5. W obszarze Rola wybierz pozycję Operator obliczeniowy usługi Synapse

  6. W polu Wybierz użytkownika wprowadź <service_principal_name> i kliknij jednostkę usługi

  7. 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

  1. 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
  1. 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:

  1. 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.
  2. 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.
  3. 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.

screenshot dashboard workspace

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.

screenshot dashboard sparkpool

Pulpit nawigacyjny "Obszar roboczy usługi Synapse / aplikacja Apache Spark" zawiera wybraną aplikację platformy Apache Spark.

screenshot dashboard application

Powyższe szablony pulpitów nawigacyjnych zostały oparte na oprogramowaniu open source w metrykach aplikacji platformy Apache Spark w usłudze Azure Synapse.