Herokuで突然「Application error」の画面が出た時に確認したい事
herokuでwebサービスを運営しております。
サービスの開発はすでに終了していて、特にデプロイをしていたわけでもありませんでした。
しかしある日突然、全ページ「Application error」と出るようになってしまいました。
バグなら直すの大変だなぁと思いつついろいろ調べてみました。
原因の調査
まずはアプリケーションエラーの画面にあるコマンドをherokuにログインした後叩いてみました。
heroku login
heroku logs --tail
実行結果は以下の通りです。
2020-12-26T14:28:47.118298+00:00 heroku[router]: at=info code=H82 desc="Free app running time quota exhausted" method=GET path="/robots.txt" host=emotional-search.herokuapp.com request_id=cc935d74-af98-4d27-baf0-1aa2c3d70f31 fwd="216.244.66.234" dyno= connect= service= status=503 bytes= protocol=http
2020-12-26T14:45:12.637586+00:00 heroku[router]: at=info code=H82 desc="Free app running time quota exhausted" method=GET path="/emo/genre/" host=emotional-search.herokuapp.com request_id=7ccba365-b871-49f4-8052-686c3ecc837f fwd="14.133.129.177" dyno= connect= service= status=503 bytes= protocol=https
2020-12-26T14:45:13.808717+00:00 heroku[router]: at=info code=H82 desc="Free app running time quota exhausted" method=GET path="/favicon.ico" host=emotional-search.herokuapp.com request_id=a9935cb3-088d-4a16-be45-18e79ab21661 fwd="14.133.129.177" dyno= connect= service= status=503 bytes= protocol=https
2020-12-26T14:54:28.796536+00:00 heroku[router]: at=info code=H82 desc="Free app running time quota exhausted" method=GET path="/robots.txt" host=emotional-search.herokuapp.com request_id=039302d1-8eb4-4cad-a1a5-67c21ce59b44 fwd="66.249.69.54" dyno= connect= service= status=503 bytes= protocol=http
・・・
以下略
いろいろと出力されましたが、最も大事だったのは以下の一文です。
Free app running time quota exhausted
Application errorの結論
要するに「無料アプリの実行時間の割り当てが使い果たされました」という事です。
結果として、アプリケーション側のバグではないという事で一安心しました。
正直そんなにdyno使ったか・・・?そんなに使ったか・・・?という感じですが、herokuの利用限度を確認してみます。
herokuのインスタンス時間(dyno)の残り時間確認をする
herokuの利用可能時間を確認する方法は2通りあります。
- heroku psを実行する
- herokuのダッシュボードから確認する
コマンドラインから実行する場合はheroku psを使います。
ウェブブラウザから確認する場合はダッシュボードを利用しましょう。
heroku ps
› Warning: heroku update available from 7.47.3 to 7.47.6.
Free dyno hours quota remaining this month: -54h -55m (-6%)
Free dyno usage for this app: 558h 24m (55%)
For more information on dyno sleeping and how to upgrade, see:
https://devcenter.heroku.com/articles/dyno-sleeping
「Free dyno hours quota remaining this month」、つまり今月のdynoの残り時間が表示されますが、私の場合、その数値がマイナスになっていました。
つまり利用可能限度を超えた起動時間を今月使ってしまっていたという事ですね。
次にダッシュボードから確認する方法です。
ブラウザからherokuにログインした後、以下の手順で操作します。
「Account setting」⇨「Billing」タブ⇨「Free Dyno Usage」
freeで使えるdynoは1000dynoです。
複数のアプリケーションを動かしている場合は折半になるのでご注意ください。
以上です。