SaltStack Config 公開了多個可用於監控和診斷的系統度量。這些度量在 SaltStack Config 使用者介面儀表板上以圖形形式提供,而使用 /metrics
http 端點時則以機器可讀的形式提供。
此頁面說明了可用的度量以及如何將第三方工具連線至 SaltStack Config 以擷取度量資料。如需有關在 SaltStack Config 使用者介面中使用儀表板視覺化報告的詳細資訊,請參閱〈儀表板〉。
機器可讀的度量
SaltStack Config 將以 OpenMetrics 文字型格式匯出系統度量。Prometheus 以及其他監控和警示工具可直接使用此格式。如需詳細資訊,請參閱將 Prometheus 設定為連線至 SaltStack Config。
SaltStack Config 度量組態
系統度量收集的組態包括 /etc/raas/raas
組態檔中的以下設定。將顯示預設值。
# System metrics settings metrics: enabled: true # If True, enable the collection of system metrics prometheus: false # If True, enable the Prometheus endpoint at /metrics prometheus_username: # Static username for retrieving /metrics prometheus_password: # Static password for retrieving /metrics snapshot_interval: 60 # How often to record snapshot metrics, in seconds max_query_timedelta: 86400 # Maximum timedelta for a single call to get_system_metrics, in seconds keep: 30 # How long to retain metrics data, in days
下列設定用於控制機器可讀系統度量的處理:
- 若要停用度量收集,請設定
enabled:false
。請注意,這也將停用 SaltStack Config 內建儀表板。 - 若要啟用從
/metrics
http 端點匯出機器可讀的度量,請設定prometheus:true
。此設定不會影響 SaltStack Config 內建儀表板。 - 對
/metrics
http 端點的存取權將透過 http 基本驗證進行控制,該驗證使用在prometheus_username
和prometheus_password
中設定的認證。這些設定需要非空白值,才能啟用/metrics
端點。這些認證僅儲存在/etc/raas/raas
組態檔中,不與任何 SaltStack Config 帳戶相關聯,並且無法用於向 SaltStack Config 進行驗證 (除了用於存取/metrics
http 端點外)。
上述其他設定與 SaltStack Config 內建儀表板相關,不會影響機器可讀系統度量的收集或報告。尤其是,snapshot_interval
設定用於確定記錄度量以在儀表板上顯示的頻率 (以秒為單位),而 keep
設定用於確定度量資料在整理之前將保留在資料庫中的時間長度 (以天為單位)。
雖然 /metrics
http 端點是從 SaltStack Config 收集機器可讀度量資料的建議方法,但您可以使用 API (RaaS) 擷取內建儀表板上顯示的資料。透過 stats.get_system_metrics()
API 呼叫,可依度量名稱、來源和日期範圍查詢度量資料。組態項目 max_query_timedelta
限制了 SaltStack Config 將從單一 API 呼叫傳回的資料數量。若要從較長的時間範圍取得度量資料,您可以使用不同的開始日期和結束日期執行多次 API 呼叫。
Salt 主節點度量組態
某些度量的可用性取決於已連線至 SaltStack Config 的 Salt 主節點的組態:
- 只有在 Salt 主節點上設定了
sseapi
傳回程式時,有關 Salt 事件和工作傳回資料的度量才會準確無誤。如果使用sse_pgjsonb
(導向至資料庫) 傳回程式,度量收集將無法正常運作。 - SaltStack Config 將從組態中已設定
master_stats:true
的 Salt 主節點收集低層級函數執行階段資訊。此選項預設為停用。如需詳細資料,請參閱 Salt 說明文件中的 master_stats。
- 只有在 Salt 主節點外掛程式中啟用工作完成引擎時,有關 salt 工作狀態的度量才會準確無誤:
engines: -jobcompletion:{}
此引擎在 Salt 主節點外掛程式預設組態中已啟用。
將 Prometheus 設定為連線至 SaltStack Config
可支援 Prometheus 伺服器從 SaltStack Config 抓取度量,方法是將 scrape_configs
工作新增至您擁有的每個 API (RaaS) 伺服器執行個體的 Prometheus 組態 (通常為 prometheus.yml
):
scrape_configs: - job_name: 'sse' metrics_path: '/metrics' scheme: 'http' static_configs: - targets: ['localhost:8080'] basic_auth: username: prometheus password: metrics
Prometheus 組態中的認證應與 /etc/raas/raas
組態檔中指定的 prometheus_username
和 prometheus_password
相符,如上所述。
如需有關設定抓取目標的詳細資訊和其他 Prometheus 組態主題,請參閱 Prometheus 專案說明文件。
度量說明
SaltStack Config 匯出的機器可讀度量分為多個類別:
類別 | 度量名稱 | 度量類型 | 標籤 | 說明 |
---|---|---|---|---|
Salt 主節點低層級度量 | salt_event_size_bytes |
長條圖 | master_id |
Salt 事件大小 (以位元組為單位) |
salt_master_cmd_duration_seconds |
長條圖 | master_id 、cmd |
Salt 主節點命令持續時間 (以秒為單位)。只有在 Salt 主節點上設定了 master_stats 時才進行報告。 |
|
Salt 主節點外掛程式度量 | raas_master_commands_processed |
計數器 | master_id |
已處理的 SSE 命令數 |
raas_master_master_grains_pushed |
計數器 | master_id |
已推送至 SaltStack Config 的 Salt 主節點粒紋更新數 | |
raas_master_minion_keys_pushed |
計數器 | master_id |
已推送至 SaltStack Config 的部屬節點金鑰狀態更新數 | |
raas_master_minion_cached_pushed |
計數器 | master_id |
已推送至 SaltStack Config 的部屬節點快取更新數 | |
raas_master_masterfs_pushed |
計數器 | master_id |
已推送至 SaltStack Config 的 MasterFS 更新數 | |
raas_master_sseapi_engine_iteration_seconds |
長條圖 | master_id |
API (RaaS) 引擎反覆運算持續時間 (以秒為單位) | |
伺服器度量 | redis_commands_executed |
計數器 | redis_instance |
已執行的 Redis 命令數目 (系統快取) |
redis_memory_bytes |
量表 | redis_instance |
Redis 記憶體使用量 (系統快取) | |
celery_tasks_queued |
計數器 | raas_instance 、task |
已排入佇列的 Celery 工作數目 (背景工作) | |
celery_tasks_executed |
計數器 | raas_instance 、task |
已執行的 Celery 工作數目 (背景工作) | |
celery_queue_length |
量表 | raas_instance |
Celery 佇列長度 (正在等待的背景工作) | |
raas_rpc_request_duration_seconds |
長條圖 | raas_instance |
SSE RPC API 呼叫持續時間 (以秒為單位) | |
PostgreSQL 度量 | postgres_connections |
量表 | postgres_instance |
Postgres 連線數目 |
postgres_transactions |
計數器 | postgres_instance |
已承諾的 Postgres 交易數目 | |
postgres_rows_read |
計數器 | postgres_instance |
讀取的 Postgres 資料列數目 | |
postgres_rows_inserted |
計數器 | postgres_instance |
插入的 Postgres 資料列數目 | |
postgres_rows_updated |
計數器 | postgres_instance |
更新的 Postgres 資料列數目 | |
postgres_rows_deleted |
計數器 | postgres_instance |
刪除的 Postgres 資料列數目 | |
系統度量 | sse_jobs_in_progress |
計數器 | 無 | 進行中的 SaltStack Config 工作數目 |
sse_jobs_complete_all_successful |
計數器 | 無 | 已完成且全部成功傳回的 SaltStack Config 工作數目 | |
sse_jobs_complete_missing_returns |
計數器 | 無 | 已完成但有一或多個錯過傳回的 SaltStack Config 工作數目 | |
sse_jobs_complete_with_errors |
計數器 | 無 | 已完成但出現一或多個錯誤的 SaltStack Config 工作數目 | |
sse_masters |
量表 | 無 | SaltStack Config 中的 Salt 主節點總計 | |
sse_minions |
量表 | 無 | SaltStack Config 中的部屬節點總計 | |
sse_minions_present |
量表 | master_id |
在設定的時間限制 raas_presence_expiration 內存在的部屬節點數目 |
|
sse_minions_lost |
量表 | master_id |
在時間限制內不存在的部屬節點數目 | |
sse_minions_unknown |
量表 | master_id |
未知部屬節點 (從未存在) 數目 | |
sse_users_authenticated |
量表 | 無 | 向 SaltStack Config 進行驗證的使用者數目 |