監視 適用於 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 |
已耗用的CPU點數 | 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 | 傳出網路流量的數量。 | Yes |
網路 In | network_bytes_ingress |
Bytes | 連入網路流量的數量。 | 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 |
計數 | 依用戶端後端正在等候的事件類型進行會話。 | Wait 事件類型 | 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 | 計量識別碼 | 單位 | 描述 | 尺寸 | 默認已啟用 |
---|---|---|---|---|---|
已耗用的磁碟頻寬百分比 | disk_bandwidth_consumed_percentage |
Percent | 每分鐘耗用的數據磁碟頻寬百分比。 | 不適用 | Yes |
磁碟 IOPS 已耗用百分比 | disk_iops_consumed_percentage |
Percent | 每分鐘取用的數據磁碟 I/O 百分比。 | 不適用 | Yes |
交通流量
Display name | 計量識別碼 | 單位 | 描述 | 尺寸 | 默認已啟用 |
---|---|---|---|---|---|
最大 連線 ^ | max_connections |
計數 | 最大連線數目。 | 不適用 | Yes |
^ 最大 連線 代表伺服器參數的max_connections
設定值。 此計量每 30 分鐘輪詢一次。
使用增強型計量的考慮
- 使用 DatabaseName 維度的增強計量有 50 個資料庫 限制。
- 在 高載 SKU 上,使用 DatabaseName 維度的計量限製為 10 個資料庫。
- DatabaseName 維度限制會套用至pg_stat_database系統檢視的資料庫標識碼 (datid) 數據行,以反映資料庫的建立順序。
- 計量
DatabaseName
維度 中的 不區分大小寫。 這表示在查詢pg_stat_database
檢視之後,篩選出其中一個template1
為 或template0
的數據列datname
,datid
並依 排序,並將傳回的數據列限制為前 50 個(或高載 SKU 時為 10 個),該結果集中的資料庫名稱計量相同,但案例除外(例如contoso_database
Contoso_database
和 )會合併,而且可能不會顯示準確的數據。
自動數據清理計量
自動數據清理計量可用來監視和調整 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器的自動數據清理效能。 每個計量都會以 30 分鐘的 間隔發出,最多保留 93 天 。 您可以建立特定計量的警示,而且您可以使用維度來分割和篩選計量數據 DatabaseName
。
如何啟用自動數據清理計量
- 預設會停用自動數據清理計量。
- 若要開啟這些計量,請將伺服器參數
metrics.autovacuum_diagnostics
設定為ON
。 - 此參數是動態的,因此不需要重新啟動實例。
自動數據清理計量清單
Display name | 計量識別碼 | 單位 | 描述 | 尺寸 | 默認已啟用 |
---|---|---|---|---|---|
分析計數器用戶數據表 | analyze_count_user_tables |
計數 | 在此資料庫中手動分析使用者專用數據表的次數。 | DatabaseName | No |
AutoAnalyze 計數器用戶數據表 | autoanalyze_count_user_tables |
計數 | 此資料庫中自動數據清理精靈分析使用者專用數據表的次數。 | DatabaseName | No |
AutoVacuum 計數器用戶數據表 | 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 Counter User Tables | vacuum_count_user_tables |
計數 | 在此資料庫中手動清理使用者專用數據表的次數(不計算 VACUUM FULL )。 |
DatabaseName | No |
使用自動數據清理計量的考慮
- 使用 DatabaseName 維度的自動數據清理計量有 30 個資料庫 限制。
- 在 高載 SKU 上,使用 DatabaseName 維度的計量限製為 10 個資料庫。
- DatabaseName 維度限制會套用至 OID 數據行,以反映資料庫的建立順序。
PgBouncer 計量
您可以使用 PgBouncer 計量來監視 PgBouncer 程式的效能,包括使用中聯機、閑置連線、集區連線總計和聯機集區數目的詳細數據。 每個計量都會以 1 分鐘 間隔發出,且最多 93 天 的歷史。 客戶可以在計量上設定警示,也可以存取新的計量維度,以依資料庫名稱分割和篩選計量數據。
如何啟用 PgBouncer 計量
- 默認會停用 PgBouncer 計量。
- 若要讓 PgBouncer 計量能夠運作,伺服器參數
pgbouncer.enabled
和metrics.pgbouncer_diagnostics
都必須啟用。 - 這些參數是動態的,不需要重新啟動實例。
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 是傳回 [1 for available]
和 [0 for not-available]
之彈性伺服器之 適用於 PostgreSQL 的 Azure 資料庫 資料庫伺服器可用性計量。 每個計量都會以 1 分鐘 的頻率發出,最多保留 93 天 。 客戶可以在計量上設定警示。
顯示名稱 | 計量識別碼 | 單位 | 描述 | 尺寸 | 默認已啟用 |
---|---|---|---|---|---|
資料庫運作中 | is_db_alive |
計數 | 指出資料庫是否已啟動。 | N/a | Yes |
使用資料庫可用性計量時的考慮
- 匯總此計量
MAX()
可讓客戶判斷伺服器在最後一分鐘是否已啟動或關閉。 - 客戶可以選擇以任何所需的頻率(5m、10m、30m 等)進一步匯總這些計量,以符合其警示需求,並避免出現任何誤判。
- 其他可能的匯總為
AVG()
和MIN()
。
篩選和分割維度計量
在上述數據表中,某些計量具有DatabaseName或State等維度。 您可以針對具有維度的計量使用 篩選 和 分割 。 這些功能顯示各種計量區段(或 維度值)如何影響計量的整體值。 您可以使用它們來識別可能的極端值。
- 篩選:使用篩選來選擇圖表中包含的維度值。 例如,當您繪製計量圖表時,可能會想要顯示閑置連線
Sessions-by-State
。 您可以在 [狀態] 維度中設定 [閑置] 的篩選條件。 - 分割:使用分割來控制圖表是否顯示維度每個值的個別線條,或是否匯總單一線條中的值。 例如,您可以在所有會話中看到一
Sessions-by-State
行計量。 您可以看到依狀態值分組之每個工作階段的個別行。 在 [狀態] 維度上套用分割,以查看個別的行。
下列範例示範依 State 維度分割,並篩選特定 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,您可以建立記錄查詢,以互動方式處理記錄數據,並建立記錄查詢警示。 | 您需要一些訓練才能熟悉查詢語言,不過您可以使用預先建置的查詢來因應一般需求。 |
下一步
- 深入瞭解如何 設定和存取記錄。
- 深入瞭解 Azure 監視器定價。
- 深入瞭解 稽核記錄。