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
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.
Přihlaste se k pracovnímu prostoru Azure Synapse Analytics jako Správa istrator Synapse
V nástroji Synapse Studio v levém podokně vyberte Spravovat > řízení přístupu.
Kliknutím na tlačítko Přidat vlevo nahoře přidejte přiřazení role.
Jako obor zvolte Pracovní prostor.
Jako roli zvolte Operátor služby Synapse Compute.
V části Vybrat uživatele zadejte service_principal_name <> a klikněte na instanční objekt.
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
- 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
- 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:
- 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.
- 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.
- 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.
Ří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í.
Řídicí panel Pracovní prostor Synapse / Aplikace Apache Spark obsahuje vybranou aplikaci Apache Spark.
Výše uvedené šablony řídicích panelů jsou opensourcové v metrikách aplikací Azure Synapse Apache Spark.