Skip to content

Instantly share code, notes, and snippets.

@clemenko
Last active March 12, 2026 20:17
Show Gist options
  • Select an option

  • Save clemenko/0602ba26338b3f32e5c8c5acab40d7a1 to your computer and use it in GitHub Desktop.

Select an option

Save clemenko/0602ba26338b3f32e5c8c5acab40d7a1 to your computer and use it in GitHub Desktop.

quick install of docker, prometheus, and grafana

This guide is a quick, and easy way to setup docker, prometheus, and grafana for getting the metrics from a Pure FlashArray.

install docker

Rocky

yum clean all; yum install -y vim yum-utils && yum-config-manager -y --add-repo https://download.docker.com/linux/centos/docker-ce.repo && yum install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin && mkdir -p /etc/docker && systemctl start docker

ubuntu

curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc && chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update && apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

add compose

make directories and add files.

Compose was based on : https://github.com/docker/awesome-compose/blob/master/prometheus-grafana/compose.yaml

# make dirs
mkdir -p /opt/{grafana/{datasources,dashboards},prometheus}

# add docker compose
cat << EOF > /opt/compose.yaml
services:
  prometheus:
    image: prom/prometheus
    container_name: prometheus
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
    ports:
      - 9090:9090
    restart: unless-stopped
    volumes:
      - /opt/prometheus:/etc/prometheus
      - prom_data:/prometheus

  grafana:
    image: grafana/grafana
    container_name: grafana
    ports:
      - 3000:3000
    restart: unless-stopped
    environment:
      - GF_SECURITY_ADMIN_USER=admin
      - GF_SECURITY_ADMIN_PASSWORD=Pa22word
    volumes:
      - /opt/grafana/datasources:/etc/grafana/provisioning/datasources
      - /opt/grafana/dashboard.yaml:/etc/grafana/provisioning/dashboards/main.yaml
      - /opt/grafana/dashboards:/var/lib/grafana/dashboards

volumes:
  prom_data:
EOF

add grafana and prometheus configs

Pay attention to the IP and bearer_token for the array!

# graf dashboard yaml
cat << EOF > /opt/grafana/dashboard.yaml
apiVersion: 1

providers:
  - name: "Dashboard provider"
    orgId: 1
    type: file
    disableDeletion: true
    updateIntervalSeconds: 10
    allowUiUpdates: false
    options:
      path: /var/lib/grafana/dashboards
      foldersFromFilesStructure: true
EOF

# graf datasource
cat << EOF > /opt/grafana/datasources/datasource.yml
apiVersion: 1

datasources:
- name: Prometheus
  type: prometheus
  url: http://prometheus:9090 
  isDefault: true
  access: proxy
  editable: true
EOF

# get dashboard
#curl -s https://raw.githubusercontent.com/PureStorage-OpenConnect/pure-fa-openmetrics-exporter/refs/heads/master/extra/grafana/grafana-purefa-flasharray-overview.json -o /opt/grafana/dashboards/puredash.json
curl -s https://gist.githubusercontent.com/clemenko/0602ba26338b3f32e5c8c5acab40d7a1/raw/51690b257a57b5aa90f995ac2653c01b6cec8345/Everpure_FlashArray_Dashboard.json -o /opt/grafana/dashboards/fa_dashboard.json
curl -s https://gist.githubusercontent.com/clemenko/0602ba26338b3f32e5c8c5acab40d7a1/raw/51690b257a57b5aa90f995ac2653c01b6cec8345/Everpure_FlashBlade_Dashboard.json -o /opt/grafana/dashboards/fb_dashboard.json

# prom config
cat << EOF > /opt/prometheus/prometheus.yml
global:
  scrape_interval:     30s # Set the scrape interval to every 30 seconds. Default is every 1 minute.
  scrape_timeout:      30s # Set the scrape timeout to shorter than or equal to scrape_interval. Default is every 1 minute.
  # evaluation_interval: 60s # is set to the default every 1 minute.

# Alertmanager configuration (optional)
#alerting:
#  alertmanagers:
#  - static_configs:
#    - targets:
#       - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'. (optional)
#rule_files:
#  - "purefa_alerts_rules.yml"
#  - "purefa_pods_rules.yml"

scrape_configs:
  - job_name: 'purefa_array'
    scheme: https
    tls_config:
      insecure_skip_verify: true
    bearer_token : 3d84e613-c905-649a-2b7a-0bc8def997e9
    params:
      namespace: ['purefa']
    static_configs:
    - targets:
      - 192.168.1.11
      labels:
        location: us
        site: Edgewater
        instance: arrayname01
        env: production
EOF

lets fire it up

now run : cd /opt; docker compose up -d

check the urls

prom : http://192.168.1.174:9090/targets
graf : http://192.168.1.174:3000

more info

For more information on the alerts check out the github page.
https://github.com/PureStorage-OpenConnect/pure-fa-openmetrics-exporter/tree/master/extra/prometheus

{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"target": {
"limit": 100,
"matchAny": false,
"tags": [],
"type": "dashboard"
},
"type": "dashboard"
}
]
},
"description": "This dashboard provides an overview of your fleet to give you early indications of potential issues and a look back in time to recent history. Once you are pulling the metrics, you can create your own dashboards bespoke to your environment, even correlating metrics from other technologies.",
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 1,
"links": [],
"panels": [
{
"fieldConfig": {
"defaults": {},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 6,
"x": 0,
"y": 0
},
"id": 121,
"links": [
{
"targetBlank": true,
"title": "Everpure",
"url": "http://www.everpuredata.com"
}
],
"options": {
"code": {
"language": "plaintext",
"showLineNumbers": false,
"showMiniMap": false
},
"content": "<img src=\"https://www.purestorage.com/content/dam/purestorage/company/email/everpure.png\" width=\"100%\">",
"mode": "markdown"
},
"pluginVersion": "12.4.0",
"title": "",
"type": "text"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "center",
"cellOptions": {
"mode": "basic",
"type": "color-background"
},
"filterable": false,
"footer": {
"reducers": []
},
"inspect": false
},
"decimals": 1,
"mappings": [],
"min": 0,
"noValue": "-",
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "transparent",
"value": 0
}
]
},
"unit": "none"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Data Reduction"
},
"properties": [
{
"id": "unit",
"value": ":1"
},
{
"id": "thresholds",
"value": {
"mode": "absolute",
"steps": [
{
"color": "#1a9ea7",
"value": 0
},
{
"color": "#e0b400",
"value": 0
},
{
"color": "#1a9ea7",
"value": 1.01
}
]
}
},
{
"id": "custom.width",
"value": 125
},
{
"id": "custom.cellOptions",
"value": {
"mode": "gradient",
"type": "color-background"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "Capacity"
},
"properties": [
{
"id": "unit",
"value": "tbytes"
},
{
"id": "custom.width",
"value": 95
}
]
},
{
"matcher": {
"id": "byName",
"options": "Free Space"
},
"properties": [
{
"id": "unit",
"value": "tbytes"
},
{
"id": "custom.width",
"value": 95
},
{
"id": "thresholds",
"value": {
"mode": "absolute",
"steps": [
{
"color": "#cd146d",
"value": 0
},
{
"color": "#1a9ea7",
"value": 1
}
]
}
},
{
"id": "custom.cellOptions",
"value": {
"mode": "gradient",
"type": "color-background"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "Utilization %"
},
"properties": [
{
"id": "unit",
"value": "percent"
},
{
"id": "custom.width",
"value": 125
},
{
"id": "thresholds",
"value": {
"mode": "absolute",
"steps": [
{
"color": "#1a9ea7",
"value": 0
},
{
"color": "#e0b400",
"value": 80
},
{
"color": "dark-orange",
"value": 90
},
{
"color": "#cd146d",
"value": 95
}
]
}
},
{
"id": "custom.cellOptions",
"value": {
"mode": "gradient",
"type": "gauge"
}
},
{
"id": "max",
"value": 100
}
]
},
{
"matcher": {
"id": "byName",
"options": "Array"
},
"properties": [
{
"id": "custom.align",
"value": "auto"
}
]
},
{
"matcher": {
"id": "byName",
"options": "OS"
},
"properties": [
{
"id": "custom.width",
"value": 95
}
]
},
{
"matcher": {
"id": "byName",
"options": "Ver"
},
"properties": [
{
"id": "custom.width",
"value": 70
}
]
},
{
"matcher": {
"id": "byName",
"options": "Alerts"
},
"properties": [
{
"id": "custom.width",
"value": 100
},
{
"id": "thresholds",
"value": {
"mode": "absolute",
"steps": [
{
"color": "transparent",
"value": 0
},
{
"color": "#e0b400",
"value": 1
}
]
}
},
{
"id": "decimals",
"value": 0
},
{
"id": "custom.cellOptions",
"value": {
"mode": "gradient",
"type": "color-background"
}
}
]
}
]
},
"gridPos": {
"h": 5,
"w": 18,
"x": 6,
"y": 0
},
"id": 125,
"options": {
"cellHeight": "sm",
"frameIndex": 0,
"showHeader": true,
"sortBy": []
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum(purefa_info{instance=~\"$instance\",env=~\"$env\"}) by (instance,os,version)",
"format": "table",
"instant": true,
"legendFormat": "Version",
"range": false,
"refId": "Version"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum(purefa_alerts_open{instance=~\"$instance\",env=~\"$env\"}) by (instance)",
"format": "table",
"instant": true,
"legendFormat": "__auto",
"range": false,
"refId": "Alerts"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum(purefa_array_space_data_reduction_ratio{instance=~\"$instance\",env=~\"$env\"}) by (instance)",
"format": "table",
"instant": true,
"interval": "",
"legendFormat": "Data Reduction",
"range": false,
"refId": "Data Reduction Ratio"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum(purefa_array_space_bytes{instance=~\"$instance\",env=~\"$env\",space=\"capacity\"}) by (instance) /1024/1024/1024/1024",
"format": "table",
"instant": true,
"interval": "",
"legendFormat": "Capacity",
"range": false,
"refId": "Array Capacity"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum(purefa_array_space_bytes{instance=~\"$instance\",env=~\"$env\",space=\"empty\"}) by (instance) /1024/1024/1024/1024",
"format": "table",
"instant": true,
"legendFormat": "Free Capacity (TB)",
"range": false,
"refId": "Array Free Space"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum(purefa_array_space_utilization{instance=~\"$instance\",env=~\"$env\"}) by (instance)",
"format": "table",
"instant": true,
"interval": "",
"legendFormat": "Utilization %",
"range": false,
"refId": "Utilization %"
}
],
"title": "FlashArray System Detail",
"transformations": [
{
"id": "joinByField",
"options": {
"byField": "instance",
"mode": "outer"
}
},
{
"id": "filterFieldsByName",
"options": {
"include": {
"names": [
"instance",
"os",
"version",
"Value #Data Reduction Ratio",
"Value #Array Capacity",
"Value #Array Free Space",
"Value #Utilization %",
"Value #Alerts"
]
}
}
},
{
"id": "organize",
"options": {
"excludeByName": {},
"indexByName": {},
"renameByName": {
"Value #Alerts": "Alerts",
"Value #Array Capacity": "Capacity",
"Value #Array Capacity (TB)": "Array Capacity (",
"Value #Array Free Space": "Free Space",
"Value #Array Free Space (TB)": "Array Free Space (TiB)",
"Value #Data Reduction Ratio": "Data Reduction",
"Value #Utilization %": "Utilization %",
"instance": "Array",
"os": "OS",
"version": "Ver"
}
}
}
],
"type": "table"
},
{
"fieldConfig": {
"defaults": {},
"overrides": []
},
"gridPos": {
"h": 6,
"w": 6,
"x": 0,
"y": 4
},
"id": 163,
"options": {
"code": {
"language": "plaintext",
"showLineNumbers": false,
"showMiniMap": false
},
"content": "# **EVERPURE** STORAGE\n\n## Overview\nThis dashboard provides performance and capacity details for Everpure FlashArrays.\nGroup arrays by customer defined environment, whole fleets, or view arrays individually.",
"mode": "markdown"
},
"pluginVersion": "12.4.0",
"title": "",
"type": "text"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "center",
"cellOptions": {
"mode": "gradient",
"type": "color-background"
},
"footer": {
"reducers": []
},
"inspect": false
},
"decimals": 0,
"mappings": [
{
"options": {
"0": {
"index": 0,
"text": "-"
}
},
"type": "value"
}
],
"min": 0,
"noValue": "-",
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "transparent",
"value": 0
}
]
}
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Array"
},
"properties": [
{
"id": "custom.align",
"value": "auto"
}
]
},
{
"matcher": {
"id": "byName",
"options": "Info"
},
"properties": [
{
"id": "custom.width",
"value": 125
},
{
"id": "thresholds",
"value": {
"mode": "absolute",
"steps": [
{
"color": "transparent",
"value": 0
},
{
"color": "#1a9ea7",
"value": 1
}
]
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "Warning"
},
"properties": [
{
"id": "custom.width",
"value": 125
},
{
"id": "thresholds",
"value": {
"mode": "absolute",
"steps": [
{
"color": "transparent",
"value": 0
},
{
"color": "#e0b400",
"value": 1
}
]
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "Critical"
},
"properties": [
{
"id": "custom.width",
"value": 125
},
{
"id": "thresholds",
"value": {
"mode": "absolute",
"steps": [
{
"color": "transparent",
"value": 0
},
{
"color": "#cd146d",
"value": 1
}
]
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "Total"
},
"properties": [
{
"id": "custom.width",
"value": 125
},
{
"id": "thresholds",
"value": {
"mode": "absolute",
"steps": [
{
"color": "transparent",
"value": 0
},
{
"color": "#e0b400",
"value": 1
}
]
}
}
]
}
]
},
"gridPos": {
"h": 5,
"w": 18,
"x": 6,
"y": 5
},
"id": 172,
"options": {
"cellHeight": "sm",
"showHeader": true,
"sortBy": [
{
"desc": true,
"displayName": "Critical"
}
]
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum(purefa_alerts_open{instance=~\"$instance\", env=~\"$env\", severity=\"info\"}) by (instance) OR on() sum(purefa_alerts_open{instance=~\"$instance\", env=~\"$env\"}*0) by (instance)",
"format": "table",
"instant": true,
"legendFormat": "__auto",
"range": false,
"refId": "Info"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum(purefa_alerts_open{instance=~\"$instance\", env=~\"$env\", severity=\"warning\"}) by (instance) OR on() sum(purefa_alerts_open{instance=~\"$instance\", env=~\"$env\"}*0) by (instance)",
"format": "table",
"instant": true,
"legendFormat": "__auto",
"range": false,
"refId": "Warning"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum(purefa_alerts_open{instance=~\"$instance\", env=~\"$env\", severity=\"critical\"}) by (instance) OR on() sum(purefa_alerts_open{instance=~\"$instance\", env=~\"$env\"}*0) by (instance)",
"format": "table",
"instant": true,
"legendFormat": "__auto",
"range": false,
"refId": "Critical"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum(purefa_alerts_open{instance=~\"$instance\", env=~\"$env\", severity=\".*\"}) by (instance) OR on() sum(purefa_alerts_open{instance=~\"$instance\", env=~\"$env\"}) by (instance)",
"format": "table",
"instant": true,
"legendFormat": "__auto",
"range": false,
"refId": "Total"
}
],
"title": "Alerts",
"transformations": [
{
"id": "joinByField",
"options": {
"byField": "instance",
"mode": "outer"
}
},
{
"id": "filterFieldsByName",
"options": {
"include": {
"names": [
"instance",
"Value #Info",
"Value #Warning",
"Value #Critical",
"Value #Total"
]
}
}
},
{
"id": "organize",
"options": {
"excludeByName": {},
"indexByName": {},
"renameByName": {
"Value #A": "Total",
"Value #Critical": "Critical",
"Value #Info": "Info",
"Value #Total": "Total",
"Value #Warning": "Warning",
"instance": "Array"
}
}
}
],
"type": "table"
},
{
"fieldConfig": {
"defaults": {},
"overrides": []
},
"gridPos": {
"h": 26,
"w": 6,
"x": 0,
"y": 10
},
"id": 165,
"options": {
"code": {
"language": "plaintext",
"showLineNumbers": false,
"showMiniMap": false
},
"content": "## Metrics\n\nAll metrics are prefixed with purefa_\nBelow are the metrics names available\n```\n* alerts_open\n* array_performance_average_bytes\n* array_performance_bandwidth_bytes\n* array_performance_latency_usec\n* array_performance_queue_depth_ops\n* array_performance_throughput_iops\n* array_space_bytes\n* array_space_data_reduction_ratio\n* array_space_utilization\n* directory_performance_average_bytes\n* directory_performance_bandwidth_bytes\n* directory_performance_latency_usec\n* directory_performance_throughput_iops\n* directory_space_bytes\n* directory_space_data_reduction_ratio\n* host_connections_info\n* host_performance_average_bytes\n* host_performance_bandwidth_bytes\n* host_performance_latency_usec\n* host_performance_throughput_iops\n* host_space_bytes\n* host_space_data_reduction_ratio\n* host_space_size_bytes\n* hw_component_status\n* hw_component_temperature_celsius\n* hw_component_voltage_volt\n* info\n* pod_performance_average_bytes\n* pod_performance_bandwidth_bytes\n* pod_performance_latency_usec\n* pod_performance_throughput_iops\n* pod_space_bytes\n* pod_space_data_reduction_ratio\n* volume_performance_average_bytes\n* volume_performance_bandwidth_bytes\n* volume_performance_latency_usec\n* volume_performance_throughput_iops\n* volume_space_bytes\n* volume_space_data_reduction_ratio\n```",
"mode": "markdown"
},
"pluginVersion": "12.4.0",
"title": "",
"type": "text"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"fieldConfig": {
"defaults": {
"color": {
"fixedColor": "#2ae5f2",
"mode": "fixed"
},
"mappings": [
{
"options": {
"match": "null",
"result": {
"text": "N/A"
}
},
"type": "special"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "white",
"value": 0
}
]
},
"unit": "bytes"
},
"overrides": []
},
"gridPos": {
"h": 5,
"w": 6,
"x": 6,
"y": 10
},
"id": 97,
"interval": "1m",
"maxDataPoints": 100,
"options": {
"colorMode": "value",
"fieldOptions": {
"calcs": [
"lastNotNull"
]
},
"graphMode": "none",
"justifyMode": "auto",
"orientation": "horizontal",
"percentChangeColorMode": "standard",
"reduceOptions": {
"calcs": [],
"fields": "",
"values": false
},
"showPercentChange": false,
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum(avg_over_time(purefa_array_performance_bandwidth_bytes{instance=~\"^$instance\",env=~\"^$env\"}[$__range]))",
"format": "table",
"instant": true,
"legendFormat": "__auto",
"range": false,
"refId": "B"
}
],
"title": "Average Total Bandwidth for $instance array(s) bytes SI",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"fieldConfig": {
"defaults": {
"color": {
"fixedColor": "#2ae5f2",
"mode": "fixed"
},
"mappings": [
{
"options": {
"match": "null",
"result": {
"text": "N/A"
}
},
"type": "special"
}
],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "white",
"value": 0
}
]
},
"unit": ":1"
},
"overrides": []
},
"gridPos": {
"h": 5,
"w": 6,
"x": 12,
"y": 10
},
"id": 108,
"maxDataPoints": 100,
"options": {
"colorMode": "value",
"fieldOptions": {
"calcs": [
"lastNotNull"
]
},
"graphMode": "none",
"justifyMode": "auto",
"orientation": "horizontal",
"percentChangeColorMode": "standard",
"reduceOptions": {
"calcs": [
"mean"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"uid": "$datasource"
},
"editorMode": "code",
"expr": "avg(purefa_array_space_data_reduction_ratio{instance=~\"^$instance\",env=~\"^$env\"})",
"format": "table",
"range": true,
"refId": "A"
}
],
"title": "Average Data Reduction Ratio for $instance array(s)",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"fieldConfig": {
"defaults": {
"color": {
"fixedColor": "#2ae5f2",
"mode": "fixed"
},
"decimals": 1,
"mappings": [
{
"options": {
"match": "null",
"result": {
"text": "N/A"
}
},
"type": "special"
}
],
"max": 100,
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "#ffffff",
"value": 0
}
]
},
"unit": "percent"
},
"overrides": []
},
"gridPos": {
"h": 5,
"w": 6,
"x": 18,
"y": 10
},
"id": 30,
"maxDataPoints": 100,
"options": {
"colorMode": "value",
"graphMode": "area",
"justifyMode": "auto",
"orientation": "horizontal",
"percentChangeColorMode": "standard",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"showPercentChange": false,
"text": {
"valueSize": 100
},
"textMode": "auto",
"wideLayout": true
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"uid": "$datasource"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg(purefa_array_space_utilization{instance=~\"^$instance\",env=~\"^$env\"})",
"format": "time_series",
"instant": false,
"intervalFactor": 1,
"range": true,
"refId": "A"
}
],
"title": "Average Array Utilization for $instance array(s)",
"type": "stat"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
}
},
"mappings": [],
"unit": "bytes"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "empty"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#808080",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "unique"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#ff8a24",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "shared"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#2ae5f2",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "snapshots"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#72459d",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "replication"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#ffc532",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "system"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#e05699",
"mode": "fixed"
}
}
]
}
]
},
"gridPos": {
"h": 7,
"w": 9,
"x": 6,
"y": 15
},
"id": 127,
"options": {
"displayLabels": [
"name"
],
"legend": {
"displayMode": "list",
"placement": "right",
"showLegend": true,
"values": [
"value",
"percent"
]
},
"pieType": "donut",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"sort": "desc",
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"expr": "sum (purefa_array_space_bytes{instance=~\"^$instance\",env=~\"^$env\",space=~\"system|replication|shared|snapshots|unique|empty\"}) by (space)",
"format": "time_series",
"legendFormat": "__auto",
"range": true,
"refId": "A"
}
],
"title": "Sum of Space Utilization by $instance array(s)",
"type": "piechart"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
}
},
"mappings": [],
"unit": "iops"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "reads_per_sec"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#00fddc",
"mode": "fixed"
}
},
{
"id": "displayName",
"value": "reads"
}
]
},
{
"matcher": {
"id": "byName",
"options": "writes_per_sec"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#ff8316",
"mode": "fixed"
}
},
{
"id": "displayName",
"value": "writes"
}
]
},
{
"matcher": {
"id": "byName",
"options": "mirrored_writes_per_sec"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#e05699",
"mode": "fixed"
}
},
{
"id": "displayName",
"value": "mirrored"
}
]
},
{
"matcher": {
"id": "byName",
"options": "others_per_sec"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#662e9c",
"mode": "fixed"
}
},
{
"id": "displayName",
"value": "other"
}
]
},
{
"matcher": {
"id": "byName",
"options": "reads"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#2ae5f2",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "mirrored"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#e05699",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "writes"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#ff8316",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "other"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#662e9c",
"mode": "fixed"
}
}
]
}
]
},
"gridPos": {
"h": 7,
"w": 9,
"x": 15,
"y": 15
},
"id": 196,
"options": {
"displayLabels": [
"name"
],
"legend": {
"displayMode": "list",
"placement": "right",
"showLegend": true,
"values": [
"percent",
"value"
]
},
"pieType": "donut",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"sort": "desc",
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"expr": "avg(purefa_array_performance_throughput_iops{instance=~\"^$instance\",env=~\"^$env\"}) by (dimension)",
"format": "time_series",
"legendFormat": "__auto",
"range": true,
"refId": "A"
}
],
"title": "Average IOPS by IO Type and $instance array(s)",
"type": "piechart"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "smooth",
"lineStyle": {
"fill": "solid"
},
"lineWidth": 1,
"pointSize": 3,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"showValues": false,
"spanNulls": true,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
}
]
},
"unit": "binBps"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 9,
"x": 6,
"y": 22
},
"id": 143,
"interval": "1m",
"options": {
"legend": {
"calcs": [
"mean",
"min",
"max",
"last"
],
"displayMode": "table",
"placement": "bottom",
"showLegend": true,
"sortBy": "Mean",
"sortDesc": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"expr": "sum(avg_over_time(purefa_array_performance_bandwidth_bytes{env=~\"^$env\", instance=~\"^$instance\", dimension=\"write_bytes_per_sec\"} [$__interval])) by (instance)",
"legendFormat": "__auto",
"range": true,
"refId": "Write Bandwidth"
}
],
"title": "Write Bandwidth by $instance array(s)",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "smooth",
"lineStyle": {
"fill": "solid"
},
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"showValues": false,
"spanNulls": true,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
}
]
},
"unit": "binBps"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 9,
"x": 15,
"y": 22
},
"id": 131,
"interval": "1m",
"options": {
"legend": {
"calcs": [
"mean",
"min",
"max",
"last"
],
"displayMode": "table",
"placement": "bottom",
"showLegend": true,
"sortBy": "Mean",
"sortDesc": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"expr": "sum(avg_over_time(purefa_array_performance_bandwidth_bytes{env=~\"^$env\", instance=~\"^$instance\", dimension=\"read_bytes_per_sec\"} [$__interval])) by (instance)",
"legendFormat": "__auto",
"range": true,
"refId": "Read Bandwidth"
}
],
"title": "Read Bandwidth by $instance array(s)",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"description": "This query is very expensive on Prometheus and the browser. For large environments it may be advisable to reduce scope by using the filter and narrower time frame, use a tabular view or create a recording rule.\n\nhttps://prometheus.io/docs/prometheus/latest/querying/basics/#avoiding-slow-queries-and-overloads",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "smooth",
"lineStyle": {
"fill": "solid"
},
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"showValues": false,
"spanNulls": true,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
}
]
},
"unit": "µs"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 9,
"x": 6,
"y": 30
},
"id": 173,
"options": {
"legend": {
"calcs": [
"mean",
"min",
"max",
"last"
],
"displayMode": "table",
"placement": "bottom",
"showLegend": true,
"sortBy": "Mean",
"sortDesc": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg by (instance, dimension, name) (\n purefa_volume_performance_latency_usec{\n env=~\"$env\",\n instance=~\"$instance\"\n }\n)\nand\ntopk(\n $TopItems,\n avg by (instance, dimension, name) (\n avg_over_time(\n purefa_volume_performance_latency_usec{\n env=~\"$env\",\n instance=~\"$instance\"\n }[$__range] @ end()\n )\n )\n)",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "{{instance}} - {{dimension}} - {{name}}",
"range": true,
"refId": "Volume Latency"
}
],
"title": "Average Top $TopItems Latent Volumes by $instance array(s) & IO type",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "smooth",
"lineStyle": {
"fill": "solid"
},
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"showValues": false,
"spanNulls": true,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
}
]
},
"unit": "ops"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 9,
"x": 15,
"y": 30
},
"id": 133,
"options": {
"legend": {
"calcs": [
"mean",
"min",
"max",
"last"
],
"displayMode": "table",
"placement": "bottom",
"showLegend": true,
"sortBy": "Mean",
"sortDesc": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"expr": "avg(purefa_array_performance_queue_depth_ops{instance=~\"^$instance\",env=~\"^$env\"}) by (instance)",
"legendFormat": "__auto",
"range": true,
"refId": "Queue Depth"
}
],
"title": "Array QDepth by $instance array(s)",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "smooth",
"lineStyle": {
"fill": "solid"
},
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"showValues": false,
"spanNulls": true,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
}
]
},
"unit": "rps"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 9,
"x": 6,
"y": 38
},
"id": 160,
"options": {
"legend": {
"calcs": [
"mean",
"min",
"max",
"lastNotNull"
],
"displayMode": "table",
"placement": "bottom",
"showLegend": true,
"sortBy": "Mean",
"sortDesc": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg(purefa_host_performance_throughput_iops{env=~\"$env\", instance=~\"$instance\", dimension=\"reads_per_sec\"}) by (instance,host)\nand\ntopk($TopItems, avg(rate(purefa_host_performance_throughput_iops{env=~\"$env\", instance=~\"$instance\", dimension=\"reads_per_sec\"}[$__range] @ end() )) by (instance,host))",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "{{instance}} - {{host}}",
"range": true,
"refId": "Read Bandwidth"
}
],
"title": "Average Top $TopItems Read Throughput by $instance array(s) & Hosts ",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "smooth",
"lineStyle": {
"fill": "solid"
},
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"showValues": false,
"spanNulls": true,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
}
]
},
"unit": "wps"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 9,
"x": 15,
"y": 38
},
"id": 153,
"options": {
"legend": {
"calcs": [
"mean",
"min",
"max",
"lastNotNull"
],
"displayMode": "table",
"placement": "bottom",
"showLegend": true,
"sortBy": "Mean",
"sortDesc": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg(purefa_host_performance_throughput_iops{env=~\"$env\", instance=~\"$instance\", dimension=\"writes_per_sec\"}) by (instance,host)\nand\ntopk($TopItems, avg(rate(purefa_host_performance_throughput_iops{env=~\"$env\", instance=~\"$instance\", dimension=\"writes_per_sec\"}[$__range] @ end() )) by (instance,host))",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "{{instance}} - {{host}}",
"range": true,
"refId": "Read Bandwidth"
}
],
"title": "Average Top $TopItems Write Throughput by $instance array(s) & Hosts",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"fieldConfig": {
"defaults": {
"color": {
"fixedColor": "#fe7800",
"mode": "fixed"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "smooth",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"showValues": false,
"spanNulls": true,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [
{
"options": {
"match": "null",
"result": {
"text": "N/A"
}
},
"type": "special"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "white",
"value": 0
}
]
},
"unit": "µs"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "usec_per_write_op"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "dark-orange",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "usec_per_mirrored_write_op"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#e05699",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "usec_per_other_op"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#662e9c",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "usec_per_read_op"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#2ae5f2",
"mode": "fixed"
}
}
]
}
]
},
"gridPos": {
"h": 7,
"w": 18,
"x": 6,
"y": 46
},
"id": 195,
"interval": "1m",
"maxDataPoints": 100,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg(purefa_array_performance_latency_usec{instance=~\"^$instance\",env=~\"^$env\",dimension=\"usec_per_read_op\"})",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "usec_per_read_op",
"range": true,
"refId": "Read"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg(purefa_array_performance_latency_usec{instance=~\"^$instance\",env=~\"^$env\",dimension=\"usec_per_write_op\"})",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "usec_per_write_op",
"range": true,
"refId": "Write"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg(purefa_array_performance_latency_usec{instance=~\"^$instance\",env=~\"^$env\",dimension=\"usec_per_mirrored_write_op\"})",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "usec_per_mirrored_write_op",
"range": true,
"refId": "Mirrored"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg(purefa_array_performance_latency_usec{instance=~\"^$instance\",env=~\"^$env\",dimension=\"usec_per_other_op\"})",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "usec_per_other_op",
"range": true,
"refId": "Other"
}
],
"title": "Average Total Latency for $instance array(s)",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"fieldConfig": {
"defaults": {
"color": {
"fixedColor": "#fe7800",
"mode": "fixed"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "smooth",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"showValues": false,
"spanNulls": true,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [
{
"options": {
"match": "null",
"result": {
"text": "N/A"
}
},
"type": "special"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "white",
"value": 0
}
]
},
"unit": "iops"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "writes_per_sec"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#ff8316",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "mirrored_per_sec"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#e05699",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "reads_per_sec"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#2ae5f2",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "others_per_sec"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#662e9c",
"mode": "fixed"
}
}
]
}
]
},
"gridPos": {
"h": 7,
"w": 18,
"x": 6,
"y": 53
},
"id": 192,
"interval": "1m",
"maxDataPoints": 100,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum(avg_over_time(purefa_array_performance_throughput_iops{instance=~\"^$instance\",env=~\"^$env\",dimension=\"reads_per_sec\"}[$__interval]))",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "reads_per_sec",
"range": true,
"refId": "Read"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum(avg_over_time(purefa_array_performance_throughput_iops{instance=~\"^$instance\",env=~\"^$env\",dimension=\"writes_per_sec\"}[$__interval]))",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "writes_per_sec",
"range": true,
"refId": "Write"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum(avg_over_time(purefa_array_performance_throughput_iops{instance=~\"^$instance\",env=~\"^$env\",dimension=\"mirrored_writes_per_sec\"}[$__interval]))",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "mirrored_per_sec",
"range": true,
"refId": "Mirrored"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum(avg_over_time(purefa_array_performance_throughput_iops{instance=~\"^$instance\",env=~\"^$env\",dimension=\"others_per_sec\"}[$__interval]))",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "others_per_sec",
"range": true,
"refId": "Other"
}
],
"title": "Average Total IOPS for $instance array(s)",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"fieldConfig": {
"defaults": {
"color": {
"fixedColor": "#fe7800",
"mode": "fixed"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "smooth",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"showValues": false,
"spanNulls": true,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [
{
"options": {
"match": "null",
"result": {
"text": "N/A"
}
},
"type": "special"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "white",
"value": 0
}
]
},
"unit": "bytes"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "writes_per_sec"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#ff8316",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "mirrored_per_sec"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#e05699",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "reads_per_sec"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#2ae5f2",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "others_per_sec"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#662e9c",
"mode": "fixed"
}
}
]
}
]
},
"gridPos": {
"h": 8,
"w": 18,
"x": 6,
"y": 60
},
"id": 194,
"interval": "1m",
"maxDataPoints": 100,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg(purefa_array_performance_bandwidth_bytes{instance=~\"^$instance\",env=~\"^$env\",dimension=\"read_bytes_per_sec\"})",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "reads_per_sec",
"range": true,
"refId": "A"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg(purefa_array_performance_bandwidth_bytes{instance=~\"^$instance\",env=~\"^$env\",dimension=\"write_bytes_per_sec\"})",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "writes_per_sec",
"range": true,
"refId": "B"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg(purefa_array_performance_bandwidth_bytes{instance=~\"^$instance\",env=~\"^$env\",dimension=\"mirrored_write_bytes_per_sec\"})",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "mirrored_per_sec",
"range": true,
"refId": "C"
}
],
"title": "Average Total Bandwidth for $instance array(s)",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"description": "* Recommended for single array only.\n\n* Panel will display \"No Data\" until there is at least 12 hours of data in the data source as this panel displays the last 90 days at 12 hour intervals.\n\n* purefa_array_space_bytes{space=total_provisioned, *_effective} metrics NOT available when a file system on the array has unlimited provisioned size.",
"fieldConfig": {
"defaults": {
"color": {
"fixedColor": "#fe7800",
"mode": "fixed"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"axisSoftMin": 0,
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 100,
"gradientMode": "opacity",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "smooth",
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"showValues": false,
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [
{
"options": {
"match": "null",
"result": {
"text": "N/A"
}
},
"type": "special"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "white",
"value": 0
}
]
},
"unit": "bytes"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "snapshots"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#662e9c",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "capacity"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#646464",
"mode": "fixed"
}
},
{
"id": "custom.fillOpacity",
"value": 0
},
{
"id": "custom.hideFrom",
"value": {
"legend": true,
"tooltip": false,
"viz": false
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "shared"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#2ae5f2",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "system"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#e05699",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "DRR"
},
"properties": [
{
"id": "custom.axisPlacement",
"value": "right"
},
{
"id": "custom.fillOpacity",
"value": 0
},
{
"id": "custom.lineStyle",
"value": {
"dash": [
0,
10
],
"fill": "dot"
}
},
{
"id": "unit",
"value": ":1"
},
{
"id": "color",
"value": {
"fixedColor": "#00b89e",
"mode": "fixed"
}
},
{
"id": "custom.lineWidth",
"value": 3
},
{
"id": "custom.axisLabel",
"value": "Data Reduction Ratio"
},
{
"id": "custom.axisSoftMin",
"value": 0
},
{
"id": "custom.axisColorMode",
"value": "series"
},
{
"id": "custom.axisSoftMax",
"value": 5
}
]
},
{
"matcher": {
"id": "byName",
"options": "unique"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#FA6400",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "replication"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#feb804",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "total_provisioned"
},
"properties": [
{
"id": "custom.axisPlacement",
"value": "right"
},
{
"id": "color",
"value": {
"fixedColor": "#662e9c",
"mode": "fixed"
}
},
{
"id": "custom.lineStyle",
"value": {
"dash": [
0,
10
],
"fill": "dot"
}
},
{
"id": "custom.fillOpacity",
"value": 0
},
{
"id": "custom.lineWidth",
"value": 3
},
{
"id": "custom.axisColorMode",
"value": "series"
},
{
"id": "custom.axisLabel",
"value": "Provisioned for Hosts"
},
{
"id": "displayName",
"value": "Total Provisioned"
},
{
"id": "custom.axisSoftMin",
"value": 0
}
]
},
{
"matcher": {
"id": "byName",
"options": "Total Provisioned"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#662e9c",
"mode": "fixed"
}
}
]
}
]
},
"gridPos": {
"h": 8,
"w": 18,
"x": 6,
"y": 68
},
"id": 200,
"interval": "12h",
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum(purefa_array_space_bytes{instance=~\"^$instance\",env=~\"^$env\",space=~\"system|shared|snapshots|unique|replication|capacity\"}) by (space)",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "{{space}}",
"range": true,
"refId": "Physical Used Capacity"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg(purefa_array_space_data_reduction_ratio{instance=~\"^$instance\",env=~\"^$env\"})",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "DRR",
"range": true,
"refId": "DDR"
},
{
"datasource": {
"type": "prometheus",
"uid": "bff135q3yj5dsb"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum(purefa_array_space_bytes{instance=~\"^$instance\",env=~\"^$env\",space=~\"total_provisioned\"}) by (space)\n#\"total_provisioned and *_effective metrics NOT available when a file system on the array has unlimited provisioned size.\"",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "{{space}}",
"range": true,
"refId": "Provisioned for Hosts"
}
],
"timeFrom": "90d",
"title": "Capacity Utilization by Type & $instance array(s)",
"type": "timeseries"
}
],
"preload": false,
"refresh": "",
"schemaVersion": 42,
"tags": [
"pure",
"storage",
"purestorage",
"flasharray",
"fa",
"prometheus"
],
"templating": {
"list": [
{
"current": {
"text": "${VAR_DASHBOARDVERSION}",
"value": "${VAR_DASHBOARDVERSION}"
},
"description": "Display Everpure dashboard release version",
"hide": 2,
"name": "DashboardVersion",
"query": "${VAR_DASHBOARDVERSION}",
"skipUrlSync": true,
"type": "constant"
},
{
"current": {
"text": "default",
"value": "default"
},
"includeAll": false,
"label": "Datasource",
"name": "datasource",
"options": [],
"query": "prometheus",
"refresh": 1,
"regex": "",
"type": "datasource"
},
{
"allValue": ".+",
"current": {
"text": "All",
"value": [
"$__all"
]
},
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"definition": "query_result(purefa_info)",
"includeAll": true,
"label": "Env",
"multi": true,
"name": "env",
"options": [],
"query": {
"query": "query_result(purefa_info)",
"refId": "StandardVariableQuery"
},
"refresh": 1,
"regex": ".*env=\"(.*?)\".*",
"regexApplyTo": "value",
"sort": 1,
"type": "query"
},
{
"allValue": ".+",
"current": {
"text": "All",
"value": [
"$__all"
]
},
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"definition": "query_result(purefa_info{instance=~\".+\"})",
"description": "",
"includeAll": true,
"label": "FlashArray",
"multi": true,
"name": "instance",
"options": [],
"query": {
"query": "query_result(purefa_info{instance=~\".+\"})",
"refId": "StandardVariableQuery"
},
"refresh": 1,
"regex": ".*instance=\"(.*?)\".*",
"regexApplyTo": "value",
"sort": 1,
"type": "query"
},
{
"current": {
"text": "5",
"value": "5"
},
"description": "",
"includeAll": false,
"label": "Top Items",
"name": "TopItems",
"options": [],
"query": "1,2,3,4,5,6,7,8,10,15,25,50",
"type": "custom",
"valuesFormat": "csv"
}
]
},
"time": {
"from": "now-3h",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"10s",
"30s",
"1m",
"5m"
]
},
"timezone": "browser",
"title": "Everpure FlashArray - Overview",
"uid": "kq1L0kKVk",
"version": 4,
"weekStart": ""
}
{
"annotations": {
"list": [
{
"builtIn": 1,
"datasource": {
"type": "datasource",
"uid": "grafana"
},
"enable": true,
"hide": true,
"iconColor": "rgba(0, 211, 255, 1)",
"name": "Annotations & Alerts",
"target": {
"limit": 100,
"matchAny": false,
"tags": [],
"type": "dashboard"
},
"type": "dashboard"
}
]
},
"description": "Get real-time visibility into your FlashBlade environment with a powerful, high-level dashboard built for speed, scale, and clarity. Instantly surface performance, capacity, and top talkers—so you can troubleshoot smarter and act faster.",
"editable": true,
"fiscalYearStartMonth": 0,
"graphTooltip": 1,
"links": [],
"panels": [
{
"fieldConfig": {
"defaults": {},
"overrides": []
},
"gridPos": {
"h": 9,
"w": 6,
"x": 0,
"y": 0
},
"id": 121,
"links": [
{
"targetBlank": true,
"title": "Everpure",
"url": "http://www.everpuredata.com"
}
],
"options": {
"code": {
"language": "plaintext",
"showLineNumbers": false,
"showMiniMap": false
},
"content": "# <span style=\"color: orangered;\"><strong>EVERPURE</strong></span>\n# FlashBlade <span style=\"color: orangered;\"><strong>//</strong>\n\n## Overview\n\nFleet wide performance and capacity overview for Pure Storage FlashBlade.\n\n<!--Filter arrays by environment, entire fleet or view individual arrays.-->\n\nThe following endpoints must be scraped for all panels to successfully display results.\n`/metrics/array`, `/metrics/filesystems`, `/metrics/objectstore`\n\nFor a full list of available metrics, go to [Semantic Conventions for Everpure FlashBlade Metrics](https://github.com/PureStorage-OpenConnect/pure-fb-openmetrics-exporter/blob/main/specification/metrics/purefb-metrics.md)\n<!---\nMetrics Endpoints \n\n#* /metrics/array\n#* /metrics/clients\n#* /metrics/filesystems\n#* /metrics/objectstore\n#* /metrics/policies\n#* /metrics/usage\n--->",
"mode": "markdown"
},
"pluginVersion": "12.4.0",
"title": "",
"type": "text"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "center",
"cellOptions": {
"mode": "basic",
"type": "color-background"
},
"filterable": false,
"footer": {
"reducers": []
},
"inspect": false
},
"decimals": 1,
"mappings": [],
"min": 0,
"noValue": "-",
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "transparent",
"value": 0
}
]
},
"unit": "none"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Free Space"
},
"properties": [
{
"id": "unit",
"value": "tbytes"
},
{
"id": "custom.width",
"value": 95
},
{
"id": "thresholds",
"value": {
"mode": "absolute",
"steps": [
{
"color": "#cd146d",
"value": 0
},
{
"color": "#1a9ea7",
"value": 1
}
]
}
},
{
"id": "custom.cellOptions",
"value": {
"mode": "gradient",
"type": "color-background"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "Capacity"
},
"properties": [
{
"id": "unit",
"value": "tbytes"
},
{
"id": "custom.width",
"value": 95
}
]
},
{
"matcher": {
"id": "byName",
"options": "Utilization"
},
"properties": [
{
"id": "unit",
"value": "percent"
},
{
"id": "thresholds",
"value": {
"mode": "absolute",
"steps": [
{
"color": "#1a9ea7",
"value": 0
},
{
"color": "#e0b400",
"value": 70
},
{
"color": "dark-orange",
"value": 80
},
{
"color": "#cd146d",
"value": 90
}
]
}
},
{
"id": "custom.width",
"value": 125
},
{
"id": "custom.cellOptions",
"value": {
"mode": "gradient",
"type": "gauge"
}
},
{
"id": "max",
"value": 100
}
]
},
{
"matcher": {
"id": "byName",
"options": "Data Reduction"
},
"properties": [
{
"id": "unit",
"value": ":1"
},
{
"id": "thresholds",
"value": {
"mode": "absolute",
"steps": [
{
"color": "#1a9ea7",
"value": 0
},
{
"color": "#e0b400",
"value": 0
},
{
"color": "#1a9ea7",
"value": 1.01
}
]
}
},
{
"id": "custom.width",
"value": 125
},
{
"id": "custom.cellOptions",
"value": {
"mode": "gradient",
"type": "color-background"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "Health"
},
"properties": [
{
"id": "mappings",
"value": [
{
"options": {
"0": {
"color": "semi-dark-red",
"index": 0,
"text": "Unhealthy"
},
"1": {
"color": "#1a9ea7",
"index": 1,
"text": "Healthy"
}
},
"type": "value"
}
]
},
{
"id": "custom.width",
"value": 125
},
{
"id": "custom.cellOptions",
"value": {
"mode": "gradient",
"type": "color-background"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "Alerts"
},
"properties": [
{
"id": "decimals",
"value": 1
},
{
"id": "thresholds",
"value": {
"mode": "absolute",
"steps": [
{
"color": "transparent",
"value": 0
},
{
"color": "#E0B400",
"value": 1
}
]
}
},
{
"id": "custom.width",
"value": 100
},
{
"id": "decimals",
"value": 0
},
{
"id": "custom.cellOptions",
"value": {
"mode": "gradient",
"type": "color-background"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "Array"
},
"properties": [
{
"id": "custom.align",
"value": "auto"
}
]
},
{
"matcher": {
"id": "byName",
"options": "Ver"
},
"properties": [
{
"id": "custom.width",
"value": 75
}
]
},
{
"matcher": {
"id": "byName",
"options": "OS"
},
"properties": [
{
"id": "custom.width",
"value": 90
}
]
}
]
},
"gridPos": {
"h": 5,
"w": 18,
"x": 6,
"y": 0
},
"id": 163,
"options": {
"cellHeight": "sm",
"frameIndex": 0,
"showHeader": true,
"sortBy": []
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum(purefb_info{endpoint=~\"$instance\",env=~\"$env\"}) by (endpoint, os, version)",
"format": "table",
"instant": true,
"legendFormat": "{{os}} {{version}}",
"range": false,
"refId": "Purity"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"exemplar": false,
"expr": "min(purefb_hardware_health{endpoint=~\"$instance\",env=~\"$env\"}) by (endpoint)",
"format": "table",
"instant": true,
"legendFormat": "Hardware Health",
"range": false,
"refId": "Array health"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum(purefb_alerts_open{endpoint=~\"$instance\",env=~\"$env\"}) by (endpoint)",
"format": "table",
"instant": true,
"interval": "",
"legendFormat": "Number of Alerts",
"range": false,
"refId": "Alerts"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg(purefb_array_space_data_reduction_ratio{endpoint=~\"$instance\",env=~\"$env\",type=\"array\"}) by (endpoint)",
"format": "table",
"instant": true,
"interval": "",
"legendFormat": "Ratio",
"range": false,
"refId": "Data Reduction"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum(purefb_array_space_bytes{endpoint=~\"$instance\",env=~\"$env\",type=\"array\",space=\"capacity\"}) by (endpoint) /1024/1024/1024/1024",
"format": "table",
"instant": true,
"legendFormat": "Array Capacity (TB)",
"range": false,
"refId": "Capacity"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum(purefb_array_space_bytes{endpoint=~\"$instance\",env=~\"$env\",type=\"array\",space=\"empty\"}) by (endpoint) /1024/1024/1024/1024",
"format": "table",
"instant": true,
"interval": "",
"legendFormat": "Array Free Space",
"range": false,
"refId": "Free Space"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"exemplar": false,
"expr": "purefb_array_space_utilization{env=~\"$env\", endpoint=~\"$instance\"}",
"format": "table",
"instant": true,
"legendFormat": "Utililzation",
"range": false,
"refId": "Utilization"
}
],
"title": "FlashBlade Array System Detail",
"transformations": [
{
"id": "joinByField",
"options": {
"byField": "endpoint",
"mode": "outer"
}
},
{
"id": "filterFieldsByName",
"options": {
"include": {
"names": [
"instance",
"os",
"version",
"Value #Array health",
"Value #Alerts",
"Value #Data Reduction",
"Value #Free Space",
"Value #Utilization",
"Value #Capacity"
]
}
}
},
{
"id": "organize",
"options": {
"excludeByName": {},
"indexByName": {},
"renameByName": {
"Value #Alerts": "Alerts",
"Value #Array Capacity": "Capacity",
"Value #Array Free Space": "Free Space",
"Value #Array health": "Health",
"Value #Capacity": "Capacity",
"Value #Data Reduction": "Data Reduction",
"Value #Free Space": "Free Space",
"Value #Total Alerts": "Alerts",
"Value #Utilization": "Utilization",
"endpoint": "Array",
"os": "OS",
"version": "Ver"
}
}
}
],
"type": "table"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"custom": {
"align": "auto",
"cellOptions": {
"mode": "basic",
"type": "color-background"
},
"footer": {
"reducers": []
},
"inspect": false
},
"mappings": [
{
"options": {
"0": {
"index": 0,
"text": "-"
}
},
"type": "value"
}
],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "transparent",
"value": 0
}
]
}
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "Info"
},
"properties": [
{
"id": "thresholds",
"value": {
"mode": "absolute",
"steps": [
{
"color": "transparent",
"value": 0
},
{
"color": "#1a9ea7",
"value": 1
}
]
}
},
{
"id": "custom.width",
"value": 125
},
{
"id": "custom.align",
"value": "center"
},
{
"id": "custom.cellOptions",
"value": {
"mode": "gradient",
"type": "color-background"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "Warning"
},
"properties": [
{
"id": "thresholds",
"value": {
"mode": "absolute",
"steps": [
{
"color": "transparent",
"value": 0
},
{
"color": "#e0b400",
"value": 1
}
]
}
},
{
"id": "custom.width",
"value": 125
},
{
"id": "custom.align",
"value": "center"
},
{
"id": "custom.cellOptions",
"value": {
"mode": "gradient",
"type": "color-background"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "Critical"
},
"properties": [
{
"id": "thresholds",
"value": {
"mode": "absolute",
"steps": [
{
"color": "transparent",
"value": 0
},
{
"color": "#cd146d",
"value": 1
}
]
}
},
{
"id": "custom.width",
"value": 125
},
{
"id": "custom.align",
"value": "center"
},
{
"id": "custom.cellOptions",
"value": {
"mode": "gradient",
"type": "color-background"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "Total"
},
"properties": [
{
"id": "custom.width",
"value": 125
},
{
"id": "custom.align",
"value": "center"
},
{
"id": "custom.cellOptions",
"value": {
"mode": "gradient",
"type": "color-background"
}
},
{
"id": "thresholds",
"value": {
"mode": "absolute",
"steps": [
{
"color": "transparent",
"value": 0
},
{
"color": "#e0b400",
"value": 1
}
]
}
}
]
}
]
},
"gridPos": {
"h": 4,
"w": 18,
"x": 6,
"y": 5
},
"id": 180,
"options": {
"cellHeight": "sm",
"showHeader": true,
"sortBy": []
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum(purefb_alerts_open{endpoint=~\"$instance\", env=~\"$env\", severity=\"critical\"}) by (endpoint) OR on() sum(purefb_alerts_open{endpoint=~\"$instance\"}*0) by (endpoint)",
"format": "table",
"instant": true,
"legendFormat": "__auto",
"range": false,
"refId": "Critical"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum(purefb_alerts_open{endpoint=~\"$instance\",severity=\"warning\",env=~\"$env\"}) by (endpoint) OR on() sum(purefb_alerts_open{endpoint=~\"$instance\"}*0) by (endpoint)",
"format": "table",
"instant": true,
"legendFormat": "__auto",
"range": false,
"refId": "Warning"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum(purefb_alerts_open{endpoint=~\"$instance\",severity=\"info\",env=~\"$env\"}) by (endpoint) OR on() sum(purefb_alerts_open{endpoint=~\"$instance\"}*0) by (endpoint)\n",
"format": "table",
"instant": true,
"legendFormat": "__auto",
"range": false,
"refId": "Info"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum(purefb_alerts_open{endpoint=~\"$instance\",severity=\".*\",env=~\"$env\"}) by (endpoint) OR on() sum(purefb_alerts_open{endpoint=~\"$instance\"}) by (endpoint)",
"format": "table",
"instant": true,
"legendFormat": "__auto",
"range": false,
"refId": "Total"
}
],
"title": "FlashBlade Array Alerts",
"transformations": [
{
"id": "joinByField",
"options": {
"byField": "endpoint",
"mode": "outer"
}
},
{
"id": "filterFieldsByName",
"options": {
"include": {
"names": [
"instance",
"Value #Info",
"Value #Warning",
"Value #Critical",
"Value #Total"
]
}
}
},
{
"id": "organize",
"options": {
"excludeByName": {},
"indexByName": {
"Value #Critical": 1,
"Value #Info": 3,
"Value #Total": 4,
"Value #Warning": 2,
"instance": 0
},
"renameByName": {
"Value #Critical": "Critical",
"Value #Info": "Info",
"Value #Total": "Total",
"Value #Warning": "Warning",
"endpoint": "Array"
}
}
}
],
"type": "table"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
}
},
"mappings": [],
"unit": "bytes"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "File System"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#2ae5f2",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "Object Store"
},
"properties": [
{
"id": "color",
"value": {
"mode": "palette-classic"
}
},
{
"id": "color",
"value": {
"fixedColor": "#ff8316",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "Snapshots"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#662e9c",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "Empty"
},
"properties": [
{
"id": "color",
"value": {
"mode": "fixed"
}
}
]
}
]
},
"gridPos": {
"h": 8,
"w": 8,
"x": 0,
"y": 9
},
"id": 127,
"options": {
"displayLabels": [
"name"
],
"legend": {
"displayMode": "table",
"placement": "right",
"showLegend": true,
"values": [
"value",
"percent"
]
},
"pieType": "donut",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"sort": "desc",
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"expr": "sum(purefb_array_space_bytes{endpoint=~\"$instance\",env=~\"$env\",space=~\"total_physical\",type!=\"array\"}) by (type)",
"format": "time_series",
"legendFormat": "{{type}}",
"range": true,
"refId": "Used Capacity by Type"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"expr": "sum(purefb_array_space_bytes{endpoint=~\"$instance\",env=~\"$env\",space=~\"snapshots\"}) by (space)",
"legendFormat": "__auto",
"range": true,
"refId": "Snapshots"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"expr": "sum(purefb_array_space_bytes{endpoint=~\"$instance\",env=~\"$env\",space=~\"empty\"}) by (space)",
"legendFormat": "__auto",
"range": true,
"refId": "Array Free Space"
}
],
"title": "Sum Array Space Utilization by Type",
"transformations": [
{
"id": "joinByField",
"options": {
"byField": "Time",
"mode": "outer"
}
},
{
"id": "organize",
"options": {
"excludeByName": {},
"indexByName": {},
"renameByName": {
"file-system": "File System",
"object-store": "Object Store",
"{space=\"empty\"}": "Empty",
"{space=\"snapshots\"}": "Snapshots"
}
}
}
],
"type": "piechart"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"fieldConfig": {
"defaults": {
"color": {
"fixedColor": "light-blue",
"mode": "palette-classic"
},
"custom": {
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
}
},
"decimals": 1,
"mappings": [],
"noValue": "0",
"unit": "ops"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "reads_per_sec"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#26d4e0",
"mode": "fixed"
}
},
{
"id": "displayName",
"value": "Reads"
}
]
},
{
"matcher": {
"id": "byName",
"options": "writes_per_sec"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#ff8316",
"mode": "fixed"
}
},
{
"id": "displayName",
"value": "Writes"
}
]
},
{
"matcher": {
"id": "byName",
"options": "others_per_sec"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#662e9c",
"mode": "fixed"
}
},
{
"id": "displayName",
"value": "Other"
}
]
}
]
},
"gridPos": {
"h": 8,
"w": 8,
"x": 8,
"y": 9
},
"id": 128,
"options": {
"displayLabels": [
"name"
],
"legend": {
"displayMode": "table",
"placement": "right",
"showLegend": true,
"values": [
"value",
"percent"
]
},
"pieType": "donut",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"sort": "desc",
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum(avg_over_time(purefb_array_performance_throughput_iops{endpoint=~\"$instance\",env=~\"$env\"}[$__range])) by (dimension)",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "__auto",
"range": true,
"refId": "Average IOPS"
}
],
"title": "Avg Over Time IOPS by IO Type",
"type": "piechart"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"fieldConfig": {
"defaults": {
"color": {
"fixedColor": "light-blue",
"mode": "palette-classic"
},
"custom": {
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
}
},
"decimals": 1,
"mappings": [],
"noValue": "0",
"unit": "ops"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "NFS"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#2ae5f2",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "SMB"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#ff8316",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "HTTP"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#662e9c",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "S3"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#808080",
"mode": "fixed"
}
}
]
}
]
},
"gridPos": {
"h": 8,
"w": 8,
"x": 16,
"y": 9
},
"id": 190,
"options": {
"displayLabels": [
"name"
],
"legend": {
"displayMode": "table",
"placement": "right",
"showLegend": true,
"sortBy": "Value",
"sortDesc": false,
"values": [
"value",
"percent"
]
},
"pieType": "donut",
"reduceOptions": {
"calcs": [
"lastNotNull"
],
"fields": "",
"values": false
},
"sort": "desc",
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"exemplar": false,
"expr": "sum(avg_over_time(purefb_array_performance_throughput_iops{env=~\"$env\", endpoint=~\"$instance\",protocol!=\"all\"}[$__range])) by (protocol)",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "__auto",
"range": true,
"refId": "A"
}
],
"title": "Avg Over Time IOPS by All Protocols",
"transformations": [
{
"id": "filterFieldsByName",
"options": {}
}
],
"type": "piechart"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "smooth",
"lineStyle": {
"fill": "solid"
},
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"showValues": false,
"spanNulls": 300000,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
}
]
},
"unit": "binBps"
},
"overrides": []
},
"gridPos": {
"h": 10,
"w": 12,
"x": 0,
"y": 17
},
"id": 165,
"options": {
"legend": {
"calcs": [
"mean",
"min",
"max",
"last"
],
"displayMode": "table",
"placement": "bottom",
"showLegend": true,
"sortBy": "Mean",
"sortDesc": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"expr": "sum by (endpoint, protocol) (\n avg_over_time(\n purefb_array_performance_bandwidth_bytes{\n env=~\"$env\",\n endpoint=~\"$instance\",\n dimension=\"read_bytes_per_sec\",\n protocol=~\"$protocol\"\n }[$__interval]\n )\n)",
"legendFormat": "{{endpoint}} - {{protocol}}",
"range": true,
"refId": "Read Bandwidth"
}
],
"title": "Read Throughput by $protocol protocol(s)",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "smooth",
"lineStyle": {
"fill": "solid"
},
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"showValues": false,
"spanNulls": 300000,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
}
]
},
"unit": "binBps"
},
"overrides": []
},
"gridPos": {
"h": 10,
"w": 12,
"x": 12,
"y": 17
},
"id": 131,
"options": {
"legend": {
"calcs": [
"mean",
"min",
"max",
"last"
],
"displayMode": "table",
"placement": "bottom",
"showLegend": true,
"sortBy": "Mean",
"sortDesc": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"expr": "sum by (endpoint, protocol) (\n avg_over_time(\n purefb_array_performance_bandwidth_bytes{\n env=~\"$env\",\n endpoint=~\"$instance\",\n dimension=\"write_bytes_per_sec\",\n protocol=~\"$protocol\"\n }[$__interval]\n )\n)",
"legendFormat": "{{endpoint}} - {{protocol}}",
"range": true,
"refId": "Read Bandwidth"
}
],
"title": "Write Throughput by $protocol protocol(s)",
"type": "timeseries"
},
{
"collapsed": false,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 27
},
"id": 198,
"panels": [],
"title": "Filesystems",
"type": "row"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"description": "#### Requirements\n`/metrics/filesystems` endpoint required for this panel.\n\n#### Panel Overview\nThis graph displays the top `$TopItems` values, based on their average across the selected time range.\n\nIt combines two Prometheus queries:\n- The first shows the average values over time for all matching entities.\n- The second uses `topk()` with `avg_over_time(... @ end())` to select the top N values, based on total usage across the full range.\n- Only entities present in both queries are shown, meaning the graph displays only the top-N performers.\n\n---\n\n#### Why It’s Set Up This Way\nPrometheus doesn’t support filtering a time series dynamically by top N across time, so this setup is a workaround.\n\nUsing `@ end()` ensures the `topk()` query selects exactly N entities based on a single, consistent snapshot taken at the end of the selected time range. \nThis avoids the issue where the top N can vary over time and result in more than N lines being shown on the graph.\n\nWe also use `avg_over_time`, not `rate()`, because the metric is pre-aggregated — it's not a counter. Using `rate()` would give incorrect results.\n\n---\n\n#### Tips for Best Use\n- This panel works best for focused time windows, ideally 20 minutes to 3 hours. \n Longer ranges (e.g. days) smooth out the signal and may hide short-lived spikes.\n- Use it to quickly spot heavy resource consumers over time, then drill into specific panels or metrics.\n- If graph lines look broken or inconsistent, try zooming in or shifting the time range slightly before \"now\" to avoid scrape alignment issues.\n- Combine with filters (e.g., instance or protocol) to reduce clutter and highlight key trends.\n- For troubleshooting or spot checks, reduce the time range to 15–30 minutes for clearer insight.",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "smooth",
"lineStyle": {
"fill": "solid"
},
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"showValues": false,
"spanNulls": 300000,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
}
]
},
"unit": "bytes"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 28
},
"id": 183,
"options": {
"legend": {
"calcs": [
"mean",
"min",
"max",
"last"
],
"displayMode": "table",
"placement": "bottom",
"showLegend": true,
"sortBy": "Mean",
"sortDesc": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg(purefb_file_systems_performance_bandwidth_bytes{env=~\"$env\", endpoint=~\"$instance\"}) by (name,endpoint, dimension)\nand\ntopk($TopItems, avg(avg_over_time(purefb_file_systems_performance_bandwidth_bytes{env=~\"$env\", endpoint=~\"$instance\"}[$__range] @ end() )) by (name,endpoint, dimension))",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "{{instance}} - {{dimension}} - {{name}}",
"range": true,
"refId": "Volume Latency"
}
],
"title": "Top $TopItems Avg Filesystem Throughput by IO Type",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"description": "#### Requirements\n`/metrics/filesystems` endpoint required for this panel.\n\n#### Panel Overview\nThis graph displays the top `$TopItems` values, based on their average across the selected time range.\n\nIt combines two Prometheus queries:\n- The first shows the average values over time for all matching entities.\n- The second uses `topk()` with `avg_over_time(... @ end())` to select the top N values, based on total usage across the full range.\n- Only entities present in both queries are shown, meaning the graph displays only the top-N performers.\n\n---\n\n#### Why It’s Set Up This Way\nPrometheus doesn’t support filtering a time series dynamically by top N across time, so this setup is a workaround.\n\nUsing `@ end()` ensures the `topk()` query selects exactly N entities based on a single, consistent snapshot taken at the end of the selected time range. \nThis avoids the issue where the top N can vary over time and result in more than N lines being shown on the graph.\n\nWe also use `avg_over_time`, not `rate()`, because the metric is pre-aggregated — it's not a counter. Using `rate()` would give incorrect results.\n\n---\n\n#### Tips for Best Use\n- This panel works best for focused time windows, ideally 20 minutes to 3 hours. \n Longer ranges (e.g. days) smooth out the signal and may hide short-lived spikes.\n- Use it to quickly spot heavy resource consumers over time, then drill into specific panels or metrics.\n- If graph lines look broken or inconsistent, try zooming in or shifting the time range slightly before \"now\" to avoid scrape alignment issues.\n- Combine with filters (e.g., instance or protocol) to reduce clutter and highlight key trends.\n- For troubleshooting or spot checks, reduce the time range to 15–30 minutes for clearer insight.",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "smooth",
"lineStyle": {
"fill": "solid"
},
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"showValues": false,
"spanNulls": 300000,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
}
]
},
"unit": "µs"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 28
},
"id": 172,
"options": {
"legend": {
"calcs": [
"mean",
"min",
"max",
"last"
],
"displayMode": "table",
"placement": "bottom",
"showLegend": true,
"sortBy": "Mean",
"sortDesc": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg(purefb_file_systems_performance_latency_usec{env=~\"$env\", endpoint=~\"$instance\"}) by (name,dimension,instance)\nand\ntopk($TopItems, avg(avg_over_time(purefb_file_systems_performance_latency_usec{env=~\"$env\", endpoint=~\"$instance\"}[$__range] @ end() )) by (name,dimension,instance))",
"legendFormat": "{{instance}} - {{dimension}} - {{name}}",
"range": true,
"refId": "Write Bandwidth"
}
],
"title": "Top $TopItems Avg File System Latency by IO Type",
"type": "timeseries"
},
{
"collapsed": true,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 36
},
"id": 200,
"panels": [
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"description": "#### Requirements\n`/metrics/objectstore` endpoint required for this panel.\n\n#### Panel Overview\nThis graph displays the top `$TopItems` values, based on their average across the selected time range.\n\nIt combines two Prometheus queries:\n- The first shows the average values over time for all matching entities.\n- The second uses `topk()` with `avg_over_time(... @ end())` to select the top N values, based on total usage across the full range.\n- Only entities present in both queries are shown, meaning the graph displays only the top-N performers.\n\n---\n\n#### Why It’s Set Up This Way\nPrometheus doesn’t support filtering a time series dynamically by top N across time, so this setup is a workaround.\n\nUsing `@ end()` ensures the `topk()` query selects exactly N entities based on a single, consistent snapshot taken at the end of the selected time range. \nThis avoids the issue where the top N can vary over time and result in more than N lines being shown on the graph.\n\nWe also use `avg_over_time`, not `rate()`, because the metric is pre-aggregated — it's not a counter. Using `rate()` would give incorrect results.\n\n---\n\n#### Tips for Best Use\n- This panel works best for focused time windows, ideally 20 minutes to 3 hours. \n Longer ranges (e.g. days) smooth out the signal and may hide short-lived spikes.\n- Use it to quickly spot heavy resource consumers over time, then drill into specific panels or metrics.\n- If graph lines look broken or inconsistent, try zooming in or shifting the time range slightly before \"now\" to avoid scrape alignment issues.\n- Combine with filters (e.g., instance or protocol) to reduce clutter and highlight key trends.\n- For troubleshooting or spot checks, reduce the time range to 15–30 minutes for clearer insight.",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"axisSoftMin": 1,
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "smooth",
"lineStyle": {
"fill": "solid"
},
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"showValues": false,
"spanNulls": 300000,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
}
]
},
"unit": "binBps"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 0,
"y": 45
},
"id": 142,
"options": {
"legend": {
"calcs": [
"mean",
"min",
"max",
"last"
],
"displayMode": "table",
"placement": "bottom",
"showLegend": true,
"sortBy": "Mean",
"sortDesc": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg(purefb_buckets_performance_bandwidth_bytes{env=~\"$env\", endpoint=~\"$instance\"}) by (name,endpoint,dimension)\nand\ntopk($TopItems, avg(avg_over_time(purefb_buckets_performance_bandwidth_bytes{env=~\"$env\", endpoint=~\"$instance\"}[$__range] @end () )) by (name,endpoint,dimension))",
"format": "time_series",
"instant": false,
"legendFormat": "{{instance}} - {{dimension}} - {{name}}",
"range": true,
"refId": "Write Bandwidth"
}
],
"title": "Top $TopItems Avg Bucket Throughput by IO Type & $instance arrays(s)",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"description": "#### Requirements\n`/metrics/objectstore` endpoint required for this panel.\n\n#### Panel Overview\nThis graph displays the top `$TopItems` values, based on their average across the selected time range.\n\nIt combines two Prometheus queries:\n- The first shows the average values over time for all matching entities.\n- The second uses `topk()` with `avg_over_time(... @ end())` to select the top N values, based on total usage across the full range.\n- Only entities present in both queries are shown, meaning the graph displays only the top-N performers.\n\n---\n\n#### Why It’s Set Up This Way\nPrometheus doesn’t support filtering a time series dynamically by top N across time, so this setup is a workaround.\n\nUsing `@ end()` ensures the `topk()` query selects exactly N entities based on a single, consistent snapshot taken at the end of the selected time range. \nThis avoids the issue where the top N can vary over time and result in more than N lines being shown on the graph.\n\nWe also use `avg_over_time`, not `rate()`, because the metric is pre-aggregated — it's not a counter. Using `rate()` would give incorrect results.\n\n---\n\n#### Tips for Best Use\n- This panel works best for focused time windows, ideally 20 minutes to 3 hours. \n Longer ranges (e.g. days) smooth out the signal and may hide short-lived spikes.\n- Use it to quickly spot heavy resource consumers over time, then drill into specific panels or metrics.\n- If graph lines look broken or inconsistent, try zooming in or shifting the time range slightly before \"now\" to avoid scrape alignment issues.\n- Combine with filters (e.g., instance or protocol) to reduce clutter and highlight key trends.\n- For troubleshooting or spot checks, reduce the time range to 15–30 minutes for clearer insight.",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "smooth",
"lineStyle": {
"fill": "solid"
},
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"showValues": false,
"spanNulls": 300000,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
}
]
},
"unit": "µs"
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 12,
"x": 12,
"y": 45
},
"id": 191,
"options": {
"legend": {
"calcs": [
"mean",
"min",
"max",
"last"
],
"displayMode": "table",
"placement": "bottom",
"showLegend": true,
"sortBy": "Mean",
"sortDesc": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg(purefb_buckets_performance_latency_usec{env=~\"$env\", endpoint=~\"$instance\"}) by (name,dimension,instance)\nand\ntopk($TopItems, avg(avg_over_time(purefb_buckets_performance_latency_usec{env=~\"$env\", endpoint=~\"$instance\"}[$__range] @end () )) by (name,dimension,instance))",
"legendFormat": "{{instance}} - {{dimension}} - {{name}}",
"range": true,
"refId": "Write Bandwidth"
}
],
"title": "Top $TopItems Avg Bucket Latency by IO Type & $instance arrays(s)",
"type": "timeseries"
}
],
"title": "Objectstore",
"type": "row"
},
{
"collapsed": true,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 37
},
"id": 201,
"panels": [
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "smooth",
"lineStyle": {
"fill": "solid"
},
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"showValues": false,
"spanNulls": 300000,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
}
]
},
"unit": "µs"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "usec_per_write_op"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#fa6400",
"mode": "fixed"
}
},
{
"id": "displayName",
"value": "Write"
}
]
},
{
"matcher": {
"id": "byName",
"options": "usec_per_other_op"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#662e9c",
"mode": "fixed"
}
},
{
"id": "displayName",
"value": "Other"
}
]
},
{
"matcher": {
"id": "byName",
"options": "usec_per_read_op"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#2ae5f2",
"mode": "fixed"
}
},
{
"id": "displayName",
"value": "Read"
}
]
}
]
},
"gridPos": {
"h": 8,
"w": 24,
"x": 0,
"y": 54
},
"id": 193,
"options": {
"legend": {
"calcs": [
"mean",
"min",
"max",
"last"
],
"displayMode": "table",
"placement": "right",
"showLegend": true,
"sortBy": "Mean",
"sortDesc": true,
"width": 400
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg(purefb_array_performance_latency_usec{endpoint=~\"^$instance\",env=~\"^$env\",dimension=\"usec_per_read_op\"})",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "usec_per_read_op",
"range": true,
"refId": "Read"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg(purefb_array_performance_latency_usec{endpoint=~\"^$instance\",env=~\"^$env\",dimension=\"usec_per_write_op\"})",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "usec_per_write_op",
"range": true,
"refId": "Write"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg(purefb_array_performance_latency_usec{endpoint=~\"^$instance\",env=~\"^$env\",dimension=\"usec_per_other_op\"})",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "usec_per_other_op",
"range": true,
"refId": "Other"
}
],
"title": "Avg Latency by $instance array(s) & $protocol protocol(s)",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "smooth",
"lineStyle": {
"fill": "solid"
},
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"showValues": false,
"spanNulls": 300000,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
}
]
},
"unit": "iops"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "reads_per_sec"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#2ae5f2",
"mode": "fixed"
}
},
{
"id": "displayName",
"value": "Reads"
}
]
},
{
"matcher": {
"id": "byName",
"options": "writes_per_sec"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#ff8316",
"mode": "fixed"
}
},
{
"id": "displayName",
"value": "Writes"
}
]
},
{
"matcher": {
"id": "byName",
"options": "other_per_sec"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#662e9c",
"mode": "fixed"
}
},
{
"id": "displayName",
"value": "Other"
}
]
},
{
"matcher": {
"id": "byName",
"options": "Writes"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#ff8316",
"mode": "fixed"
}
}
]
}
]
},
"gridPos": {
"h": 8,
"w": 24,
"x": 0,
"y": 62
},
"id": 194,
"options": {
"legend": {
"calcs": [
"mean",
"min",
"max",
"last"
],
"displayMode": "table",
"placement": "right",
"showLegend": true,
"sortBy": "Mean",
"sortDesc": true,
"width": 400
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg(purefb_array_performance_throughput_iops{endpoint=~\"^$instance\",env=~\"^$env\",dimension=\"reads_per_sec\"})",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "reads_per_sec",
"range": true,
"refId": "Read"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg(purefb_array_performance_throughput_iops{endpoint=~\"^$instance\",env=~\"^$env\",dimension=\"writes_per_sec\"})",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "writes_per_sec",
"range": true,
"refId": "Write"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg(purefb_array_performance_throughput_iops{endpoint=~\"^$instance\",env=~\"^$env\",dimension=\"others_per_sec\"})",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "other_per_sec",
"range": true,
"refId": "Other"
}
],
"title": "Avg IOPS by $instance array(s) & $protocol protocol(s)",
"type": "timeseries"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "smooth",
"lineStyle": {
"fill": "solid"
},
"lineWidth": 1,
"pointSize": 5,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"showValues": false,
"spanNulls": 300000,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"decimals": 1,
"mappings": [],
"min": 0,
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
}
]
},
"unit": "binBps"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "read_bytes_per_sec"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#2ae5f2",
"mode": "fixed"
}
},
{
"id": "displayName",
"value": "Reads"
}
]
},
{
"matcher": {
"id": "byName",
"options": "write_bytes_per_sec"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "dark-orange",
"mode": "fixed"
}
},
{
"id": "displayName",
"value": "Writes"
}
]
},
{
"matcher": {
"id": "byName",
"options": "Writes"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#ff8316",
"mode": "fixed"
}
}
]
}
]
},
"gridPos": {
"h": 8,
"w": 24,
"x": 0,
"y": 70
},
"id": 195,
"options": {
"legend": {
"calcs": [
"mean",
"min",
"max",
"last"
],
"displayMode": "table",
"placement": "right",
"showLegend": true,
"sortBy": "Mean",
"sortDesc": true,
"width": 400
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg(purefb_array_performance_bandwidth_bytes{endpoint=~\"^$instance\",env=~\"^$env\", dimension=\"read_bytes_per_sec\", protocol=~\"$protocol\"})",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "read_bytes_per_sec",
"range": true,
"refId": "Read"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg(purefb_array_performance_bandwidth_bytes{endpoint=~\"^$instance\",env=~\"^$env\", dimension=\"write_bytes_per_sec\", protocol=~\"$protocol\"})",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "write_bytes_per_sec",
"range": true,
"refId": "Write"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"exemplar": false,
"expr": "avg(purefb_array_performance_bandwidth_bytes{endpoint=~\"^$instance\",env=~\"^$env\", dimension=\"other_bytes_per_sec\", protocol=~\"$protocol\"})",
"format": "time_series",
"instant": false,
"interval": "",
"legendFormat": "other_bytes_per_sec",
"range": true,
"refId": "Other"
}
],
"title": "Avg Bandwidth by $instance array(s) & $protocol protocol(s)",
"type": "timeseries"
}
],
"title": "Array Performance",
"type": "row"
},
{
"collapsed": true,
"gridPos": {
"h": 1,
"w": 24,
"x": 0,
"y": 38
},
"id": 199,
"panels": [
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"description": "Recommended for single array only.\n\nPanel will display \"No Data\" until there is at least 12 hours of data in the data source as this panel displays the last 90 days at 12 hour intervals.",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisBorderShow": false,
"axisCenteredZero": false,
"axisColorMode": "text",
"axisLabel": "",
"axisPlacement": "auto",
"axisSoftMin": 0,
"barAlignment": 0,
"barWidthFactor": 0.6,
"drawStyle": "line",
"fillOpacity": 100,
"gradientMode": "opacity",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"insertNulls": false,
"lineInterpolation": "smooth",
"lineWidth": 1,
"pointSize": 0,
"scaleDistribution": {
"type": "linear"
},
"showPoints": "never",
"showValues": false,
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "normal"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{
"color": "green",
"value": 0
},
{
"color": "red",
"value": 80
}
]
},
"unit": "bytes"
},
"overrides": [
{
"matcher": {
"id": "byName",
"options": "capacity"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#646464",
"mode": "fixed"
}
},
{
"id": "custom.stacking",
"value": {
"group": "A",
"mode": "none"
}
},
{
"id": "custom.fillOpacity",
"value": 0
}
]
},
{
"matcher": {
"id": "byName",
"options": "total_physical"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#2ae5f2",
"mode": "fixed"
}
},
{
"id": "custom.stacking",
"value": {
"group": "A",
"mode": "none"
}
},
{
"id": "custom.fillOpacity",
"value": 100
},
{
"id": "custom.lineWidth",
"value": 1
}
]
},
{
"matcher": {
"id": "byName",
"options": "Array DRR"
},
"properties": [
{
"id": "custom.axisPlacement",
"value": "right"
},
{
"id": "unit",
"value": ":1"
},
{
"id": "custom.lineStyle",
"value": {
"dash": [
0,
10
],
"fill": "dot"
}
},
{
"id": "custom.lineWidth",
"value": 3
},
{
"id": "color",
"value": {
"fixedColor": "#00b89e",
"mode": "fixed"
}
},
{
"id": "custom.fillOpacity",
"value": 0
},
{
"id": "custom.axisLabel",
"value": "Data Reduction Ratio"
},
{
"id": "custom.axisColorMode",
"value": "series"
},
{
"id": "custom.axisSoftMax",
"value": 5
},
{
"id": "custom.stacking",
"value": {
"group": "A",
"mode": "none"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "fs snapshots"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#fe7800",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "fs unique"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#fa6400",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "obj unique"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#00b89e",
"mode": "fixed"
}
}
]
},
{
"matcher": {
"id": "byName",
"options": "obj snapshots"
},
"properties": [
{
"id": "color",
"value": {
"fixedColor": "#2ae5f2",
"mode": "fixed"
}
}
]
}
]
},
"gridPos": {
"h": 8,
"w": 24,
"x": 0,
"y": 79
},
"id": 197,
"interval": "12h",
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom",
"showLegend": true
},
"tooltip": {
"hideZeros": false,
"mode": "single",
"sort": "none"
}
},
"pluginVersion": "12.4.0",
"targets": [
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"expr": "sum(purefb_array_space_bytes{endpoint=~\"^$instance\",env=~\"^$env\",type=\"file-system\",space=~\"snapshots|unique|destroyed\"}) by (space)\n#\"optional granular detail\"\n#\"using sum() to show total of all arrays\"",
"hide": true,
"instant": false,
"legendFormat": "fs {{space}}",
"range": true,
"refId": "Filesystem Capacity"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"expr": "sum(purefb_array_space_bytes{endpoint=~\"^$instance\",env=~\"^$env\",type=\"object-store\",space=~\"snapshots|unique|destroyed\"}) by (space)\n#\"optional granular detail\"\n#\"using sum() to show total of all arrays\"",
"hide": true,
"instant": false,
"legendFormat": "obj {{space}}",
"range": true,
"refId": "Object Capacity"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"expr": "sum(purefb_array_space_bytes{endpoint=~\"^$instance\",env=~\"^$env\",type=\"array\",space=~\"total_physical|capacity\"}) by (space)\n#\"using sum() to show total of all arrays\"",
"instant": false,
"legendFormat": "{{space}}",
"range": true,
"refId": "Capacity"
},
{
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"editorMode": "code",
"expr": "avg(purefb_array_space_data_reduction_ratio{endpoint=~\"^$instance\",env=~\"^$env\",type=\"array\"}) ",
"instant": false,
"legendFormat": "Array DRR",
"range": true,
"refId": "DRR"
}
],
"timeFrom": "90d",
"title": "Capacity Utilization by Type & $instance array(s)",
"type": "timeseries"
}
],
"title": "Array Capacity",
"type": "row"
}
],
"preload": false,
"refresh": "",
"schemaVersion": 42,
"tags": [
"pure",
"storage",
"pure storage",
"flashblade",
"fb",
"prometheus",
"openmetrics"
],
"templating": {
"list": [
{
"current": {
"text": "1.0.8",
"value": "1.0.8"
},
"hide": 2,
"includeAll": false,
"name": "DashboardVersion",
"options": [],
"query": "1.0.8",
"type": "custom",
"valuesFormat": "csv"
},
{
"current": {
"text": "Prometheus",
"value": "bff135q3yj5dsb"
},
"includeAll": false,
"label": "Datasource",
"name": "datasource",
"options": [],
"query": "prometheus",
"refresh": 1,
"regex": "",
"type": "datasource"
},
{
"current": {
"text": "All",
"value": "$__all"
},
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"definition": "label_values(purefb_info, env)",
"description": "Dependency: Prometheus metrics MUST be tagged with an environment.",
"includeAll": true,
"label": "Env",
"multi": true,
"name": "env",
"options": [],
"query": {
"query": "label_values(purefb_info, env)",
"refId": "StandardVariableQuery"
},
"refresh": 1,
"regex": "",
"regexApplyTo": "value",
"sort": 1,
"type": "query"
},
{
"current": {
"text": [
"All"
],
"value": [
"$__all"
]
},
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"definition": "label_values(purefb_info,endpoint)",
"description": "",
"includeAll": true,
"label": "FlashBlade",
"multi": true,
"name": "instance",
"options": [],
"query": {
"qryType": 1,
"query": "label_values(purefb_info,endpoint)",
"refId": "PrometheusVariableQueryEditor-VariableQuery"
},
"refresh": 1,
"regex": "",
"regexApplyTo": "value",
"sort": 1,
"type": "query"
},
{
"current": {
"text": "5",
"value": "5"
},
"includeAll": false,
"label": "Top Items",
"name": "TopItems",
"options": [],
"query": "1,2,3,4,5,6,8,10,15,20,25,50",
"type": "custom",
"valuesFormat": "csv"
},
{
"allValue": ".*",
"current": {
"text": "All",
"value": [
"$__all"
]
},
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"definition": "label_values(purefb_array_performance_bandwidth_bytes,protocol)",
"includeAll": true,
"label": "Protocol",
"multi": true,
"name": "protocol",
"options": [],
"query": {
"qryType": 1,
"query": "label_values(purefb_array_performance_bandwidth_bytes,protocol)",
"refId": "PrometheusVariableQueryEditor-VariableQuery"
},
"refresh": 1,
"regex": "^(SMB|NFS|HTTP|S3)$",
"regexApplyTo": "value",
"type": "query"
},
{
"baseFilters": [],
"datasource": {
"type": "prometheus",
"uid": "$datasource"
},
"filters": [],
"name": "Filters",
"type": "adhoc"
}
]
},
"time": {
"from": "now-24h",
"to": "now"
},
"timepicker": {
"refresh_intervals": [
"10s",
"30s",
"1m",
"5m"
]
},
"timezone": "browser",
"title": "Everpure FlashBlade - Overview",
"uid": "z0BG6-vVz",
"version": 14,
"weekStart": ""
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment