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
Repository of the paper Compressing Sensor Data for Remote Assistance of Autonomous Vehicles using Deep Generative Models at ML4AD @ NeurIPS 2021.

Compressing Sensor Data for Remote Assistance of Autonomous Vehicles using Deep Generative Models Code and supplementary materials Repository of the p

Daniel Bogdoll 4 Jul 13, 2022
ImageBART: Bidirectional Context with Multinomial Diffusion for Autoregressive Image Synthesis

ImageBART NeurIPS 2021 Patrick Esser*, Robin Rombach*, Andreas Blattmann*, Björn Ommer * equal contribution arXiv | BibTeX | Poster Requirements A sui

CompVis Heidelberg 110 Jan 01, 2023
Open source person re-identification library in python

Open-ReID Open-ReID is a lightweight library of person re-identification for research purpose. It aims to provide a uniform interface for different da

Tong Xiao 1.3k Jan 01, 2023
DABO: Data Augmentation with Bilevel Optimization

DABO: Data Augmentation with Bilevel Optimization [Paper] The goal is to automatically learn an efficient data augmentation regime for image classific

ElementAI 24 Aug 12, 2022
Calibrate your listeners! Robust communication-based training for pragmatic speakers. Findings of EMNLP 2021.

Calibrate your listeners! Robust communication-based training for pragmatic speakers Rose E. Wang, Julia White, Jesse Mu, Noah D. Goodman Findings of

Rose E. Wang 3 Apr 02, 2022
Our VMAgent is a platform for exploiting Reinforcement Learning (RL) on Virtual Machine (VM) scheduling tasks.

VMAgent is a platform for exploiting Reinforcement Learning (RL) on Virtual Machine (VM) scheduling tasks. VMAgent is constructed based on one month r

56 Dec 12, 2022
PyGCL: A PyTorch Library for Graph Contrastive Learning

PyGCL is a PyTorch-based open-source Graph Contrastive Learning (GCL) library, which features modularized GCL components from published papers, standa

PyGCL 588 Dec 31, 2022
multimodal transformer

This repo holds the code to perform experiments with the multimodal autoregressive probabilistic model Transflower. Overview of the repo It is structu

Guillermo Valle 68 Dec 13, 2022
Official PyTorch implementation of "Evolving Search Space for Neural Architecture Search"

Evolving Search Space for Neural Architecture Search Usage Install all required dependencies in requirements.txt and replace all ..path/..to in the co

Yuanzheng Ci 10 Oct 24, 2022
[ICLR 2021] HW-NAS-Bench: Hardware-Aware Neural Architecture Search Benchmark

HW-NAS-Bench: Hardware-Aware Neural Architecture Search Benchmark Accepted as a spotlight paper at ICLR 2021. Table of content File structure Prerequi

72 Jan 03, 2023
A simple code to perform canny edge contrast detection on images.

CECED-Canny-Edge-Contrast-Enhanced-Detection A simple code to perform canny edge contrast detection on images. A simple code to process images using c

Happy N. Monday 3 Feb 15, 2022
Notebooks em Python para Métodos Eletromagnéticos

GeoSci Labs This is a repository of code used to power the notebooks and interactive examples for https://em.geosci.xyz and https://gpg.geosci.xyz. Th

Victor Cezar Tocantins 1 Nov 16, 2021
Code for "Primitive Representation Learning for Scene Text Recognition" (CVPR 2021)

Primitive Representation Learning Network (PREN) This repository contains the code for our paper accepted by CVPR 2021 Primitive Representation Learni

Ruijie Yan 76 Jan 02, 2023
Code for Towards Unifying Behavioral and Response Diversity for Open-ended Learning in Zero-sum Games

Unifying Behavioral and Response Diversity for Open-ended Learning in Zero-sum Games How to run our algorithm? Create the new environment using: conda

MARL @ SJTU 8 Dec 27, 2022
Repo for FUZE project. I will also publish some Linux kernel LPE exploits for various real world kernel vulnerabilities here. the samples are uploaded for education purposes for red and blue teams.

Linux_kernel_exploits Some Linux kernel exploits for various real world kernel vulnerabilities here. More exploits are yet to come. This repo contains

Wei Wu 472 Dec 21, 2022
Official Implementation of DDOD (Disentangle your Dense Object Detector), ACM MM2021

Disentangle Your Dense Object Detector This repo contains the supported code and configuration files to reproduce object detection results of Disentan

loveSnowBest 51 Jan 07, 2023
A TikTok-like recommender system for GitHub repositories based on Gorse

GitRec GitRec is the missing recommender system for GitHub repositories based on Gorse. Architecture The trending crawler crawls trending repositories

337 Jan 04, 2023
A pyparsing-based library for parsing SOQL statements

CONTRIBUTORS WANTED!! Installation pip install python-soql-parser or, with poetry poetry add python-soql-parser Usage from python_soql_parser import p

Kicksaw 0 Jun 07, 2022
Python script that takes an Impulse response .wav and a input .wav to demonstrate audio convolution.

convolver Python script that takes an Impulse response .wav and a input .wav to demonstrate audio convolution. Created by Sean Higley

Sean Higley 1 Feb 23, 2022
Finding Biological Plausibility for Adversarially Robust Features via Metameric Tasks

Adversarially-Robust-Periphery Code + Data from the paper "Finding Biological Plausibility for Adversarially Robust Features via Metameric Tasks" by A

Anne Harrington 2 Feb 07, 2022