Edson Dias 4af2df4f70 Update references to appframework lifecycle constants.
The application framework lifecycle constants were split into two
files, sysinv/helm/lifecycle_constants.py and sysinv/common/constants.py.
Aiming to facilitate the split of the application framework into a
separate application in the future, the review: https://review.opendev.org/c/starlingx/config/+/936252
moved the lifecycle variables to helm/lifecycle_contants file.

This commit updates all references that pointed to the lifecycles
constants at sysinv/common/constants.py file, changing them to point to
the new variables in sysinv/helm/lifecycle_contants.py

Test plan:
PASS: build-pkgs && build-image
PASS: AIO-SX fresh install
PASS: Upload, apply, remove, delete, update and upgrade
      node-interface-metrics-exporter.

Story: 2011242
Task: 51590
Depends-on: https://review.opendev.org/c/starlingx/config/+/936252

Change-Id: I2e07de56316f561734a7e3a9f1e509dd5fdf3847
Signed-off-by: Edson Dias <edson.dias@windriver.com>
2025-01-22 09:53:24 -03:00
2024-08-27 09:26:10 -04:00
2024-08-27 09:26:10 -04:00
2023-09-14 12:33:40 +00:00
2024-08-27 09:26:10 -04:00
2024-08-27 09:26:10 -04:00

app-node-interface-metrics-exporter

app-node-interface-metrics-exporter flux cd app

Top Level Directory Structure

├── app-node-interface-metrics-exporter    # Root Folder
│   ├── debian_build_layer.cfg
│   ├── debian_iso_image.inc
│   ├── debian_pkg_dirs
│   ├── metrics-exporter-api              # Go code  for  api server which will expose  Metrics for  NIC .
│   ├── python3-k8sapp-node-interface-metrics-exporter    # lifecycle managemnt code  to support  flux apps
│   ├── README.md
│   ├── requirements.txt
│   ├── stx-node-interface-metrics-exporter      # helm Package manager  for the app
│   ├── test-requirements.txt
│   └── tox.ini

all command related to go code should run from app-node-interface-metrics-exporter/metrics-exporter-api/docker/metrics-exporter-api

About metrics-exporter-api

It is Simple Http Server which reads network interface (PCI devices) and exposes following API's

  1. http://{hostname}:{port}/metrics -- all node metrics in OpenMetrics format
  2. http://{hostname}:{port}/metrics/device/{DeviceName} -- specified interface metrics identified by device name in OpenMetrics format
  3. http://{hostname}:{port}/metrics/pci-addr/{PciAddr} -- specified interface metrics identified by PCI address in OpenMetrics format
  4. http://{hostname}:{port}/json/metrics -- all node metrics in JSON format
  5. http://{hostname}:{port}/json/metrics/device/{DeviceName} -- specified interface metrics identified by device name in JSON format
  6. http://{hostname}:{port}/json/metrics/pci-addr/{PciAddr} -- specified interface metrics identified by PCI address in JSON format

Makefile Support

$ make
help:                Show this help.
install_dep:         install go dependency
run:                 run app on host machine
test:                run go unit test
testcov:             run go coverage test
vet:                 run go vet
lint:                run go lint
build_linux:         Build application
build_image:         Build docker image

$ make run will start go dev http server

Run time Options / params for the metrics-exporter-app usage

Options Help
-log.file Log file name (default "node_metrics_api.log")
-log.level log level. (default "info"). Valid options trace, debug, info, warning, error, fatal and panic
-log.file Log file name (default "node_metrics_api.log")
-web.listen-address Port to listen on for web interface. (default ":9110")
-path.sys mounted path for host /sys inside container (default "/sys")

Local / Devlopment Set UP for metrics-exporter-api

pre requisite go 1.21.0

Container image reference for helm

Dockerfile

Build Reference

References

StarlingX

How to add a FluxCD App to Starlingx

OpenMetrics

Description
StarlingX Node Interface Metrics Exporter App
Readme 20 MiB
Languages
Go 69%
Python 21.8%
Makefile 7.8%
Dockerfile 1.3%