DxAgent is the diagnostic agent daemon. First, it gather baremetal, VM and VPP data via multiple means. Second, it normalizes collected data and discovers the active subservices and their dependencies, and build a graph of it. Third, it checks for symptoms based on user-defined rules applied to normalized metrics, computes subservices health scores, and propagates health scores along the subservice dependency graph.
An optional gNMI exporter can be used to connect multiple instances of dxagent, or to enable visualization of a node susbervices health scores and dependency graph via dxweb. gNMI exported data is formatted according to YANG Modules for Service Assurance draft. Locally, shared memory can be used to display similar information in the dxtop console app.
dxagent [-h] [-l LOG_FILE] [-c CONFIG] [-s] [-v] {start,stop,restart,status}
LOG_FILE
defaults to/var/log/dxagent.log
CONFIG
defaults to./dxagent.ini
-s
disables shared memory. Shared memory allows for using DxTop and is enabled by default.
-
dxagent
DxAgent script. -
dxagent.ini
DxAgent configuration file. With a virtualbox hypervisor,vbox_user
has to be set. -
input.csv
An informative list of vendor-specific monitored fields. -
metric.csv
A list of vendor-independant metrics. -
rules.csv
A list of symptoms.
See agent/gnmi/README.md.
DxTop is a console app that displays data collected by DxAgent.
-
dxweb [-h] [-c CONFIG] [-l LOG_FILE] [-t TARGET] [-k CERTS_DIR]
LOG_FILE
defaults to/var/log/dxagent.log
CONFIG
defaults to./dxagent.ini
TARGET
defaults to the gnmi target entry in config file. Use the command line argument to specify another target.CERTS_DIR
certificate/key files location
-
q or ESC: quit
-
arrow up, page up: scroll up
-
arrow down, page down: scroll down
-
arrow left, arrow right: switch between screens
dxtop
DxTop script.
DxWeb is a web interface that display dependency graph, health metrics and symptoms from DxAgent.
dxweb
DxWeb script.
- flask-socketio
python3 -m pip install flask-socketio
python >= 3.8 to have dxtop available, otherwise python >= 3.5.
-
sudo apt install python3-ethtool
-
python3 -m pip install netifaces
-
python3 -m pip install pyroute2
-
python3 -m pip install virtualbox
-
python vboxapisetup.py install
-
sudo apt install python3-vpp-api
-
python3 -m pip install cisco-gnmi
Medical diagnosis (abbreviated Dx or DS) is the process of determining which disease or condition explains a person's symptoms and signs. It is most often referred to as diagnosis.