Azure Database for PostgreSQL - フレキシブル サーバーでメトリックを監視する

適用対象: Azure Database for PostgreSQL - フレキシブル サーバー

サーバーに関する監視データは、ワークロードをトラブルシューティングしたり最適化したりするのに役立ちます。 Azure Database for PostgreSQL フレキシブル サーバーには、サーバーのパフォーマンスに関する分析情報を提供する各種の監視オプションが用意されています。

メトリック

Azure Database for PostgreSQL フレキシブル サーバーには、Azure Database for PostgreSQL フレキシブル サーバー インスタンスをサポートするリソースの動作に関する分析情報を提供する各種のメトリックが用意されています。 各メトリックは 1 分間隔で出力され、最大 93 日分の履歴が保持されます。 メトリックにアラートを構成できます。 その他のオプションには、自動化されたアクションの設定、高度な分析の実行、履歴のアーカイブなどがあります。 詳細については、Azure のメトリックの概要に関する記事を参照してください。

Note

メトリックは 93 日間保存されますが、([メトリック] タイルで) 1 つのグラフでクエリを実行できるのは最大 30 日間分のデータのみです。 空のグラフが表示される場合、またはグラフにメトリック データの一部のみが表示される場合は、日時指定の開始日と終了日の間隔が、30 日を超えていないことを確認します。 30 日間の間隔を選択したら、グラフをパンして完全なリテンション期間を表示できます。

既定のメトリック

Azure Database for PostgreSQL フレキシブル サーバー インスタンスでは、次のメトリックを使用できます。

[表示名] メトリック ID ユニット 説明 既定で有効
アクティブな接続 active_connections カウント pg_stat_activity ビューに表示されている、すべての接続状態 (アクティブ、アイドルなど) を含む、データベース サーバーへの接続の合計数。 この図は、特定の状態が区別されていない、すべての状態での接続の合計を表しています。 アクティブな接続など、特定の状態に関する詳細な分析については、"状態別のセッション" メトリックを参照してください。 はい
使用済みバックアップ ストレージ backup_storage_used バイト 使用されたバックアップ ストレージの量。 このメトリックは、サーバーに設定されているバックアップ保持期間に基づいて保持されている完全バックアップ、差分バックアップ、ログ バックアップのすべてによって使われているストレージの合計を表します。 バックアップの頻度はサービスによって管理されます。 geo 冗長ストレージの場合、バックアップ ストレージの使用量は、ローカル冗長ストレージの使用量の 2 倍になります。 はい
失敗した接続 connections_failed Count 失敗した接続の数。 はい
成功した接続 connections_succeeded Count 成功した接続の数。 はい
使用済みの CPU クレジット cpu_credits_consumed Count フレキシブル サーバーによって使用されているクレジットの数。 バースト可能レベルに適用されます。 はい
未使用の CPU クレジット cpu_credits_remaining Count バーストに使用できるクレジットの数。 バースト可能レベルに適用されます。 はい
CPU 使用率 cpu_percent Percent 使用中の CPU の割合。 はい
データベース サイズ (プレビュー) database_size_bytes バイト データベース サイズ (バイト単位)。 はい
ディスクのキューの深さ disk_queue_depth Count データ ディスクに対する未処理の I/O 操作の数。 はい
IOPS iops Count ディスクに対する 1 秒あたりの I/O 操作の数。 はい
Maximum Used Transaction IDs (使用されるトランザクション ID の最大数) maximum_used_transactionIDs Count 使用中のトランザクション ID の最大数。 はい
メモリの割合 memory_percent Percent 使用中のメモリの割合。 はい
Network Out network_bytes_egress バイト 送信ネットワーク トラフィックの量。 はい
Network In network_bytes_ingress バイト 受信ネットワーク トラフィックの量。 はい
"読み取り IOPS" read_iops Count データ ディスク I/O の 1 秒あたりの読み取り操作の数。 はい
読み取りスループット read_throughput バイト ディスクから読み取られる 1 秒あたりのバイト数。 はい
空き記憶域 storage_free バイト 使用可能なストレージ領域の量。 はい
ストレージの割合 storage_percent パーセント 使用されているストレージ領域の割合。 サービスで使用されるストレージには、データベース ファイル、トランザクション ログ、サーバー ログが含まれることがあります。 はい
使用されているストレージ storage_used バイト 使用されているストレージ領域の量。 サービスで使用されるストレージには、データベース ファイル、トランザクション ログ、サーバー ログが含まれることがあります。 はい
使用されているトランザクション ログ ストレージ txlogs_storage_used バイト トランザクション ログによって使用されているストレージ領域の量。 はい
書き込みスループット write_throughput バイト ディスクに書き込まれた 1 秒あたりのバイト数。 はい
"書き込み IOPS" write_iops Count データ ディスク I/O の 1 秒あたりの書き込み操作の数。 はい

拡張メトリック

Azure Database for PostgreSQL フレキシブル サーバーの拡張メトリックを使用すると、データベースをより詳細に監視およびアラートを実行できます。 メトリックにアラートを構成できます。 強化されたメトリックには、データベース名や状態などのディメンションを使用してメトリック データを分割およびフィルター処理するために使用できる Dimension パラメーターが含まれています。

拡張メトリックの有効化

  • これらの新しいメトリックのほとんどは、既定で "無効" になっています。 ただし、既定で有効になっているいくつかの例外があります。 次の表の右端の列は、各メトリックが既定で有効になっているかどうかを示しています。
  • 既定で有効になっていないメトリックを有効にするには、サーバー パラメータ metrics.collector_database_activityON に設定します。 このパラメーターは動的であり、インスタンスの再起動は必要ありません。
拡張メトリックの一覧

次のカテゴリの拡張メトリックから選択できます。

  • アクティビティ
  • データベース
  • 論理レプリケーション
  • レプリケーション
  • [鮮やかさ]
  • トラフィック
アクティビティ
表示名 メトリック ID ユニット 説明 Dimension 既定で有効
状態別のセッション sessions_by_state カウント pg_stat_activity ビューに表示されている、状態別のセッション。 クライアント バックエンドは、アクティブやアイドルなどのさまざまな状態に分類されます。 状態 いいえ
WaitEventType 別のセッション sessions_by_wait_event_type カウント クライアント バックエンドが待機しているイベントの種類別のセッション。 待機イベントの種類 いいえ
最も古いバックエンド oldest_backend_time_sec 状態に関係ない、最も古いバックエンドの経過時間 (秒単位)。 なし いいえ
最も古いクエリ longest_query_time_sec 現在実行されている最長のクエリの経過時間 (秒)。 なし いいえ
最も古いトランザクション longest_transaction_time_sec 最長トランザクション (アイドル トランザクションを含む) の経過時間 (秒)。 なし いいえ
最も古い xmin oldest_backend_xmin カウント 最も古い xmin の実際の値。 xmin が増加しない場合は、実行時間の長いトランザクションがいくつか存在し、それが停止タプルを保持しているため、削除できない可能性があることを示します。 なし いいえ
最も古い xmin 経過時間 oldest_backend_xmin_age カウント 最も古い xmin の単位での経過時間。 最も古い xmin 以降に渡されたトランザクション数を示しています。 なし いいえ
データベース
表示名 メトリック ID ユニット 説明 Dimension 既定で有効
バックエンド numbackends カウント このデータベースに接続されているバックエンドの数。 DatabaseName いいえ
デッドロック deadlocks カウント このデータベースで検出されたデッドロック数。 DatabaseName いいえ
ディスク ブロック ヒット blks_hit カウント ディスク ブロックがバッファー キャッシュに既に存在することがわかり、読み取りが不要になった回数。 DatabaseName いいえ
読み取られたディスク ブロック blks_read カウント このデータベースで読み取られたディスク ブロック数。 DatabaseName いいえ
一時ファイル temp_files カウント このデータベースのクエリによって作成された一時ファイル数。 DatabaseName いいえ
一時ファイル サイズ temp_bytes バイト このデータベース内でクエリによって一時ファイルに書き込まれたデータの合計量。 DatabaseName いいえ
トランザクションの合計数 xact_total カウント このデータベースで実行されたトランザクションの合計数。 DatabaseName いいえ
コミットされたトランザクション xact_commit カウント このデータベース内のコミットされたトランザクション数。 DatabaseName いいえ
1 秒あたりのトランザクション数 (プレビュー) tps カウント 1 秒以内に実行されたトランザクションの数。 DatabaseName いいえ
ロールバックされたトランザクション xact_rollback カウント このデータベース内のロールバックされたトランザクション数。 DatabaseName いいえ
削除されたタプル tup_deleted カウント このデータベース内のクエリによって削除された行数。 DatabaseName いいえ
フェッチされたタプル tup_fetched カウント このデータベース内のクエリによってフェッチされた行数。 DatabaseName いいえ
挿入されたタプル tup_inserted カウント このデータベース内のクエリによって挿入された行数。 DatabaseName いいえ
返されたタプル tup_returned カウント このデータベース内のクエリから返された行数。 DatabaseName いいえ
更新されたタプル tup_updated カウント このデータベース内のクエリによって更新された行数。 DatabaseName いいえ
論理レプリケーション
表示名 メトリック ID ユニット 説明 Dimension 既定で有効
論理レプリケーションの最大ラグ logical_replication_delay_in_bytes バイト すべての論理レプリケーション スロットの最大ラグ。 なし はい
レプリケーション
表示名 メトリック ID ユニット 説明 Dimension 既定で有効
物理レプリケーションの最大ラグ physical_replication_delay_in_bytes バイト すべての非同期物理レプリケーション スロットの最大ラグ。 なし はい
読み取りレプリカのラグ physical_replication_delay_in_seconds 読み取りレプリカのラグ (秒)。 なし はい
[鮮やかさ]
表示名 メトリック ID ユニット 説明 Dimension 既定で有効
Disk Bandwidth Consumed Percentage (ディスク帯域幅の消費率) disk_bandwidth_consumed_percentage Percent 1 分あたりに消費されたデータ ディスク帯域幅の割合。 なし はい
Disk IOPS Consumed Percentage (ディスク IOPS の消費率) disk_iops_consumed_percentage Percent 1 分あたりに消費されたデータ ディスク I/O の割合。 なし はい
トラフィック
表示名 メトリック ID ユニット 説明 Dimension 既定で有効
Max Connections (最大接続数) ^ max_connections Count 最大接続数。 なし はい

^ 最大接続数は、max_connections サーバー パラメータの構成された値を表します。 このメトリックは 30 分ごとにポーリングされます。

拡張メトリックの使用に関する考慮事項
  • DatabaseName ディメンションを使用する拡張メトリックには、"50 データベース" の制限があります。
  • "バースト可能" SKU での制限は、DatabaseName ディメンションを使用するメトリックに対して 10 個のデータベースです。
  • DatabaseName ディメンションの制限は、pg_stat_database システム ビューのデータベース識別子 (datid) 列に適用されます。これは、データベースの作成順序を反映しています。
  • メトリック ディメンションの DatabaseName は、"大文字と小文字が区別されません"。 つまり、pg_stat_database ビューのクエリの実行、datnametemplate1 または template0 になっている行のフィルター処理、datid ごとの順序付けを行うことに加え、返される行を最初の 50 行 (または、"バースト可能な" SKU の場合は 10 行) に制限すると、大文字か小文字か (contoso_databaseContoso_database など) という点を除きその結果セット内にあるデータベース名のメトリックが同じものがマージされ、正確なデータが表示されない場合があります。

自動バキューム メトリック

自動バキューム メトリックを使用して、Azure Database for PostgreSQL フレキシブル サーバー用の自動バキュームのパフォーマンスを監視および調整できます。 各メトリックは "30 分" 間隔で出力され、リテンション期間は最大 "93 日間" です。 特定のメトリックのアラートの作成、DatabaseName ディメンションを使用したメトリック データの分割とフィルター処理を行うことができます。

自動バキューム メトリックを有効にする方法

  • 自動バキューム メトリックは既定では無効になっています。
  • これらのメトリックを有効にするには、サーバー パラメーター metrics.autovacuum_diagnosticsON に設定します。
  • このパラメーターは動的であり、インスタンスの再起動は必要ありません。

自動バキューム メトリックの一覧

表示名 メトリック ID ユニット 説明 Dimension 既定で有効
分析カウンターのユーザー テーブル analyze_count_user_tables カウント このデータベースでユーザーのみのテーブルが手動で分析された回数。 DatabaseName いいえ
ユーザー テーブルの自動分析カウンター autoanalyze_count_user_tables カウント このデータベースでユーザーのみのテーブルが自動バキューム デーモンによって分析された回数。 DatabaseName いいえ
自動バキューム カウンターのユーザー テーブル autovacuum_count_user_tables カウント このデータベースでユーザーのみのテーブルが自動バキューム デーモンによってバキュームされた回数。 DatabaseName いいえ
肥大化率 (プレビュー) bloat_percent パーセント ユーザーのみのテーブルの推定肥大化率。 DatabaseName いいえ
推定デッド行のユーザー テーブル n_dead_tup_user_tables カウント このデータベース内のユーザーのみのテーブルの推定デッド行数。 DatabaseName いいえ
推定ライブ行のユーザー テーブル n_live_tup_user_tables カウント このデータベース内のユーザーのみのテーブルの推定ライブ行数。 DatabaseName いいえ
推定変更のユーザー テーブル n_mod_since_analyze_user_tables カウント ユーザーのみのテーブルが最後に分析された後に変更された行の推定数。 DatabaseName いいえ
分析されたユーザー テーブル tables_analyzed_user_tables カウント このデータベース内の分析されたユーザーのみのテーブルの数。 DatabaseName いいえ
自動分析されたユーザー テーブル tables_autoanalyzed_user_tables カウント このデータベース内の自動バキューム デーモンによって分析されたユーザーのみのテーブルの数。 DatabaseName いいえ
自動バキュームされたユーザー テーブル tables_autovacuumed_user_tables カウント このデータベース内の自動バキューム デーモンによってバキュームされたユーザーのみのテーブルの数。 DatabaseName いいえ
ユーザー テーブル カウンター tables_counter_user_tables カウント このデータベース内のユーザーのみのテーブルの数。 DatabaseName いいえ
バキュームされたユーザー テーブル tables_vacuumed_user_tables カウント このデータベース内のバキュームされたユーザーのみのテーブルの数。 DatabaseName いいえ
バキューム カウンターのユーザー テーブル vacuum_count_user_tables カウント このデータベースでユーザーのみのテーブルが手動でバキュームされた回数 (VACUUM FULL をカウントしない)。 DatabaseName いいえ

自動バキューム メトリックの使用に関する考慮事項

  • DatabaseName ディメンションを使用する自動バキューム メトリックには、"30 データベース" の制限があります。
  • "バースト可能" SKU での制限は、DatabaseName ディメンションを使用するメトリックに対して 10 個のデータベースです。
  • DatabaseName ディメンションの制限は、データベースの作成順序を反映する OID 列に適用されます。

PgBouncer メトリック

PgBouncer メトリックを使用すると、アクティブな接続の詳細、アイドル接続、プールされた接続の合計数、接続プールの数など、PgBouncer プロセスのパフォーマンスを監視できます。 各メトリックは "1 分" 間隔で出力され、最大 "93 日分" の履歴が保持されます。 顧客は、メトリックに関するアラートを構成でき、新しいメトリック ディメンションにアクセスして、データベース名ごとにメトリック データを分割およびフィルター処理することもできます。

PgBouncer メトリックを有効にする方法

  • PgBouncer メトリックは既定では無効になっています。
  • PgBouncer メトリックが機能するには、サーバー パラメーター pgbouncer.enabledmetrics.pgbouncer_diagnostics の両方を有効にする必要があります。
  • これらのパラメーターは動的であり、インスタンスの再起動は必要ありません。

PgBouncer メトリックの一覧

表示名 メトリック ID ユニット 説明 Dimension 既定で有効
アクティブなクライアント接続 client_connections_active カウント Azure Database for PostgreSQL フレキシブル サーバー接続に関連付けられているクライアントからの接続。 DatabaseName いいえ
待機中のクライアント接続 client_connections_waiting カウント サービスを行うために Azure Database for PostgreSQL フレキシブル サーバー接続を待機しているクライアントからの接続。 DatabaseName いいえ
アクティブなサーバー接続 server_connections_active カウント クライアント接続によって使用されている Azure Database for PostgreSQL フレキシブル サーバーへの接続。 DatabaseName いいえ
アイドル状態のサーバー接続 server_connections_idle カウント アイドル状態であり、新しいクライアント接続にサービスを行う準備ができている Azure Database for PostgreSQL フレキシブル サーバーへの接続。 DatabaseName いいえ
プールされた接続数 total_pooled_connections カウント プールされた接続の現在の数。 DatabaseName いいえ
接続プールの数 num_pools カウント 接続プールの合計数。 DatabaseName いいえ

PgBouncer メトリックの使用に関する考慮事項

  • DatabaseName ディメンションを使用する PgBouncer メトリックには、"30 データベース" の制限があります。
  • "バースト可能" SKU での制限は、DatabaseName ディメンションを使用する 10 個のデータベースです。
  • DatabaseName ディメンションの制限は、データベースの作成順序を反映する OID 列に適用されます。

データベース可用性メトリック

Is-db-alive は、[1 for available][0 for not-available] を返す Azure Database for PostgreSQL フレキシブル サーバーのデータベース サーバー可用性メトリックです。 各メトリックは "1 分" 間隔で出力され、リテンション期間は最大 "93 日間" です。 顧客はメトリックに対してアラートを構成できます。

表示名 メトリック ID ユニット 説明 Dimension 既定で有効
データベースが稼働中 is_db_alive カウント データベースが稼働しているかどうかを示します。 該当なし はい

データベース可用性メトリックを使用するときの考慮事項

  • このメトリックを MAX() で集計すると、顧客は過去 1 分間にサーバーが稼動していたかどうかを判断できます。
  • 顧客はアラート要件に合わせて誤検知を回避するために、これらのメトリックを必要な頻度 (5m、10m、30m など) でさらに集計することができます。
  • その他の可能な集計は、AVG() および MIN() です。

ディメンション メトリックでフィルター処理して分割する

前の表で、一部のメトリックには DatabaseName や State などのディメンションがあります。 ディメンションを持つメトリックには、フィルター処理分割を使用できます。 これらの機能では、さまざまなメトリックのセグメント (つまり "ディメンション値") が全体的なメトリック値にどのような影響を与えているかが示されます。 これらを使用して、考えられる外れ値を特定できます。

  • フィルター処理: フィルター処理を使用して、グラフに表示するディメンション値を選択できます。 たとえば、Sessions-by-State メトリックをグラフ化するときにアイドル状態の接続を表示する場合があります。 State ディメンションの Idle にフィルターを設定します。
  • 分割: 分割を使用して、グラフ内でディメンションの値ごとに個別の行を表示するか、それとも値を集計して 1 つの行として表示するかを制御できます。 たとえば、すべてのセッションで Sessions-by-State メトリックに対して 1 つの行を表示できます。 各セッションを State 値でグループ化して、個別の行を表示できます。 State ディメンションに分割を適用すると、個別の行が表示されます。

次の例では、State ディメンションで分割し、特定の State 値でフィルター処理した状態を示します。

メトリックとディメンションで分割およびフィルター処理した例を示すスクリーンショット。

ディメンション メトリックを使ったグラフの設定の詳細については、「メトリック グラフの例」を参照してください。

メトリックの視覚化

Azure Monitor メトリックを視覚化するには、いくつかのオプションがあります。

コンポーネント 説明 必要なトレーニングや構成
[概要] ページ ほとんどの Azure サービスには Azure portal 内に [概要] ページがあり、最近の重要なメトリックを示す、グラフ付きの [監視] セクションが含まれています。 この情報は、個々のサービスの所有者がリソースのパフォーマンスをすばやく評価するためのものです。 このページは、自動的に収集されるプラットフォーム メトリックに基づいています。 構成は必要ありません。
メトリックス エクスプローラー メトリックス エクスプローラーを使用すると、メトリック データを対話的に操作し、メトリック アラートを作成できます。 メトリックス エクスプローラーを使用するには最小限のトレーニングが必要ですが、分析するメトリックをよく理解していることが求められます。 - データ収集を構成したら、その他の構成は必要ありません。
- Azure リソースのプラットフォーム メトリックが自動的に使用できるようになります。
- 仮想マシンのゲスト メトリックは、Azure Monitor エージェントが仮想マシンにデプロイされた後に使用できます。
- アプリケーション メトリックは、Application Insights の構成後に使用できます。
Grafana メトリックを視覚化したり、メトリック基準のアラートを設定したりする目的で Grafana を使用できます。 Grafana のすべてのバージョンには、Azure Monitor のメトリックとログを視覚化するための Azure Monitor データソース プラグインが含まれています。 Grafana ダッシュボードを理解するには、いくつかのトレーニングが必要です。 ただし、事前構築済みの Azure Database for PostgreSQL フレキシブル サーバー Grafana 監視ダッシュボードをダウンロードすると、このプロセスを単純にすることができます。これにより、Azure Database for PostgreSQL フレキシブル サーバー インスタンスを組織内で簡単に監視できるようになります。

ログ

このメトリックに加え、Azure Database for PostgreSQL フレキシブル サーバーを使用して、Azure Database for PostgreSQL の標準ログを構成してアクセスすることができます。 詳細については、ログ記録の概念に関する記事を参照してください。

ログ視覚化

コンポーネント 説明 必要なトレーニングや構成
Log Analytics Log Analytics を使用すると、ログ クエリを作成して、ログ データを対話的に操作し、ログ クエリ アラートを作成することができます。 クエリ言語を理解できるようになるにはある程度のトレーニングが必要ですが、一般的な要件の場合は事前構築済みクエリを使用できます。

次のステップ