監視適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器上的計量
適用於: 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器
監視伺服器的相關資料,可協助您疑難排解並最佳化您的工作負載。 適用於 PostgreSQL 的 Azure 資料庫彈性伺服器提供各種監視選項,可讓您深入了解伺服器的執行狀況。
計量
適用於 PostgreSQL 的 Azure 資料庫彈性伺服器提供各種計量,可讓您深入了解支援適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體的資源行為。 每個計量都會以 1 分鐘的間隔發出,而且可保留最多 93 天的歷程記錄。 您可以在計量上設定警示。 其他選項包含設定自動化動作、執行進階分析,以及封存歷程記錄。 如需詳細資訊,請參閱 Azure 計量概觀。
注意
雖然計量會儲存 93 天,但您只能在 [計量] 圖格中,查詢任何單一圖表上最多 30 天的資料。 如果您看到空白的圖表,或您的圖表只顯示部分的計量資料,請確認時間選擇器中的開始和結束日期之間的差距未超過 30 天的間隔。 選取 30 天的間隔之後,您可以移動流覽圖表以檢視完整的保留時間範圍。
預設計量
適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體可以使用下列計量:
Display name | 計量識別碼 | 單位 | 描述 | 預設為啟用 |
---|---|---|---|---|
作用中的連線數 | active_connections |
計數 | 資料庫伺服器的連線總數,包含使用中、閒置和其他等所有連線狀態,如 pg_stat_activity 檢視所示。 此圖表示所有狀態的連線總和,不會區分特定狀態。 如需特定狀態的深入分析 (例如使用中連線),請參閱「各狀態的工作階段」計量。 |
Yes |
已使用的備份儲存體 | backup_storage_used |
Bytes | 已使用的備份儲存體數量。 此計量代表根據為伺服器設定的備份保留期間,保留的所有完整備份、差異備份和記錄備份所耗用的儲存空間總和。 備份的頻率是受服務所管理。 針對異地備援儲存體,備份儲存體使用量是本地備援儲存體使用量的兩倍。 | Yes |
失敗的連線 | connections_failed |
計數 | 連接失敗的數目。 | Yes |
成功的連線 | connections_succeeded |
計數 | 成功的連線數目。 | Yes |
使用的 CUP 點數 | cpu_credits_consumed |
計數 | 彈性伺服器所使用的點數。 適用於可高載層。 | Yes |
剩餘 CPU 點數 | cpu_credits_remaining |
計數 | 可用於高載的點數。 適用於可高載層。 | Yes |
CPU 百分比 | cpu_percent |
Percent | 使用中的 CPU 百分比。 | Yes |
資料庫大小 | database_size_bytes |
Bytes | 資料庫大小 (位元組)。 | Yes |
磁碟佇列深度 | disk_queue_depth |
計數 | 資料磁碟的未處理 I/O 作業數目。 | Yes |
IOPS | iops |
計數 | 每秒磁碟的 I/O 作業數目。 | Yes |
已使用的交易識別碼上限 | maximum_used_transactionIDs |
計數 | 已使用的交易識別碼目上限。 | Yes |
記憶體百分比 | memory_percent |
Percent | 使用中記憶體的百分比。 | Yes |
網路輸出 | network_bytes_egress |
Bytes | 伺服器上所選取期間傳出網路流量的總和。 此計量包含來自資料庫和適用於 Postgres 的 Azure 資料庫彈性伺服器的連出流量,包括監視、記錄、WAL 封存、複寫等功能。 | Yes |
網路輸入 | network_bytes_ingress |
Bytes | 伺服器上所選取期間傳入網路流量的總和。 此計量包括連入您的資料庫和適用於Postgres 的 Azure 資料庫彈性伺服器的流量,包括監視、記錄、WAL 封存、複寫等功能。 | Yes |
讀取 IOPS | read_iops |
計數 | 每秒的資料磁碟 I/O 讀取作業數目。 | Yes |
讀取輸送量 | read_throughput |
Bytes | 每秒從磁碟讀取的位元組數。 | Yes |
可用儲存空間 | storage_free |
Bytes | 可用的儲存空間量。 | Yes |
儲存空間百分比 | storage_percent |
百分比 | 已使用的儲存空間百分比。 服務使用的儲存空間可能包含資料庫檔案、交易記錄和伺服器記錄。 | Yes |
已使用的儲存空間 | storage_used |
Bytes | 已使用的儲存空間量。 此服務所使用的儲存體可能包括資料庫檔案、交易記錄和伺服器記錄。 | Yes |
已使用的交易記錄儲存空間 | txlogs_storage_used |
Bytes | 交易記錄所使用的儲存體空間量。 | Yes |
寫入輸送量 | write_throughput |
Bytes | 每秒寫入磁碟的位元組數。 | Yes |
寫入 IOPS | write_iops |
計數 | 每秒的資料磁碟 I/O 寫入作業數目。 | Yes |
增強型計量
您可以針對適用於 PostgreSQL 的 Azure 資料庫使用增強型計量,以取得資料庫的精細監視和警示。 您可以在計量上設定警示。 某些增強型計量包含Dimension
參數,您可以用於透過使用資料庫名稱或狀態等維度來分割和篩選計量資料。
啟用增強型計量
- 依預設,停用大部分的新計量。 然而,仍有幾個例外狀況,依預設會啟用新計量。 下表最右邊的資料行指出是否依預設啟用每個計量。
- 若要啟用依預設未啟用的計量,請將伺服器參數
metrics.collector_database_activity
設定為ON
。 此參數是動態,不需要執行個體重新啟動。
增強型計量清單
您可以從下列增強型計量類別中進行選擇:
- 活動
- Database
- 邏輯複寫
- 複寫
- 飽和度
- 交通流量
活動
Display name | 計量識別碼 | 單位 | 描述 | 維度 | 預設為啟用 |
---|---|---|---|---|---|
各狀態的工作階段 | sessions_by_state |
計數 | pg_stat_activity 檢視中顯示各狀態的工作階段。 這會將用戶端後端分類為各種狀態,例如使用中或閒置。 |
州/省 | No |
各 WaitEventType 的工作階段 | sessions_by_wait_event_type |
計數 | 用戶端後端所等候各事件類型的工作階段。 | 等候事件類型 | No |
最舊的備份 | oldest_backend_time_sec |
秒 | 最就備份存留期 (秒) (無論狀態為何)。 | 不適用 | No |
最舊的查詢 | longest_query_time_sec |
秒 | 目前執行的最長查詢存留期 (秒)。 | 不適用 | No |
最舊的交易 | longest_transaction_time_sec |
秒 | 最長交易的存留期 (秒) (包含閒置交易)。 | 不適用 | No |
最舊的 xmin | oldest_backend_xmin |
計數 | 最舊 xmin 的實際值。 如果 xmin 未增加,則表示某些長時間執行的交易可能保留無效的 Tuple 而無法移除。 |
不適用 | No |
最舊的 xmin 存留期 | oldest_backend_xmin_age |
計數 | 最舊 xmin 的存留期 (按單位)。 表示自最舊 xmin 所傳遞的交易數目。 |
不適用 | No |
Database
Display name | 計量識別碼 | 單位 | 描述 | 維度 | 預設為啟用 |
---|---|---|---|---|---|
後端 | numbackends |
計數 | 連線至此資料庫的後端數目。 | DatabaseName | No |
鎖死 | deadlocks |
計數 | 此資料庫中偵測到的死結數目。 | DatabaseName | No |
磁碟區塊命中 | blks_hit |
計數 | 在緩衝集區中找到磁碟區塊的次數,因此不需要讀取。 | DatabaseName | No |
磁碟區塊讀取 | blks_read |
計數 | 此資料庫中讀取磁碟區塊的數目。 | DatabaseName | No |
暫存檔案 | temp_files |
計數 | 此資料庫中查詢已建立暫存檔案的數目。 | DatabaseName | No |
暫存檔案大小 | temp_bytes |
Bytes | 此資料庫中查詢已寫入暫存檔案的資料總量。 | DatabaseName | No |
交易數總計 | xact_total |
計數 | 此資料庫中執行的交易總數。 | DatabaseName | No |
認可的交易 | xact_commit |
計數 | 此資料庫中已認可的交易數目。 | DatabaseName | No |
每秒交易數 (預覽) | tps |
計數 | 在一秒內執行的交易數目。 | DatabaseName | No |
已回復的交易 | xact_rollback |
計數 | 此資料庫中已回復的交易數目。 | DatabaseName | No |
已刪除的 Tuple | tup_deleted |
計數 | 此資料庫中查詢已刪除的資料列數目。 | DatabaseName | No |
已擷取的 Tuple | tup_fetched |
計數 | 此資料庫中查詢已擷取的資料列數目。 | DatabaseName | No |
已插入的 Tuple | tup_inserted |
計數 | 此資料庫中查詢已插入的資料列數目。 | DatabaseName | No |
已傳回的 Tuple | tup_returned |
計數 | 此資料庫中查詢已傳回的資料列數目。 | DatabaseName | No |
已上船的 Tuple | tup_updated |
計數 | 此資料庫中查詢已上傳的資料列數目。 | DatabaseName | No |
邏輯複寫
Display name | 計量識別碼 | 單位 | 描述 | 維度 | 預設為啟用 |
---|---|---|---|---|---|
邏輯複寫延遲上限 | logical_replication_delay_in_bytes |
Bytes | 所有邏輯覆寫位置的延遲上限。 | 不適用 | Yes |
複寫
Display name | 計量識別碼 | 單位 | 描述 | 維度 | 預設為啟用 |
---|---|---|---|---|---|
實體複寫延遲上限 | physical_replication_delay_in_bytes |
Bytes | 所非同步實體複寫位置的延遲上限。 | 不適用 | Yes |
讀取複本延遲 | physical_replication_delay_in_seconds |
秒 | 讀取複本延遲 (秒)。 | 不適用 | Yes |
飽和度
Display name | 計量識別碼 | 單位 | 描述 | 維度 | 預設為啟用 |
---|---|---|---|---|---|
已使用的 OS 磁碟頻寬百分比 | disk_bandwidth_consumed_percentage |
Percent | 每分鐘取用的資料磁碟頻寬百分比。 | 不適用 | Yes |
已使用的 OS 磁碟 IOPS 百分比 | disk_iops_consumed_percentage |
Percent | 每分鐘取用的資料磁碟 I/O 百分比。 | 不適用 | Yes |
交通流量
Display name | 計量識別碼 | 單位 | 描述 | 維度 | 預設為啟用 |
---|---|---|---|---|---|
連線數目上限 ^ | max_connections |
計數 | 最大連線數目。 | 不適用 | Yes |
TCP 連線待辦專案 (預覽) | tcp_connection_backlog |
計數 | 超過 PostgreSQL 伺服器容量的擱置連線數目。 適用於 8 個虛擬核心和更新版本。 | 州/省 | No |
Postmaster 處理 CPU 使用量 (預覽) | postmaster_process_cpu_usage_percent |
Percent | Postmaster 程式的CPU使用率。 不適用於高載 SKU。 | 不適用 | No |
^ 連線上限 表示 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
)) 都相同並將合併,而可能不會顯示準確的資料。
自動清理計量
自動清理計量可用於監視和調整適用於 PostgreSQL 的資料庫 - 彈性伺服器的自動清理效能。 每個計量都會以 30 分鐘的間隔發出,而且最多有 93 天的保留期。 您可以建立特定計量的警示,並可以使用 DatabaseName
維度分割和篩選計量資料。
如何啟用自動清理計量
- 自動清理計量依預設為停用。
- 若要啟用這些計量,請將伺服器參數
metrics.autovacuum_diagnostics
設定為ON
。 - 此參數是動態,因此不需要執行個體重新啟動。
自動清理計量清單
Display name | 計量識別碼 | 單位 | 描述 | 維度 | 預設為啟用 |
---|---|---|---|---|---|
分析計數器使用者資料表 | analyze_count_user_tables |
計數 | 此資料庫中已手動分析僅限使用者資料表的次數。 | DatabaseName | No |
自動分析計數器使用者資料表 | autoanalyze_count_user_tables |
計數 | 此資庫中自動清理精靈已分析僅限使用者資料表的次數。 | DatabaseName | No |
自動清理計數器使用者資料表 | autovacuum_count_user_tables |
計數 | 此資料庫中自動清理精靈已清理僅限使用者資料表的次數。 | DatabaseName | No |
膨脹百分比 (預覽) | bloat_percent |
Percent | 僅限使用者資料表的預估膨脹百分比。 | DatabaseName | No |
預估的無效資料列使用者資料表 | n_dead_tup_user_tables |
計數 | 此資料庫中僅限使用者資料表的預估無效資料列數目。 | DatabaseName | No |
預估的有效資料列使用者資料表 | n_live_tup_user_tables |
計數 | 此資料庫中僅限使用者資料表的預估有效資料列數目。 | DatabaseName | No |
預估的修改使用者資料表 | n_mod_since_analyze_user_tables |
計數 | 上次分析僅限使用者資料表起已修改的預估資料列數目。 | DatabaseName | No |
已分析的使用者資料表 | tables_analyzed_user_tables |
計數 | 此資料庫中已分析的僅限使用者資料表數目。 | DatabaseName | No |
已自動分析的使用者資料表 | tables_autoanalyzed_user_tables |
計數 | 此資料庫中自動清理精靈已分析的僅限使用者資料表數目。 | DatabaseName | No |
已自動清理的使用者資料表 | tables_autovacuumed_user_tables |
計數 | 此資料庫中自動清理精靈已清理的僅限使用者資料表數目。 | DatabaseName | No |
使用者資料表計數器 | tables_counter_user_tables |
計數 | 此資料表中僅限使用者資料表的數目。 | DatabaseName | No |
已清理的使用者資料表 | tables_vacuumed_user_tables |
計數 | 此資料庫中已清理的僅限使用者資料表數目。 | DatabaseName | No |
清理計數器使用者資料表 | vacuum_count_user_tables |
計數 | 此資料庫中已手動清理僅限使用者資料表的次數 (不計算 VACUUM FULL )。 |
DatabaseName | No |
使用自動清理計量的考量
- 使用 DatabaseName 維度的自動清理計量有 30 個資料庫限制。
- 在可高載 SKU 上,使用 DatabaseName 維度的計量有 10 個資料庫限制。
- DatabaseName 維度限制會套用在 OID 資料行上,以反映資料庫建立的順序。
PgBouncer 計量
您可以使用 PgBouncer 計量以監視 PgBouncer 程序的效能,包含使用者連線、閒置連線、集區連線總計和連線集區數目的詳細資料。 每個計量都會以 1 分鐘的間隔發出,而且可保留最多 93 天的歷程記錄。 客戶可以設定計量的警示,也可以存取新的計量維度以按資料庫名稱分割和篩選計量資料。
如何啟用 PgBouncer 計量
- 若要啟用 PgBouncer 計量,請確定已透過伺服器參數
pgbouncer.enabled
啟用 pgbouncer 功能並已啟用計量參數metrics.pgbouncer_diagnostics
。 - 這些參數是動態,不需要執行個體重新啟動。
- PgBouncer 計量依預設為停用。
PgBouncer 計量清單
Display name | 計量識別碼 | 單位 | 描述 | 維度 | 預設為啟用 |
---|---|---|---|---|---|
使用中用戶端連線 | client_connections_active |
計數 | 與適用於 PostgreSQL 的 Azure 資料庫彈性伺服器連線相關聯的用戶端連線。 | DatabaseName | No |
等待用戶端連線 | client_connections_waiting |
計數 | 與正在等待適用於 PostgreSQL 的 Azure 資料庫彈性伺服器連線的用戶端連線,以便提供服務。 | DatabaseName | No |
主動伺服器連線 | server_connections_active |
計數 | 連線至用戶端連線正在使用的適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器。 | DatabaseName | No |
閒置伺服器連線 | server_connections_idle |
計數 | 連線至閒置且準備就緒進行新用戶端連線的適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器。 | DatabaseName | No |
集區式連線總數目 | total_pooled_connections |
計數 | 目前集區式連線的數目。 | DatabaseName | No |
連線集區的總數目 | num_pools |
計數 | 連線集區的總數目。 | DatabaseName | No |
使用 PgBouncer 計量的考量
- 使用 DatabaseName 維度的 PgBouncer 計量有 30 個資料庫限制。
- 在可高載 SKU 上,限制為具有 DatabaseName 維度的 10 個資料庫。
- DatabaseName 維度限制會套用在 OID 資料行上,以反映資料庫建立的順序。
資料庫可用性計量
Is-db-alive 是適用於 PostgreSQL 的 Azure 資料庫彈性伺服器的資料庫伺服器可用性計量,可傳回 [1 for available]
和 [0 for not-available]
。 每個計量都會以 1 分鐘的頻率發出,而且可保留最多 93 天的保留期。 客戶可以設定計量的警示。
顯示名稱 | 計量識別碼 | 單位 | 描述 | 維度 | 預設為啟用 |
---|---|---|---|---|---|
資料庫保持運作 | is_db_alive |
計數 | 表示資料庫是否已啟動。 | N/a | Yes |
使用資料庫可用性計量時的考量
- 使用
MAX()
彙總此計量將可讓客戶在最後一刻判斷伺服器是否啟動或關閉。 - 客戶可選擇使用所需的頻率 (5m、10m、30m 等) 進一步彙總這些計量以符合其警示需求,並避免出現任何誤判。
- 其他可能的匯總是
AVG()
和MIN()
。
篩選和分割維度計量
在上述資料表中,某些計量有 DatabaseName 或 State 等維度。 您可以針對具有維度的計量使用篩選和分割。 這些功能顯示各種計量區段 (或維度值) 如何影響整體計量值。 您可以使用這些功能來識別可能的極端值。
- 篩選:使用篩選以選擇要包含在圖表中的維度值。 例如,當繪製
Sessions-by-State
計量時,您可能想要顯示閒置連線。 您可以在狀態維度中設定閒置篩選條件。 - 分割:使用分割以控制圖表是要針對維度的每個值或彙總單一行的值時顯示個別的行。 例如,您可以在所有工作階段中看到一行
Sessions-by-State
計量。 您可以針對按狀態值分組的每個工作階段查看個別行。 請將分割套用至狀態維度以查看個別行。
下列範例示範按狀態維度分割及篩選特定狀態值:
如需設定維度計量圖表的詳細資料,請參閱計量圖表範例。
計量視覺效果
視覺化 Azure 監視器計量有數個選項。
元件 | 描述 | 必要的訓練和/或設定 |
---|---|---|
概觀分頁 | 大部分 Azure 服務在 Azure 入口網站中會有 [概觀] 頁面,其中包含 [監視] 區段,具有顯示近期重要計量的圖表。 此資訊可供個別服務的擁有者快速評估資源的效能。 | 此頁面是以自動收集的平台計量為基礎。 不需要組態。 |
計量瀏覽器 | 您可以使用計量瀏覽器,以互動方式使用計量資料並建立計量警示。 您需要最基本的訓練才能使用計量瀏覽器,但必須熟悉您想要分析的計量。 | - 設定資料收集之後,就不需要其他設定。 - 可自動取得 Azure 資源的平台計量。 - 可在將 Azure 監視器代理程式部署至虛擬機器之後,取得虛擬機器的來賓計量。 - 設定 Application Insights 之後,即可取得應用程式計量。 |
Grafana | 您可以使用 Grafana 來視覺化和警示計量。 所有版本的 Grafana 都包含 Azure 監視器資料來源外掛程式,用以將 Azure 監視器計量和記錄視覺化。 | 若要熟悉 Grafana 儀表板,則需要一些訓練。 不過,您可以下載預先建置的適用於 PostgreSQL 的 Azure 資料庫彈性伺服器 Grafana 監視儀表板,可讓您輕鬆監視組織內所有適用於 PostgreSQL 的 Azure 資料庫彈性伺服器執行個體。 |
記錄
除了計量之外,您也可以使用適用於 PostgreSQL 的 Azure 資料庫彈性伺服器以設定和存取適用於 PostgreSQL 的 Azure 資料庫標準記錄。 如需詳細資訊,請參閱記錄概念。
記錄視覺效果
元件 | 描述 | 必要的訓練和/或設定 |
---|---|---|
Log Analytics | 使用 Log Analytics,您可建立記錄查詢,以互動方式處理記錄資料,以及建立記錄查詢警示。 | 您需要一些訓練才能熟悉查詢語言,不過您可以使用預先建置的查詢來因應一般需求。 |
伺服器記錄
適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器中的伺服器記錄功能可讓使用者啟用、設定及下載伺服器記錄,這對於疑難解答和執行伺服器活動的歷史分析至關重要。 根據預設,會停用 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器中的伺服器記錄功能。 不過,啟用此功能之後,適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器會開始擷取所選記錄類型的事件,並將其寫入檔案。 然後,您可以使用 Azure 入口網站或 Azure CLI 來下載檔案,以協助您進行疑難排解工作。
伺服器記錄保留
伺服器記錄的保留期下限為 1 天,最大保留期為 7 天。 如果超過此限制,則會刪除最舊的記錄,以騰出空間供新記錄使用。 如需啟用和管理伺服器記錄的詳細資訊,請參閱設定 伺服器記錄的指南。
下一步
- 深入了解如何設定及存取記錄。
- 深入了解 Azure 監視器價格。
- 深入了解稽核記錄。