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 |
バイト | 選択した期間のサーバー上の送信ネットワーク トラフィックの合計。 このメトリックに含まれるのはデータベースからの、および Azure Database for Postgres フレキシブル サーバーからの発信トラフィックであり、これには監視、ログ、WAL アーカイブ、レプリケーションなどの機能も含まれます。 | はい |
Network In | network_bytes_ingress |
バイト | 選択した期間のサーバー上の受信ネットワーク トラフィックの合計。 このメトリックに含まれるのはデータベースへの、および Azure Database for Postgres フレキシブル サーバーへの着信トラフィックであり、これには監視、ログ、WAL アーカイブ、レプリケーションなどの機能も含まれます。 | はい |
"読み取り 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_activity
をON
に設定します。 このパラメーターは動的であり、インスタンスの再起動は必要ありません。
拡張メトリックの一覧
次のカテゴリの拡張メトリックから選択できます。
- アクティビティ
- データベース
- 論理レプリケーション
- レプリケーション
- [鮮やかさ]
- トラフィック
アクティビティ
表示名 | メトリック 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
ビューのクエリの実行、datname
がtemplate1
またはtemplate0
になっている行のフィルター処理、datid
ごとの順序付けを行うことに加え、返される行を最初の 50 行 (または、"バースト可能な" SKU の場合は 10 行) に制限すると、大文字か小文字か (contoso_database
やContoso_database
など) という点を除きその結果セット内にあるデータベース名のメトリックが同じものがマージされ、正確なデータが表示されない場合があります。
自動バキューム メトリック
自動バキューム メトリックを使用して、Azure Database for PostgreSQL フレキシブル サーバー用の自動バキュームのパフォーマンスを監視および調整できます。 各メトリックは "30 分" 間隔で出力され、リテンション期間は最大 "93 日間" です。 特定のメトリックのアラートの作成、DatabaseName
ディメンションを使用したメトリック データの分割とフィルター処理を行うことができます。
自動バキューム メトリックを有効にする方法
- 自動バキューム メトリックは既定では無効になっています。
- これらのメトリックを有効にするには、サーバー パラメーター
metrics.autovacuum_diagnostics
をON
に設定します。 - このパラメーターは動的であり、インスタンスの再起動は必要ありません。
自動バキューム メトリックの一覧
表示名 | メトリック 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.enabled
サーバー パラメーターを介して pgbouncer 機能が有効になっており、metrics.pgbouncer_diagnostics
メトリック パラメーターが有効になっていることを確認します。 - これらのパラメーターは動的であり、インスタンスの再起動は必要ありません。
- PgBouncer メトリックは既定では無効になっています。
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 を使用すると、ログ クエリを作成して、ログ データを対話的に操作し、ログ クエリ アラートを作成することができます。 | クエリ言語を理解できるようになるにはある程度のトレーニングが必要ですが、一般的な要件の場合は事前構築済みクエリを使用できます。 |
次のステップ
- ログの構成とアクセス方法について学習する。
- Azure Monitor の価格を確認する。
- 監査ログについて学習する。