Design
CSM for Observability Design
Container Storage Modules (CSM) for Observability is part of the open-source suite of Kubernetes storage enablers for Dell products.
It is an OpenTelemetry agent that collects array-level metrics for Dell storage so they can be exported into a Prometheus database. With CSM for Observability, you will gain visibility not only on the capacity of the volumes/file shares you manage with Dell CSM CSI (Container Storage Interface) drivers but also their performance in terms of bandwidth, IOPS, and response time.
Thanks to pre-packaged Grafana dashboards, you will be able to go through these metrics history and see the topology between a Kubernetes PV (Persistent Volume) and its translation as a LUN or file share in the backend array. This module also allows Kubernetes admins to collect array level metrics to check the overall capacity and performance directly from the Prometheus/Grafana tools rather than interfacing directly with the storage system itself.
Metrics data is collected and pushed to the OpenTelemetry Collector, so it can be processed, and exported in a format consumable by Prometheus. SSL certificates for TLS between nodes are handled by cert-manager.
CSM for Observability is composed of several services, each residing in its own GitHub repository, that can be installed following one of the four deployments we support here. Contributions can be made to this repository or any of the CSM for Observability repositories listed below.
Name | Repository | Description |
---|---|---|
Metrics for PowerFlex | CSM Metrics for PowerFlex | Metrics for PowerFlex captures telemetry data about Kubernetes storage usage and performance obtained through the CSI (Container Storage Interface) Driver for Dell PowerFlex. The metrics service pushes it to the OpenTelemetry Collector, so it can be processed, and exported in a format consumable by Prometheus. Prometheus can then be configured to scrape the OpenTelemetry Collector exporter endpoint to provide metrics, so they can be visualized in Grafana. Please visit the repository for more information. |
Metrics for PowerStore | CSM Metrics for PowerStore | Metrics for PowerStore captures telemetry data about Kubernetes storage usage and performance obtained through the CSI (Container Storage Interface) Driver for Dell PowerStore. The metrics service pushes it to the OpenTelemetry Collector, so it can be processed, and exported in a format consumable by Prometheus. Prometheus can then be configured to scrape the OpenTelemetry Collector exporter endpoint to provide metrics, so they can be visualized in Grafana. Please visit the repository for more information. |
Metrics for PowerScale | CSM Metrics for PowerScale | Metrics for PowerScale captures telemetry data about Kubernetes storage usage and performance obtained through the CSI (Container Storage Interface) Driver for Dell PowerScale. The metrics service pushes it to the OpenTelemetry Collector, so it can be processed, and exported in a format consumable by Prometheus. Prometheus can then be configured to scrape the OpenTelemetry Collector exporter endpoint to provide metrics, so they can be visualized in Grafana. Please visit the repository for more information. |
Metrics for PowerMax | CSM Metrics for PowerMax | Metrics for PowerMax captures telemetry data about Kubernetes storage usage and performance obtained through the CSI (Container Storage Interface) Driver for Dell PowerMax. The metrics service pushes it to the OpenTelemetry Collector, so it can be processed, and exported in a format consumable by Prometheus. Prometheus can then be configured to scrape the OpenTelemetry Collector exporter endpoint to provide metrics, so they can be visualized in Grafana. Please visit the repository for more information. |
Volume Topology | CSM Topology | Topology provides Kubernetes administrators with the topology data related to containerized storage that is provisioned by a CSI (Container Storage Interface) Driver for Dell storage products. The Topology service is enabled by default as part of the CSM for Observability Helm Chart values file. Please visit the repository for more information. |
CSM for Observability provides the following capabilities:
Capability | PowerMax | PowerFlex | Unity XT | PowerScale | PowerStore |
---|---|---|---|---|---|
Collect and expose Volume Metrics via the OpenTelemetry Collector | yes | yes | no | yes | yes |
Collect and expose File System Metrics via the OpenTelemetry Collector | no | no | no | no | yes |
Collect and expose export (k8s) node metrics via the OpenTelemetry Collector | no | yes | no | no | no |
Collect and expose block storage metrics via the OpenTelemetry Collector | yes | yes | no | no | yes |
Collect and expose file storage metrics via the OpenTelemetry Collector | no | no | no | yes | yes |
Non-disruptive config changes | yes | yes | no | yes | yes |
Non-disruptive log level changes | yes | yes | no | yes | yes |
Grafana Dashboards for displaying metrics and topology data | yes | yes | no | yes | yes |
CSM for Observability provides Kubernetes administrators with the topology data related to containerized storage. This topology data is visualized using Grafana:
Field | Description |
---|---|
Namespace | The namespace associated with the persistent volume claim |
Persistent Volume Claim | The name of the persistent volume claim associated with the persistent volume |
Persistent Volume | The name of the persistent volume |
Storage Class | The storage class associated with the persistent volume |
Provisioned Size | The provisioned size of the persistent volume |
Status | The status of the persistent volume. “Released” indicates the persistent volume does not have a claim. “Bound” indicates the persistent volume has a claim |
Created | The date the persistent volume was created |
Storage System | The storage system ID or IP address the volume is associated with |
Protocol | The storage system protocol type the volume/storage class is associated with |
Storage Pool | The storage pool name the volume/storage class is associated with |
Storage System Volume Name | The name of the volume on the storage system that is associated with the persistent volume |
CSM for Observability deployment relies on cert-manager to manage SSL certificates that are used to encrypt communication between various components. When deploying CSM for Observability, cert-manager is installed and configured automatically. The cert-manager components listed below will be installed alongside CSM for Observability.
Component |
---|
cert-manager |
cert-manager-cainjector |
cert-manager-webhook |
If desired you may provide your own certificate key pair to be used inside the cluster by providing the path to the certificate and key in the Helm chart config. If you do not provide a certificate, one will be generated for you on installation.
NOTE: The certificate provided must be a CA certificate. This is to facilitate automated certificate rotation.
Logs can be viewed by using the kubectl logs
CLI command to output logs for a specific Pod or Deployment.
For example, the following script will capture logs of all Pods in the CSM namespace and save the output to one file per Pod.
#!/bin/bash
namespace=[CSM_NAMESPACE]
for pod in $(kubectl get pods -n $namespace -o name); do
logFileName=$(echo $pod | tr / -).txt
kubectl logs -n $namespace $pod --all-containers > $logFileName
done
CSM for Observability Design
Dell Container Storage Modules (CSM) for Observability Metrics
Troubleshooting guide
Dell Container Storage Modules (CSM) release notes for observability