

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 儀表板的最佳實務
<a name="v10-dash-bestpractices"></a>

****  
本文件主題專為支援 Grafana **10.x 版的 Grafana** 工作區而設計。  
如需支援 Grafana 9.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 9 版](using-grafana-v9.md)。  
如需支援 Grafana 8.x 版的 Grafana 工作區，請參閱 [使用 Grafana 第 8 版](using-grafana-v8.md)。

本節提供 Grafana 管理員和使用者如何建置和維護 Grafana 儀表板的最佳實務的相關資訊。

如需有關您可以建立的不同儀表板類型的資訊，請參閱 [Grafana 儀表板：您可以在 Grafana 實驗室網站上建立部落格文章的所有不同類型的完整指南](https://grafana.com/blog/2022/06/06/grafana-dashboards-a-complete-guide-to-all-the-different-types-you-can-build/?pg=webinar-getting-started-with-grafana-dashboard-design-amer&plcmt=related-content-1)。

**注意**  
本節可協助您建立監控和儀表板維護的策略。您最了解您的系統，並應使用本節來引導您的理解。最後，您有責任為您的系統建立最佳策略。

## 常見的可觀測性策略
<a name="v10-dash-common-observability-strategies"></a>

當您有許多監控項目時，例如伺服器陣列，您需要策略來決定要監控的重要項目。此頁面說明數種常用方法來選擇要監控的內容。

邏輯策略可讓您更輕鬆地建立統一儀表板並擴展可觀測性平台。

**策略的指導方針**
+ USE 方法會告訴您機器的滿意程度，RED 方法會告訴您的使用者滿意程度。
+ 問題原因的使用報告。
+ RED 報告使用者體驗，更有可能報告問題症狀。
+ 監控兩者對於了解您的系統至關重要。最佳實務是提醒症狀，而不是原因。一般而言，警示是在 RED 儀表板上設定。

**使用方法**

USE 代表：
+ **使用率** – 資源忙碌的時間百分比，例如節點 CPU 用量。
+ **飽和度** – 資源必須執行的工作量，通常是佇列長度或節點負載。
+ **錯誤** – 錯誤事件的計數。

此方法最適合用於基礎設施中的硬體資源，例如 CPU、記憶體和網路裝置。如需詳細資訊，請參閱 Brendan Gregg 的部落格文章[「使用方法](http://www.brendangregg.com/usemethod.html)」。

**RED 方法**

RED 代表：
+ **速率** – 每秒請求數
+ **錯誤** – 失敗的請求數量。
+ **持續時間** – 這些請求所花費的時間、延遲測量的分佈。

此方法最適用於 服務，尤其是微服務環境。對於每個服務，檢測程式碼以公開每個元件的這些指標。RED 儀表板適用於提醒和 SLAs。精心設計的 RED 儀表板是使用者體驗的代理。

如需詳細資訊，請參閱 Tom Wilkie 的部落格文章 [RED 方法：如何檢測您的服務](https://grafana.com/blog/2018/08/02/the-red-method-how-to-instrument-your-services)。

**四種黃金訊號**

根據 [Google SRE 手冊](https://landing.google.com/sre/sre-book/chapters/monitoring-distributed-systems/#xref_monitoring_golden-signals)，如果您只能測量使用者面向系統的四個指標，請專注於這四個指標。

此方法類似於 RED 方法，但包含飽和度。
+ **延遲** – 處理請求所需的時間。
+ **流量** – 對系統的需求量。
+ **錯誤** – 失敗的請求率。
+ **飽和度** – 您的系統有多完整，

## 儀表板管理成熟度模型
<a name="v10-dash-management-maturity-model"></a>

*儀表板管理成熟度*是指儀表板生態系統設計和效率的良好程度。我們建議您定期檢閱儀表板設定，以衡量您的所在位置以及如何改進。

廣義而言，儀表板成熟度可以定義為低、中或高。

 本主題的大部分內容都取自 KubeCon 2019 對話 [Fool-Proof Kubernetes Dashboards for Sleep-Deprived Oncalls](https://www.youtube.com/watch?v=YE2aQFiMGfY)。

**低 – 預設狀態**

在此階段，您沒有一致的儀表板管理策略。幾乎每個人都從這裡開始。

如何告訴您在這裡？
+ 每個人都可以修改您的儀表板。
+ 大量複製的儀表板，很少或不會重複使用儀表板。
+ 永遠環繞的一次性儀表板。
+ 無版本控制 （版本控制中的儀表板 JSON)。
+ 大量瀏覽儀表板，搜尋正確的儀表板。這表示許多浪費時間嘗試尋找您需要的儀表板。
+ 沒有任何提醒可引導您前往正確的儀表板。

**中 – 系統化儀表板**

在此階段，您開始透過系統化儀表板來管理儀表板的使用。您可能已制定策略，但有一些可以改善的事項。

 如何告訴您在這裡？ 
+ 使用範本變數防止擴展。例如，每個節點不需要單獨的儀表板，您可以使用查詢變數。更好的是，您也可以讓資料來源成為範本變數，因此您可以在不同的叢集間重複使用相同的儀表板並監控後端。

  如需想法[Variables](v10-dash-variables.md)，請參閱 中的範例清單。
+ 根據[可觀測性策略](#v10-dash-common-observability-strategies)的邏輯儀表板。
+ 具有向下切入至下一個層級的階層式儀表板。
+ 儀表板設計反映服務階層。例如，您可以使用 RED 方法，每個服務一列。當您向下捲動儀表板時，資料列順序可以反映資料流程。
+ 比較類似：當大小不同時分割服務儀表板。確保彙總指標不會耗盡重要資訊。
+ 有意義地使用顏色和可正常化軸的表達式圖表。
  + 有意義的顏色範例：藍色表示很好，紅色表示不好。[閾值](v10-panels-configure-thresholds.md)可以提供幫助。
  + 標準化軸的範例：比較 CPU 用量時，請依據百分比而非原始數字進行測量，因為機器的核心數量可能不同。依核心數量標準化 CPU 用量可減少認知負載，因為檢視器可以信任 100% 使用所有核心，而不必知道 CPUs 數量。
+ 導向瀏覽可減少猜測。
  + 範本變數可讓您更難隨機或無瞄準地瀏覽。
  + 大多數儀表板都應該透過提醒連結到 。
  + 瀏覽以連結為導向。如需詳細資訊，請參閱[管理儀表板連結](v10-dash-manage-dashboard-links.md)。
+  版本控制的儀表板 JSON。

**高 – 最佳化使用**

在此階段，您已使用一致且周到的策略最佳化儀表板管理使用。它需要維護，但結果值得。
+ 主動減少擴展。
  + 定期檢閱現有的儀表板，以確保它們仍然相關。
  + 只有已新增至主儀表板清單的已核准儀表板。
  + 追蹤儀表板的使用。您可以利用[用量洞察](v10-dash-assess-dashboard-usage.md)。
+ 設計一致性。
+ 使用指令碼程式庫來產生儀表板，確保模式和樣式的一致性。
  + grafonnet (Jsonnet)
  + grafanalib (Python)
+ 在瀏覽器中不編輯。儀表板檢視器會使用變數變更檢視。
+ 瀏覽儀表板是例外狀況，而非規則。
+ 在專用的個別 Grafana 執行個體中執行實驗和測試，而非您的生產執行個體。當測試環境中的儀表板證實有用時，請將該儀表板新增至您的主要 Grafana 執行個體。

## 建立儀表板的最佳實務
<a name="v10-dash-best-practices-for-creating-dashboards"></a>

本節概述建立 Grafana 儀表板時應遵循的一些最佳實務。

**開始之前**

 以下是建立儀表板之前需要考慮的一些原則。

**儀表板應告知案例或回答問題**

您使用儀表板嘗試說什麼故事？ 嘗試建立資料的邏輯進展，例如大型到小型或一般到特定。此儀表板的目標是什麼？ （提示：如果儀表板沒有目標，請詢問自己是否真的需要儀表板。)

讓您的圖形保持簡單，並專注於回答您詢問的問題。例如，如果您的問題是「哪些伺服器有問題？」，則可能不需要顯示所有伺服器資料。只要顯示有問題的資料即可。

**儀表板應該減少認知負載，而不是新增到其中**

*認知負載*基本上是您需要多努力思考才能找出答案。讓您的儀表板易於解譯。其他使用者和未來您 （當您嘗試在2AM 點找出中斷的情況時） 將會非常感謝。

 問問自己：
+ 我是否可以知道每個圖形的確切代表什麼？ 這是顯而易見的，還是必須考慮？
+ 如果我向其他人展示此項目，他們需要多長時間才能找出答案？ 它們是否會遺失？

**制定監控策略**

建立新儀表板很容易。最佳化儀表板建立並遵循計劃較困難，但值得。此策略應同時控管您的整體儀表板結構描述，並在個別儀表板設計中強制執行一致性。

如需詳細資訊，請參閱[常見可觀測性策略](#v10-dash-common-observability-strategies)和[儀表板管理成熟度層級](#v10-dash-management-maturity-model)。

**將其寫下來**

制定策略或設計指導方針後，請將其寫下來，以協助隨著時間維持一致性。

**要遵循的最佳實務**
+ 建立新的儀表板時，請確定它具有有意義的名稱。
  + 如果您要建立儀表板來播放或實驗，請將 字`TEST`或 放在名稱`TMP`中。
  + 考慮在儀表板名稱或標籤中包含您的姓名或首字母，以便人們知道誰擁有儀表板。
  + 當您完成臨時實驗儀表板時，請將其移除。
+ 如果您建立許多相關的儀表板，請考慮如何交叉參考它們，以便於導覽。如需詳細資訊，請參閱本節稍後[管理儀表板的最佳實務](#v10-dash-best-practices-for-managing-dashboards)。
+ Grafana 從資料來源擷取資料。一般而言，了解 [連線至資料來源](AMG-data-sources.md) 和您的特定資料來源非常重要。
+ 避免不必要的儀表板重新整理，以減少網路或後端的負載。例如，如果您的資料每小時變更一次，則不需要將儀表板重新整理率設定為 30 秒。
+ 顯示具有不同單位或範圍的時間序列時，請使用左右 Y 軸。
+ 將文件新增至儀表板和面板。
  + 若要將文件新增至儀表板，請將[文字面板視覺化](v10-panels-text.md)新增至儀表板。記錄像是儀表板用途、實用資源連結，以及使用者與儀表板互動時可能需要的任何指示。
  + 若要將文件新增至面板，請編輯面板設定並新增描述。如果您將游標停留`i`在面板左上角的小型 上，您新增的任何文字都會顯示。
+ 重複使用您的儀表板，並使用[範本和變數](v10-dash-variables.md)強制執行一致性。
+ 請小心堆疊圖形資料。視覺效果可能會誤導，並隱藏重要資料。在大多數情況下，我們建議將其關閉。

## 管理儀表板的最佳實務
<a name="v10-dash-best-practices-for-managing-dashboards"></a>

 此頁面概述管理 Grafana 儀表板時應遵循的一些最佳實務。

**開始之前**

以下是開始管理儀表板之前需要考慮的一些原則。

**策略可觀測性**

有幾種[常見的可觀測性策略](#v10-dash-common-observability-strategies)。您應該研究它們，並決定其中之一是否適用於您，或是您想要自行提出。無論哪種方式，都要有計劃，將其寫下來，並堅持下去。

視需要調整您的策略以變更需求。

**成熟度層級**

您的儀表板成熟度層級為何？ 分析您目前的儀表板設定，並將其與[儀表板管理成熟度模型](#v10-dash-management-maturity-model)進行比較。了解您的所在位置可協助您決定如何到達您想要的位置。

**要遵循的最佳實務**
+ 避免儀表板擴散，這表示儀表板的不受控制成長。儀表板擴散會對尋找正確儀表板的時間產生負面影響。複製儀表板和變更「一個物件」（更差：保留原始標籤） 是最簡單的方式。
  + 定期檢閱儀表板並移除不必要的儀表板。
  + 如果您建立暫時儀表板，或許是為了測試某些項目，請在名稱前加上 `TEST:`。完成時刪除儀表板。
+ 複製沒有重大變更的儀表板並非好主意。
  + 您錯過原始儀表板的更新，例如文件變更、錯誤修正或指標的新增。
  + 在許多情況下，系統會製作複本，透過設定範本參數來自訂檢視。這應該改為透過維護主儀表板的連結，並使用 [URL 參數](v10-panels-configure-data-links.md#v10-panels-data-link-variables)自訂檢視來完成。
+ 當您必須複製儀表板時，請明確重新命名儀表板，*不要*複製儀表板標籤。標籤是搜尋期間使用的儀表板的重要中繼資料。複製標籤可能會導致錯誤相符。
+ 維護儀表板或交叉參考儀表板的儀表板。這可以透過幾種方式完成：
  + 建立儀表板連結、面板或資料連結。連結可以移至其他儀表板或外部系統。如需詳細資訊，請參閱[管理儀表板連結](v10-dash-manage-dashboard-links.md)。
  +  新增[儀表板清單面板](v10-panels-dashboard-list.md)。然後，您可以透過執行標籤或資料夾搜尋來自訂看到的內容。
  + 新增[文字面板](v10-panels-dashboard-list.md)並使用 Markdown 來自訂顯示。