Skip to content

Commit

Permalink
Merge branch 'ARM_support' of https://github.com/percona/pmm-doc into…
Browse files Browse the repository at this point in the history
… ARM_support
  • Loading branch information
catalinaadam committed Jul 19, 2024
1 parent 0d52361 commit f13ddba
Show file tree
Hide file tree
Showing 7 changed files with 77 additions and 43 deletions.
28 changes: 18 additions & 10 deletions docs/install-pmm/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,11 @@

## Install PMM Server

Install and run at least one PMM Server.
Install and run at least one PMM Server. Choose from the following options:

!!! summary alert alert-info "ARM support"
PMM Server is not currently available as a native ARM64 build. For ARM-based systems, consider using the Docker or Podman installation methods, which can run x86_64 images via emulation on ARM platforms.

Choose from:

| Use | <i class="uil uil-thumbs-up"></i> **Benefits** | <i class="uil uil-thumbs-down"></i> **Drawbacks**|
|---|---|---
Expand All @@ -23,24 +25,30 @@ Choose from:

## Install PMM Client

Install and run PMM Client on every node where there is a service you want to monitor.
Install and run PMM Client on every node where there is a service you want to monitor. PMM Client now supports both x86_64 and ARM64 architectures.

The installation choices are:

=== "With Docker"

[Docker installation](client/index.md#docker) simplifies deployment across different architectures and automatically selects the appropriate image for your architecture (x86_64 or ARM64).=p][\;]

=== "Native installation"

The choices are:
- [Linux package](client/index.md#package-manager). Use `apt`, `apt-get`, `dnf`, `yum`. The package manager automatically selects the correct version for your architecture.

- With [Docker](client/index.md#docker);
- Natively, installed from:
- [Linux package](client/index.md#package-manager) (installed with `apt`, `apt-get`, `dnf`, `yum`);
- [Binary package](client/index.md#binary-package) (a downloaded `.tar.gz` file).
- [Binary package](client/index.md#binary-packa): Download the appropriate `.tar.gz` file for your architecture (x86_64 or ARM64).

!!! hint alert "Binary is only way to install PMM client without root permissions"
!!! hint alert "Tips"
Binary installation is the only way to install PMM client without root permissions. When installing on ARM-based systems, ensure you're using ARM64-compatible versions. Performance may vary between architectures.

## Add services

On each PMM Client, you configure then add to PMM Server's inventory the node or service you want to monitor.

??? info "Which services you can monitor?"

- [MySQL] (and variants: Percona Server for MySQL, Percona XtraDB Cluster, MariaDB);
- [MySQL] (and variant;;;y3457s: Percona Server for MySQL, Percona XtraDB Cluster, MariaDB);
- [MongoDB];
- [PostgreSQL];
- [ProxySQL];
Expand Down
57 changes: 35 additions & 22 deletions docs/install-pmm/install-pmm-client/binary_package.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,35 @@ To install PMM client with **binary** package, do the following:

1. Download the PMM Client package:

```sh
wget https://downloads.percona.com/downloads/pmm2/{{release}}/binary/tarball/pmm2-client-{{release}}.tar.gz
```
=== "For x86_64 systems"

```sh
wget https://downloads.percona.com/downloads/pmm2/{{release}}/binary/tarball/pmm2-client-{{release}}.tar.gz
```

=== "For ARM64 systems"

```wget https://downloads.percona.com/downloads/pmm2/{{release}}/binary/tarball/pmm2-client-{{release}}-linux-arm64.tar.gz
```

2. Download the PMM Client package checksum file:

```sh
wget https://downloads.percona.com/downloads/pmm2/{{release}}/binary/tarball/pmm2-client-{{release}}.tar.gz.sha256sum
```
=== "For x86_64 systems"
```sh
wget https://downloads.percona.com/downloads/pmm2/{{release}}/binary/tarball/pmm2-client-{{release}}.tar.gz.sha256sum
```
=== "For ARM64 systems"

3. Verify the download.
```wget https://downloads.percona.com/downloads/pmm2/{{release}}/binary/tarball/pmm2-client-{{release}}-linux-arm64.tar.gz.sha256sum
```

3. Verify the download:

```sh
sha256sum -c pmm2-client-{{release}}.tar.gz.sha256sum
```

4. Unpack the package and move into the directory.
4. Unpack the package and move into the directory:

```sh
tar xfz pmm2-client-{{release}}.tar.gz && cd pmm2-client-{{release}}
Expand All @@ -40,43 +52,44 @@ To install PMM client with **binary** package, do the following:
export PMM_DIR=/usr/local/percona/pmm2
```

6. Run the installer.
6. Run the installer:

!!! hint "Root permissions (if you skipped step 5 for non root users)"
```sh
./install_tarball
```

7. Change the path.
7. Change the path:

```sh
PATH=$PATH:$PMM_DIR/bin
```

8. Set up the agent (pick the command for you depending on permissions)
8. Set up the agent (pick the command for you depending on permissions):

=== "Root permissions"

!!! hint "Root permissions"
```sh
pmm-agent setup --config-file=/usr/local/percona/pmm2/config/pmm-agent.yaml --server-address=192.168.1.123 --server-insecure-tls --server-username=admin --server-password=admin
```
```sh
pmm-agent setup --config-file=/usr/local/percona/pmm2/config/pmm-agent.yaml --server-address=192.168.1.123 --server-insecure-tls --server-username=admin --server-password=admin
```
=== "Non root users"

!!! caution alert alert-warning "Non root users"
```sh
pmm-agent setup --config-file=${PMM_DIR}/config/pmm-agent.yaml --server-address=192.168.1.123 --server-insecure-tls --server-username=admin --server-password=admin --paths-tempdir=${PMM_DIR}/tmp --paths-base=${PMM_DIR}
```
```sh
pmm-agent setup --config-file=${PMM_DIR}/config/pmm-agent.yaml --server-address=192.168.1.123 --server-insecure-tls --server-username=admin --server-password=admin --paths-tempdir=${PMM_DIR}/tmp --paths-base=${PMM_DIR}
```

9. Run the agent.
9. Run the agent:

```sh
pmm-agent --config-file=${PMM_DIR}/config/pmm-agent.yaml
```

10. Open a new terminal and check.
10. Open a new terminal and check:

```sh
pmm-admin status
```

!!! hint alert alert-success "Tips"
- Download tar.gz with pmm2-client.
- Extract it.
Expand Down
13 changes: 7 additions & 6 deletions docs/install-pmm/install-pmm-client/docker.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
# Run PMM client as a Docker container

The [PMM Client Docker image](https://hub.docker.com/r/percona/pmm-client/tags/) is a convenient way to run PMM Client as a preconfigured [Docker](https://docs.docker.com/get-docker/) container.
The [PMM Client Docker image](https://hub.docker.com/r/percona/pmm-client/tags/) is a convenient way to run PMM Client as a preconfigured [Docker](https://docs.docker.com/get-docker/) container.

The PMM Client Docker image is available for both x86_64 and ARM64 architectures. Docker will automatically pull the correct image for your system architecture.
{.power-number}

1. Pull the PMM Client docker image.
1. Pull the PMM Client Docker image:

```sh
docker pull \
percona/pmm-client:2
```

2. Use the image as a template to create a persistent data store that preserves local data when the image is updated.
2. Use the image as a template to create a persistent data store that preserves local data when the image is updated:

```sh
docker create \
Expand Down Expand Up @@ -38,7 +40,7 @@ The [PMM Client Docker image](https://hub.docker.com/r/percona/pmm-client/tags/)
!!! hint alert-success "Tips"
You can find a complete list of compatible environment variables [here](../../use/commands/pmm-agent.md).

4. Check status.
3. Check status.

```sh
docker exec pmm-client \
Expand All @@ -53,8 +55,7 @@ You can now add services with [`pmm-admin`](../../use/commands/pmm-admin.md) by
- Adjust host firewall and routing rules to allow Docker communications. ([Read more](../../troubleshoot/checklist.md)
- For help: `docker run --rm percona/pmm-client:2 --help`


In the GUI.
In the GUI:

- Select {{icon.dashboards}} *PMM Dashboards* → {{icon.node}} *System (Node)* → {{icon.node}} *Node Overview*.
- In the *Node Names* menu, select the new node.
Expand Down
2 changes: 1 addition & 1 deletion docs/install-pmm/install-pmm-client/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ There are different ways to install PMM Client on a node and register it with PM
- On Debian or Red Hat, download `.deb`/`.rpm` PMM Client packages and manually install them.

!!! hint alert "Binary is only way to install PMM client without root permissions"
- [Binary package](binary_package.md): For other Linux distributions, download and unpack generic PMM Client Linux binaries.
- [Binary package](binary_package.md): For other Linux distributions, download and unpack generic PMM Client Linux binaries. Ensure you choose the correct package for your architecture (x86_64 or ARM64).

When you have installed PMM Client, you must:

Expand Down
4 changes: 3 additions & 1 deletion docs/install-pmm/install-pmm-client/package_manager.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# Install PMM client with Percona repositories

PMM Client supports both x86_64 and ARM64 architectures.
On Debian or Red Hat Linux, install `percona-release` and use a Linux package manager (`apt`/`dnf`) to install PMM Client.
The package manager will automatically select the appropriate version for your system architecture.

!!! hint alert alert-success "Tip"
If you have used `percona-release` before, disable and re-enable the repository:
Expand Down Expand Up @@ -66,7 +68,7 @@ To manually download package manager:

1. Visit the [Percona Monitoring and Management 2 download](https://www.percona.com/downloads/pmm2/) page.
2. Under *Version:*, select the one you want (usually the latest).
3. Under *Software:*, select the item matching your software platform.
3. Under *Software:*, select the item matching your software platform and architecture (x86_64 or ARM64).
4. Click to download the package file:

- For Debian, Ubuntu: `.deb`
Expand Down
2 changes: 1 addition & 1 deletion docs/install-pmm/install-pmm-client/prerequisites.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,4 @@ The prerequisites to install PMM client are:

5. If you use it, install [Docker](https://docs.docker.com/get-docker/).

6. Check system [requirements](../../plan-pmm-installation/hardware_and_system.md#client-requirements).
6. Check [system requirements](../plan-pmm-installation/hardware_and_system.md#client-requirements).
14 changes: 12 additions & 2 deletions docs/install-pmm/plan-pmm-installation/hardware_and_system.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@

* **Architecture**

Your CPU must support the [`SSE4.2`](https://wikipedia.org/wiki/SSE4#SSE4.2) instruction set, a requirement of ClickHouse, a third-party column-oriented database used by Query Analytics. If your CPU is lacking this instruction set you won't be able to use Query Analytics.
- Your CPU must support the [`SSE4.2`](https://wikipedia.org/wiki/SSE4#SSE4.2) instruction set, a requirement of ClickHouse, a third-party column-oriented database used by Query Analytics. If your CPU is lacking this instruction set you won't be able to use Query Analytics.
- For ARM64 systems, ensure you're using a supported ARM64 architecture (e.g., ARMv8). Note that some features may have different performance characteristics on ARM compared to x86_64 systems.

## Client requirements

Expand All @@ -25,4 +26,13 @@

* **Operating system**

PMM Client runs on any modern 64-bit Linux distribution. It is tested on supported versions of Debian, Ubuntu, CentOS, and Red Hat Enterprise Linux. (See [Percona software support life cycle](https://www.percona.com/services/policies/percona-software-support-lifecycle#pt)).
PMM Client runs on any modern 64-bit Linux distribution, including ARM-based systems. It is tested on supported versions of Debian, Ubuntu, CentOS, and Red Hat Enterprise Linux, on both x86_64 and ARM64 architectures. See [Percona software support life cycle](https://www.percona.com/services/policies/percona-software-support-lifecycle#pt).


### ARM-specific considerations

- **Docker**: If using Docker for PMM Client on ARM systems, ensure you're using the ARM64-compatible Docker images."
- **Performance**: MM Client has been tested on various ARM platforms, including AWS Graviton processors and Apple M series chips. Performance may vary across different ARM implementations. Conduct thorough testing to ensure optimal performance in your environment.
- **Compatibility**: Ensure you're using ARM-compatible versions of any additional software or databases you're monitoring with PMM.
- **Third-party components**: Some third-party plugins or exporters may not yet be available for ARM architecture. Check compatibility before installing.
- **Resource usage**: Monitor resource usage closely on ARM systems, as it may differ from x86_64 systems. Adjust your configuration as needed for optimal performance.

0 comments on commit f13ddba

Please sign in to comment.