Prometheus exporter for Cisco Unified Computing System (UCS) Manager

Overview

prometheus-ucs-exporter

Overview

Use metrics from the UCS API to export relevant metrics to Prometheus

This repository is a fork of Drew Stinnett's original exporter at oit-ssi-systems/prometheus-ucs-exporter.

Modifications made include:

  • Added production server (FastAPI)
  • Added additional metrics
  • Added Grafana dashboard
  • Minor fixes and refactorings

Install the Grafana dashboard by importing the JSON file grafana/dashboard.json.

Cisco UCSM Grafana dashboard

Installation

Build and run with Docker:

docker build -t prometheus-ucs-exporter .

docker run -p 3001:3001 -e PORT=3001 \
-e PROM_UCS_USERNAME='ucs-mydomain\username' \
-e PROM_UCS_PASSWORD='passw0rd' \
prometheus-ucs-exporter

Fetch metrics:

curl http://localhost:3001/metrics?domain=my-domain.example.com

Note: Metrics are fetched in a background worker after an initial scrape, since UCSM can be slow to respond. Continue polling the /metrics endpoint until metrics are returned.

Usage

docker pull ghcr.io/marshallwace/prometheus-ucs-exporter:0.0.2

SPDX update

pip install --user pipx

pipx run reuse addheader --copyright "2022 Marshall Wace <[email protected]>" --license "GPL-3.0-only" *.py 
You might also like...
Numenta Platform for Intelligent Computing is an implementation of Hierarchical Temporal Memory (HTM), a theory of intelligence based strictly on the neuroscience of the neocortex.

NuPIC Numenta Platform for Intelligent Computing The Numenta Platform for Intelligent Computing (NuPIC) is a machine intelligence platform that implem

xitorch: differentiable scientific computing library

xitorch is a PyTorch-based library of differentiable functions and functionals that can be widely used in scientific computing applications as well as deep learning.

A static analysis library for computing graph representations of Python programs suitable for use with graph neural networks.

python_graphs This package is for computing graph representations of Python programs for machine learning applications. It includes the following modu

Blender scripts for computing geodesic distance
Blender scripts for computing geodesic distance

GeoDoodle Geodesic distance computation for Blender meshes Table of Contents Overivew Usage Implementation Overview This addon provides an operator fo

Lyapunov-guided Deep Reinforcement Learning for Stable Online Computation Offloading in Mobile-Edge Computing Networks

PyTorch code to reproduce LyDROO algorithm [1], which is an online computation offloading algorithm to maximize the network data processing capability subject to the long-term data queue stability and average power constraints. It applies Lyapunov optimization to decouple the multi-stage stochastic MINLP into deterministic per-frame MINLP subproblems and solves each subproblem via DROO algorithm. It includes:

Library for implementing reservoir computing models (echo state networks) for multivariate time series classification and clustering.
Library for implementing reservoir computing models (echo state networks) for multivariate time series classification and clustering.

Framework overview This library allows to quickly implement different architectures based on Reservoir Computing (the family of approaches popularized

Material related to the Principles of Cloud Computing course.

CloudComputingCourse Material related to the Principles of Cloud Computing course. This repository comprises material that I use to teach my Principle

Code for the paper "Next Generation Reservoir Computing"

Next Generation Reservoir Computing This is the code for the results and figures in our paper "Next Generation Reservoir Computing". They are written

Differentiable scientific computing library

xitorch: differentiable scientific computing library xitorch is a PyTorch-based library of differentiable functions and functionals that can be widely

Comments
  • How to support polling multiple UCS Domains

    How to support polling multiple UCS Domains

    Is it possible to support polling of multiple UCS domains using a single prometheus instance or is it better to dedicate a prmetheus container to each UCS domain?

    opened by dwebr 1
  • UCS System returns

    UCS System returns "not-applicable" for kernel_mem_total and kernel_mem_free stats

    Issue: UCS running version 4.2(1m)B returns "not-applicable" for kernel_mem_total and kernel_mem_free stats which results in prometheus throwing errors during polling.

    Work around: comment out the following statements in the swsystem.py file.

    kernel_mem_total.labels(self.domain, switch).set(int(item.kernel_mem_total))
    kernel_mem_free.labels(self.domain, switch).set(int(item.kernel_mem_free))
    

    Example Output

    /repos/prometheus-ucs-exporter/scripts$ ./explore.py query-classid swSystemStats
    
    Managed Object                  :       SwSystemStats
    --------------
    class_id                        :SwSystemStats
    child_action                    :None
    correctable_parity_error        :not-applicable
    correctable_parity_error_avg    :not-applicable
    correctable_parity_error_max    :not-applicable
    correctable_parity_error_min    :not-applicable
    dn                              :sys/switch-B/sysstats
    intervals                       :58982460
    kernel_mem_free                 :not-applicable
    kernel_mem_free_avg             :not-applicable
    kernel_mem_free_max             :not-applicable
    kernel_mem_free_min             :not-applicable
    kernel_mem_total                :not-applicable
    kernel_mem_total_avg            :not-applicable
    kernel_mem_total_max            :not-applicable
    kernel_mem_total_min            :not-applicable
    load                            :2.360000
    load_avg                        :2.413333
    load_max                        :2.620000
    load_min                        :2.130000
    mem_available                   :52264
    mem_available_avg               :52278
    mem_available_max               :52302
    mem_available_min               :52264
    mem_cached                      :11591
    mem_cached_avg                  :11576
    mem_cached_max                  :11591
    mem_cached_min                  :11563
    rn                              :sysstats
    sacl                            :None
    status                          :None
    suspect                         :no
    thresholded                     :
    time_collected                  :2022-09-24T10:13:48.368
    update                          :131081
    
    
    
    Managed Object                  :       SwSystemStats
    --------------
    class_id                        :SwSystemStats
    child_action                    :None
    correctable_parity_error        :not-applicable
    correctable_parity_error_avg    :not-applicable
    correctable_parity_error_max    :not-applicable
    correctable_parity_error_min    :not-applicable
    dn                              :sys/switch-A/sysstats
    intervals                       :58982460
    kernel_mem_free                 :not-applicable
    kernel_mem_free_avg             :not-applicable
    kernel_mem_free_max             :not-applicable
    kernel_mem_free_min             :not-applicable
    kernel_mem_total                :not-applicable
    kernel_mem_total_avg            :not-applicable
    kernel_mem_total_max            :not-applicable
    kernel_mem_total_min            :not-applicable
    load                            :3.820000
    load_avg                        :2.701667
    load_max                        :3.820000
    load_min                        :2.090000
    mem_available                   :52062
    mem_available_avg               :52050
    mem_available_max               :52062
    mem_available_min               :52036
    mem_cached                      :11060
    mem_cached_avg                  :11068
    mem_cached_max                  :11083
    mem_cached_min                  :11060
    rn                              :sysstats
    sacl                            :None
    status                          :None
    suspect                         :no
    thresholded                     :
    time_collected                  :2022-09-24T10:14:32.366
    update                          :131078
    
    bug 
    opened by dwebr 0
Releases(v0.0.2)
Owner
Marshall Wace
Marshall Wace
Official implementation of Deep Burst Super-Resolution

Deep-Burst-SR Official implementation of Deep Burst Super-Resolution Publication: Deep Burst Super-Resolution. Goutam Bhat, Martin Danelljan, Luc Van

Goutam Bhat 113 Dec 19, 2022
Quantization library for PyTorch. Support low-precision and mixed-precision quantization, with hardware implementation through TVM.

HAWQ: Hessian AWare Quantization HAWQ is an advanced quantization library written for PyTorch. HAWQ enables low-precision and mixed-precision uniform

Zhen Dong 293 Dec 30, 2022
CR-FIQA: Face Image Quality Assessment by Learning Sample Relative Classifiability

This is the official repository of the paper: CR-FIQA: Face Image Quality Assessment by Learning Sample Relative Classifiability A private copy of the

Fadi Boutros 33 Dec 31, 2022
[CVPR2022] Representation Compensation Networks for Continual Semantic Segmentation

RCIL [CVPR2022] Representation Compensation Networks for Continual Semantic Segmentation Chang-Bin Zhang1, Jia-Wen Xiao1, Xialei Liu1, Ying-Cong Chen2

Chang-Bin Zhang 71 Dec 28, 2022
Project for tracking occupancy in Tel-Aviv parking lots.

Ahuzat Dibuk - Tracking occupancy in Tel-Aviv parking lots main.py This module was set-up to be executed on Google Cloud Platform. I run it every 15 m

Geva Kipper 35 Nov 22, 2022
Official implementation of the paper Label-Efficient Semantic Segmentation with Diffusion Models

Label-Efficient Semantic Segmentation with Diffusion Models Official implementation of the paper Label-Efficient Semantic Segmentation with Diffusion

Yandex Research 355 Jan 06, 2023
Official code for the CVPR 2022 (oral) paper "Extracting Triangular 3D Models, Materials, and Lighting From Images".

nvdiffrec Joint optimization of topology, materials and lighting from multi-view image observations as described in the paper Extracting Triangular 3D

NVIDIA Research Projects 1.4k Jan 01, 2023
Code for the CIKM 2019 paper "DSANet: Dual Self-Attention Network for Multivariate Time Series Forecasting".

Dual Self-Attention Network for Multivariate Time Series Forecasting 20.10.26 Update: Due to the difficulty of installation and code maintenance cause

Kyon Huang 223 Dec 16, 2022
Jaxtorch (a jax nn library)

Jaxtorch (a jax nn library) This is my jax based nn library. I created this because I was annoyed by the complexity and 'magic'-ness of the popular ja

nshepperd 17 Dec 08, 2022
Project to create an open-source 6 DoF input device

6DInputs A Project to create open-source 3D printed 6 DoF input devices Note the plural ('6DInputs' and 'devices') in the headings. We would like seve

RepRap Ltd 47 Jul 28, 2022
This is the solution for 2nd rank in Kaggle competition: Feedback Prize - Evaluating Student Writing.

Feedback Prize - Evaluating Student Writing This is the solution for 2nd rank in Kaggle competition: Feedback Prize - Evaluating Student Writing. The

Udbhav Bamba 41 Dec 14, 2022
Deep Structured Instance Graph for Distilling Object Detectors (ICCV 2021)

DSIG Deep Structured Instance Graph for Distilling Object Detectors Authors: Yixin Chen, Pengguang Chen, Shu Liu, Liwei Wang, Jiaya Jia. [pdf] [slide]

DV Lab 31 Nov 17, 2022
PyTorch implementation of NIPS 2017 paper Dynamic Routing Between Capsules

Dynamic Routing Between Capsules - PyTorch implementation PyTorch implementation of NIPS 2017 paper Dynamic Routing Between Capsules from Sara Sabour,

Adam Bielski 475 Dec 24, 2022
A plug-and-play library for neural networks written in Python

A plug-and-play library for neural networks written in Python!

Dimos Michailidis 2 Jul 16, 2022
Paddle implementation for "Cross-Lingual Word Embedding Refinement by ℓ1 Norm Optimisation" (NAACL 2021)

L1-Refinement Paddle implementation for "Cross-Lingual Word Embedding Refinement by ℓ1 Norm Optimisation" (NAACL 2021) 🙈 A more detailed readme is co

Lincedo Lab 4 Jun 09, 2021
Code for "The Box Size Confidence Bias Harms Your Object Detector"

The Box Size Confidence Bias Harms Your Object Detector - Code Disclaimer: This repository is for research purposes only. It is designed to maintain r

Johannes G. 24 Dec 07, 2022
This is the code of paper ``Contrastive Coding for Active Learning under Class Distribution Mismatch'' with python.

Contrastive Coding for Active Learning under Class Distribution Mismatch Official PyTorch implementation of ["Contrastive Coding for Active Learning u

21 Dec 22, 2022
Byte-based multilingual transformer TTS for low-resource/few-shot language adaptation.

One model to speak them all 🌎 Audio Language Text ▷ Chinese 人人生而自由,在尊严和权利上一律平等。 ▷ English All human beings are born free and equal in dignity and rig

Mutian He 60 Nov 14, 2022
Vertical Federated Principal Component Analysis and Its Kernel Extension on Feature-wise Distributed Data based on Pytorch Framework

VFedPCA+VFedAKPCA This is the official source code for the Paper: Vertical Federated Principal Component Analysis and Its Kernel Extension on Feature-

John 9 Sep 18, 2022
OpenMMLab Image Classification Toolbox and Benchmark

Introduction English | 简体中文 MMClassification is an open source image classification toolbox based on PyTorch. It is a part of the OpenMMLab project. D

OpenMMLab 1.8k Jan 03, 2023