LoginSignup
1
0

Azure Databricks でアプリケーション ログを Log Analytics ワークスペースに送信する

Posted at

はじめに

Azure Databricks ではノートブックに記載したログ情報を Log Analytics ワークスペースに送信することができます。
なお、Spark Monitoring ライブラリを使用する必要があるため、今回は導入までの手順を説明します。

手順

1. ライブラリのビルド

以下のコマンドを実行して、Java と Maven をインストールします。なお、実行環境として Ubuntu 22.04 を使用しています。

$ sudo apt update
$ sudo apt install -y default-jdk maven

Spark Monitoring リポジトリを git clone して、Maven ビルドします。
今回は Databricks Runtime 12.2 をオプションで指定していますが、これはご自身の Databricks Runtime バージョンに合わせる必要があります。

$ git clone https://github.com/mspnp/spark-monitoring.git
$ cd spark-monitoring/
$ git switch l4jv2
$ mvn package -P dbr-12.2-lts

src/scripts/spark-monitoring.sh にて、Log Analytics ワークスペースの ID とキーを記載します。これらの情報は Azure Portal の Log Analytics ワークスペース画面にて確認できます。

export LOG_ANALYTICS_WORKSPACE_ID=<Log Analytics ワークスペース ID>
export LOG_ANALYTICS_WORKSPACE_KEY=<Log Analytics ワークスペース キー>

2. Databricks ワークスペースへのファイル アップロード

src/scripts/spark-monitoring.sh および target/spark-monitoring_1.0.0.jar を Databricks ワークスペースにて dbfs:/databricks/spark-monitoring/ に配置します。
その際、Databricks CLI を使用したアップロードでもよいですし、UI 画面からアップロードし、Notebook で以下のようなコードを実行してファイルを移動してもよいです。

%sh
mv /FileStore/spark-monitoring.sh /dbfs/databricks/spark-monitoring/spark-monitoring.sh

3. クラスターの起動

Init Script で dbfs:/databricks/spark-monitoring/spark-monitoring.sh を指定したうえでクラスターを起動します。
その際、手順 1 のビルド時にオプションで指定した Databricks Runtime バージョンを選択します。

4. コードの実行

Databricks ノートブックにて以下のサンプルコードを実行します。

logger = sc._jvm.org.apache.log4j.LogManager.getRootLogger()
logger.info('logging test')

5. Log Analytics ワークスペースでの確認

Log Analytics ワークスペースにて SparkLoggingEvent_CL クエリを実行し、手順 4 で指定したログが送信されていることを確認します。

image.png

メトリクスに関しては SparkMetric_CL クエリにより確認できます。

おわりに

Azure Databricks ノートブックに記載したログ情報を Log Analytics ワークスペースに送信する方法を説明しました。先述の通り、ログ情報のみならずメトリクス情報も取得できるので、これらを利用してアラートを作成することもできます。

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0