Azure Databricks-toepassingslogboeken verzenden naar Azure Monitor
In dit artikel wordt beschreven hoe u toepassingslogboeken en metrische gegevens van Azure Databricks naar een Log Analytics-werkruimte verzendt. Hiervoor wordt de Azure Databricks Monitoring Library gebruikt,die beschikbaar is op GitHub.
Vereisten
Configureer uw Azure Databricks voor het gebruik van de bewakingsbibliotheek, zoals beschreven in GitHub leesmij.
Notitie
De bewakingsbibliotheek streamt Apache Spark gebeurtenissen en metrische spark structured streaming-gegevens van uw taken naar Azure Monitor. U hoeft geen wijzigingen aan te brengen in uw toepassingscode voor deze gebeurtenissen en metrische gegevens.
Metrische gegevens van toepassingen verzenden met Dropwizard
Spark maakt gebruik van een configureerbaar systeem voor metrische gegevens op basis van de Dropwizard Metrics Library. Zie Metrische gegevens in de Spark-documentatie voor meer informatie.
Volg deze stappen om metrische gegevens van Azure Databricks toepassing naar Azure Monitor verzenden:
Bouw het JAR-bestand spark-listeners-GitHub- 1.0-SNAPSHOT.jar.
Maak Dropwizard-meters of -tellers in uw toepassingscode. U kunt de klasse
UserMetricsSystemgebruiken die is gedefinieerd in de bewakingsbibliotheek. In het volgende voorbeeld wordt een teller met de naamcounter1gemaakt.import org.apache.spark.metrics.UserMetricsSystems import org.apache.spark.sql.SparkSession object StreamingQueryListenerSampleJob { private final val METRICS_NAMESPACE = "samplejob" private final val COUNTER_NAME = "counter1" def main(args: Array[String]): Unit = { val spark = SparkSession .builder .getOrCreate val driverMetricsSystem = UserMetricsSystems .getMetricSystem(METRICS_NAMESPACE, builder => { builder.registerCounter(COUNTER_NAME) }) driverMetricsSystem.counter(COUNTER_NAME).inc(5) } }De bewakingsbibliotheek bevat een voorbeeldtoepassing die laat zien hoe u de klasse
UserMetricsSystemgebruikt.
Toepassingslogboeken verzenden met Log4j
Volg deze stappen Azure Databricks uw toepassingslogboeken naar Azure Log Analytics te verzenden met behulp van de Log4j-appender in de bibliotheek:
Bouw het JAR-bestand spark-listeners-1.0-SNAPSHOT.jar en het JAR-bestand spark-listeners-GitHub.1.0-SNAPSHOT.jar.
Maak een log4j.properties-configuratiebestand voor uw toepassing. Neem de volgende configuratie-eigenschappen op. Vervang waar aangegeven de naam en het logboekniveau van uw toepassingspakket:
log4j.appender.A1=com.microsoft.pnp.logging.loganalytics.LogAnalyticsAppender log4j.appender.A1.layout=com.microsoft.pnp.logging.JSONLayout log4j.appender.A1.layout.LocationInfo=false log4j.additivity.<your application package name>=false log4j.logger.<your application package name>=<log level>, A1U vindt hier een voorbeeldconfiguratiebestand.
Neem in uw toepassingscode het project spark-listeners-tischealytics op en importeer
com.microsoft.pnp.logging.Log4jconfigurationhet in uw toepassingscode.import com.microsoft.pnp.logging.Log4jConfigurationConfigureer Log4j met behulp van het bestand log4j.properties dat u in stap 3 hebt gemaakt:
getClass.getResourceAsStream("<path to file in your JAR file>/log4j.properties") { stream => { Log4jConfiguration.configure(stream) } }Voeg Apache Spark logboekberichten toe op het juiste niveau in uw code, indien nodig. Gebruik bijvoorbeeld de methode om
logDebugeen foutopsporingslogboekbericht te verzenden. Zie Logboekregistratie in de Spark-documentatie voor meer informatie.logTrace("Trace message") logDebug("Debug message") logInfo("Info message") logWarning("Warning message") logError("Error message")
De voorbeeldtoepassing uitvoeren
De bewakingsbibliotheek bevat een voorbeeldtoepassing die laat zien hoe u zowel metrische gegevens van toepassingen als toepassingslogboeken naar uw Azure Monitor. Het voorbeeld uitvoeren:
Bouw het spark-jobs-project in de bewakingsbibliotheek, zoals beschreven in GitHub readme.
Navigeer naar uw Databricks-werkruimte en maak een nieuwe taak, zoals hier wordt beschreven.
Selecteer op de detailpagina van de taak Jar instellen.
Upload JAR-bestand uit
/src/spark-jobs/target/spark-jobs-1.0-SNAPSHOT.jar.Voer in bij Hoofdklasse.
com.microsoft.pnp.samplejob.StreamingQueryListenerSampleJobSelecteer een cluster dat al is geconfigureerd voor het gebruik van de bewakingsbibliotheek. Zie Configure Azure Databricks to send metrics to Azure Monitor.
Wanneer de taak wordt uitgevoerd, kunt u de toepassingslogboeken en metrische gegevens bekijken in uw Log Analytics-werkruimte.
Toepassingslogboeken worden weergegeven onder SparkLoggingEvent_CL:
SparkLoggingEvent_CL | where logger_name_s contains "com.microsoft.pnp"
Metrische gegevens van toepassingen worden weergegeven onder SparkMetric_CL:
SparkMetric_CL | where name_s contains "rowcounter" | limit 50
Belangrijk
Nadat u hebt gecontroleerd of de metrische gegevens worden weergegeven, stopt u de voorbeeldtoepassings job.
Volgende stappen
Implementeer het dashboard voor prestatiebewaking dat bij deze codebibliotheek hoort om prestatieproblemen in uw productie-Azure Databricks op te lossen.