use.macOSメニュバーの活用こんにちは。入社してからの主な仕事は、内部サーバのモニタリングシステムをPrometheusやGrafanaを利用してより使い勝手の良いものに改良することです。最終的には、個々の開発者が自分の通知を簡単に設定できるようにするのが狙いです。モニタリングシステムの管理担当者という仕事柄、異なる環境に構築された沢山のサーバや様々なチャートをこまめにチェックする作業が欠かせませんが、あらゆることに目を配るのはますます大変になってきています。そこでモニタリング作業の手間を省くことができるシンプルなツールを調べてみました。中でも私が重宝しているのは、BitBarと呼ばれるものです。このツールを利用して簡単なステータスプラグインを作っておくとだいたい何でもモニタリングできますので、私が作成したプラグインについてご紹介します。Pythonへのプラグイン実装BitBarの要は、スクリプトから出力された結果を取得してカスタムメニューに表示することです。上記キャプチャ画面のように、メニューバーには現在の通知状態を示すスナップショットが表示され、そこをクリックすると現状の詳細情報が表示される仕組みにしたいと考えました。様々な環境をモニタリングしないといけないため、スクリプトが各環境をもれなくチェックできること、設定情報はスクリプトの外部に保存できること、といった点も考慮します。href=http://alpha.alertmanager.example/以下は、私がプラグインに主に採用している基本ヘッダです。3でテストする際にしばしばUnicode問題が起きたため、下記のような方法でUTF-8でstdoutへ出力するようにしました。BitBarプラグインは単なるスクリプトですので、ほとんどの開発作業はコンソールで行われます。コンソールで実行するときは、追加情報はなるべくstderrに出力されるようにしています。logging.getLogger(__name__)複数の環境をモニタリングしているので、設定情報を別の場所に保存することで多様な環境のモニタリングの設定を容易にする必要があります。ConfigParserを利用すれば、自分の設定情報が簡単に保存できます。print(u'\n'.join(sorted(alerts[env][:MAX_SHOW])))おわりにBitBarを利用するとどのようなスクリプトでもメニューバープラグインに変換できるので、様々なモニタリングを行うスクリプトが簡単に作成できます。GitHubのレビュー待ちプルリクエストの有無をモニタリングするスクリプトを作ることも可能です。今回ご紹介したBitBarプラグインを直接トライしてみたい方は、ぜひ下記Githubリポジトリをご確認ください。Developers日本語English。