Metrics

StorageOS believes in exposing many metrics about the functioning and performance of StorageOS processes to help users instrument applications consuming StorageOS volumes and StorageOS itself. To this end StorageOS exposes metrics via a Prometheus endpoint on each StorageOS pod. See our Prometheus Endpoint reference page for specific details about what metrics are exposed.

StorageOS metrics are exposed in Prometheus text format, so collectors such as Prometheus, Telegraf or Sensu can be used. Prometheus text format exposes data as time series where each time series can be one of four Prometheus metric types.

Metric Name Description Example Metric
Counter Cumulative metric that only increases. Can be reset to zero on a restart storageos_volume_backend_read_bytes_total
Gauge Metric that can increase or decrease storageos_volume_size_bytes
Histogram Cumulative metric that includes information about the distribution of samples storageos_local_leader_known_nodes_sync_seconds
Summary Similar to a histogram but calculates quantiles over certain time windows go_gc_duration_second

Each time series is identified by a metric name and key-value labels. The key-value labels allow multiple dimensions for a metric to be exposed. For example the storageos_volume_backend_read_bytes_total metric is given for each volume.

Using Prometheus to scrape metrics endpoints in Kubernetes is quite elegant as Prometheus can be configured to scrape metrics from Kubernetes Services. This is important because StorageOS metrics are intended to be scraped from every StorageOS pod in the cluster and then aggregated.

For an example of how to visualize StorageOS metrics please see our Monitoring StorageOS page for a link to a sample Grafana dashboard.