Exporter for Storage Area Network (SAN)

Overview

SAN Exporter

license CI Docker Pulls Code size

Prometheus exporter for Storage Area Network (SAN).

We all know that each SAN Storage vendor has their own glossary of terms, health/performance metrics and monitoring tool.

But from operator view,

  • We normally focus on some main metrics which are similar on different storage platform.
  • We are not only monitoring SAN storage but also other devices and services at multi-layer (application, virtual Machine, hypervisor, operating system and physical).

That's why we build this to have an unified monitoring/alerting solution with Prometheus and Alermanager.

Architecture overview

SAN exporter architecture

Features

There are some main features you might want to know, for others, please see example configuration.

  • Enable/disable optinal metrics for each backend
  • Enable/disable backend
  • Backend will automatically stop collecting data from SAN system after timeout seconds from last request of client. With this feature, we can deploy two instances as Active/Passive mode for high availability.

Note: Backend may not respond metrics in the first interval while collecting, calculating and caching metrics.

Quick start

  • Start a dummy driver with Docker
$ git clone [email protected]:vCloud-DFTBA/san_exporter.git
$ cd san_exporter/
$ cp examples/dummy_config.yml config.yml
# docker run --rm -p 8888:8888 -v $(pwd)/config.yml:/san-exporter/config.yml --name san-exporter daikk115/san-exporter:0.1.0

See the result at http://localhost:8888/dummy_backend

  • Start a dummy driver manually
$ git clone [email protected]:vCloud-DFTBA/san_exporter.git
$ cd san_exporter/
$ cp examples/dummy_config.yml config.yml
$ sudo apt-get install libxml2-dev libxslt1-dev python3.7-dev
$ pip3 install -r requirements.txt
$ python3.7 manage.py

See the result at http://localhost:8888/dummy_backend

Deployment

Create configuration file

# mkdir /root/san-exporter
# cp /path/to/san_exporter/examples/config.yml.sample /root/san-exporter/config.yml

Update /root/san-exporter/config.yml for corresponding to SAN storage

Run new container

# docker volume create san-exporter
# docker run -d -p 8888:8888 -v san-exporter:/var/log/ -v /root/san-exporter/config.yml:/san-exporter/config.yml --name san-exporter daikk115/san-exporter:latest

Supported Drivers

  • Matrix of driver's generic metrics
Capacity all Capacity pool IOPS/Throuhgput pool Latency pool IOPS/Throughput node Latency node CPU node RAM node IOPS/Throughput LUN Latency LUN IOPS/Throughput disk Latency disk IOPS/Throughput port Latency port Alert
HPMSA X X X X X X X X
DellUnity X X X X X X X X X X
HitachiG700 X X X
HPE3Par X X X X X X X X
NetApp X X X X X X
SC8000 X X X X X X X X X X X
V7k X X X X X X
  • Connection port requirements
    • For some SAN system, we collect metrics over SP API but some others, we collect metrics dirrectly from controller API.
    • In some special cases, we collect alerts over SSH.
SAN System Service Processor Connection Port
HPMSA NO 443
Dell Unity NO 443
Hitachi G700 YES 23451
IBM V7000 NO #TODO
IBM V5000 NO #TODO
HPE 3PAR YES #TODO
NetApp ONTAP NO 443
SC8000 NO 3033

Metrics

All metrics are prefixed with "san_" and has at least 2 labels: backend_name and san_ip

Info metrics:

Metrics name Type Help
san_storage_info gauge Basic information: serial, version, ...

Controller metrics:

Metrics name Type Help
san_totalNodes gauge Total nodes
san_masterNodes gauge Master nodes
san_onlineNodes gauge Online nodes
san_compress_support gauge Compress support, 1 = Yes, 0 = No
san_thin_provision_support gauge Thin provision support, 1 = Yes, 0 = No
san_system_reporter_support gauge System reporter support, 1 = Yes, 0 = No
san_qos_support gauge QoS support, 1 = Yes, 0 = No
san_totalCapacityMiB gauge Total system capacity in MiB
san_allocatedCapacityMiB gauge Total allocated capacity in MiB
san_freeCapacityMiB gauge Total free capacity in MiB
san_cpu_system_utilization gauge The average percentage of time that the processors on nodes are busy doing system I/O tasks
san_cpu_compression_utilization gauge The approximate percentage of time that the processor core was busy with data compression tasks
san_cpu_total gauge The cpus spent in each mode

Pool metrics:

Metrics name Type Help
san_pool_totalLUNs gauge Total LUNs (or Volumes)
san_pool_total_capacity_mib gauge Total capacity of pool in MiB
san_pool_free_capacity_mib gauge Free of pool in MiB
san_pool_provisioned_capacity_mib gauge Provisioned of pool in MiB
san_pool_number_read_io gauge Read I/O Rate - ops/s
san_pool_number_write_io gauge Write I/O Rate - ops/s
san_pool_read_cache_hit gauge Read Cache Hits - %
san_pool_write_cache_hit gauge Write Cache Hits - %
san_pool_read_kb gauge gauge Read Data Rate - KiB/s
san_pool_write_kb gauge Write Data Rate - KiB/s
san_pool_read_service_time_ms gauge Read Response Time - ms/op
san_pool_write_service_time_ms gauge Write Response Time - ms/op
san_pool_read_IOSize_kb gauge Read Transfer Size - KiB/op
san_pool_write_IOSize_kb gauge Write Transfer Size - KiB/op
san_pool_queue_length gauge Queue length of pool

Port metrics:

Metrics name Type Help
san_port_number_read_io gauge Port Read I/O Rate - ops/s
san_port_number_write_io gauge Port Write I/O Rate - ops/s
san_port_write_kb gauge Port Write Data Rate - KiB/s
san_port_read_kb gauge Port Read Data Rate - KiB/s
san_port_write_IOSize_kb gauge Port Write Transfer Size - KiB/op
san_port_read_IOSize_kb gauge Port Read Transfer Size - KiB/op
san_port_queue_length gauge Queue length of port

For more information about specific metrics of SANs, see Specific SAN Metrics

Integrate with Prometheus, Alertmanager and Grafana

Some grafana images:

SAN exporter dashboard overview

SAN exporter dashboard pool

SAN exporter dashboard port

You might also like...
Web mining module for Python, with tools for scraping, natural language processing, machine learning, network analysis and visualization.
Web mining module for Python, with tools for scraping, natural language processing, machine learning, network analysis and visualization.

Pattern Pattern is a web mining module for Python. It has tools for: Data Mining: web services (Google, Twitter, Wikipedia), web crawler, HTML DOM par

Neurolab is a simple and powerful Neural Network Library for Python

Neurolab Neurolab is a simple and powerful Neural Network Library for Python. Contains based neural networks, train algorithms and flexible framework

A scikit-learn compatible neural network library that wraps PyTorch

A scikit-learn compatible neural network library that wraps PyTorch. Resources Documentation Source Code Examples To see more elaborate examples, look

Visualizer for neural network, deep learning, and machine learning models
Visualizer for neural network, deep learning, and machine learning models

Netron is a viewer for neural network, deep learning and machine learning models. Netron supports ONNX (.onnx, .pb, .pbtxt), Keras (.h5, .keras), Tens

Graph neural network message passing reframed as a Transformer with local attention

Adjacent Attention Network An implementation of a simple transformer that is equivalent to graph neural network where the message passing is done with

data/code repository of "C2F-FWN: Coarse-to-Fine Flow Warping Network for Spatial-Temporal Consistent Motion Transfer"

C2F-FWN data/code repository of "C2F-FWN: Coarse-to-Fine Flow Warping Network for Spatial-Temporal Consistent Motion Transfer" (https://arxiv.org/abs/

Simple command line tool for text to image generation using OpenAI's CLIP and Siren (Implicit neural representation network)
Simple command line tool for text to image generation using OpenAI's CLIP and Siren (Implicit neural representation network)

Deep Daze mist over green hills shattered plates on the grass cosmic love and attention a time traveler in the crowd life during the plague meditative

End-to-End Object Detection with Fully Convolutional Network
End-to-End Object Detection with Fully Convolutional Network

This project provides an implementation for "End-to-End Object Detection with Fully Convolutional Network" on PyTorch.

TensorFlow-based neural network library
TensorFlow-based neural network library

Sonnet Documentation | Examples Sonnet is a library built on top of TensorFlow 2 designed to provide simple, composable abstractions for machine learn

Comments
  • Support purestorage please!

    Support purestorage please!

    Is your feature request related to a problem? Please describe. A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

    Describe the solution you'd like A clear and concise description of what you want to happen.

    Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.

    Additional context Add any other context or screenshots about the feature request here. Can you support purestorage?

    opened by wanbeepeto 0
Releases(v0.8.0)
  • v0.8.0(Aug 17, 2021)

    • Release notes:
      • Add Dell Unnity driver
      • Add Hitachi G700 driver
      • Add HPE 3PAR driver
      • Add HPMSA driver
      • Add NetApp ONTAP driver
      • Add Dell SC800 driver
      • Add IBM V7000 driver
    • Docker image: daikk115/san-exporter:0.8.0
    Source code(tar.gz)
    Source code(zip)
  • v0.1.0(Aug 15, 2021)

Owner
vCloud
Not Only vCloud - Don’t Forget To Be Awesome
vCloud
A GOOD REPRESENTATION DETECTS NOISY LABELS

A GOOD REPRESENTATION DETECTS NOISY LABELS This code is a PyTorch implementation of the paper: Prerequisites Python 3.6.9 PyTorch 1.7.1 Torchvision 0.

<a href=[email protected]"> 64 Jan 04, 2023
Deep learning model, heat map, data prepo

deep learning model, heat map, data prepo

Pamela Dekas 1 Jan 14, 2022
Official PyTorch code of DeepPanoContext: Panoramic 3D Scene Understanding with Holistic Scene Context Graph and Relation-based Optimization (ICCV 2021 Oral).

DeepPanoContext (DPC) [Project Page (with interactive results)][Paper] DeepPanoContext: Panoramic 3D Scene Understanding with Holistic Scene Context G

Cheng Zhang 66 Nov 16, 2022
Official code for 'Weakly-supervised Video Anomaly Detection with Robust Temporal Feature Magnitude Learning' [ICCV 2021]

RTFM This repo contains the Pytorch implementation of our paper: Weakly-supervised Video Anomaly Detection with Robust Temporal Feature Magnitude Lear

Yu Tian 242 Jan 08, 2023
Toolbox of models, callbacks, and datasets for AI/ML researchers.

Pretrained SOTA Deep Learning models, callbacks and more for research and production with PyTorch Lightning and PyTorch Website • Installation • Main

Pytorch Lightning 1.4k Dec 30, 2022
Human POSEitioning System (HPS): 3D Human Pose Estimation and Self-localization in Large Scenes from Body-Mounted Sensors, CVPR 2021

Human POSEitioning System (HPS): 3D Human Pose Estimation and Self-localization in Large Scenes from Body-Mounted Sensors Human POSEitioning System (H

Aymen Mir 66 Dec 21, 2022
Collection of generative models, e.g. GAN, VAE in Pytorch and Tensorflow.

Generative Models Collection of generative models, e.g. GAN, VAE in Pytorch and Tensorflow. Also present here are RBM and Helmholtz Machine. Note: Gen

Agustinus Kristiadi 7k Jan 02, 2023
A `Neural = Symbolic` framework for sound and complete weighted real-value logic

Logical Neural Networks LNNs are a novel Neuro = symbolic framework designed to seamlessly provide key properties of both neural nets (learning) and s

International Business Machines 138 Dec 19, 2022
JAXMAPP: JAX-based Library for Multi-Agent Path Planning in Continuous Spaces

JAXMAPP: JAX-based Library for Multi-Agent Path Planning in Continuous Spaces JAXMAPP is a JAX-based library for multi-agent path planning (MAPP) in c

OMRON SINIC X 24 Dec 28, 2022
The Rich Get Richer: Disparate Impact of Semi-Supervised Learning

The Rich Get Richer: Disparate Impact of Semi-Supervised Learning Preprocess file of the dataset used in implicit sub-populations: (Demographic groups

<a href=[email protected]"> 4 Oct 14, 2022
Fog Simulation on Real LiDAR Point Clouds for 3D Object Detection in Adverse Weather

LiDAR fog simulation Created by Martin Hahner at the Computer Vision Lab of ETH Zurich. This is the official code release of the paper Fog Simulation

Martin Hahner 110 Dec 30, 2022
Code for the Paper: Conditional Variational Capsule Network for Open Set Recognition

Conditional Variational Capsule Network for Open Set Recognition This repository hosts the official code related to "Conditional Variational Capsule N

Guglielmo Camporese 35 Nov 21, 2022
It's final year project of Diploma Engineering. This project is based on Computer Vision.

Face-Recognition-Based-Attendance-System It's final year project of Diploma Engineering. This project is based on Computer Vision. Brief idea about ou

Neel 10 Nov 02, 2022
Implementation of 'lightweight' GAN, proposed in ICLR 2021, in Pytorch. High resolution image generations that can be trained within a day or two

512x512 flowers after 12 hours of training, 1 gpu 256x256 flowers after 12 hours of training, 1 gpu Pizza 'Lightweight' GAN Implementation of 'lightwe

Phil Wang 1.5k Jan 02, 2023
A series of convenience functions to make basic image processing operations such as translation, rotation, resizing, skeletonization, and displaying Matplotlib images easier with OpenCV and Python.

imutils A series of convenience functions to make basic image processing functions such as translation, rotation, resizing, skeletonization, and displ

Adrian Rosebrock 4.3k Jan 08, 2023
Change is Everywhere: Single-Temporal Supervised Object Change Detection in Remote Sensing Imagery (ICCV 2021)

Change is Everywhere Single-Temporal Supervised Object Change Detection in Remote Sensing Imagery by Zhuo Zheng, Ailong Ma, Liangpei Zhang and Yanfei

Zhuo Zheng 125 Dec 13, 2022
Official codebase for Legged Robots that Keep on Learning: Fine-Tuning Locomotion Policies in the Real World

Legged Robots that Keep on Learning Official codebase for Legged Robots that Keep on Learning: Fine-Tuning Locomotion Policies in the Real World, whic

Laura Smith 70 Dec 07, 2022
Implementation of the paper Recurrent Glimpse-based Decoder for Detection with Transformer.

REGO-Deformable DETR By Zhe Chen, Jing Zhang, and Dacheng Tao. This repository is the implementation of the paper Recurrent Glimpse-based Decoder for

Zhe Chen 33 Nov 30, 2022
UniFormer - official implementation of UniFormer

UniFormer This repo is the official implementation of "Uniformer: Unified Transformer for Efficient Spatiotemporal Representation Learning". It curren

SenseTime X-Lab 573 Jan 04, 2023
A new play-and-plug method of controlling an existing generative model with conditioning attributes and their compositions.

Viz-It Data Visualizer Web-Application If I ask you where most of the data wrangler looses their time ? It is Data Overview and EDA. Presenting "Viz-I

NVIDIA Research Projects 66 Jan 01, 2023