
エンジニア向けのSaaS「Nursecall」をリリースしました。
対象者はバックエンド、インフラ・SREなど、サーバ上で作業する人向けです。
ジョブやバッチ処理といった定期的に動作するプロセスの監視を簡単にできるようになります。
Nursecallとは何か
Linuxの cron や AWS/GCP/Azureのスケジューラ系の定期実行をするジョブ を、nursecallのラップコマンドを通すことで、ダッシュボード上で「今動いているのか」や「いつ動いていたのか」、「正常終了していたのか」を簡単に確認することができるwebサービスです。
解決したい課題
例えばcronを例にとって、以下のcrontabを考えます。
10分に一度、実行されます。
※何をするジョブなのかは考えません、何でもいいです
これって、本当に動いているのか不安になることはありませんか?
crontabを設定したものの、まず最初は初回実行を確認します。
そして実行タイミングになったらログが流れ「あ、正常に終わったな」と確認作業を終了します。
そしてssh接続を切り作業終了。
後日、何かしらの理由でコケてたりしないかなとか不安になったり、誰かから「本当に動いてる?」と尋ねられた時に自信を持って即答できなかったり、心理的安全性(?)が担保されていません。
すぐさまサーバに接続してログを確認という面倒な作業をすることになります。
- 「今動いてるかな」、「本当に昨日動いてた?」という不安な気持ち
- ジョブが動いているかを確認する面倒な作業
という、定期実行する系のジョブを扱うときにつきまとうネガティブ要素を解決します。
どう解決するの?
解決策としては、失敗した場合をハンドリングしてslackに通知したり、sentryなどの外部サービスに通知する実装を入れてすぐ気づけるようにしてると思います。
もっというと死活監視サービスやログ収集などシステム全体を横断で管理したり。
Nursecallは、もっと簡単に手軽に解決することを目指して開発しました。
ジョブが失敗したらslackに通知することもできます。
では具体的な手順を見ていきましょう。
事前準備
アカウント登録
まずはnursecallにアカウント登録をします。

メールアドレスを入力し「認証コードを送る」ボタンをおすとメールが送信されます。
文面に書かれた認証コードを入力するとアカウント登録は完了です。
CALL_TOKENの発行
nursecallを使うにはCALL_TOKENという、ランダムな文字列のトークンを発行します。

これはノードやジョブを識別するために使用されます。
何を軸としてトークンを使い分けるかは自由に決めることができます。
nursecall CLIのインストール
go コマンドが使える環境であればすぐに導入可能です。
※詳しい使い方はREADMEをご覧ください
以上で準備は完了です。
導入
環境変数にトークンを設定
実行
これだけです。
nursecallコマンドの引数として、実行したいコマンドを指定するだけです。
nursecallの子プロセスとして実行されます。
2番目以降の引数は、実行する側のコマンドとして渡されます。
アプリケーションのコードに手を加える必要がありません。
pwdコマンドは、UNIX系OSであれば標準で使えるコマンドで、今現在どのディレクトリにいるかを確認できます。
これを定期実行する意味はありませんが、nursecallの例示として使いました。
一度実行されるとダッシュボード上から確認でき、該当する行が点滅し出します。
コマンドが終了すると点滅が終わりますが、異常終了したり、インターネットから切り離された場合は点滅したままとなります。
つまり、異常事態が発生しているということです。
コマンドの終了ステータスも確認できるため、異常終了していたということも確認できます。

※行数の上限は300行となっています
まとめ
以上がnursecallの紹介でした。
ちょっとでも気になった方はぜひ使ってみてください!
企業で働く方もですが、個人開発やシステム開発の勉強中の方にも使っていただけるサービスかと考えています。
機能追加の要望があれば検討しますし、フィードバックを頂けたら泣いて喜びます。