Skip to main content
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Monitora le operazioni di storage di Trident

Collaboratori netapp-aruldeepa juliantap joan-ing netapp-mwallis netapp-asubhas

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.

Nota Per impostazione predefinita, le metriche di Trident sono esposte sulla porta di destinazione 8001 al /metrics punto finale. Queste metriche sono abilitate per impostazione predefinita quando Trident è installato. È possibile configurare l'utilizzo delle metriche Trident tramite HTTPS sulla porta 8444 anche.
Di cosa hai bisogno

Fase 1: Definire un target Prometheus

Dovresti definire un target Prometheus per raccogliere le metriche e ottenere informazioni sui backend gestiti Trident , sui volumi che crea e così via. Vedere"Documentazione dell'operatore Prometheus" .

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 da trident-csi servizio e cerca specificamente il 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".

Utilizza le metriche Trident tramite HTTPS

Per utilizzare le metriche Trident tramite HTTPS (porta 8444), è necessario modificare la definizione di ServiceMonitor per includere la configurazione TLS. Devi anche copiare il trident-csi segreto dal trident namespace allo spazio dei nomi in cui è in esecuzione Prometheus. Puoi farlo usando il seguente comando:

kubectl get secret trident-csi -n trident -o yaml | sed 's/namespace: trident/namespace: monitoring/' | kubectl apply -f -

Un esempio di metriche ServiceMonitor per HTTPS si presenta così:

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:
    - interval: 15s
      path: /metrics
      port: https-metrics
      scheme: https
      tlsConfig:
        ca:
          secret:
            key: caCert
            name: trident-csi
        cert:
          secret:
            key: clientCert
            name: trident-csi
        keySecret:
          key: clientKey
          name: trident-csi
        serverName: trident-csi

Trident supporta le metriche HTTPS in tutti i metodi di installazione: tridentctl, Helm chart e Operator:

  • Se stai utilizzando il tridentctl install comando, puoi passare il --https-metrics flag per abilitare le metriche HTTPS.

  • Se si utilizza il grafico Helm, è possibile impostare httpsMetrics parametro per abilitare le metriche HTTPS.

  • Se si utilizzano file YAML, è possibile aggiungere --https_metrics bandiera al trident-main contenitore nel trident-deployment.yaml file.

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

Nota 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 un trident-autosupport contenitore installato insieme a Trident. È possibile ottenere l'immagine contenitore in "Trident AutoSupport".

  • Trident AutoSupport non raccoglie né trasmette Personally Identifiable Information (PII) o Personal Information. Viene fornito con un "EULA" che non è applicabile all'immagine del container Trident stessa. Puoi saperne di più sull'impegno di NetApp per la sicurezza e la 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: null
      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 per trident-autosupport container in trident-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.