Delen via


Metrische gegevens van Apache Spark-toepassingen bewaken met Prometheus en Grafana

Overzicht

In deze zelfstudie leert u hoe u de metrische oplossing voor apache Spark-toepassingen implementeert in een AKS-cluster (Azure Kubernetes Service) en hoe u de Grafana-dashboards integreert.

U kunt deze oplossing gebruiken om de metrische gegevens van Apache Spark bijna in realtime te verzamelen en op te vragen. Met de geïntegreerde Grafana-dashboards kunt u uw Apache Spark-toepassing diagnosticeren en bewaken. De broncode en de configuraties zijn opensourced op GitHub.

Vereisten

  1. Azure-CLI
  2. Helm-client 3.30+
  3. kubectl
  4. Azure Kubernetes Service (AKS)

Of gebruik de Azure Cloud Shell, die al de Azure CLI, Helm-client en kubectl bevat.

Meld u aan bij Azure

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

Een Azure Kubernetes Service Instance (AKS) maken

Gebruik de Azure CLI-opdracht om een Kubernetes-cluster in uw abonnement te maken.

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>

Opmerking: deze stap kan worden overgeslagen als u al een AKS-cluster hebt.

Een service-principal maken en toestemming verlenen aan synapse-werkruimte

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

Het resultaat moet er als volgt uitzien:

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

Noteer de appId, het wachtwoord en de tenant-id.

screenshot grant permission srbac

  1. Meld u aan bij uw Azure Synapse Analytics-werkruimte als Synapse Beheer istrator

  2. In Synapse Studio selecteert u in het linkerdeelvenster Toegangsbeheer beheren >

  3. Klik linksboven op de knop Toevoegen om een roltoewijzing toe te voegen

  4. Kies voor Bereik de optie Werkruimte

  5. Voor Rol kiest u Synapse Compute-operator

  6. Voer voor Gebruiker selecteren uw <service_principal_name> in en klik op uw service-principal

  7. Klik op Toepassen (wacht 3 minuten totdat de machtiging van kracht wordt.)

Notitie

Zorg ervoor dat uw service-principal ten minste de rol Lezer in uw Synapse-werkruimte heeft. Ga naar het tabblad Toegangsbeheer (IAM) van Azure Portal en controleer de machtigingsinstellingen.

Connector installeren, Prometheus-server, Grafana-dashboard

  1. Voeg de synapse-charts-opslagplaats toe aan de Helm-client.
helm repo add synapse-charts https://github.com/microsoft/azure-synapse-spark-metrics/releases/download/helm-chart
  1. Onderdelen installeren via Helm-client:
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: naam synapse-werkruimte.
  • subscription_id: Abonnements-id van Synapse-werkruimte.
  • workspace_resource_group_name: resourcegroepnaam synapse-werkruimte.
  • tenant_id: Tenant-id van Synapse-werkruimte.
  • service_principal_app_id: De service-principal 'appId'
  • service_principal_password: het wachtwoord van de service-principal dat u hebt gemaakt.

Aanmelden bij Grafana

Haal het standaardwachtwoord en het standaardadres van Grafana op. U kunt het wachtwoord wijzigen in de Grafana-instellingen.

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

Haal het ip-adres van de service op, kopieer en plak het externe IP-adres in de browser en meld u aan met de gebruikersnaam 'admin' en het wachtwoord.

Grafana-dashboards gebruiken

Zoek het Synapse-dashboard in de linkerbovenhoek van de Grafana-pagina (Start -> Synapse Workspace/Synapse Application), probeer een voorbeeldcode uit te voeren in Synapse Studio en wacht enkele seconden tot de metrische gegevens worden opgehaald.

U kunt ook de dashboards Synapse Workspace/Workspace en Synapse Workspace/Apache Spark-pools gebruiken om een overzicht te krijgen van uw werkruimte en uw Apache Spark-pools.

Verwijderen

Verwijder de onderdelen als volgt door de Helm-opdracht.

helm delete <release_name> -n <namespace>

Verwijder het AKS-cluster.

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

Inleiding tot onderdelen

Azure Synapse Analytics biedt een Helm-grafiek op basis van Prometheus Operator en Synapse Prometheus Verbinding maken or. De Helm-grafiek bevat Prometheus-server-, Grafana-server- en Grafana-dashboards voor metrische gegevens op apache Spark-toepassingsniveau. U kunt Prometheus, een populair opensource-bewakingssysteem, gebruiken om deze metrische gegevens in bijna realtime te verzamelen en Grafana te gebruiken voor visualisatie.

Synapse Prometheus Verbinding maken or

Synapse Prometheus Verbinding maken or helpt bij het verbinden van azure Synapse Apache Spark-pool en uw Prometheus-server. Hiermee wordt het volgende geïmplementeerd:

  1. Verificatie: het is verificatie op basis van AAD en kan automatisch het AAD-token van de service-principal vernieuwen voor toepassingsdetectie, opname van metrische gegevens en andere functies.
  2. Apache Spark-toepassingsdetectie: wanneer u toepassingen verzendt in de doelwerkruimte, kan Synapse Prometheus Verbinding maken or deze toepassingen automatisch detecteren.
  3. Metagegevens van Apache Spark-toepassingen: hiermee worden basistoepassingsgegevens verzameld en worden de gegevens geëxporteerd naar Prometheus.

Synapse Prometheus Verbinding maken or wordt vrijgegeven als een docker-installatiekopie die wordt gehost in Microsoft Container Registry. Het is opensource en bevindt zich in de metrische gegevens van de Apache Spark-toepassing in Azure Synapse.

Prometheus-server

Prometheus is een opensource-toolkit voor bewaking en waarschuwingen. Prometheus studeerde af van de Cloud Native Computing Foundation (CNCF) en werd de feitelijke standaard voor cloudeigen bewaking. Prometheus kan ons helpen bij het verzamelen, opvragen en opslaan van enorme hoeveelheden tijdreeksgegevens en kan eenvoudig worden geïntegreerd met Grafana. In deze oplossing implementeren we het Prometheus-onderdeel op basis van de Helm-grafiek.

Grafana en dashboards

Grafana is opensource-visualisatie- en analysesoftware. Hiermee kunt u query's uitvoeren, visualiseren, waarschuwen en uw metrische gegevens verkennen. Azure Synapse Analytics biedt een set standaard Grafana-dashboards om metrische gegevens op toepassingsniveau van Apache Spark te visualiseren.

Het dashboard Synapse Workspace/Workspace biedt een weergave op werkruimteniveau van alle Apache Spark-pools, toepassingsaantallen, cpu-kernen, enzovoort.

screenshot dashboard workspace

Het dashboard Synapse Workspace/Apache Spark-pools bevat de metrische gegevens van Apache Spark-toepassingen die tijdens de periode in de geselecteerde Apache Spark-pool worden uitgevoerd.

screenshot dashboard sparkpool

Het dashboard Synapse-werkruimte/Apache Spark-toepassing bevat de geselecteerde Apache Spark-toepassing.

screenshot dashboard application

De bovenstaande dashboardsjablonen zijn opensourced in metrische gegevens van De Apache Spark-toepassing in Azure Synapse.