Monitor Trident
Trident fornisce un set di endpoint di misurazione Prometheus che è possibile utilizzare per monitorare le prestazioni Trident.
Panoramica
Le metriche fornite da Trident consentono di:
-
Tenere sotto controllo lo stato di salute e la configurazione di Trident. È possibile esaminare il successo delle operazioni e se è in grado di comunicare con i back-end come previsto.
-
Esaminare le informazioni sull'utilizzo del back-end e comprendere il numero di volumi sottoposti a provisioning su un back-end, la quantità di spazio consumato e così via.
-
Mantenere una mappatura della quantità di volumi forniti sui backend disponibili.
-
Tenere traccia delle performance. È possibile esaminare il tempo necessario a Trident per comunicare con i backend ed eseguire le operazioni.
Per impostazione predefinita, le metriche di Trident sono esposte sulla porta di destinazione 8001 su /metrics endpoint. Queste metriche sono abilitate per impostazione predefinita quando Trident è installato.
|
-
Un cluster Kubernetes con Trident installato.
-
Un'istanza Prometheus. Questo può essere un "Implementazione di Prometheus in container" Oppure puoi scegliere di eseguire Prometheus come a. "applicazione nativa".
Fase 1: Definire un target Prometheus
È necessario definire un target Prometheus per raccogliere le metriche e ottenere informazioni sui backend gestiti da Trident, sui volumi creati e così via. Questo "blog" spiega come utilizzare Prometheus e Grafana con Trident per recuperare le metriche. Il blog spiega come eseguire Prometheus come operatore nel cluster Kubernetes e la creazione di un ServiceMonitor per ottenere le metriche Trident.
Fase 2: Creazione di un ServiceMonitor Prometheus
Per utilizzare le metriche Trident, è necessario creare un ServiceMonitor Prometheus che controlli trident-csi
e ascolta su metrics
porta. Un esempio di ServiceMonitor è simile al seguente:
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
Questa definizione di ServiceMonitor recupera le metriche restituite dal trident-csi
servizio e ricerca specificamente l' `metrics`endpoint del servizio. Di conseguenza, Prometheus è ora configurato per comprendere le metriche di Trident.
Oltre alle metriche disponibili direttamente da Trident, kubelet espone molte kubelet_volume_*
metriche tramite il proprio endpoint di misurazione. Kubelet può fornire informazioni sui volumi collegati, sui pod e sulle altre operazioni interne gestite. Fare riferimento alla "qui".
Fase 3: Eseguire una query sulle metriche di Trident con PromQL
PromQL è utile per la creazione di espressioni che restituiscono dati di serie temporali o tabulari.
Di seguito sono riportate alcune query PromQL che è possibile utilizzare:
Ottieni informazioni sulla salute di Trident
-
Percentuale di risposte HTTP 2XX da Trident
(sum (trident_rest_ops_seconds_total_count{status_code=~"2.."} OR on() vector(0)) / sum (trident_rest_ops_seconds_total_count)) * 100
-
Percentuale di risposte A RIPOSO da Trident tramite codice di stato
(sum (trident_rest_ops_seconds_total_count) by (status_code) / scalar (sum (trident_rest_ops_seconds_total_count))) * 100
-
Durata media in ms delle operazioni eseguite da Trident
sum by (operation) (trident_operation_duration_milliseconds_sum{success="true"}) / sum by (operation) (trident_operation_duration_milliseconds_count{success="true"})
Ottenere informazioni sull'utilizzo di Trident
-
Dimensione media del volume
trident_volume_allocated_bytes/trident_volume_count
-
Spazio totale del volume fornito da ciascun backend
sum (trident_volume_allocated_bytes) by (backend_uuid)
Ottieni l'utilizzo di singoli volumi
Questa opzione è attivata solo se vengono raccolte anche le metriche del kubelet. |
-
Percentuale di spazio utilizzato per ciascun volume
kubelet_volume_stats_used_bytes / kubelet_volume_stats_capacity_bytes * 100
Ulteriori informazioni sulla telemetria di Trident AutoSupport
Per impostazione predefinita, Trident invia quotidianamente le metriche Prometheus e le informazioni di base di backend a NetApp.
-
Per impedire a Trident di inviare metriche Prometheus e informazioni di base di backend a NetApp, passare il
--silence-autosupport
flag durante l'installazione di Trident. -
Trident può inoltre inviare i log dei container al supporto NetApp on-demand tramite
tridentctl send autosupport
. Sarà necessario attivare Trident per caricare i suoi registri. Prima di inviare i log, è necessario accettare NetApp "direttiva sulla privacy". -
Se non specificato, Trident recupera i registri dalle ultime 24 ore.
-
È possibile specificare il periodo di conservazione del registro con il
--since
flag. Ad esempio:tridentctl send autosupport --since=1h
. Queste informazioni vengono raccolte e inviate tramite untrident-autosupport
contenitore installato insieme a Trident. È possibile ottenere l'immagine contenitore in "Trident AutoSupport". -
Trident AutoSupport non raccoglie né trasmette dati personali o di identificazione personale (PII). Viene fornito con un "EULA" che non è applicabile all'immagine contenitore Trident stessa. Puoi saperne di più sull'impegno di NetApp nei confronti della sicurezza e della fiducia dei dati "qui".
Un esempio di payload inviato da Trident è simile al seguente:
--- 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
-
I messaggi AutoSupport vengono inviati all'endpoint AutoSupport di NetApp. Se si utilizza un registro privato per memorizzare le immagini container, è possibile utilizzare
--image-registry
allarme. -
È inoltre possibile configurare gli URL proxy generando i file YAML di installazione. Per eseguire questa operazione, utilizzare
tridentctl install --generate-custom-yaml
Per creare i file YAML e aggiungere--proxy-url
argomento pertrident-autosupport
container intrident-deployment.yaml
.
Disattiva metriche Trident
Per disattivare il report delle metriche, è necessario generare YAML personalizzati (utilizzando il --generate-custom-yaml
e modificarli per rimuovere --metrics
il contrassegno di non essere richiamato per `trident-main`container.