Skip to content
Takashi Hayasaka edited this page May 18, 2013 · 5 revisions

Trackmanは、Ruby on Railsのプロジェクト内に、エラーとメンテナンスの画面を提供し、Herokuへのデプロイ時にこれらの画面をホストするアドオンです。

エラーとメンテナンスの画面を手動でアップロードしたり、別で管理したりすることに無駄な時間を使わないで下さい。:

  • これらの画面は、プロジェクトの一部です。そして、そのように扱われるべきものなのです。
  • プロジェクト内で、バージョン管理と修正を行って下さい。
  • アプリケーションをデプロイすることで、これらの画面がS3へ同期されます。
  • アプリケーション内で既に作成済みのアセット(images/js/css)を参照するようにして下さい。

アドオンの設定

TrackmanはCLIを経由してHeroku上のアプリケーションへアタッチされます。:

利用可能なプランの確認はこちらで行えます。
:::term
$ heroku addons:add trackman
-----> Adding trackman to sharp-mountain-4005... done, v18 (free)

一度、Trackmanを追加さえしてしまえば、アプリケーションの環境設定でTRACKMAN_URLTRACKMAN_ERROR_PAGE_URLTRACKMAN_MAINTENANCE_PAGE_URLと言った各種変数の設定が可能となります。またメンテナンスとエラーページに関連した全てのアセットを提供、修正する際に必要となる設定情報が含まれることとなります。heroku configコマンドを使用することで、これらの設定状況を確認することが可能です。

:::term
$ heroku config | grep TRACKMAN
TRACKMAN_URL    => https://user:pass@trackman-server/resourceid
TRACKMAN_ERROR_PAGE_URL    => http://s3.amazon.com/trackman-bucket/app-id/path/to/your/page.html
TRACKMAN_MAINTENANCE_PAGE_URL    => http://s3.amazon.com/trackman-bucket/app-id/path/to/your/page.

Ruby on Railsでの使用方法

Ruby on Railsのアプリケーションでは、Trackmanのクライアントライブラリを使用することを明示するために、Gemfileに下記のエントリを追加する必要があります。

:::ruby
gem 'trackman'

アプリケーションの依存関係をbundlerで更新して下さい。

:::term
$ bundle install

そして、Herokuのエラーとメンテナンスの画面の設定変数をrake trackman:setupコマンドでセットアップして下さい。

Ruby on Rails 2.x のアプリケーションでは、事前に`./script/generate trackman`を実行することで、必要なファイルを生成する必要があります。
:::term
$ bundle exec rake trackman:setup
overriding the required heroku configs MAINTENANCE_PAGE_URL and ERROR_PAGE_URL
done! Thank you for using Trackman!
もし、既に`MAINTENANCE_PAGE_URL`や`ERROR_PAGE_URL`内に、カスタムのメンテナンスやエラーページを設定済みでしたら、`_bkp`と接尾辞の付いた同名の設定変数にコピーが行われます。例えば、`ERROR_PAGE_URL`は、`ERROR_PAGE_URL_bkp`へバックアップされます。

メンテナンスページのScaffold

:::term
$ rails generate trackman:controller [name]

このコマンドを実行することで、特別なコントローラーが生成されます。アプリケーションの開発時に、必要となれば、メンテナンスページを表示させることが出来ます。 Rails 3は、500と404のページを直にハンドル可能なため、これらをハンドルするためのルートをジェネレーターが追加します。 Rails 2では、代わりに4つの異なる静的なページが生成されます。

コントローラは、レスポンスのアウトプットをフィルターするクラスメソッドを管理しています。 コントローラ自身を参照すれば、これらの機能の使用例を見つけることができるでしょう。

変更点のデプロイ

メンテナンスとエラーページをデプロイして下さい。:

:::term
$ git add public/503.html
$ git add public/503-error.html
$ git commit -a -m "Adding maintenance and error pages"
$ heroku maintenance:on
$ git push heroku master
...
-----> Heroku receiving push
-----> Launching... done, v3
       http://warm-frost-1289.herokuapp.com deployed to Heroku

To git@heroku.com:warm-frost-1289.git
 * [new branch]      master -> master
以下のファイル管理規約が適用されなければなりません。:メンテナンスのページは、`public/503.html`に存在する必要があります。エラーページは、`public/503-error.html`に存在する必要があります。

アセットの同期

何かしらの問題が起きたとしても、Trackmanは何も伝達せず、アプリケーションを壊すことはありません。

Trackmanは、アプリケーションの起動時にアセットを同期します。

変更点の確認

もし、最新の変更がブラウザ上に表示されない場合、お使いのブラウザが新規セッションを開始する際に、キャッシュを使っていないかを確認して下さい。

新規のメンテナンスページを確認するには、ブラウザから問い合わせすることで可能となります。

作業が完了しましたら、メンテナンス(maintenance)をoffへ戻します。

:::term
$ heroku maintenance:off

もし、明示的にエラーページとメンテナンスページを同期させたいのであれば、手動でsyncタスクを呼び出すことで可能となります。また、追加された詳細情報の確認も可能となります。

:::term
$ heroku run rake trackman:sync

テスト

以下のコマンドを実行し、全てが機能していることを確認して下さい。:

:::term
$ heroku maintenance:on

カスタムのメンテナンスページを確認するため、あなたのWebサイトをチェックして下さい。確認後、メンテナンスモードをoffにすることを忘れないで下さい。

:::term
$ heroku maintenance:off

各種プランのマイグレート

アプリケーションの管理者は、マイグレーションを行っている期間中のアプリケーションの機能を保証するために、マイグレーションのタイミングを慎重に検討するべきです。

heroku addons:upgradeコマンドを使い、新規プランへマイグレートして下さい。

:::term
$ heroku addons:upgrade trackman:newplan
-----> Upgrading trackman:newplan to sharp-mountain-4005... done, v18 ($49/mo)
       Your plan has been updated to: trackman:newplan

アドオンのリムーブ

Trackmanは、CLI経由でリムーブすることが可能です。

この行為は、関連する全てのデータを破棄し、元に戻すことが出来ませんので注意して下さい!
:::term
$ heroku addons:remove trackman
-----> Removing trackman from sharp-mountain-4005... done, v20 (free)

アドオンをリムーブ後、MAINTENANCE_PAGE_URLERROR_PAGE_URLの設定変数を手動でリストアする必要があります。

サポート

Trackmanへのサポートとランタイムの問題は全て、Heroku Support channelsを経由して提示して下さい。サポート対象外の問題やプロダクトへのフィードバックに関しても、歓迎しています。こちらで受け付けています。

その他のリーソス

その他のリソースが以下で利用可能です。:

Clone this wiki locally