'スターターガイド: Heroku Postgres データベースの監視'
この記事の英語版に更新があります。ご覧の翻訳には含まれていない変更点があるかもしれません。
最終更新日 2022年11月07日(月)
Table of Contents
2022 年 11 月 28 日以降、Heroku dyno、Heroku Postgres、および Heroku Data for Redis® の無料プランは使用できません。 これらのリソースのいずれかを使用しているアプリがある場合は、アプリを引き続き実行してデータを保持できるよう、この日までに有料プランにアップグレードする必要があります。資格のある学生の皆様は、新しい Heroku for GitHub Students プログラムを通じてプラットフォームクレジットを申請できます。詳細は、ブログと FAQ を参照してください。
Heroku Postgres は、Heroku が直接提供するマネージド SQL データベースサービスです。PostgreSQL ドライバーを使用して、Heroku が公式にサポートするすべての言語を含むどの言語の Heroku Postgres データベースにもアクセスできます。
Heroku Postgres は、インスタンスのステータスに関する情報を提供するデータベースとサーバーのメトリクスを提供します。これらのメトリクスを理解して監視することで、アプリケーションの実行および拡張時にデータベースのヘルスが確保されます。監視はまた、アプリケーションのチューニング、デバッグ、トラブルシューティングにも役立ちます。 本番データベースがある場合は、それを監視する必要があります。
このスターターガイドでは、次のことを行う方法について学習します。
- Postgres ログを表示する
- 監視アドオンのオプションを確認する
- どのデータベースメトリクスを追跡するかを識別する
開始する前に
先に進むには、Heroku Postgres データベースがプロビジョニングされている必要があります。heroku addons
コマンドを使用して、アプリがすでに Heroku Postgres をプロビジョニングしているかどうかを判定します。
$ heroku addons
Add-on Plan Price State
──────────────────────────────────────────── ───── ────── ───────
heroku-postgresql (postgresql-concave-52656) mini $5/month created
Heroku Postgres データベースを作成する方法については、「Heroku Postgres のプロビジョニング」を参照してください。
Postgres ログを調べる
ログの表示は、Heroku CLI、ダッシュボード、ログ記録アドオン、またはログドレインで行うことができます。
logplex に対する Heroku Postgres ログ。アプリケーションのログストリームの照合と公開を行います。 heroku logs
コマンドを使って postgres
プロセスのフィルタリングを行うことで Heroku Postgres イベントを隔離できます。
$ heroku logs -p heroku-postgres -a heroku-101-demo-app
2022-04-21T07:46:55.000000+00:00 app[heroku-postgres]: source=HEROKU_POSTGRESQL_COBALT addon=postgresql-demo sample#current_transaction=509 sample#db_size=8426031bytes sample#tables=0 sample#active-connections=11 sample#waiting-connections=0 sample#index-cache-hit-rate=0 sample#table-cache-hit-rate=0 sample#load-avg-1m=0.02 sample#load-avg-5m=0.005 sample#load-avg-15m=0 sample#read-iops=0 sample#write-iops=0.10204 sample#tmp-disk-used=543600640 sample#tmp-disk-available=72435191808 sample#memory-total=3958708kB sample#memory-free=69612kB sample#memory-cached=3405616kB sample#memory-postgres=22080kB sample#wal-percentage-used=0.06428126026622091
...
--tail
オプションを使用して、リアルタイムのログエントリにアクセスします。
$ heroku logs -p heroku-postgres -a heroku-101-demo-app --tail
終了したら、Ctrl+C を押してプロンプトに戻ります。アイドル状態が 1 時間続いた後、リアルタイム tail セッションは自動的に終了します。特定のソース、特定の dyno、またはその両方のログを取得するには、--source
(または -s
) および --dyno
(または -d
) フィルタリング引数を使用します。
$ heroku logs --source my-application --dyno worker
ログを手動でフィルター処理したくない場合は、監視アドオンをインストールできます。
監視アドオンをインストールする
データベースメトリクスを追跡する最も効果的な方法は、プラットフォーム監視アドオンをインストールすることです。
監視アドオンの完全な一覧は、Heroku Elements Marketplace で確認できます。これらのアドオンの多くには、開始するための無料プランが用意されています。ログの取得に関する手順については、アドオンのドキュメントを参照してください。
データベースメトリクスを確認する
Heroku Postgres は、インスタンスのステータスに関する情報を提供するデータベースとサーバーのメトリクスを提供します。これらのメトリクスを理解して監視することで、アプリケーションの実行および拡張時にデータベースのヘルスが確保されます。監視はまた、ボトルネック、バグ、パフォーマンスの問題などの識別にも役立ちます。これらのメトリクスは、監視アドオンのログまたはダッシュボードで探すことができます。
次のメトリクスを追跡できます。
- データベース属性は、特定のデータベースに適用されます。
- サーバーは、サーバーオペレーティングシステムから直接取得されます。
pg_bouncer
メトリクスは、PgBouncer プーラーアタッチメントを備えたすべての Heroku Postgres サーバーに含まれています。 これらのメトリクスは、PgBouncer の特殊内部データベースに接続したときにSHOW POOLS;
コマンドを実行することによって表示可能なもののサブセットです。
使用可能なさまざまなメトリクスについての詳細は、「Heroku Postgres のメトリクスのログ」を参照してください。推奨されるメトリクスの一覧については、「Heroku Postgres の監視」を参照してください。
次のステップ
次のコンテンツを使用して、Heroku Postgres データベースの監視の詳細について学習します。