Visualisera Azure Databricks-mått med instrumentpaneler
Den här artikeln visar hur du ställer in en Grafana-instrumentpanel för att övervaka Azure Databricks jobb för prestandaproblem.
Azure Databricks är en snabb, kraftfull och samarbetsbaserad Apache Spark-baseradanalystjänst som gör det enkelt att snabbt utveckla och distribuera lösningar för stordataanalys och artificiell intelligens (AI). Övervakning är en viktig del av att Azure Databricks arbetsbelastningar i produktion. Det första steget är att samla in mått till en arbetsyta för analys. I Azure är den bästa lösningen för att hantera loggdata Azure Monitor. Azure Databricks har inte inbyggt stöd för att skicka loggdata till Azure Monitor, men det finns ett bibliotek för den här funktionen i GitHub.
Det här biblioteket möjliggör loggning Azure Databricks av tjänstmått samt för Apache Spark för strömning av frågehändelsemått. När du har distribuerat det här biblioteket till ett Azure Databricks-kluster kan du ytterligare distribuera en uppsättning Grafana-instrumentpaneler som du kan distribuera som en del av din produktionsmiljö.

Förutsättningar
Konfigurera ditt Azure Databricks att använda övervakningsbiblioteket enligt beskrivningen i GitHub viktigt.
Distribuera Azure Log Analytics-arbetsytan
Följ dessa steg om du vill distribuera Azure Log Analytics-arbetsytan:
Navigera till
/perftools/deployment/loganalyticskatalogen .Distribuera logAnalyticsDeploy.json Azure Resource Manager mallen. Mer information om hur du distribuerar Resource Manager-mallar finns i Distribuera resurser med Resource Manager-mallar och Azure CLI. Mallen har följande parametrar:
- plats:Den region där Log Analytics-arbetsytan och instrumentpanelerna distribueras.
- serviceTier:Prisnivån för arbetsytan. Här finns en lista över giltiga värden.
- dataRetention (valfritt): Antalet dagar som loggdata behålls på Log Analytics-arbetsytan. Standardvärdet är 30 dagar. Om prisnivån är
Freemåste datalagringen vara sju dagar. - workspaceName (valfritt): Ett namn på arbetsytan. Om inget anges genererar mallen ett namn.
az group deployment create --resource-group <resource-group-name> --template-file logAnalyticsDeploy.json --parameters location='East US' serviceTier='Standalone'
Den här mallen skapar arbetsytan och skapar även en uppsättning fördefinierade frågor som används av instrumentpanelen.
Distribuera Grafana på en virtuell dator
Grafana är ett projekt med öppen källkod som du kan distribuera för att visualisera tidsseriemått som lagras på din Azure Log Analytics-arbetsyta med grafana-plugin-programmet för Azure Monitor. Grafana körs på en virtuell dator (VM) och kräver ett lagringskonto, ett virtuellt nätverk och andra resurser. Följ dessa steg om du vill distribuera en virtuell dator med den bitnami-certifierade Grafana-avbildningen och tillhörande resurser:
Använd Azure CLI för att acceptera Azure Marketplace villkor för Grafana.
az vm image accept-terms --publisher bitnami --offer grafana --plan defaultNavigera till katalogen
/spark-monitoring/perftools/deployment/grafanai din lokala kopia av GitHub lagringsplatsen.Distribuera grafanaDeploy.json Resource Manager mallen enligt följande:
export DATA_SOURCE="https://raw.githubusercontent.com/mspnp/spark-monitoring/master/perftools/deployment/grafana/AzureDataSource.sh" az group deployment create \ --resource-group <resource-group-name> \ --template-file grafanaDeploy.json \ --parameters adminPass='<vm password>' dataSource=$DATA_SOURCE
När distributionen är klar installeras bitnami-avbildningen av Grafana på den virtuella datorn.
Uppdatera Grafana-lösenordet
Som en del av installationsprocessen matar Grafana-installationsskriptet ut ett tillfälligt lösenord för administratörsanvändaren. Du behöver det här tillfälliga lösenordet för att logga in. Följ dessa steg om du vill hämta det tillfälliga lösenordet:
- Logga in på Azure Portal.
- Välj den resursgrupp där resurserna har distribuerats.
- Välj den virtuella dator där Grafana installerades. Om du använde standardparameternamnet i distributionsmallen föregås namnet av den virtuella datorn med sparkmonitoring-vm-grafana.
- I avsnittet Support + felsökning klickar du på Startdiagnostik för att öppna sidan för startdiagnostik.
- Klicka på Serielogg på startdiagnostiksidan.
- Sök efter följande sträng: "Ange Bitnami-programlösenord till".
- Kopiera lösenordet till en säker plats.
Ändra sedan Grafana-administratörslösenordet genom att följa dessa steg:
- I listan Azure Portal den virtuella datorn och klickar på Översikt.
- Kopiera den offentliga IP-adressen.
- Öppna en webbläsare och gå till följande URL:
http://<IP address>:3000. - På Grafana-inloggningsskärmen anger du admin som användarnamn och använder Grafana-lösenordet från föregående steg.
- När du har loggat in väljer du Konfiguration (kugghjulsikonen).
- Välj Serveradministratör.
- På fliken Användare väljer du administratörsinloggningen.
- Uppdatera lösenordet.
Skapa en Azure Monitor datakälla
Skapa ett huvudnamn för tjänsten som gör att Grafana kan hantera åtkomsten till Log Analytics-arbetsytan. Mer information finns i Skapa ett huvudnamn för Azure-tjänsten med Azure CLI
az ad sp create-for-rbac --name http://<service principal name> --role "Log Analytics Reader"Observera värdena för appId, lösenord och klientorganisation i utdata från det här kommandot:
{ "appId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "displayName": "azure-cli-2019-03-27-00-33-39", "name": "http://<service principal name>", "password": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "tenant": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" }Logga in på Grafana enligt beskrivningen ovan. Välj Konfiguration (kugghjulsikonen) och sedan Datakällor.
På fliken Datakällor klickar du på Lägg till datakälla.
Välj Azure Monitor som typ av datakälla.
I Inställningar anger du ett namn för datakällan i textrutan Namn.
I avsnittet Azure Monitor API-information anger du följande information:
- Prenumerations-ID: Ditt Azure-prenumerations-ID.
- Klientorganisations-ID: Klientorganisations-ID från tidigare.
- Klient-ID: Värdet för "appId" från tidigare.
- Klienthemlighet: Värdet för "lösenord" från tidigare.
I avsnittet Information om Azure Log Analytics API markerar du kryssrutan Samma information Azure Monitor API:et.
Klicka på Spara test. Om Log Analytics-datakällan är korrekt konfigurerad visas ett meddelande om att det lyckades.
Skapa instrumentpanelen
Skapa instrumentpanelerna i Grafana genom att följa dessa steg:
Navigera till katalogen
/perftools/dashboards/grafanai din lokala kopia av GitHub lagringsplatsen.Kör följande skript:
export WORKSPACE=<your Azure Log Analytics workspace ID> export LOGTYPE=SparkListenerEvent_CL sh DashGen.shUtdata från skriptet är en fil med namnet SparkMonitoringDash.json.
Gå tillbaka till Grafana-instrumentpanelen och välj Skapa (plusikonen).
Välj Importera.
Klicka Upload .json-fil.
Välj filen SparkMonitoringDash.json som skapades i steg 2.
I avsnittet Alternativ under ALA väljerdu den Azure Monitor datakälla som skapades tidigare.
Klicka på Importera.
Visualiseringar på instrumentpanelerna
Både Azure Log Analytics- och Grafana-instrumentpanelerna innehåller en uppsättning tidsserievisualiseringar. Varje diagram är tidsserieritning av måttdata som är relaterade Apache Spark jobb,jobbfaser och uppgifter som utgör varje fas.
Visualiseringarna är:
Jobbsvarstid
Den här visualiseringen visar körningsfördröjning för ett jobb, vilket är en grov vy över ett jobbs övergripande prestanda. Visar varaktigheten för jobbkörningen från början till slutförande. Observera att jobbets starttid inte är samma som jobbinskickningstiden. Svarstiden representeras som percentiler (10 %, 30 %, 50 %, 90 %) av jobbkörningen indexerad efter kluster-ID och program-ID.
Fasfördröjning
Visualiseringen visar svarstiden för varje steg per kluster, per program och per enskild fas. Den här visualiseringen är användbar för att identifiera en viss fas som körs långsamt.
Svarstid för aktiviteter
Den här visualiseringen visar svarstid för uppgiftskörning. Svarstiden representeras som en percentil av uppgiftskörning per kluster, fasnamn och program.
Sum Task Execution per host (Summa uppgiftskörning per värd)
Den här visualiseringen visar summan av svarstiden för uppgiftskörning per värd som körs i ett kluster. Om du visar svarstiden för uppgiftskörning per värd identifieras värdar som har mycket högre svarstid för övergripande uppgifter än andra värdar. Detta kan innebära att uppgifter har distribuerats ineffektivt eller ojämnt till värdar.
Uppgiftsmått
Den här visualiseringen visar en uppsättning körningsmått för en viss uppgifts körning. Dessa mått omfattar storlek och varaktighet för en datablandning, varaktighet för serialiserings- och deserialiseringsåtgärder med mera. En fullständig uppsättning mått finns i Log Analytics-frågan för panelen. Den här visualiseringen är användbar för att förstå de åtgärder som utgör en uppgift och identifiera resursförbrukningen för varje åtgärd. Toppar i grafen representerar kostsamma åtgärder som bör undersökas.
Klustergenomflöde
Den här visualiseringen är en översikt över arbetsobjekt som indexeras av kluster och program för att representera mängden arbete som utförs per kluster och program. Den visar antalet jobb, aktiviteter och faser som slutförts per kluster, program och fas i steg om en minut.
Strömmande dataflöde/svarstid
Den här visualiseringen är relaterad till de mått som är associerade med en strukturerad strömningsfråga. Diagrammet visar antalet indatarader per sekund och antalet rader som bearbetas per sekund. Strömningsmåtten representeras också per program. De här måtten skickas när händelsen OnQueryProgress genereras när den strukturerade strömningsfrågan bearbetas och visualiseringen representerar strömningsfördröjning som den tid i millisekunder som används för att köra en frågebatch.
Resursförbrukning per utförare
Nästa är en uppsättning visualiseringar för instrumentpanelen som visar den specifika typen av resurs och hur den förbrukas per utförare i varje kluster. Dessa visualiseringar hjälper till att identifiera avvikande värden i resursförbrukning per utförare. Om till exempel arbetsallokeringen för en viss utförare är skeva, höjs resursförbrukningen i förhållande till andra utförare som körs i klustret. Detta kan identifieras med toppar i resursförbrukningen för en utförare.
Tidsmått för körningsbearbetning
Därefter är en uppsättning visualiseringar för instrumentpanelen som visar förhållandet mellan körtidsserialisering, deserialiseringstid, CPU-tid och java-tid för virtuell dator till total beräkningstid för utföraren. Detta visar visuellt hur mycket vart och ett av dessa fyra mått bidrar till övergripande körningsbearbetning.
Blanda mått
Den sista uppsättningen visualiseringar visar de datablandningsmått som är associerade med en strukturerad strömningsfråga över alla utförare. Dessa inkluderar shuffle byte-läsning, blanda skrivna byte, blanda minne och diskanvändning i frågor där filsystemet används.