id:syou6162です。研究開発における実験をするときにMackerelをこういう使い方をすると便利かも?というのがあったので、紹介します。研究開発の実験あるある研究では計算機をがしがし使って実験を行なうのですが、それらの計算機は当然一人で使うわけではなく、みんなで使います。他人がガンガン実験しているホストに途中からジョブを投下するのは迷惑ですし、実験によってはメモリが大きいマシンでないと実行できないなど、実験の前にあれこれ確認すべきことがあります。averageが1以下などの条件に合うホストを探して、GXPでホストを指定し、パラメータ変えて実験をぶん回すというのをよくやっていました。実験をやる度にGangliaで計算機の混み具合を確認して...というのは率直に言って面倒でした。条件を指定したら使えるホスト名のリストを返して欲しいです。これを行なうシェルスクリプトを書いてはいましたが、サーバーの購入や撤退などによりホスト名のリストを定期的に更新する必要があるのもよくない点でした。Mackerelを使って楽をするMackerelはサービスやロールといった概念でホストをまとめて監視することができます。自分が所属しているグループでホストをグルーピングしたり、深層学習用のGPUのホストをまとめてみたり、といった形です。ホストにメタデータを登録、取得することができるので、それを使うのもいいかもしれません。averageが閾値以下のホストで条件付けして一覧を取得する、といったことがMackerelだと簡単にできます。サーバーのセットアップのついでにmackerel-agentも仕込んでおくようにする(ワンライナーでインストールできます)と、ロールに所属するホストの一覧などはMackerelのapiが返してくれるので、手元に一覧を持っておく必要はなくなります。これにより、実験に使えるホストをさくっと探すといったことができるようになります。averageが1以下のホスト名のみを取得するというのをやってみましょう。Mackerelではコマンドラインツールや各種言語のライブラリ(下のはほんの一部)がOSSで用意されているので、それを使うと簡単です。version)今回は私が最近Goに入門中なので、Goのライブラリを使ってみます。ちなみにGoのライブラリは最近のリリースで出たグラフアノテーションに対応しています:)さて、さっそくコードです。find_hosts_for_experiments.goといった形で動かすと条件に合うホスト名が出てくるので、あとはこれをgxpなどに投げればよいだけです。}ロールに所属するホストの一覧を取得して、そのホストのloadavg5も取得、それらが1以下なら出力するだけという簡単なものです。Rubyでも似たようなことが簡単にできると思います。まとめMackerelはサーバーの監視や状態の通知を簡単に行なうことができるので、それ自体はもちろん便利ですが、ホストの情報を使うことで研究開発を少し便利にすることができるという例を紹介しました。(1)スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。