27520d3a15
Previous changes enabled the auto-versioning of helm charts to ensure FluxCD helm controller recognizes chart changes. As a result of this refactor, the package name `stx-node-interface-metrics-exporter-helm` became outdated. This commit updates its name to `stx-node-interface-metrics-exporter`. It also improves chart versioning based on the Debian environment. Story: 2010929 Task: 50072 Test Plan: PASS: Build all packages generating an application tarball and check whether the charts' versions are correct. PASS: Validate basic application lifecycle operations: upload/apply/remove/delete. Depends-On: https://review.opendev.org/c/starlingx/app-node-interface-metrics-exporter/+/916894 Change-Id: Id5bd9318e4b6a38fd683c21a0d95ed4185c03327 Signed-off-by: AbhishekJ <abhishek.jaiswal@windriver.com>
70 lines
3.3 KiB
Markdown
70 lines
3.3 KiB
Markdown
# app-node-interface-metrics-exporter
|
|
app-node-interface-metrics-exporter flux cd app
|
|
|
|
#### Top Level Directory Structure
|
|
```bash
|
|
├── 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
|
|
```bash
|
|
$ 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](/metrics-exporter-api/debian/Dockerfile)
|
|
|
|
[Build Reference](/metrics-exporter-api/debian/metrics-exporter-api.stable_docker_image)
|
|
|
|
#### References
|
|
[StarlingX](https://www.starlingx.io/)
|
|
|
|
[How to add a FluxCD App to Starlingx](https://wiki.openstack.org/wiki/StarlingX/Containers/HowToAddNewFluxCDAppInSTX)
|
|
|
|
[OpenMetrics](https://openmetrics.io/)
|
|
|
|
[JSON]: <https://www.json.org/>
|
|
[OpenMetrics]: <https://openmetrics.io/> |