Skip to content

Tes3awy/vetr-summarizer

Repository files navigation

published PyPI - Python Version Code style: black Imports: isort PyPI - License PyPI - Version PyPI - Status Pepy Total Downlods Commit Activity Say Thanks!

vetR Summarizer

A Python package for visualizing ACI vetR JSON data from vetr-collector

Table of Contents

ACI

What is vetR Summarizer?

This tool summarizes data from any APIC collected by vetr-collector.

Objective

This tool processes data collected by vetr-collector for the ACI health check and displays it in a pretty HTML tabluar format. This tool can also be run from any computer having aci-vetr-data collected from any APIC.

In vetr-collector v3.3.0, the aci-vetr-data directory you get from includes around 91 JSON files.

$ ls aci-vetr-data
apPlugin.json
bgpRRNodePEp.json
configRsRemotePath.json
coopPol.json
ctxClassCnt.json
datetimeNtpProv.json
datetimePol.json
epControlP.json
epIpAgingP.json
epLoopProtectP.json
...
<output_truncated>

A sample preview of the output HTML

Preview

How it works

This tool visualizes data collection for the ACI health check from vetr-collector.

Once the analysis is complete, the tool creates a vetr-summary.html file. This file displays the raw JSON data in a DataTable tabular format. DataTable adds the ability to easily search for properties in concern.

Almost all MOs include unnecessary configuration properties. Some of these properties: extMngdBy, childAction, userdom, etc. These unnecessary properties (key-value pairs) are excluded from the report for a neater representation of the output in the HTML file.

All excluded keys can be found in config/excluded_keys file. You can also customize these keys-to-exclude according to your own case. An empty excluded_keys file will not exclude any keys.

Raw JSON files with empty imdata (i.e. "[]") and totalCount equal to "0" are not presented in the HTML vetr-summary.html summary report.

Installation

Install from PyPi

System-wide

$ pip install --user vetr-summarizer

Virtual Environment

$ python3 -m venv .venv
$ source .venv/bin/activate .
(.venv)$ pip install vetr-summarizer

Usage

Both keyword arguments are optional. Currently html is the only supported output format.

$ vetr-summarizer --help
usage: vetr-summarizer [-h] [-f {html}] [-x EXCLUDED_KEYS_FILE] [-v] directory

Process and summarize aci-vetr-data JSON files into HTML reports.

positional arguments:
  directory             A path to the directory containing the JSON files.

options:
  -h, --help            show this help message and exit
  -f {html}, --format {html}
                        Output format (default: html)
  -x EXCLUDED_KEYS_FILE, --excluded-keys-file EXCLUDED_KEYS_FILE
                        File with keys to exclude from raw JSON files. (default: excluded_keys)
  -v, --version         show program's version number and exit

Thanks for using vetr-summarizer! :)
$ vetr-summarizer "/path/to/aci-vetr-data"

HTML output is written to /path/to/vetr-summary.html

With custom excluded keys

$ vetr-summarizer -x custom_excluded_keys "/path/to/aci-vetr-data"

HTML output is written to '/path/to/vetr-summary.html'

Use Case

I was once going through the Cisco Community searching for an answer to my ACI fabric issue, and I came across that question: VetR Zip logs, what is actually vetr zip logs?

Question

So, I decided to try vetr-collector on an environment. But, I had to open each JSON file to check whether it has objects or not and read the entire JSON file if it has valuable data, and that was time-consuming. So, I made this package to summarize the output from vetr-collector in a pretty HTML tabular format.

Author(s)

Osama Abbas

Contributions

As there is always a room for imporovment, you are welcome to contribute to vetr-summarizer.