Použití řídicích panelů k vizualizaci metrik Azure Databricks
Tento článek ukazuje, jak nastavit řídicí panel Grafana pro monitorování úloh Azure Databricks problémy s výkonem.
Azure Databricks je rychlá, výkonná analytická služba založená na spolupráci Apache Spark,která usnadňuje rychlý vývoj a nasazení řešení pro analýzu velkých dat a umělou inteligenci (AI). Monitorování je důležitou součástí provozu Azure Databricks úloh v produkčním prostředí. Prvním krokem je shromáždění metrik do pracovního prostoru pro analýzu. V Azure je nejlepším řešením pro správu dat protokolu Azure Monitor. Azure Databricks nativně nepodporuje odesílání dat protokolu do služby Azure Monitor, ale knihovna pro tuto funkci je k dispozici v GitHub.
Tato knihovna umožňuje protokolování metrik Azure Databricks služby a také Apache Spark metriky událostí dotazů streamování struktury. Po úspěšném nasazení této knihovny do clusteru Azure Databricks můžete dále nasadit sadu řídicích panelů Grafana, které můžete nasadit jako součást produkčního prostředí.

Požadavky
Nakonfigurujte svůj Azure Databricks tak, aby používat knihovnu monitorování, jak je popsáno v souboru GitHub readme.
Nasazení pracovního prostoru služby Azure Log Analytics
Pokud chcete nasadit pracovní prostor služby Azure Log Analytics, postupujte takto:
Přejděte do
/perftools/deployment/loganalyticsadresáře .Nasaďte logAnalyticsDeploy.jsdo Azure Resource Manager šablony. Další informace o nasazení šablon Resource Manager najdete v tématu Nasazení prostředků pomocí Resource Manager a Azure CLI. Šablona má následující parametry:
- umístění: Oblast, ve které se nasadí pracovní prostor a řídicí panely služby Log Analytics.
- serviceTier: Cenová úroveň pracovního prostoru. Seznam platných hodnot najdete tady.
- dataRetention (volitelné): Počet dní, po které se data protokolu uchovávají v pracovním prostoru služby Log Analytics. Výchozí hodnota je 30 dní. Pokud je cenová úroveň
Free, uchovávání dat musí být sedm dní. - workspaceName (volitelné): Název pracovního prostoru. Pokud není zadaný, šablona vygeneruje název.
az group deployment create --resource-group <resource-group-name> --template-file logAnalyticsDeploy.json --parameters location='East US' serviceTier='Standalone'
Tato šablona vytvoří pracovní prostor a také sadu předdefinovaných dotazů, které používá řídicí panel.
Nasazení Grafany ve virtuálním počítači
Grafana je open source projekt, který můžete nasadit k vizualizaci metrik časových řad uložených v pracovním prostoru Azure Log Analytics pomocí modulu plug-in Grafana pro Azure Monitor. Grafana se spouští na virtuálním počítači a vyžaduje účet úložiště, virtuální síť a další prostředky. Pokud chcete nasadit virtuální počítač s i image grafany certifikovanou bitovou certifikací a přidruženými prostředky, postupujte takto:
Pomocí Azure CLI přijměte podmínky Azure Marketplace obrázků pro Grafana.
az vm image accept-terms --publisher bitnami --offer grafana --plan defaultPřejděte do
/spark-monitoring/perftools/deployment/grafanaadresáře v místní kopii GitHub adresáře.Nasaďte grafanaDeploy.jsna Resource Manager následujícím způsobem:
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
Po dokončení nasazení se na virtuální počítač nainstaluje bitnami image Grafany.
Aktualizace hesla Grafany
V rámci procesu nastavení instalační skript Grafany vy výstupem dočasného hesla pro uživatele s rolí správce. Toto dočasné heslo budete potřebovat pro přihlášení. Pokud chcete získat dočasné heslo, postupujte takto:
- Přihlaste se k webu Azure Portal.
- Vyberte skupinu prostředků, ve které byly prostředky nasazeny.
- Vyberte virtuální počítač, na kterém je grafana nainstalovaný. Pokud jste v šabloně nasazení použili výchozí název parametru, před názvem virtuálního počítače bude sparkmonitoring-vm-grafana.
- V části Podpora a řešení potíží kliknutím na Diagnostika spouštění otevřete stránku diagnostiky spouštění.
- Na stránce diagnostiky spouštění klikněte na Sériový protokol.
- Vyhledejte následující řetězec: "Setting Bitnami application password to" (Nastavení hesla aplikace Bitnami na hodnotu).
- Zkopírujte heslo do bezpečného umístění.
Dále následujícím postupem změňte heslo správce Grafany:
- V Azure Portal vyberte virtuální počítač a klikněte na Přehled.
- Zkopírujte veřejnou IP adresu
- Otevřete webový prohlížeč a přejděte na následující adresu URL:
http://<IP address>:3000. - Na přihlašovací obrazovce Grafany zadejte jméno uživatele admin a použijte heslo Grafany z předchozích kroků.
- Po přihlášení vyberte Konfigurace (ikona ozubeného kola).
- Vyberte Správce serveru.
- Na kartě Uživatelé vyberte přihlašovací jméno správce.
- Aktualizujte heslo.
Vytvoření Azure Monitor dat
Vytvořte objekt služby, který grafaně umožní spravovat přístup k vašemu pracovnímu prostoru služby Log Analytics. Další informace najdete v tématu Vytvoření objektu služby Azure pomocí Azure CLI.
az ad sp create-for-rbac --name http://<service principal name> --role "Log Analytics Reader"Poznamenejte si hodnoty appId, password a tenanta ve výstupu tohoto příkazu:
{ "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" }Přihlaste se k Grafaně, jak je popsáno výše. Vyberte Konfigurace (ikona ozubeného kola) a pak Zdroje dat.
Na kartě Zdroje dat klikněte na Přidat zdroj dat.
Jako Azure Monitor zdroje dat vyberte Další.
V Nastavení název zdroje dat do textového pole Název.
V části Azure Monitor API zadejte následující informace:
- ID předplatného: ID vašeho předplatného Azure.
- ID tenanta: ID tenanta z předchozího místa.
- ID klienta: Hodnota appId z dřívější části.
- Tajný klíč klienta: Hodnota "password" z dřívější části.
V části Podrobnosti o rozhraní API služby Azure Log Analytics zaškrtněte políčko Stejné podrobnosti jako Azure Monitor API.
Klikněte na Save & Test (Uložit a otestovat). Pokud je zdroj dat Log Analytics správně nakonfigurovaný, zobrazí se zpráva o úspěchu.
Vytvoření řídicího panelu
Pomocí následujících kroků vytvořte v Grafaně řídicí panely:
Přejděte do
/perftools/dashboards/grafanaadresáře v místní kopii GitHub adresáře.Spusťte tento skript:
export WORKSPACE=<your Azure Log Analytics workspace ID> export LOGTYPE=SparkListenerEvent_CL sh DashGen.shVýstupem skriptu je soubor s názvem SparkMonitoringDash.jsna .
Vraťte se na řídicí panel Grafana a vyberte Vytvořit (ikona plus).
Vyberte Importovat.
Klikněte Upload soubor .json.
Vyberte soubor SparkMonitoringDash.jsvytvořený v kroku 2.
V části Options (Možnosti) v části ALA (ALA) vyberte Azure Monitor zdroje dat vytvořeného dříve.
Klikněte na Importovat.
Vizualizace na řídicích panelech
Řídicí panely Azure Log Analytics i Grafana obsahují sadu vizualizací časových řad. Každý graf je graf časových řad dat metrik souvisejících s Apache Spark,fázemi úlohy a úkoly, které tvoří jednotlivé fáze.
Vizualizace jsou:
Latence úlohy
Tato vizualizace ukazuje latenci spuštění úlohy, což je hrubý pohled na celkový výkon úlohy. Zobrazí dobu provádění úlohy od začátku do konce. Všimněte si, že čas spuštění úlohy není stejný jako čas odeslání úlohy. Latence se reprezentuje jako percentily (10 %, 30 %, 50 %, 90 %) provádění úlohy indexované podle ID clusteru a ID aplikace.
Latence fáze
Vizualizace ukazuje latenci jednotlivých fází na cluster, aplikaci a jednotlivé fáze. Tato vizualizace je užitečná pro identifikaci konkrétní fáze, která běží pomalu.
Latence úlohy
Tato vizualizace ukazuje latenci provádění úkolů. Latence se reprezentuje jako percentil provádění úkolů na cluster, název fáze a aplikaci.
Sum Task Execution per host
Tato vizualizace zobrazuje součet latence spouštění úkolů na hostitele spuštěného v clusteru. Zobrazení latence spouštění úloh na hostitele identifikuje hostitele, kteří mají mnohem vyšší celkovou latenci úkolů než jiní hostitelé. To může znamenat, že úlohy byly neefektivní nebo nerovnoměrně distribuovány do hostitelů.
Metriky úloh
Tato vizualizace zobrazuje sadu metrik spouštění pro spuštění daného úkolu. Tyto metriky zahrnují velikost a dobu náhodného promíchání dat, dobu trvání operací serializace a deserializace a další. Úplnou sadu metrik zobrazíte v dotazu Log Analytics na panelu. Tato vizualizace je užitečná pro pochopení operací, které tvoří úlohu, a identifikaci spotřeby prostředků jednotlivých operací. Špičky v grafu představují nákladné operace, které by se měly prozkoumat.
Propustnost clusteru
Tato vizualizace představuje celkové zobrazení pracovních položek indexovaných clusterem a aplikací, které představují množství práce na cluster a aplikaci. Zobrazuje počet dokončených úloh, úkolů a fází na cluster, aplikaci a fázi v přírůstcích po minutách.
Propustnost/latence streamování
Tato vizualizace souvisí s metrikami přidruženými k dotazu strukturovaného streamování. Graf zobrazuje počet vstupních řádků za sekundu a počet zpracovaných řádků za sekundu. Metriky streamování se také reprezentují pro každou aplikaci. Tyto metriky se posílají při vygenerování události OnQueryProgress při zpracování strukturovaného dotazu streamování a vizualizace představuje latenci streamování, protože doba v milisekundách, která se používá ke spuštění dávky dotazů.
Spotřeba prostředků na exekutor
Dále je sada vizualizací pro řídicí panel, která ukazuje konkrétní typ prostředku a způsob jeho využití pro exekutory v každém clusteru. Tyto vizualizace pomáhají identifikovat odlehlé hodnoty ve spotřebě prostředků na exekutor. Pokud je například přidělení práce pro konkrétní exekutor zkosené, spotřeba prostředků bude zvýšena ve vztahu k ostatním exekutorům spuštěných v clusteru. Tento problém je možné identifikovat špičkami ve spotřebě prostředků exekutora.
Metriky výpočetního času exekutoru
Dále je sada vizualizací pro řídicí panel, které zobrazují poměr doby serializace exekutoru, deserializace času, času procesoru a času virtuálního počítače Java na celkový výpočetní čas exekutoru. To vizuálně ukazuje, kolik každá z těchto čtyř metrik přispívá k celkovému zpracování exekutorů.
Metriky náhodného prohodí
Poslední sada vizualizací zobrazuje metriky náhodného promíchání dat přidružené ke strukturovanému dotazu streamování napříč všemi exekutory. Patří mezi ně čtení bajtů náhodného prohozování, zapsané bajty náhodného promíchání, využití paměti náhodného prohozování a využití disku v dotazech, kde se používá systém souborů.