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

  1. What is vetR Summarizer?
  2. Objective
  3. How it Works
  4. Installation
  5. Usage
  6. Use Case

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.

The aci-vetr-data directory you get from vetr-collector v3.3.0 includes 91 raw 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 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 and found a question, what is actually vetr zip logs?

Question

So, I decided to try vetr-collector on an environment. But, I got to open each raw JSON file to check whether it has objects and was time-consuming going through all the files. So, I made this package to summarize the output from vetr-collector in a pretty HTML tabular format.

Author

Osama Abbas

Contributions

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

View code on GitHub
  • Owner

  • Contributors

    +1Github contributor
  • Categories

  • Products

    ACI
  • Programming Languages

    PythonJinja
  • License

    MIT License

Code Exchange Community

Get help, share code, and collaborate with other developers in the Code Exchange community.View Community
Disclaimer:
Cisco provides Code Exchange for convenience and informational purposes only, with no support of any kind. This page contains information and links from third-party websites that are governed by their own separate terms. Reference to a project or contributor on this page does not imply any affiliation with or endorsement by Cisco.