次の方法で共有


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

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

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

メトリック

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

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

既定のメトリック

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

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

^でマークされたメトリックは 1 分ごとに出力されますが、処理され、5 分のバッチで表示されます。 これにより、メトリックの可視性が最大 5 分遅れます。 これらのメトリックに対してアラートを作成するときは、正確でタイムリーなアラートを確保するために、この待機時間を考慮してください。

拡張メトリック

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

拡張メトリックの有効化

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

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

  • アクティビティ
  • データベース
  • 論理レプリケーション
  • レプリケーション
  • 彩度
  • トラフィック
アクティビティ
表示名 メトリック ID ユニット 説明 ディメンション 既定で有効
状態別のセッション数 sessions_by_state カウント pg_stat_activity ビューに表示されている、状態別のセッション。 クライアント バックエンドは、アクティブやアイドルなどのさまざまな状態に分類されます。 状態 いいえ
待機イベントタイプ別セッション 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 ユニット 説明 ディメンション 既定で有効
バックエンド numbackends カウント このデータベースに接続されているバックエンドの数。 データベース名 いいえ
デッドロック deadlocks カウント このデータベースで検出されたデッドロック数。 データベース名 いいえ
ディスク ブロック ヒット blks_hit カウント ディスク ブロックがバッファー キャッシュに既に存在することがわかり、読み取りが不要になった回数。 データベース名 いいえ
ディスク ブロック読み取り blks_read カウント このデータベースで読み取られたディスク ブロック数。 データベース名 いいえ
一時ファイル temp_files カウント このデータベースのクエリによって作成された一時ファイル数。 データベース名 いいえ
一時ファイルのサイズ temp_bytes バイト このデータベース内でクエリによって一時ファイルに書き込まれたデータの合計量。 データベース名 いいえ
合計トランザクション数 xact_total カウント このデータベースで実行されたトランザクションの合計数。 データベース名 いいえ
コミットされたトランザクション xact_commit カウント このデータベース内のコミットされたトランザクション数。 データベース名 いいえ
1 秒あたりのトランザクション数 tps カウント 1 秒以内に実行されたトランザクションの数。 データベース名 いいえ
ロールバックされたトランザクション xact_rollback カウント このデータベース内のロールバックされたトランザクション数。 データベース名 いいえ
タプルが削除されました tup_deleted カウント このデータベース内のクエリによって削除された行数。 データベース名 いいえ
フェッチされたタプル tup_fetched カウント このデータベース内のクエリによってフェッチされた行数。 データベース名 いいえ
挿入されたタプル tup_inserted カウント このデータベース内のクエリによって挿入された行数。 データベース名 いいえ
返されたタプル tup_returned カウント このデータベース内のクエリから返された行数。 データベース名 いいえ
タプルが更新されました tup_updated カウント このデータベース内のクエリによって更新された行数。 データベース名 いいえ
論理レプリケーション
表示名 メトリック ID ユニット 説明 ディメンション 既定で有効
論理レプリケーションの最大ラグ logical_replication_delay_in_bytes バイト すべての論理レプリケーション スロットの最大ラグ。 なし はい
レプリケーション
表示名 メトリック ID ユニット 説明 ディメンション 既定で有効
物理レプリケーションの最大ラグ physical_replication_delay_in_bytes バイト すべての非同期物理レプリケーション スロットの最大ラグ。 なし はい
読み取りレプリカのラグ physical_replication_delay_in_seconds 読み取りレプリカのラグ (秒)。 なし はい
彩度
表示名 メトリック ID ユニット 説明 ディメンション 既定で有効
ディスク帯域幅消費率 ^ disk_bandwidth_consumed_percentage パーセント 1 分あたりに消費されたデータ ディスク帯域幅の割合。 なし はい
ディスク IOPS 消費率 ^ disk_iops_consumed_percentage パーセント 1 分あたりに消費されたデータ ディスク I/O の割合。 なし はい
ポストマスター プロセスの CPU 使用率 (プレビュー) postmaster_process_cpu_usage_percent パーセント ポストマスター プロセスの CPU 使用率。 バースト可能 SKU には適用されません。 なし いいえ

^でマークされたメトリックは 1 分ごとに出力されますが、処理され、5 分のバッチで表示されます。 これにより、メトリックの可視性が最大 5 分遅れます。 これらのメトリックに対してアラートを作成するときは、正確でタイムリーなアラートを確保するために、この待機時間を考慮してください。

トラフィック
表示名 メトリック ID ユニット 説明 ディメンション 既定で有効
最大接続数 ** max_connections カウント 最大接続数。 なし はい
TCP 接続バックログ (プレビュー) tcp_connection_backlog カウント サーバーによって処理されるのを待機している保留中の TCP 接続の数。 なし いいえ

** 最大接続数 は、 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 ユニット 説明 ディメンション 既定で有効
カウンター ユーザー テーブルの分析 analyze_count_user_tables カウント このデータベースでユーザーのみのテーブルが手動で分析された回数。 データベース名 いいえ
自動分析カウンターのユーザー テーブル autoanalyze_count_user_tables カウント このデータベースでユーザーのみのテーブルが自動バキューム デーモンによって分析された回数。 データベース名 いいえ
自動バキューム カウンターのユーザー テーブル autovacuum_count_user_tables カウント このデータベースでユーザーのみのテーブルが自動バキューム デーモンによってバキュームされた回数。 データベース名 いいえ
肥大化率 bloat_percent パーセント ユーザーのみのテーブルの推定肥大化率。 データベース名 いいえ
推定デッド行のユーザー テーブル n_dead_tup_user_tables カウント このデータベース内のユーザーのみのテーブルの推定デッド行数。 データベース名 いいえ
推定ライブ行のユーザー テーブル n_live_tup_user_tables カウント このデータベース内のユーザーのみのテーブルの推定ライブ行数。 データベース名 いいえ
推定変更のユーザー テーブル n_mod_since_analyze_user_tables カウント ユーザーのみのテーブルが最後に分析された後に変更された行の推定数。 データベース名 いいえ
分析されたユーザー テーブル tables_analyzed_user_tables カウント このデータベース内の分析されたユーザーのみのテーブルの数。 データベース名 いいえ
ユーザーテーブルの自動解析 tables_autoanalyzed_user_tables カウント このデータベース内の自動バキューム デーモンによって分析されたユーザーのみのテーブルの数。 データベース名 いいえ
自動バキュームされたユーザーテーブル tables_autovacuumed_user_tables カウント このデータベース内の自動バキューム デーモンによってバキュームされたユーザーのみのテーブルの数。 データベース名 いいえ
ユーザー テーブル カウンター tables_counter_user_tables カウント このデータベース内のユーザーのみのテーブルの数。 データベース名 いいえ
ユーザーテーブルのバキュームが完了しました tables_vacuumed_user_tables カウント このデータベース内のバキュームされたユーザーのみのテーブルの数。 データベース名 いいえ
バキューム カウンター ユーザー テーブル vacuum_count_user_tables カウント このデータベースでユーザーのみのテーブルが手動でバキュームされた回数 (VACUUM FULL をカウントしない)。 データベース名 いいえ

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

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

PgBouncer メトリック

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

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

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

PgBouncer メトリックの一覧

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

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 ユニット 説明 ディメンション 既定で有効
データベースが稼働中 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 のすべてのバージョンには、 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 を使用すると、ログ クエリを作成して、ログ データを対話的に操作し、ログ クエリ アラートを作成することができます。 クエリ言語を理解できるようになるにはある程度のトレーニングが必要ですが、一般的な要件の場合は事前構築済みクエリを使用できます。

サーバー ログ

Azure Database for PostgreSQL フレキシブル サーバーのサーバー ログ機能を使用すると、サーバー ログの有効化、構成、ダウンロードが可能になります。サーバー ログは、 サーバー アクティビティのトラブルシューティングと履歴分析の実行に不可欠です。 既定では、Azure Database for PostgreSQL フレキシブル サーバーのサーバー ログ機能は無効になっています。 ただし、この機能を有効にすると、Azure Database for PostgreSQL フレキシブル サーバーは選択したログの種類のイベントのキャプチャを開始し、ファイルに書き込みます。 その後、Azure portal または Azure CLI を使用して、トラブルシューティングの作業に役立つファイルをダウンロードできます。

サーバー ログのリテンション期間

サーバー ログの最小保持期間は 1 日、最大保持期間は 7 日です。 この制限を超えると、新しいログのために容量を空ける目的で最も古いログが削除されます。 サーバー ログの有効化と管理の詳細については、 PostgreSQL サーバー ログとメジャー バージョンのアップグレード ログのキャプチャの構成に関するページを参照してください。