この記事は SAP Advent Calendar 2023 の12月7日分の記事として執筆しています。
サービスの稼働後、Application Logging Serviceを利用してCAPアプリケーションのログを確認したり、CPU負荷やメモリの推移を確認するようなことがよくあると思います。
そして、顧客からは稼働状況を定期的に報告せよ。と言われたりもします。
(面倒くさい)
Application Logging Serviceは7日間しか保存されないですし、毎日確認するのは大変です。
毎日確認するのは面倒くさいし忘れてしまうので、スクレイピングを使ってApplication Logging Serviceのメモリ使用率推移を自動的にキャプチャして保存するツールを作りました。
このツールを利用すればもう確認忘れはありません。
毎日定時にCAPアプリケーションのメモリ推移のキャプチャを取得し保存することができます。
作成したツールはGitHubにアップしておきました。https://github.com/unosistema/SAPBTPLoggingCapture
puppeteerはNode.jsから画面表示なしでChromeを動かすことができるライブラリです。
裏でChromeを動かしながらスクレイピングしたり、画面入力したり、ボタンを押したり、スクリーンショットを撮ることができます。
気になる方は「ヘッドレスブラウザ」で調べて下さい。
Application Logging ServiceでスナップショットURLを作成していきます。
SAP BTPのApplication Logging Serviceにアクセスします。
今回はメモリ推移のグラフを見たいので、表示するグラフを切り替えます。
CPUとメモリ推移のグラフが表示されました。
過去24時間の推移が確認できるように、条件を変更します。
下記のようなスナップショットURLが生成されます。
https://logs.cf.eu10-004.hana.ondemand.com/goto/(32桁ハッシュ値)
このスナップショットURLにダイレクトにアクセスするだけで、いつでも過去24時間の推移が確認できます。
また、今回はフィルタを設定していませんが、snapshot URLではフィルタの設定値も覚えていてくれます。
スナップショットURLはとても便利です。
しかし、毎日ブラウザを開くだけでも面倒くさい/忘れてしまう人のためにツールを作りました。
https://github.com/unosistema/SAPBTPLoggingCapture
上記のGitHubリポジトリからプログラムをクローンし、一部のプログラムを書き換えて下さい。
app.js 内の3つの変数を書き換えて下さい
// Change here!!
const btp_application_logging_snapshot_url = "xxxxxxxxxxxxxxxxxxxxxxx"; // ex. https://logs.cf.eu10-004.hana.ondemand.com/goto/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
const sap_username = "[email protected]"; // Your SAP UniversalID(e-mail)
const sap_password = "xxxxxxxxxxxx"; // Your SAP UniversalID Password
コマンドプロンプトやターミナルを開き、プログラムのディレクトリに移動し下記コマンドでライブラリをインストールします。
npm install
コマンドプロンプトやターミナルから下記コマンドでプログラムを実行
node app.js
1分ほど待つとスクリーンショットが生成されます。
PNGファイルを開くと、過去24時間のグラフのスクリーンショットが表示されています。
このプログラムを定時に実行するようにスケジュールを組んでおくだけで、運用保守がきっと楽になります。
報告資料には定時取得したスクリーンショットを貼るだけです。
Application Logging Service以外にも、HANA Cloudのモニタリング画面を定期的にキャプチャするなど、色々と使い道がありそうです。