Skip to content

NGINX Agent: Add v3.0 upgrade guide #318

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 8 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions CONTRIBUTING_DOCS.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,12 +133,14 @@ Supported callouts:
- `caution`
- `warning`

You can also create custom callouts using the `call-out` shortcode `{{< call-out "type" "header" "font-awesome icon >}}`. For example:
You can also create custom callouts using the `call-out` shortcode `{{< call-out "type position" "header" "font-awesome icon >}}`. For example:

```md
{{<call-out "important" "JWT file required for upgrade" "fa fa-exclamation-triangle">}}
{{<call-out "important side-callout" "JWT file required for upgrade" "fa fa-exclamation-triangle">}}
```

By default, all custom callouts are included inline, unless you add `side-callout` which places the callout to the right of the content.

Here are some other shortcodes:

- `fa`: Inserts a Font Awesome icon
Expand Down
47 changes: 47 additions & 0 deletions content/agent/about.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
title: "Overview"
weight: 100
toc: true
docs: DOCS-000
---
{{<call-out "note" "F5 NGINX Agent v3.0 is available now">}}
<!-- (TODO: Link instructions ) -->
{{</call-out>}}

### About F5 NGINX Agent
The F5 NGINX Agent is a lightweight companion daemon designed to work with NGINX One, enabling remote management of the NGINX Instance(s). It also gathers performance metrics from NGINX and transmits them to the NGINX One Console for enhanced monitoring and control.

### Key Features
- Enable Access to Key NGINX One Use Cases
- Seamlessly integrates with essential NGINX One functionality, simplifying access to its core use cases and enhancing operational workflows.
- [Connect to NGINX One Console]({{< relref "/agent/install-upgrade/install/#connect-an-instance-to-nginx-one-console" >}})

- Real-Time Observability into NGINX One Data Plane Instances
- Provides live monitoring and actionable insights into the performance, status, and health of NGINX One Data Plane instances, improving decision-making and operational efficiency.

- [OpenTelemetry](https://opentelemetry.io/) support comes with F5 NGINX Agent, and the ability to [export the metrics data]({{< relref "/agent/how-to/how-to-configure-otel.md" >}}) for use in other applications.

---

## How it works

### Configuration management

- The F5 NGINX Agent provides an interface that enables users to deploy configuration changes to NGINX from a centralized management plane.
- Additionally, the F5 NGINX Agent verifies that the configuration changes are successfully applied to NGINX.

### Metrics Collection

- The F5 NGINX Agent comes pre-packaged with an embedded OpenTelemetry Collector .
- This embedded collector gathers vital performance and health metrics for both NGINX and the underlying instance it operates on.
- For example, it tracks key metrics such as active connections, requests per second, HTTP status codes, and response times. Additionally, it collects system-level data, including CPU usage, memory consumption, and disk I/O. These insights provide deep observability into NGINX's behavior, enabling teams to troubleshoot issues effectively, optimize performance, and maintain high availability.
- Collected metrics can be seamlessly exported to the NGINX One Console or integrated with third-party data aggregators.




{{< img src="agent-flow.png" caption="How Agent works" alt="How NGINX Agent works" width="99%">}}

---


6 changes: 4 additions & 2 deletions content/agent/changelog.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
---
title: "Changelog"
weight: 1200
weight: 900
toc: true
docs: "DOCS-1093"
---

{{< note >}}You can find the full changelog, contributor list and assets for NGINX Agent in the [GitHub repository](https://github.com/nginx/agent/releases).{{< /note >}}

See the list of supported Operating Systems and architectures in the [Technical Specifications]({{< relref "./technical-specifications.md" >}}).

---
## Release [v3.0.0](https//github.com/nginx/agent/releases/tag/v3.0.0)

---
## Release [v2.40.0](https://github.com/nginx/agent/releases/tag/v2.40.0)

Expand Down
8 changes: 0 additions & 8 deletions content/agent/configuration/_index.md

This file was deleted.

95 changes: 0 additions & 95 deletions content/agent/configuration/configure-nginx-agent-features.md

This file was deleted.

9 changes: 4 additions & 5 deletions content/agent/contribute/_index.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
---
title: "Contribute"
description: "Learn about the NGINX Agent community and contribute to the project."
linkTitle: "Contribute"
menu: docs
weight: "500"
weight: 600
url: /nginx-agent/contribute/
---
---

Learn about the NGINX Agent community and how to contribute to the project.
12 changes: 5 additions & 7 deletions content/agent/contribute/community.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
---
title: "Community and contribution"
draft: false
weight: 100
toc: true
tags: [ "docs" ]
docs: "DOCS-1087"
categories: ["configuration"]
doctypes: ["task"]
weight: 100
docs: DOCS-000
---

This topic describes the various ways you can get involved with the F5 NGINX Agent project.

# Community

- Our [Slack channel #nginx-agent](https://nginxcommunity.slack.com/), is the go-to place to start asking questions and sharing your thoughts.
- Our [NGINX Community](https://community.nginx.org/), is the go-to place to start asking questions and sharing your thoughts.

- Our [GitHub issues page](https://github.com/nginx/agent/issues) offers space for a more technical discussion at your own pace.

Expand Down
54 changes: 25 additions & 29 deletions content/agent/contribute/dev-environment-setup.md
Original file line number Diff line number Diff line change
@@ -1,65 +1,61 @@
---
title: "Development environment setup"
draft: false
weight: 200
toc: true
tags: [ "docs" ]
docs: "DOCS-1088"
categories: ["development"]
doctypes: ["task"]
weight: 200
docs: DOCS-000
---

## Overview

Learn how to setup a Development Environment for NGINX Agent.
This page describes how to configure a development environment for F5 NGINX Agent.

While most Linux or FreeBSD operating systems can be used to contribute to the NGINX Agent project, the following steps have been designed for Ubuntu.

Ubuntu is the recommended operating system for development, as it comes with most packages requires to build and run NGINX Agent.

## Before you begin

## Select an Operating System
To begin this task, you will require the following:

While most Linux or FreeBSD operating systems can be used to contribute to the NGINX Agent project, the following steps have been designed for Ubuntu. Ubuntu is packaged with most libraries required to build and run NGINX Agent, and is the recommended platform for NGINX Agent development.
- A [working NGINX Agent instance]({{< relref "/agent/install-upgrade/install.md" >}}).
- A [Go installation](https://go.dev/dl/) of version 1.22.2 or newer.
- A [Protocol Buffer Compiler](https://grpc.io/docs/protoc-installation/) installation.

## Install NGINX
You will also need a copy of the NGINX Agent repository, which you can clone using `git`:

Follow the steps in the [Installation]({{< relref "/agent/installation-upgrade/" >}}) section to download, install, and run NGINX and NGINX Agent.
```shell
git clone git@github.com:nginx/agent.git
```

## Clone the NGINX Agent Repository
Read [Cloning a repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) for more information

Using your preferred method, clone the NGINX Agent repository into your development directory. See [Cloning a GitHub Repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository) for additional help.
Follow the steps in the [Installation]({{< relref "/agent/install-upgrade/install.md" >}}) topic to install NGINX Agent.

## Installing Prerequisite Packages
## Install prerequisite packages
Depending on the operating system distribution, it may be necessary to install the following packages in order to build NGINX Agent.

Change to the NGINX Agent source directory:
```bash
```shell
cd <path_to_development_directory>/agent
```

Install Make:
```bash
```shell
sudo apt install make
```

NGINX Agent is written in Go. You may [download Go](https://go.dev/doc/install) and follow installation instructions on the same page or run:
```bash
sudo apt install golang-go
```

Install Protoc:
```bash
sudo apt install -y protobuf-compiler
```

Install NGINX Agent tools and dependencies:

Before starting development on NGINX Agent, it is important to download and install the necessary tool and dependencies required by NGINX Agent. You can do this by running the following `make` command:
```bash
```shell
make install-tools deps
```

## Building NGINX Agent from Source Code
## Build NGINX Agent from source code

Run the following commands to build and run NGINX Agent:

```bash
```shell
make build
sudo make run
```
Loading