Dify Cloud の非公式ステータスページを作った

はじめに

Dify の GitHub や Forum や Discord で、『クラウド版の Dify、落ちてない?』系の質問にたまに出会います。

で、そういうのを見て、公式のステータスページはいつ見てもずっと緑だし、実際の稼働状況わかんないよね、そうだよね…… と思ったことが一度や二度ではなくなってきたことに加えて、ちょうど Claude Opus 4.6 が出て何かさせてみたい気持ちが出てきたので、Claude Code に隅から隅まで任せて 非公式のステータスページ を作りました。ソースコードは GitHub で公開 しています。

2 月下旬から動かし始めて、まるまる一か月安定して動いてくれたので、改めて簡単に紹介です。

……CDN を通していないので、アクセスが増えると GitHub Pages の転送量制限的なアレで落ちるかもですが……。

仕様

クラウド版の Dify を対象に、15 分ごと に各種チェックを行っています。

チェック項目チェックの内容
Web UI cloud.dify.ai に HTTP で GET して、ステータスコード 200 が返ることを確認
API最小構成のアプリを API で実行して、アプリが動作することを確認
Sandboxテンプレートノードを含むアプリを API で実行して、テンプレートが動作することを確認
PluginLLM ノードを含むアプリを API で実行して、モデルプラグインが動作することを確認
Knowledge Retrievalナレッジ API を実行して、ナレッジに対するベクトル検索で結果が返ることを確認
Knowledge Indexingナレッジ API を実行して、ナレッジにドキュメントをアップロードし、インデキシングのキューが処理されることを確認(Sandbox と Professional の両プランで)
Webhook TriggerWebhook トリガをもつワークフローを実行して、処理されることを確認(Sandbox と Professional の両プランで)

チェックに使っているアプリは、DSL ファイルとして リポジトリに公開 しています。興味がある方は持って行ってください。

なお、Knowledge IndexingWebhook Trigger で Sandbox プランと Professional プランの両方をチェックしているのは、Dify のクラウド版がプランによってこれらを含む一部の処理の優先度を変えているためです。Professional プランのアカウントでは待ち時間ナシなのに Sandbox プランでは長時間待たされる、な状況が起こりうるため、念のため両方チェックしています。ただし、手持ちの Professional プランの契約期間が切れたあとのことは考えていません。

ほとんどのチェックが API の動作に依存しているので、例えば API サーバそれ自体が落ちているとチェックが全滅する可能性がありますが、その辺はもう仕方ないものとして割り切っています。

使い方

ステータスページを見る

トップページ には、現在のステータスと、過去 90 日分のステータスのグリッドが表示されています。グリッドは 1 日で 1 マスで、その日のチェックが全部緑(Up)なら緑、赤(Down)が全体の 50 % 以上なら赤、それ以外は黄色(Degraded)で表示されます。

30 日分、14 日分、7 日分、3 日分、24 時間分の表示に切り替えれば、1 時間ごとのグリッドも見られます。

各チェック項目をクリックすると詳細ページに飛べて、日ごとの結果やレスポンスタイムのグラフを確認できます。

通知を受け取る

15 分ごとのチェックで状態に変化(2 回連続の Down またはその後の復旧)があると、GitHub の Issue #2 にコメントが自動で投稿されます。この Issue で Watch を有効にしておけば、GitHub から通知を受け取れます。

実装

あまり複雑なことはしておらず、ポイントといえば次の 2 点くらいです。

  • cron-job.org が、15 分ごとに GitHub Actions をキックします
  • GitHub Actions のなかで、チェックの実行と Issue へのコメントの投稿、静的サイトのビルドとデプロイ(GitHub Pages)を行います

もともとは GitHub Actions のスケジュール機能で全部やるつもりでしたが、試してみたらぜんぜん期待した頻度で動いてくれなかったので、外部からつつく形にしました。依存サービスを増やしたくなかったのですが仕方なしです。

15 分、という間隔の根拠は、ステータスページのためのテスト自体が Dify 側への過剰な負荷にならないこと、Sandbox プランの API 制限(月 5,000 回)の中でやりくりできること、あたりを考慮した結果です(Dify の ToS を確認したうえで、複数のアカウントを併用しています)。

Dify 側でのアプリづくり以外は、CLAUDE.md のメンテナンス自体も含めて全部 Claude Code におまかせしました。CLAUDE.md の作成・修正を人間ではなく AI に任せるのは悪手ともいわれますが、そもそもプロジェクトの規模が小さくてアーキテクチャもシンプルなので、精緻なチューニングが必要になるほどのものではなく、人間の手間を省く方向を優先しています。

おわりに

Dify の非公式ステータスページを紹介しました。作る過程も含めておもしろかったです。

あと、感覚としてずっと持っていた、『じつはちょこちょこ落ちている』が明確に可視化されたのは収穫でした。『ちょこちょこ』というには日本時間の平日日中帯に黄色と赤が多い気もしますが、まあ、クラウド版はそういうものだとわかって使うべきものなので……。

あくまで非公式の個人プロジェクトでしかないので、精度や継続性の保証はまったくありませんが、『Dify のクラウド版、落ちてない?』 なときには、公式のステータスページ よりも今回のコレを見てもらったほうが、リアルな状況が可視化されているはず…… です。

そのうち Cloudflare を手前に置きたいですね。

@kurokobo

くろいです。ギターアンサンブルやら音響やらがフィールドの IT やさんなアルトギター弾き。たまこう 48 期ぎたさん、SFC '07 おんぞう、新日本ギターアンサンブル、Rubinetto。今は野良気味。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です