伴隨著 TiDB 6.0 的釋出,PingCAP Clinic 服務也揭開了她的面紗,提供 Tech Preview 版本給廣大使用者試用。 Clinic 服務源於 TiDB Cloud, 以智慧診斷提升 TiDB Cloud SLA ,以 AIOPS 方式降低 TiDB Cloud 成本;同時 Clinic 也會將 Cloud 中積累的診斷經驗、運維最佳實踐以診斷服務方式提供給本地部署的叢集,使所有的雲下使用者也從中受益。
本次釋出的 Tech Preview 版本,對本地部署的使用者提供了診斷資料的快速採集和診斷環境的線上復現,當 TiDB 叢集遇到問題,邀請 PingCAP 技術支援人員協助遠端定位時,或者在 AskTUG 社群提問時,通過 Clinic 服務採集並上傳診斷資料,將大大加快問題定位的速度。
Clinic 在 TiDB Cloud 中的應用
小吳是 TiDB Cloud 的技術工程師,在協助 TiDB Cloud 使用者進行 POC 時,需要實時關注客戶叢集的健康狀態和各種監控指標,根據客戶的業務壓力指標,推薦最優的叢集拓撲配置和資料庫引數配置;當使用者叢集出現異常時,及時分析並解決問題,保證叢集 SLA。
Clinic 診斷場景
小吳登入到 Clinic 診斷服務,可以快速查詢到使用者所在叢集的各個時間段的診斷資料。Clinic 將 TiDB Cloud 平臺上的日誌、監控指標等診斷資料實時匯出、安全儲存,並提供視覺化的展示。
除了基礎檢視以外,Clinic 還提供智慧分析。
智慧分析延遲問題
某個使用者抱怨這段時間的延遲突然變大了,小吳同學會很直覺地去找在系統哪個環節哪個例項中耗時更大,這似乎不是一件很難的事情,但是他需要在各個 Grafana 皮膚之間反覆橫跳地查詢瓶頸,並從中眾多節點中找出一個問題節點,這是一件費時費力並且考驗耐心的工作。 Clinic 診斷服務的智慧分析很貼心地直接為小吳準備好了結果如下:
在診斷延遲變大問題時,識別當前的負載型別也是一個重要的步驟。如果只是單單看讀寫的比例可能還好,但是如果要看哪個例項間的讀寫不平衡度呢?現在有些使用者叢集的 TiKV 例項已經達到數十甚至上百,想要分析這些例項上的讀寫不平衡,幾乎是一件不適宜人眼工作的事情。但對於機器來說,計算這些並不是一個難事,Clinic 會結合上述問題時間段(比如延遲升高時),給出這段時間內不平衡度與平時(基線資料)的區別。下圖是一個智慧分析輸出的例子:
從上圖的分析上可以看出,在問題時間段內,點讀請求和 coprocessor 讀請求比平時上升,小吳可以根據這個線索繼續定位。
智慧日誌聚類分析
小吳同學除了分析 Metrics ,也要對叢集日誌進行分析檢視。我們們 TiDB 叢集的日誌量是相當驚人的,元件再正交上例項,這個工作量也是非常大的。Clinic 提供智慧日誌聚類,幫助小吳同學在海量的日誌中快速發現問題。
日誌聚類將每個時間段內的不同日誌的趨勢以視覺化的方式展示,哪類日誌的數量發生了突變,哪個例項的日誌數量發生了突變,小吳同學一目瞭然,抓大放小,迅速聚焦到主要矛盾上。從下圖來看,當前時間段,TiDB 叢集處理最多的是紅框中的兩件事,數量佔比多的可以考慮優先排查。
TiDB Cloud 場景小結
Clinic 的智慧診斷還處於初級階段,在近期還會有更多的分析模型上線並應用到 TiDB Cloud 的診斷中,在實戰中不斷的訓練模型,輸出高準確率的問題判斷規則,提前發現叢集風險點,提高問題修復速度,從而不斷提升 TiDB Cloud 服務的 SLA。
<div class="is-flex is-flex-direction-row is-justify-content-center">
<div class="is-flex is-flex-direction-column">
<a target="_blank" class="button is-link mx-5"
href="https://tidbcloud.com/signup?utm_source=website-zh&utm_medium=referral&utm_campaign=blog-pingcap-clinic-service-tech-preview"
referrerpolicy="no-referrer-when-downgrade" style="background-color: #3a40e1;">
Try TiDB Cloud
</a>
<div style="font-size:12px; text-align:center">適用於中國出海企業和開發者</div>
</div>
<div class="is-flex is-flex-direction-column">
<a target="_blank" class="button is-link mx-5"
href="https://pingcap.com/zh/product-community/"
style="background-color: #4fc172;">
下載 TiDB 社群版
</a>
</div>
<div class="is-flex is-flex-direction-column">
<a target="_blank" class="button is-link mx-5"
href="https://pingcap.com/zh/contact#submit-form"
style="background-color: #3a40e1;">
諮詢 TiDB 企業版
</a>
</div>
</div>
Clinic 助力雲下本地部署叢集的問題診斷
Clinic 診斷服務在 TiDB Cloud 上為小吳帶來了巨大的幫助,我們把 Clinic 的功能也提供給本地部署的叢集,讓雲下叢集也能使用該功能進行問題診斷,這樣可以大大加速使用者問題的解決。
在 Tech Preview 階段,Clinic 中資料匯出、診斷環境重建的功能開放給了本地部署的叢集。當本地部署的TiDB叢集遇到問題,邀請 PingCAP 技術支援人員協助遠端定位時,或者在 AskTUG 社群提問時,通過 Clinic 服務採集並上傳診斷資料,將大大加快問題定位的速度。
注意:
Clinic 的智慧分析相關功能暫時未在 Tech Preview 階段開放給本地部署的叢集。我們需要在 TiDB Cloud 中做更多的資料訓練,當分析模型的準確度和計算成本都達到一定標準後,即會對雲下的叢集開放。
資料採集和上傳
小宇是 TiDB 叢集的 DBA,近期叢集接入了一個新的上層業務,叢集出現效能問題, 小宇向 PingCAP 技術支援上報了問題,期望能儘快得到優化的建議。
在以往的類似場景中,上報問題以後,PingCAP 技術支援會要求小宇上傳各種診斷資訊,小宇需要去叢集上手動執行多個複雜的命令,包括抓取各個節點的日誌檔案、使用 Metrics Tool 逐個 Dashboard 儲存資料等,一套採集、溝通和傳送資料,往往就花了大半天時間。如今 PingCAP 技術支援同學建議小宇使用 Clinic 的採集工具,只需要一條命令,快速完成資料採集,然後直接上傳資料分享給技術支援。
小宇執行一條簡單的命令,就能採集最近 2 小時的叢集各節點日誌、metrics、配置項、硬體引數資訊:
tiup diag collect ${cluster-name}
採集完成後,直接上傳至 Clinic 服務:
tiup diag upload ${filepath}
Clinic 的診斷環境復現
資料上傳後,小宇登入 Clinic,就能視覺化的檢視自己的診斷資料。將資料連結分享給 PingCAP 技術支援以後,PingCAP 技術專家也能立即檢視全面的診斷資料,加速問題定位。
檢視 Metrics
支援線上檢視 Metrics,提供多個 Grafana Dashboard 模板以方便檢視。
檢視日誌
支援線上檢視日誌,可以通過各種過濾條件高效檢視日誌。
檢視慢查詢
支援線上檢視慢查詢資訊,與在叢集內部的 TiDB Dashboard 上看到的資訊一致。
Clinic 的未來
Clinic 服務的釋出,代表 PingCAP 會在保證資料庫的健康執行方面持續地投入,Clinic 的最終願景是通過 TiDB Cloud 的技術積澱,整體提升雲上雲下 TiDB 叢集的穩定性,降低運維成本,讓資料庫的運維更簡單。
Clinic 服務後續發展的方向主要集中在這幾點:
- 雲上雲下兼顧:Clinic 服務始終堅持在雲上做技術沉澱,將雲上積累的經驗通過診斷服務、運維服務的方式提供給雲下叢集 ,讓所有部署型別的叢集都受益。
- AI for DB:Clinic 服務使用最新的 AI 技術,由資料庫領域專家和 AI 領域專家深入合作進行模型建立和訓練,最大限度地藉助 AI 能力進行問題預判、問題診斷和根因排查。
- 資料庫自治服務:Clinic 服務逐步實現資料庫自預判、自優化、自修復,以自治的方式替代人工運維操作,幫助使用者消除資料庫管理的複雜性及人工操作引發的服務故障,及時分析並解決問題,保證叢集穩定執行。