Tridentの監視
Tridentには、Tridentのパフォーマンスの監視に使用できるPrometheus指標エンドポイントのセットが用意されています。
概要
Tridentの指標を使用すると、次のことを実行できます。
-
Tridentの健全性と設定を常に確認しておきます。処理が成功した方法と、想定どおりにバックエンドと通信できるかどうかを調べることができます。
-
バックエンドの使用状況の情報を調べて、バックエンドでプロビジョニングされているボリュームの数や消費されているスペースなどを確認します。
-
利用可能なバックエンドにプロビジョニングされたボリュームの量のマッピングを維持します。
-
パフォーマンスを追跡する。Tridentがバックエンドと通信して処理を実行するのにかかる時間を確認できます。
デフォルトでは 'Trident のメトリックは '/metrics エンドポイントのターゲットポート 8001' に公開されていますこれらの指標は、 Trident のインストール時にデフォルトで * 有効になります。 |
-
TridentがインストールされたKubernetesクラスタ。
-
Prometheus インスタンス。これは a である場合もある "コンテナ化された Prometheus 環境" または、 Prometheus をとして実行することもできます "ネイティブアプリケーション"。
手順 1 : Prometheus ターゲットを定義する
Prometheusターゲットを定義して、指標を収集し、Tridentが管理するバックエンドや作成するボリュームなどに関する情報を取得する必要があります。ここで "ブログ"は、PrometheusとGrafanaをTridentで使用して指標を取得する方法について説明します。このブログでは、KubernetesクラスタでPrometheusをオペレータとして実行する方法と、Trident指標を取得するためのServiceMonitorの作成について説明しています。
手順 2 : Prometheus ServiceMonitor を作成します
Trident のメトリックを使用するには、「 trident-csi 」サービスを監視し、「 m etrics 」ポートを監視する Prometheus ServiceMonitor を作成する必要があります。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の指標を認識するように設定されました。
Kubeletは、Tridentから直接利用できるメトリクスに加えて、独自のメトリクスエンドポイントを介して多くのメトリクスを公開して `kubelet_volume_*`います。Kubelet では、接続されているボリュームに関する情報、およびポッドと、それが処理するその他の内部処理を確認できます。を参照してください "こちらをご覧ください"。
ステップ 3 : PrompQL を使用して Trident 指標を照会する
PrompQL は、時系列データまたは表データを返す式を作成するのに適しています。
次に、 PrompQL クエリーのいくつかを示します。
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はPrometheus指標と基本的なバックエンド情報を1日おきにNetAppに送信します。
-
TridentからNetAppへのPrometheus指標と基本的なバックエンド情報の送信を停止するには、Tridentのインストール時にフラグを渡し `--silence-autosupport`ます。
-
Tridentは、経由でコンテナログをNetAppサポートにオンデマンドで送信することもできます
tridentctl send autosupport
。ログをアップロードするには、Tridentをトリガーする必要があります。ログを送信する前に、NetAppを承認する必要がありますhttps://www.netapp.com/company/legal/privacy-policy/["プライバシーポリシー"^]。 -
指定されていない場合、Tridentは過去24時間のログをフェッチします。
-
フラグを使用してログの保持期間を指定できます
--since
。例:tridentctl send autosupport --since=1h
。この情報は、Tridentと一緒にインストールされたコンテナを介して収集および送信され `trident-autosupport`ます。コンテナイメージはから入手できます "Trident AutoSupport の略"。 -
Trident AutoSupport は、個人情報( PII )や個人情報を収集または送信しません。Tridentコンテナイメージ自体には適用されないが付属して "EULA" います。データのセキュリティと信頼に対するネットアップの取り組みについて詳しくは、こちらをご覧 "こちらをご覧ください"ください。
Tridentによって送信されるペイロードの例は次のようになります。
--- items: - backendUUID: ff3852e1-18a5-4df4-b2d3-f59f829627ed protocol: file config: version: 1 storageDriverName: ontap-nas debug: false debugTraceFlags: disableDelete: false serialNumbers: - nwkvzfanek_SN limitVolumeSize: '' state: online online: true
-
AutoSupport メッセージは、ネットアップの AutoSupport エンドポイントに送信されます。プライベートレジストリを使用してコンテナイメージを格納している場合は '--image_registry' フラグを使用できます
-
インストール YAML ファイルを生成してプロキシ URL を設定することもできます。これは 'tridentctl install --generate-custom-yaml を使用して YAML ファイルを作成し 'trident-deployment.yaml の trident-autosupport コンテナに --proxy-url 引数を追加することによって実行できます
Trident指標を無効にする
-
メトリックがレポートされないようにするには '--generate-custom-yaml' フラグを使用してカスタム YAML を生成し ' これらを編集して 'trident-main' コンテナに対して --metrics フラグが呼び出されないようにします