追蹤服務端點健康情況計量,並將其匯出至 Prometheus 和 Datadog
本文提供提供服務端點健康情況計量的概觀,並顯示如何使用計量匯出 API 將端點計量匯出至 Prometheus 和 Datadog。
端點健康情況計量會測量基礎結構和計量,例如延遲、要求率、錯誤率、CPU 使用量、記憶體使用量等。這會告訴您服務基礎結構的行為。
需求
對所需端點和個人存取權杖 (PAT) 的存取權,可在 Databricks Mosaic AI UI 中的 [設定] 中產生,以存取端點。
現有模型服務端點。 您可以透過使用下列命令檢查端點健康情況來驗證此情況:
curl -n -X GET -H "Authorization: Bearer [PAT]" https://[DATABRICKS_HOST]/api/2.0/serving-endpoints/[ENDPOINT_NAME]
驗證匯出計量 API:
curl -n -X GET -H "Authorization: Bearer [PAT]" https://[DATABRICKS_HOST]/api/2.0/serving-endpoints/[ENDPOINT_NAME]/metrics
服務端點計量定義
計量 | 描述 |
---|---|
延遲 (毫秒) | 擷取 Azure Databricks 內的中位數 (P50) 和第 99 個百分位數 (P99) 來回行程延遲時間。 這不包括額外的 Databricks 相關延遲,例如驗證和速率限制 |
要求率 (每秒) | 測量每秒處理的要求數目。 此速率的計算方式是總計一分鐘內的要求數目,再除以 60 (一分鐘內的秒數)。 |
要求錯誤率 (每秒) | 追蹤每秒 4xx 和 5xx HTTP 錯誤回應的速率。 與要求率類似,其計算方式是彙總一分鐘內失敗要求的數目總計,並除以 60。 |
CPU 使用量 (%) | 顯示所有伺服器複本的平均 CPU 使用率百分比。 在 Databricks 基礎結構的內容中,複本是指虛擬機器節點。 取決於您設定的並行設定,Databricks 會建立多個複本,以有效率地管理模型流量。 |
記憶體使用量 (%) | 顯示所有伺服器複本的平均記憶體使用量百分比。 |
佈建的並行 | 佈建的並行:系統可處理的平行要求數目上限。 佈建的並行會在計算擴增範圍的下限和上限內動態調整,以因應傳入流量而變化。 |
GPU 使用量 (%) | 表示 NVIDIA DCGM 匯出工具報告的平均 GPU 使用量。 如果執行個體類型有多個 GPU,則會個別追蹤每個 GPU (例如:gpu0 、gpu1 、…、gpuN )。 使用率是對所有伺服器複本求取平均值,且每分鐘取樣一次。
注意: 不常取樣表示此計量在常數負載下最精確。在服務端點的 [計量] 索引卷 標上,從 [服務 UI] 檢視此計量。 |
GPU 記憶體使用量 (%) | 根據 NVIDIA DCGM 匯出工具資料,指出每個 GPU 上已使用的框架緩衝區記憶體的平均百分比。 如同 GPU 使用量,此計量是對複本求取平均值,且每分鐘取樣一次。 在一致的負載條件下,這是最可靠的。 在您的服務端點的「度量」標籤中的「 頁籤」,從服務介面查看此度量。 |
Prometheus 整合
注意
無論您在實際執行環境中擁有哪種類型的部署,抓取組態都應該類似。
本節中的指導遵循 Prometheus 文件,以使用 docker 在本機啟動 Prometheus 服務。
編寫
yaml
設定檔並將其命名為prometheus.yml
。 以下是一個範例:global: scrape_interval: 1m scrape_timeout: 10s scrape_configs: - job_name: "prometheus" metrics_path: "/api/2.0/serving-endpoints/[ENDPOINT_NAME]/metrics" scheme: "https" authorization: type: "Bearer" credentials: "[PAT_TOKEN]" static_configs: - targets: ["dbc-741cfa95-12d1.dev.databricks.com"]
使用下列命令在本機啟動 Prometheus:
docker run \ -p 9090:9090 \ -v /path/to/prometheus.yml:/etc/prometheus/prometheus.yml \ prom/prometheus
瀏覽至
http://localhost:9090
以檢查您的本機 Prometheus 服務是否已啟動並執行。檢查 Prometheus 抓取器狀態,並偵錯錯誤:
http://localhost:9090/targets?search=
在目標完全啟動並執行後,您可以在 UI 中查詢提供的計量,例如
cpu_usage_percentage
或mem_usage_percentage
。
Datadog 整合
注意
此範例的初步設定是以免費版本為基礎。
Datadog 有各種代理程式,可部署在不同的環境中。 為了示範目的,下列命令會在本機啟動 Mac OS 代理程式,以抓取 Databricks 主機中的計量端點。 使用其他代理程式的設定應採用類似的模式。
註冊 datadog 帳戶。
在您的帳戶儀表板中安裝 OpenMetrics 整合,讓 Datadog 可以接受及處理 OpenMetrics 資料。
請遵循 Datadog 文件,以啟動並執行您的 Datadog 代理程式。 針對此範例,請使用 DMG 封裝選項來安裝所有內容,包括
launchctl
和datadog-agent
。找出您的 OpenMetrics 設定。 在此範例中,設定為
~/.datadog-agent/conf.d/openmetrics.d/conf.yaml.default
。 以下是範例設定yaml
檔案。instances: - openmetrics_endpoint: https://[DATABRICKS_HOST]/api/2.0/serving-endpoints/[ENDPOINT_NAME]/metrics metrics: - cpu_usage_percentage: name: cpu_usage_percentage type: gauge - mem_usage_percentage: name: mem_usage_percentage type: gauge - provisioned_concurrent_requests_total: name: provisioned_concurrent_requests_total type: gauge - request_4xx_count_total: name: request_4xx_count_total type: gauge - request_5xx_count_total: name: request_5xx_count_total type: gauge - request_count_total: name: request_count_total type: gauge - request_latency_ms: name: request_latency_ms type: histogram tag_by_endpoint: false send_distribution_buckets: true headers: Authorization: Bearer [PAT] Content-Type: application/openmetrics-text
使用
launchctl start com.datadoghq.agent
啟動 datadog 代理程式。每次您需要變更設定時,都需要重新啟動代理程式以挑選變更。
launchctl stop com.datadoghq.agent launchctl start com.datadoghq.agent
使用
datadog-agent health
檢查代理程式健全狀況。使用
datadog-agent status
檢查代理程式狀態。 您應該能夠看到類似下列形式的回應。 如果沒有,請使用錯誤訊息進行偵錯。 潛在問題可能是因為 PAT 權杖過期或 URL 不正確所致。openmetrics (2.2.2) ------------------- Instance ID: openmetrics: xxxxxxxxxxxxxxxx [OK] Configuration Source: file:/opt/datadog-agent/etc/conf.d/openmetrics.d/conf.yaml.default Total Runs: 1 Metric Samples: Last Run: 2, Total: 2 Events: Last Run: 0, Total: 0 Service Checks: Last Run: 1, Total: 1 Average Execution Time : 274ms Last Execution Date : 2022-09-21 23:00:41 PDT / 2022-09-22 06:00:41 UTC (xxxxxxxx) Last Successful Execution Date : 2022-09-21 23:00:41 PDT / 2022-09-22 06:00:41 UTC (xxxxxxx)
您也可以從 UI 中看到代理程式狀態:http://127.0.0.1:5002/。
如果您的代理程式已完全啟動並執行,您可以瀏覽回 Datadog 儀表板以查詢計量。 您也可以根據計量資料建立監視或警示:https://app.datadoghq.com/monitors/create/metric。