NGINX Agent is a companion daemon for your NGINX Open Source or NGINX Plus instance. It enables:
- Remote management of NGINX configurations
- Collection and reporting of real-time NGINX performance and operating system metrics
- Notifications of NGINX events
The following packages need to be installed:
- make
- golang (https://go.dev/doc/install)
- protoc (https://grpc.io/docs/protoc-installation/)
- mdatagen (There is currently an issue installing mdatagen open-telemetry/opentelemetry-collector#9281. See instructions below for workaround.)
git clone https://github.com/open-telemetry/opentelemetry-collector.git
cd opentelemetry-collector
git checkout v0.114.0
cd cmd/mdatagen
go install
Before starting development on the NGINX Agent, it is important to download and install the necessary tool and dependencies required by the NGINX Agent. You can do this by running the following make
command:
make install-tools
Build NGINX Agent deb package:
OSARCH=<operating system archiecture> make local-deb-package
Build NGINX Agent rpm package:
OSARCH=<operating system archiecture> make local-rpm-package
Build NGINX Agent apk package:
OSARCH=<operating system archiecture> make local-apk-package
To run unit tests and check that there is enough test coverage run the following
make unit-test coverge
To check for race conditions, the unit tests can also be run with a race condition detector
make race-condition-test
To run integration tests, run the following
make integration-test
For testing command operations, there is a mock management gRPC server that can be used. See here: mock management gRPC server
For testing metrics, there is a mock management OTel collector that can be used. See here: mock management OTel collector
NGINX Agent can run in most environments. For a list of supported distributions, see the NGINX Technical Specs guide.
NGINX Agent can be deployed in the following environments:
- Bare Metal
- Container
- Public Cloud: AWS, Google Cloud Platform, and Microsoft Azure
- Virtual Machine
NGINX Agent works with all supported versions of NGINX Open Source and NGINX Plus.
Minimum system sizing recommendations for NGINX Agent: TBD
-
Our Slack channel #nginx-agent, is the go-to place to start asking questions and sharing your thoughts.
-
Our GitHub issues page offers space for a more technical discussion at your own pace.
Get involved with the project by contributing! Please see our contributing guide for details.
See our release page to keep track of updates.