Skip to main content
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

監視Trident

貢獻者 netapp-aruldeepa

Trident提供了一組 Prometheus 指標端點,您可以使用這些端點來監控Trident 的效能。

概況

Trident提供的指標讓您可以執行以下操作:

  • 密切注意 Trident 的健康狀況和配置。您可以檢查操作是否成功,以及是否能如預期與後端通訊。

  • 檢查後端使用資訊,了解後端配置了多少磁碟區、消耗了多少空間等等。

  • 維護可用後端已配置卷量的映射表。

  • 賽道表現。您可以查看Trident與後端通訊和執行作業所需的時間。

註 預設情況下,Trident 的指標會暴露在目標連接埠上。 `8001`在 `/metrics`端點。安裝Trident時,這些指標*預設為啟用*。
你需要什麼

步驟 1:定義 Prometheus 目標

您應該定義一個 Prometheus 目標來收集指標並獲取有關Trident管理的後端、它創建的捲等的資訊。這 "部落格"解釋如何將 Prometheus 和 Grafana 與Trident結合使用來檢索指標。這篇部落格解釋瞭如何在 Kubernetes 叢集中以 Operator 的形式運行 Prometheus,以及如何建立 ServiceMonitor 來取得Trident指標。

步驟 2:建立 Prometheus 服務監視器

要使用Trident指標,您應該建立一個 Prometheus ServiceMonitor 來監視 `trident-csi`服務和監聽 `metrics`港口。一個範例 ServiceMonitor 如下所示:

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: trident-sm
  namespace: monitoring
  labels:
    release: prom-operator
spec:
  jobLabel: trident
  selector:
    matchLabels:
      app: controller.csi.trident.netapp.io
  namespaceSelector:
    matchNames:
      - trident
  endpoints:
    - port: metrics
      interval: 15s

此 ServiceMonitor 定義擷取由下列方式傳回的指標: `trident-csi`服務,特別是尋找 `metrics`服務的端點。因此,Prometheus 現在已配置為能夠理解 Trident 的指標。

除了Trident直接提供的指標外,kubelet 還公開了許多其他指標。 `kubelet_volume_*`透過其自身的指標端點獲取指標。 Kubelet 可以提供有關已附加磁碟區、Pod 以及它處理的其他內部操作的資訊。參考 "這裡"

步驟 3:使用 PromQL 查詢Trident指標

PromQL 非常適合建立返回時間序列或表格資料的表達式。

以下是您可以使用的 PromQL 查詢:

獲取Trident健康資訊

  • Trident伺服器 HTTP 2XX 回應的百分比

(sum (trident_rest_ops_seconds_total_count{status_code=~"2.."} OR on() vector(0)) / sum (trident_rest_ops_seconds_total_count)) * 100
  • Trident REST 回應狀態碼百分比

(sum (trident_rest_ops_seconds_total_count) by (status_code)  / scalar (sum (trident_rest_ops_seconds_total_count))) * 100
  • Trident執行操作的平均持續時間(毫秒)

sum by (operation) (trident_operation_duration_milliseconds_sum{success="true"}) / sum by (operation) (trident_operation_duration_milliseconds_count{success="true"})

獲取Trident使用信息

  • 平均體積大小

trident_volume_allocated_bytes/trident_volume_count
  • 各後端分配的總儲存空間

sum (trident_volume_allocated_bytes) by (backend_uuid)

取得個人用量

註 只有同時收集 kubelet 指標時,此功能才會啟用。
  • 各卷冊的空間利用率

kubelet_volume_stats_used_bytes / kubelet_volume_stats_capacity_bytes * 100

了解Trident AutoSupport遙測技術

預設情況下, Trident每天向NetApp發送 Prometheus 指標和基本後端資訊。

  • 若要阻止Trident向NetApp發送 Prometheus 指標和基本後端訊息,請傳遞以下參數: `--silence-autosupport`在Trident安裝過程中發出警報。

  • Trident也可以按需透過以下方式將容器日誌傳送給NetApp支援: tridentctl send autosupport 。您需要觸發Trident上傳其日誌。在提交日誌之前,您應該接受 NetApp 的條款。https://www.netapp.com/company/legal/privacy-policy/["隱私權政策"^] 。

  • 除非另有說明, Trident會取得過去 24 小時的日誌。

  • 您可以使用以下方式指定日誌保留時間範圍: --since`旗幟。例如: `tridentctl send autosupport --since=1h 。這些資訊透過以下方式收集和發送: `trident-autosupport`與Trident一起安裝的容器。您可以從以下位置取得容器鏡像: "Trident AutoSupport"

  • Trident AutoSupport不會收集或傳輸個人識別資訊 (PII) 或個人資訊。它附帶一個 "最終用戶許可協議"這並不適用於Trident容器鏡像本身。您可以了解更多關於NetApp對資料安全和信任的承諾。 "這裡"

Trident發送的有效載荷範例如下所示:

---
items:
  - backendUUID: ff3852e1-18a5-4df4-b2d3-f59f829627ed
    protocol: file
    config:
      version: 1
      storageDriverName: ontap-nas
      debug: false
      debugTraceFlags: null
      disableDelete: false
      serialNumbers:
        - nwkvzfanek_SN
      limitVolumeSize: ""
    state: online
    online: true
  • AutoSupport訊息會傳送到 NetApp 的AutoSupport端點。如果您使用私有鏡像倉庫來存放容器鏡像,則可以使用 `--image-registry`旗幟。

  • 您也可以透過產生安裝 YAML 檔案來設定代理 URL。這可以透過使用 tridentctl install --generate-custom-yaml`建立 YAML 檔案並新增 `--proxy-url`論證 `trident-autosupport`容器 `trident-deployment.yaml

禁用Trident指標

若要停用指標報告,您應該產生自訂 YAML 檔案(使用下列方式): `--generate-custom-yaml`標記)並編輯它們以刪除 `--metrics`阻止對 `trident-main`容器。