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
Nvdiffrast - Modular Primitives for High-Performance Differentiable Rendering

Nvdiffrast – Modular Primitives for High-Performance Differentiable Rendering Modular Primitives for High-Performance Differentiable Rendering Samuli

NVIDIA Research Projects 675 Jan 06, 2023
Tidy interface to polars

tidypolars tidypolars is a data frame library built on top of the blazingly fast polars library that gives access to methods and functions familiar to

Mark Fairbanks 144 Jan 08, 2023
Pytorch implementation of Distributed Proximal Policy Optimization: https://arxiv.org/abs/1707.02286

Pytorch-DPPO Pytorch implementation of Distributed Proximal Policy Optimization: https://arxiv.org/abs/1707.02286 Using PPO with clip loss (from https

Alexis David Jacq 163 Dec 26, 2022
Depth image based mouse cursor visual haptic

Depth image based mouse cursor visual haptic How to run it. Install pyqt5. Install python modules pip install Pillow pip install numpy For illustrati

Xiong Jie 17 Dec 20, 2022
Code for ACM MM 2020 paper "NOH-NMS: Improving Pedestrian Detection by Nearby Objects Hallucination"

NOH-NMS: Improving Pedestrian Detection by Nearby Objects Hallucination The offical implementation for the "NOH-NMS: Improving Pedestrian Detection by

Tencent YouTu Research 64 Nov 11, 2022
Project of 'TBEFN: A Two-branch Exposure-fusion Network for Low-light Image Enhancement '

TBEFN: A Two-branch Exposure-fusion Network for Low-light Image Enhancement Codes for TMM20 paper "TBEFN: A Two-branch Exposure-fusion Network for Low

KUN LU 31 Nov 06, 2022
Python Fanduel API (2021) - Lineup Automation

Southpaw is a python package that provides access to the Fanduel API. Optimize your DFS experience by programmatically updating your lineups, analyzin

Brandin Canfield 13 Jan 04, 2023
Code for "My(o) Armband Leaks Passwords: An EMG and IMU Based Keylogging Side-Channel Attack" paper

Myo Keylogging This is the source code for our paper My(o) Armband Leaks Passwords: An EMG and IMU Based Keylogging Side-Channel Attack by Matthias Ga

Secure Mobile Networking Lab 7 Jan 03, 2023
Implementation of Convolutional LSTM in PyTorch.

ConvLSTM_pytorch This file contains the implementation of Convolutional LSTM in PyTorch made by me and DavideA. We started from this implementation an

Andrea Palazzi 1.3k Dec 29, 2022
DECA: Detailed Expression Capture and Animation (SIGGRAPH 2021)

DECA: Detailed Expression Capture and Animation (SIGGRAPH2021) input image, aligned reconstruction, animation with various poses & expressions This is

Yao Feng 1.5k Jan 02, 2023
A Python library for differentiable optimal control on accelerators.

A Python library for differentiable optimal control on accelerators.

Google 80 Dec 21, 2022
In-place Parallel Super Scalar Samplesort (IPS⁴o)

In-place Parallel Super Scalar Samplesort (IPS⁴o) This is the implementation of the algorithm IPS⁴o presented in the paper Engineering In-place (Share

82 Dec 22, 2022
Simulation of Self Driving Car

In this repository, the code to use Udacity's self driving car simulator as a testbed for training an autonomous car are provided.

Shyam Das Shrestha 1 Nov 21, 2021
[SIGMETRICS 2022] One Proxy Device Is Enough for Hardware-Aware Neural Architecture Search

One Proxy Device Is Enough for Hardware-Aware Neural Architecture Search paper | website One Proxy Device Is Enough for Hardware-Aware Neural Architec

10 Dec 16, 2022
Phy-Q: A Benchmark for Physical Reasoning

Phy-Q: A Benchmark for Physical Reasoning Cheng Xue*, Vimukthini Pinto*, Chathura Gamage* Ekaterina Nikonova, Peng Zhang, Jochen Renz School of Comput

29 Dec 19, 2022
Fibonacci Method Gradient Descent

An implementation of the Fibonacci method for gradient descent, featuring a TKinter GUI for inputting the function / parameters to be examined and a matplotlib plot of the function and results.

Emma 1 Jan 28, 2022
Many Class Activation Map methods implemented in Pytorch for CNNs and Vision Transformers. Including Grad-CAM, Grad-CAM++, Score-CAM, Ablation-CAM and XGrad-CAM

Class Activation Map methods implemented in Pytorch pip install grad-cam ⭐ Tested on many Common CNN Networks and Vision Transformers. ⭐ Includes smoo

Jacob Gildenblat 6.6k Jan 06, 2023
Finetune alexnet with tensorflow - Code for finetuning AlexNet in TensorFlow >= 1.2rc0

Finetune AlexNet with Tensorflow Update 15.06.2016 I revised the entire code base to work with the new input pipeline coming with TensorFlow = versio

Frederik Kratzert 766 Jan 04, 2023
My implementation of Image Inpainting - A deep learning Inpainting model

Image Inpainting What is Image Inpainting Image inpainting is a restorative process that allows for the fixing or removal of unwanted parts within ima

Joshua V Evans 1 Dec 12, 2021
Toolbox to analyze temporal context invariance of deep neural networks

PyTCI A toolbox that estimates the integration window of a sensory response using the "Temporal Context Invariance" paradigm (TCI). The TCI method Int

4 Oct 23, 2022