如何在適用於 PostgreSQL 的 Azure Cosmos DB 中使用多租用戶監視來檢閱租用戶統計數據
適用於: Azure Cosmos DB for PostgreSQL (由 PostgreSQL 的超大規模 (Citus) 資料庫延伸模組提供)
重要
適用於 Citus 11.3 和更新版本
本文說明如何使用檢視來深入瞭解租 citus_stat_tenants
用戶的資源使用量。 此檢視會追蹤租使用者列出的計量
- 讀取查詢計數(SELECT 查詢)。
- 總查詢計數(SELECT、INSERT、DELETE 和 UPDATE 查詢)。
- 以秒為單位的總CPU使用量。
您將瞭解如何使用檢視 citus_stat_tenants
來進行明智的決策,以及如何設定功能以最符合您的應用程式。
注意
- 檢視上的權限 (
execute
,select
) 會授與角色pg_monitor
。
使用citus_stat_tenants監視您的頂級租使用者
當您啟用這項功能時,會針對 、、 UPDATE
DELETE
和 SELECT
等 INSERT
SQL 命令啟用會計。 此會計特別針對設計。single tenant
如果查詢規劃工具可以將查詢限制為單一分區或單一租使用者,則查詢限定為單一租用戶查詢。
您可以控制使用 citus.stat_tenants_limit
參數追蹤的租用戶數目。 此外,您也可以使用 citus.stat_tenants_period
來定義監視的時間值區。 一旦期間結束,其統計數據就會儲存在最後一個期間,為您提供持續和最後完成的測量期間。
注意
citus.stat_tenants_period 預設值為
60 seconds
。citus.stat_tenants_limit的預設值為
100
。
檢閱範例多租使用者應用程式以深入瞭解,以協助公司執行其廣告活動。
CREATE TABLE companies (company_id BIGSERIAL PRIMARY KEY, name TEXT);
SELECT create_distributed_table ('companies', 'company_id');
CREATE TABLE campaigns (id BIGSERIAL, company_id BIGINT, name TEXT, PRIMARY KEY (id, company_id));
SELECT create_distributed_table ('campaigns', 'company_id');
companies
和 campaigns
數據表都是在通用租用戶密鑰 company_id
上分區化。 您現在可以使用命令新增公司和廣告行銷活動資料:
INSERT INTO companies (company_id, name) VALUES (1, 'GigaMarket');
INSERT INTO campaigns (id, company_id, name) VALUES (1, 1, 'Crazy Wednesday'), (2, 1, 'Frozen Food Frenzy');
INSERT INTO campaigns (id, company_id, name) VALUES (3, 1, 'Spring Cleaning'), (4, 1, 'Bread&Butter');
INSERT INTO campaigns (id, company_id, name) VALUES (5, 1, 'Personal Care Refresh'), (6, 1, 'Lazy Lunch');
INSERT INTO companies (company_id, name) VALUES (2, 'White Bouquet Flowers');
INSERT INTO campaigns (id, company_id, name) VALUES (7, 2, 'Bonjour Begonia'), (8, 2, 'April Selection'), (9, 2, 'May Selection');
INSERT INTO companies (company_id, name) VALUES (3, 'Smart Pants Co.');
INSERT INTO campaigns (id, company_id, name) VALUES (10, 3, 'Short Shorts'), (11, 3, 'Tailors Cut');
INSERT INTO campaigns (id, company_id, name) VALUES (12, 3, 'Smarter Casual');
讓我們再執行一些 SELECT
查詢, UPDATE
並在執行個別命令時查看檢視的 citus_stat_tenants
變更。
SELECT COUNT(*) FROM campaigns WHERE company_id = 1;
count
-------
6
(1 row)
SELECT name FROM campaigns WHERE company_id = 2 AND name LIKE '%Selection';
name
-----------------
April Selection
May Selection
(2 rows)
UPDATE campaigns SET name = 'Tailor''s Cut' WHERE company_id = 3 AND name = 'Tailors Cut';
SELECT tenant_attribute,
read_count_in_this_period,
query_count_in_this_period,
cpu_usage_in_this_period
FROM citus_stat_tenants;
現在讓我們檢視中 citus_stat_tenants
擷取的結果集。 針對 tenant_attribute 1
,在此持續期間,執行了 5 個查詢,導致 CPU 使用量相對較低 0.000299。 此外,記錄了1個讀取計數。 我們在過去 60 秒內觀察到 3 個租使用者的查詢,結果集中顯示。 前 N 個租用戶的順序取決於 query_count_in_this_period
欄位。
tenant_attribute | read_count_in_this_period | query_count_in_this_period | cpu_usage_in_this_period
------------------+---------------------------+----------------------------+--------------------------
1 | 1 | 5 | 0.000299
3 | 0 | 3 | 0.000314
2 | 2 | 4 | 0.000295
(3 rows)
重要
追蹤租使用者層級統計數據會增加額外負荷,以及
by default is disabled
。設定citus.stat_tenants_track = 'all' 以啟用追蹤。
下一步
瞭解與多租用戶監視和重新平衡作用中租用戶相關的概念。