Sdílet prostřednictvím


Monitorování metrik aplikací Apache Sparku pomocí nástroje Prometheus a Grafana

Přehled

V tomto kurzu se dozvíte, jak nasadit řešení metrik aplikací Apache Spark do clusteru Azure Kubernetes Service (AKS) a jak integrovat řídicí panely Grafana.

Toto řešení můžete použít ke shromažďování a dotazování dat metrik Apache Sparku téměř v reálném čase. Integrované řídicí panely Grafana umožňují diagnostikovat a monitorovat aplikaci Apache Spark. Zdrojový kód a konfigurace jsou opensourcové na GitHubu.

Požadavky

  1. Azure CLI
  2. Klient Helm 3.30 nebo novější
  3. kubectl
  4. Azure Kubernetes Service (AKS)

Nebo použijte Azure Cloud Shell, který už obsahuje Azure CLI, klienta Helm a kubectl.

Přihlášení k Azure

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

Vytvoření instance služby Azure Kubernetes (AKS)

Pomocí příkazu Azure CLI vytvořte cluster Kubernetes ve vašem předplatném.

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>

Poznámka: Tento krok můžete přeskočit, pokud už máte cluster AKS.

Vytvoření instančního objektu a udělení oprávnění pracovnímu prostoru Synapse

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

Výsledek by měl vypadat takto:

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

Poznamenejte si ID aplikace, heslo a ID tenanta.

screenshot grant permission srbac

  1. Přihlaste se k pracovnímu prostoru Azure Synapse Analytics jako Správa istrator Synapse

  2. V nástroji Synapse Studio v levém podokně vyberte Spravovat > řízení přístupu.

  3. Kliknutím na tlačítko Přidat vlevo nahoře přidejte přiřazení role.

  4. Jako obor zvolte Pracovní prostor.

  5. Jako roli zvolte Operátor služby Synapse Compute.

  6. V části Vybrat uživatele zadejte service_principal_name <> a klikněte na instanční objekt.

  7. Klikněte na Použít (počkejte 3 minuty, než se oprávnění projeví.)

Poznámka:

Ujistěte se, že je instanční objekt v pracovním prostoru Synapse alespoň role Čtenář. Na webu Azure Portal přejděte na kartu Řízení přístupu (IAM) a zkontrolujte nastavení oprávnění.

Instalace konektoru, serveru Prometheus, řídicího panelu Grafana

  1. Přidejte úložiště Synapse-charts do klienta Helm.
helm repo add synapse-charts https://github.com/microsoft/azure-synapse-spark-metrics/releases/download/helm-chart
  1. Instalace komponent prostřednictvím klienta 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: Název pracovního prostoru Synapse.
  • subscription_id: ID předplatného pracovního prostoru Synapse
  • workspace_resource_group_name: Název skupiny prostředků pracovního prostoru Synapse
  • tenant_id: ID tenanta pracovního prostoru Synapse.
  • service_principal_app_id: Instanční objekt appId
  • service_principal_password: Heslo instančního objektu, které jste vytvořili.

Přihlášení k Grafana

Získejte výchozí heslo a adresu Grafany. Heslo můžete změnit v nastavení Grafany.

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

Získejte IP adresu služby, zkopírujte a vložte externí IP adresu do prohlížeče a přihlaste se pomocí uživatelského jména "admin" a hesla.

Použití řídicích panelů Grafana

Najděte řídicí panel Synapse v levém horním rohu stránky Grafana (Domovská stránka –> Pracovní prostor Synapse / Aplikace Synapse), zkuste spustit ukázkový kód v nástroji Synapse Studio a počkejte několik sekund na načtení metrik.

K získání přehledu o pracovním prostoru a fondech Apache Spark můžete také použít řídicí panely "Pracovní prostor Synapse / Pracovní prostor/ Pracovní prostor Synapse / Fondy Apache Sparku".

Odinstalace produktu

Následujícím způsobem odeberte komponenty příkazem Helm.

helm delete <release_name> -n <namespace>

Odstraňte cluster AKS.

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

Úvod ke komponentám

Azure Synapse Analytics poskytuje chart Helm založený na operátoru Prometheus a Připojení us Synapse Prometheus. Chart Helm zahrnuje server Prometheus, server Grafana a řídicí panely Grafana pro metriky na úrovni aplikace Apache Spark. Prometheus, oblíbený opensourcový monitorovací systém, můžete použít ke shromažďování těchto metrik téměř v reálném čase a použití Grafany pro vizualizaci.

Připojení or Synapse Prometheus

Synapse Prometheus Připojení or pomáhá připojit fond Azure Synapse Apache Spark a váš server Prometheus. Implementuje:

  1. Ověřování: Ověřování založené na AAD a může automaticky aktualizovat token AAD instančního objektu pro zjišťování aplikací, příjem metrik a další funkce.
  2. Zjišťování aplikací Apache Spark: Při odesílání aplikací v cílovém pracovním prostoru může Synapse Prometheus Připojení or tyto aplikace automaticky zjišťovat.
  3. Metadata aplikace Apache Spark: Shromažďuje základní informace o aplikaci a exportuje data do systému Prometheus.

Synapse Prometheus Připojení or se vydává jako image Dockeru hostovaná ve službě Microsoft Container Registry. Je opensourcový a nachází se v metrikách aplikace Azure Synapse Apache Spark.

Prometheus – server

Prometheus je opensourcová sada nástrojů pro monitorování a upozorňování. Prometheus absolvoval cloud native computing Foundation (CNCF) a stal se de facto standardem pro monitorování nativní pro cloud. Prometheus nám může pomoct shromažďovat, dotazovat a ukládat obrovské objemy dat časových řad a je možné je snadno integrovat s Grafana. V tomto řešení nasadíme komponentu Prometheus založenou na chartu Helm.

Grafana a řídicí panely

Grafana je opensourcový software pro vizualizaci a analýzu. Umožňuje dotazovat se, vizualizovat, upozorňovat na metriky a zkoumat je. Azure Synapse Analytics poskytuje sadu výchozích řídicích panelů Grafana pro vizualizaci metrik na úrovni aplikace Apache Spark.

Řídicí panel Pracovní prostor Synapse / Pracovní prostor poskytuje zobrazení na úrovni pracovního prostoru všech fondů Apache Spark, počtu aplikací, jader procesoru atd.

screenshot dashboard workspace

Řídicí panel "Pracovní prostor Synapse / Fondy Apache Sparku" obsahuje metriky aplikací Apache Spark spuštěných ve vybraném fondu Apache Spark během časového období.

screenshot dashboard sparkpool

Řídicí panel Pracovní prostor Synapse / Aplikace Apache Spark obsahuje vybranou aplikaci Apache Spark.

screenshot dashboard application

Výše uvedené šablony řídicích panelů jsou opensourcové v metrikách aplikací Azure Synapse Apache Spark.