监控 Astra Trident
Astra Trident 提供了一组 Prometheus 指标端点,您可以使用这些端点监控 Astra Trident 的性能。
通过 Astra Trident 提供的指标,您可以执行以下操作:
-
保留有关 Astra Trident 运行状况和配置的选项卡。您可以检查操作的成功程度以及它是否能够按预期与后端进行通信。
-
检查后端使用情况信息,并了解在后端配置的卷数量以及占用的空间量等。
-
维护可用后端配置的卷数量的映射关系。
-
跟踪性能。您可以了解 Astra Trident 与后端通信并执行操作所需的时间。
|
默认情况下、Trident的指标会显示在目标端口上 8001 在上 /metrics 端点。安装 Trident 时,这些指标默认为 * 已启用 * 。
|
-
安装了 Astra Trident 的 Kubernetes 集群。
-
一个 Prometheus 实例。可以是 "容器化 Prometheus 部署" 或者,您也可以选择将 Prometheus 作为运行 "原生应用程序"。
第 1 步:定义 Prometheus 目标
您应定义一个 Prometheus 目标以收集指标并获取有关后端 Astra Trident 管理的信息,它创建的卷等。这 "博客" 介绍如何将 Prometheus 和 Grafana 与 Astra Trident 结合使用来检索指标。博客介绍了如何在 Kubernetes 集群中以操作员身份运行 Prometheus ,以及如何创建 ServiceMonitor 来获取 Astra Trident 的指标。
第 2 步:创建 Prometheus ServiceMonitor
要使用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 现在已配置为了解 Astra Trident 的指标。
除了直接从Astra Trident获得的指标之外、kubelet还公开了许多指标 kubelet_volume_*
通过自己的指标端点查看指标。Kubelet 可以提供有关已连接的卷, Pod 及其处理的其他内部操作的信息。请参见 "此处"。
第 3 步:使用 PromQL 查询 Trident 指标
PromQL 非常适合创建返回时间序列或表格数据的表达式。
您可以使用以下 PromQL 查询:
获取 Trident 运行状况信息
-
来自 Astra 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
-
通过状态代码来自 Astra Trident 的 REST 响应的百分比
(sum (trident_rest_ops_seconds_total_count) by (status_code) / scalar (sum (trident_rest_ops_seconds_total_count))) * 100
-
* 由 Astra Trident 执行的操作的平均持续时间(毫秒) *
sum by (operation) (trident_operation_duration_milliseconds_sum{success="true"}) / sum by (operation) (trident_operation_duration_milliseconds_count{success="true"})
获取 Astra 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
了解有关 Astra Trident AutoSupport 遥测的信息
默认情况下, Astra Trident 会按每日节奏向 NetApp 发送 Prometheus 指标和基本后端信息。
-
要阻止Astra Trident向NetApp发送Prometheus指标和基本后端信息、请传递
--silence-autosupport
在Astra Trident安装期间标记。 -
Astra Trident还可以根据需要将容器日志发送到NetApp支持部门
tridentctl send autosupport
。您需要触发 Astra Trident 以上传其日志。在提交日志之前,您应接受 NetApp 的https://www.netapp.com/company/legal/privacy-policy/["隐私政策"^]。 -
除非另有说明,否则 Astra Trident 会从过去 24 小时提取日志。
-
您可以使用指定日志保留时间范围
--since
标志。例如:tridentctl send autosupport --since=1h
。此信息通过收集和发送trident-autosupport
与Astra Trident一起安装的容器。您可以从获取容器映像 "Trident AutoSupport"。 -
Trident AutoSupport 不会收集或传输个人身份信息( PiII )或个人信息。它附带的 "EULA" 不适用于三端存储容器映像本身。您可以详细了解NetApp对数据安全和信任的承诺 "此处"。
Astra 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
。
禁用 Astra Trident 指标
要*禁止报告指标、应使用生成自定义YAML --generate-custom-yaml
标志)并对其进行编辑以删除 --metrics
用于调用的标志 `trident-main`容器。