プロジェクトライブラリ
スクリプト・自動化Datadog · Software Engineer Intern · 2023

ダッシュボードの更新停止をon-call担当に知らせるSlack bot

投稿者:J. Alvarez · 元Datadog SWEインターン

共有者はまさにこのプロジェクトをDatadogの面接で話し、その後リターンオファー(内定)を獲得しました。

この面接を練習する

実際の深掘り4問 · うち難問1 · 約12分

各質問に自分で答えると、本人の実際の答えが見られます。

本人はこう語った

私のチームでは、モニタリング用ダッシュボードの更新が止まっていることに気づくのがいつも遅れていました。そこで、真っ先に異常に気づいて担当者に知らせる小さなbotを作りました。

全文を読む

インターン中、私のチームは社内向けダッシュボードをいくつも運用していたのですが、その裏側のデータパイプラインが何度か静かに止まってしまうことがありました。マネージャーが「この数字、なんで固まってるの?」と聞いてくるまで誰も気づかない、という状態です。メンターが半分冗談で「誰かが毎朝チェックすればいいんだよ」と言ったので、私は「代わりに自動化してもいいですか」と聞きました。作ったのはPythonスクリプトで、各ダッシュボードのAPIを叩いて最終更新のタイムスタンプをしきい値と比較し、一定時間を超えて更新が止まっていたらチームのSlackチャンネルに投稿して、その週のon-call担当を@メンションする仕組みです。当番のローテーションはPagerDutyのスケジュールから取得しました。難しかったのは正常系ではなく、「うるさくしないこと」でした。初期の頃、リフレッシュが遅れただけで1分ほど更新停止に見えてしまい、二重に通知を飛ばしてしまったのです。そこで猶予ウィンドウと「4時間以内は再通知しない」というルールを追加しました。実行は共有マシン上のcronジョブです。インターン最後の1か月で実際の停止を2件検知でき、それまで数日かかっていた対応が当日中に修正できました。私が去った後もメンターが確実にメンテできるよう、あえて極力シンプルに保ちました。

実際に聞かれた質問

bot自体が落ちたり、マシンがダウンしたりしたらどうなりましたか?

難しい

ダッシュボードが本当に更新停止しているのか、単にリフレッシュが遅いだけなのか、どう見分けましたか?

普通

そもそもなぜbotなのですか?手動でチェックすればよかったのでは?

易しい

他に誰が使っていましたか?あなたが去った後も動いていましたか?

普通