Percona Monitoring & Management (PMM) Essentials

PMM (Percona Monitoring and Management) is designed to be scalable for various environments. 

If you have just one MySQL or MongoDB server, you can install and run both PMM server and PMM clients on one database host.

Percona Monitoring and Management Architecture :

PMM, at a high-level, is made up of two basic components: the client and the server. The PMM Client is installed on the database servers themselves and is used to collect metrics. The client contains technology specific exporters (which collect and export data), and an “admin interface” (which makes the management of the PMM platform very simple). The PMM server is a “pre-integrated unit” (Docker, VM or AWS AMI) that contains four components that gather the metrics from the exporters on the PMM client(s). The PMM server contains ConsulGrafanaPrometheus and a Query Analytics Engine that Percona has developed. Here is a graphic from the architecture section of our documentation.

  • PMM Client installed on every database host that you want to monitor. It collects server metrics, general system metrics, and Query Analytics data for a complete performance overview.
  • PMM Server is the central part of PMM that aggregates collected data and presents it in the form of tables, dashboards, and graphs in a web interface.

System requirements for PMM :

Any system which can run Docker version 1.12.6 or later.

Minimum memory is 2 GB for one monitored database node, but it is not linear when you add more nodes. For example, data from 20 nodes should be easily handled with 16 GB.

Any modern 64-bit Linux distribution. It is tested on the latest versions of Debian, Ubuntu, CentOS, and Red Hat Enterprise Linux.

Installing PMM Server

To install and set up the PMM Server, use one of the following options:

Running PMM Server via Docker

Running PMM Server as a Virtual Appliance

Running PMM Server Using AWS Marketplace

In this article we will be installing PMM using docker.

Servers :

prodserver44   – PMM 

prodserver11   – MySQL server 

Open Firewall Ports :

The following ports must be open to enable communication between the PMM Server and PMM clients.

PMM Server should keep ports 80 or 443 ports open for computers where PMM Client is installed to access the PMM web interface.

On each computer where PMM Client is installed, the following ports must be open. These are default ports that you can change when adding the respective monitoring service with the pmm-admin add command.

Ports    Comments
42000 For PMM to collect genenal system metrics.
42001 This port is used by a service which collects query performance data and makes it available to QAN.
42002 For PMM to collect MySQL server metrics.
42003 For PMM to collect MongoDB server metrics.
42004 For PMM to collect ProxySQL server metrics.

Also open 80 and 8080 in percona monitoring server and 3306 in mysql server 

Open Firewall Ports :

firewall-cmd --zone=public --add-service=mysql --permanent
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --zone=public --add-port=3306/udp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=80/udp --permanent

firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=8080/udp --permanent

firewall-cmd --zone=public --add-port=42000/tcp --permanent
firewall-cmd --zone=public --add-port=42000/udp --permanent

firewall-cmd --zone=public --add-port=42003/tcp --permanent
firewall-cmd --zone=public --add-port=42003/udp --permanent

firewall-cmd --zone=public --add-port=42001/tcp --permanent
firewall-cmd --zone=public --add-port=42001/udp --permanent

firewall-cmd --zone=public --add-port=42002/tcp --permanent
firewall-cmd --zone=public --add-port=42002/udp --permanent

firewall-cmd --zone=public --add-port=42004/tcp --permanent
firewall-cmd --zone=public --add-port=42004/udp --permanent

List the opened ports 

sudo firewall-cmd --zone=public --list-ports --permanent

To know more about opening firewall ports click here

Set selinux to permissive ( optional )

vi /etc/sysconfig/selinux

[root@host2a ~]# cat /etc/sysconfig/selinux
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#       enforcing - SELinux security policy is enforced.
#       permissive - SELinux prints warnings instead of enforcing.
#       disabled - SELinux is fully disabled.
# SELINUXTYPE= type of policy in use. Possible values are:
#       targeted - Only targeted network daemons are protected.
#       strict - Full SELinux protection.

Restart the linux server for changes to take effective.

Install Docker to run PMM Server remotely and start the docker service

$ yum -y install docker
$ systemctl start docker
$ systemctl enable docker

Pulling the PMM Server Image :

To pull the latest version from Docker Hub:

$ docker pull percona/pmm-server:latest

This step is not required if you are running PMM Server for the first time. However, it ensures that if there is an older version of the image tagged with latest available locally, it will be replaced by the actual latest version.

Creating the pmm-data Container :

To create a container for persistent PMM data, run the following command:

$ docker create \
   -v /opt/prometheus/data \
   -v /opt/consul-data \
   -v /var/lib/mysql \
   -v /var/lib/grafana \
   --name pmm-data \
   percona/pmm-server:latest /bin/true

The previous command does the following:

  • The docker create command instructs the Docker daemon to create a container from an image.
  • The -v options initialize data volumes for the container.
  • The –name option assigns a custom name for the container that you can use to reference the container within a Docker network. In this case: pmm-data.
  • percona/pmm-server:latest is the name and version tag of the image to derive the container from. 
  • /bin/true is the command that the container running

Creating and Launching the PMM Server Container :

$ docker run -d \
   -p 80:80 \
   --volumes-from pmm-data \
   --name pmm-server \
   --restart always \

This command does the following:

  • The docker run command runs a new container based on the percona/pmm-server:latest image.
  • The -d option starts the container in the background (detached mode).
  • The -p option maps the port for accessing the PMM Server web UI. For example, if port 80 is not available, you can map the landing page to port 8080 using -p 8080:80.
  • The -v option mounts volumes from the pmm-data container (see Creating the pmm-data Container).
  • The –name option assigns a custom name to the container that you can use to reference the container within the Docker network. In this case: pmm-server.
  • The –restart option defines the container’s restart policy. Setting it to always ensures that the Docker daemon will start the container on startup and restart it if the container exits.
  • percona/pmm-server:latest is the name and version tag of the image to derive the container from.

If you need to enable Orchestrator launch the container as below :

$ docker run -d -p 80:80 \
  --volumes-from pmm-data \
  --name pmm-server \
  -e ORCHESTRATOR_USER=pmmuser  \
  --restart always \


Run this command as root or by using the sudo command.

$ docker run ... -e SERVER_PASSWORD=YOUR_PASSWORD ... percona/pmm-server:latest

By default, the user name is pmm. Use this option to use another user name.

$ docker run ... -e SERVER_USER=USER_NAME ... percona/pmm-server:latest

Verify your PMM home page :

In your browser, go to the server by its IP address. If you run your server as a virtual appliance or by using an Amazon machine image, you will need to setup the user name, password and your public key if you intend to connect to the server by using ssh. 

This step is not needed if you run PMM Server using Docker.

Accessing the Components of the Web Interface :


Installing PMM Client :

PMM Client is a package of agents and exporters installed on a MySQL or MongoDB host that you want to monitor. The components collect various data about general system and database performance, and send this data to corresponding PMM Server components.

Before installing the PMM Client package on a database host, make sure that your PMM Server host is accessible. For example, you can ping or whatever IP address PMM Server is running on.

The minimum requirements for Query Analytics (QAN) are:

MySQL 5.1 or later (if using the slow query log)

MySQL 5.6.9 or later (if using Performance Schema)

Note :

You should not install agents on database servers that have the same host name, because host names are used by PMM Server to identify collected data.

If you are running an RPM-based Linux distribution, use the yum package manager to install PMM Client from the official Percona software repository.

Percona provides .rpm packages for 64-bit versions of Red Hat Enterprise Linux 6 (Santiago) and 7 (Maipo), including its derivatives that claim full binary compatibility, such as, CentOS, Oracle Linux, Amazon Linux AMI, and so on.

Configuring Percona Repository

sudo yum install

Install the pmm-client package:

$ sudo yum -y install pmm-client

Connecting PMM Client to PMM Server :

$ sudo pmm-admin config --server prodserver44
[root@prodserver11 scripts]# sudo pmm-admin config --server prodserver44
OK, PMM server is alive.

PMM Server      | prodserver44
Client Name     | prodserver11
Client Address  |


If we have configured username and password for Grafana tool.Please follow the below method

$ sudo pmm-admin config --server prodserver44 --server-user pmmadmin --server-password XXXXXXXXX


Starting Data Collection :

Create a user to collect the metrics from client to server.

The superuser credentials are required only to set up the pmm user with necessary privileges for collecting data. 

If you want to create this user yourself, the following privileges are required:

GRANT SELECT, UPDATE, DELETE, DROP ON performance_schema.* TO 'pmmuser'@'ip_address'';

Verify that MySQL user exists and has the correct privileges.

Use additional flags –user, –password, –host, –port, –socket if needed.

To enable general system metrics, MySQL metrics, and MySQL query analytics, run:

$ pmm-admin add mysql
$ pmm-admin add mysql --user pmmuser --password XXXXX --host prodserver11 --port 3306 

Monitor multiple MySQL instances :

You can add multiple MySQL instances to be monitored from one PMM Client. 

 In this case, you will need to provide a distinct port and socket for each instance using the –port and –socket parameters, and specify a unique name for each instance (by default, it uses the name of the PMM Client host).

$ sudo pmm-admin add mysql --user root --password root --create-user --port 3307 instance-01
$ sudo pmm-admin add mysql --user root --password root --create-user --port 3308 instance-02

To enable general system metrics, MongoDB metrics, and MongoDB query analytics, run as root:

$ pmm-admin add mongodb

To enable ProxySQL performance metrics, run as root:

$ pmm-admin add proxysql:metrics

To see what is being monitored, run as root

$ pmm-admin list

From now on, PMM will capture all the Linux and MySQL metrics from you sever and poll to the PMM Server host, this you can monitor from the PMM Server browser .

Install Percona Toolkit :

It is required to install percona toolkit to fetch the details about Linux and MySQL server summary 

$ sudo yum -y install percona-toolkit
$ mkdir /etc/percona-toolkit
$ vi /etc/percona-toolkit/pt-mysql-summary.conf
$ $ pt-mysql-summary --config /etc/percona-toolkit/pt-mysql-summary.conf

Removing monitoring services :

The following option can be used with the pmm-admin rm command:

To remove all services enabled for this PMM Client:

$ pmm-admin rm --all

To remove all services related to MySQL:

$ pmm-admin rm mysql

To remove only mongodb:metrics service:

$ pmm-admin rm mongodb:metrics

Restarting monitoring services :

To restart all available services for this PMM Client:

$ pmm-admin restart --all
$ pmm-admin restart mysql

Getting passwords used by PMM Client

Use the pmm-admin show-passwords command to print credentials stored in the configuration file (by default: /usr/local/percona/pmm-client/pmm.yml).

$ pmm-admin show-passwords

Adding monitoring services

When you add a monitoring service pmm-admin automatically creates and sets up a service in the operating system. You can tweak the systemd configuration file and change its behavior.

Open the systemd unit file associated with the monitoring service that you need to change, such as pmm-mysql-metrics-42002.service.

$ cd /etc/systemd/system
$ cat pmm-mysql-metrics-42002.service
$ sed -e -i.backup 's/-web.ssl[^ ]\+[^->]*//g' pmm-mysql-metrics-42002.service

Reload systemd:

$ systemctl daemon-reload

Restart the monitoring service by using pmm-admin restart:

$ pmm-admin restart mysql:metrics

Adding external monitoring services :

To add an external monitoring service use the external:metrics service followed by the name of a Prometheus job, URL and port number to reach it.

$ pmm-admin add external:metrics postgresql

Checking network connectivity :

Use the pmm-admin check-network command to run tests that verify connectivity between PMM Client and PMM Server.

pmm-admin check-network [OPTIONS]

Connection tests are performed both ways, with results separated accordingly:

Client –> Server

Pings Consul API, Query Analytics API, and Prometheus API to make sure they are alive and reachable.

Performs a connection performance test to see the latency from PMM Client to PMM Server.

Client <– Server

Checks the status of Prometheus endpoints and makes sure it can scrape metrics from corresponding exporters.

$ pmm-admin ping

OK, PMM server is alive.

PMM Server      | prodserver44
Client Name     | prodserver11
Client Address  |

Getting information about PMM Client :

$ pmm-admin info

pmm-admin 1.6.1

PMM Server      | prodserver44
Client Name     | prodserver11
Client Address  |
Service Manager | linux-systemd

Go Version      | 1.9.2
Runtime Info    | linux/amd64

Purging metrics data :

Use the pmm-admin purge command to purge metrics data associated with a service on PMM Server. 

This is usually required after you remove a service and do not want its metrics data to show up on graphs.

pmm-admin purge [SERVICE [NAME]] [OPTIONS]

PMM Client log files location:

Every service created by pmm-admin when you add a monitoring instance has a separate log file located in /var/log/

Log file for the MySQL QAN monitoring service is /var/log/pmm-mysql-queries-0.log

Using the Percona Monitoring and Management Platform

Accessing the Components of the Web Interface.

Component URL
PMM Home Page
Query Analytics (QAN)
Metrics Monitor (MM)
User name: admin
Password: admin

Query Analytics :

The QAN dashboard enables database administrators and application developers to analyze database queries over periods of time and find performance problems.

QAN helps you optimize database performance by making sure that queries are executed as expected and within the shortest time possible.

To start working with QAN, open the list of dashboards on the PMM home page. Then, select a host in the Host field at the top of the page from the list of database instances. where the PMM Client is installed.

The list of queries opens below in a summary table. Be default, QAN shows the top ten queries ranked by %GTT (Grand total time) as a result of monitoring your database server for the last hour. 

Each query displays three essential metrics: Load, Count, and Latency.

Selecting Time or Date Range

The query metrics that appear in QAN are computed based on a time period or a range of dates. The default value is the last hour. 

Configuring Query Analytics:

The Settings button opens a separate page with settings, status, and log for the selected database instance.

Settings Tab

The Settings tab displays the essential configuration settings of the database server selected from the Databases list. From this tab you can see which DSN is being used as well as the database server version.

Viewing Database and Server Summary Information :

The PMM System Summary dashboard shows detailed infromation about the selected host (the value of the Host field) and the database server deployed on this host.

The System Summary section contains details about the platform while the Database Summary offers detailed statistics about the database server.


Performance Schema

The default source of query data for PMM is the slow query log. It is available in MySQL 5.1 and later versions. Starting from MySQL 5.6 (including Percona Server 5.6 and later), you can choose to parse query data from the Performance Schema. Starting from MySQL 5.6.6, Performance Schema is enabled by default.

To use Performance Schema, make sure that the performance_schema variable is set to ON:

mysql> SHOW VARIABLES LIKE 'performance_schema';
| Variable_name      | Value |
| performance_schema | ON    |

Metrics Monitor :

The Metrics Monitor tool provides a historical view of metrics that are critical to a database server. Time-based graphs are separated into dashboards by themes: some are related to MySQL or MongoDB, others provide general system metrics.

To access the dashboards, provide default user credentials:

User: admin

Password: admin

Each graph has a graph descriptions to display more information about the monitored data without cluttering the interface.

Orchestrator :

Orchestrator is a MySQL replication topology management and visualization tool. If it is enabled, you can access it using the /orchestrator URL after PMM Server address. 

To use it, create a MySQL user for Orchestrator on all managed instances:

TO 'orc_client_user'@'%'
IDENTIFIED BY 'orc_client_password’;

Note :

The credentials in the previous example are default. If you use a different user name or password, you have to pass them when running PMM Server using the ORCHESTRATOR_PASSWORD and ORCHESTRATOR_USER options.

$ docker run -e ORCHESTRATOR_ENABLED=true ORCHESTRATOR_USER=pmmuser -e ORCHESTRATOR_PASSWORD=pmmuser  percona/pmm-server:latest
$ docker run -d -p 80:80 \
  --volumes-from pmm-data \
  --name pmm-server \
  -e ORCHESTRATOR_USER=pmmuser  \
  --restart always \



MySQL  Alerting with PMM and Grafana

There are several ways to receive alerts with Grafana – email, Slack, Webhook and PagerDuty.

To enter the Docker container, use the ID of the running container found with the command “docker ps”. 

$ docker ps
CONTAINER ID        IMAGE                       COMMAND                CREATED             STATUS              PORTS                         NAMES
bd2d9e657650        percona/pmm-server:latest   "/opt/"   2 hours ago         Up 2 hours>80/tcp, 443/tcp   pmm-server

Once you have the container ID, enter the Docker shell by using the command docker exec -it CONTAINER_ID /bin/bash.

$ docker exec -it bd2d9e657650 /bin/bash

Edit SMTP details in Grafana configuration file 

$ vi /etc/grafana/grafana.ini 
#################################### SMTP / Emailing ##########################
enabled = true
host =
user =
# If the password contains # or ; you have to wrap it with trippel quotes. Ex """#password;"""
;cert_file =
;key_file =
;skip_verify = false
from_address = admin@grafana.localhost
;from_name = Grafana
# EHLO identity in SMTP dialog (defaults to instance_name)
;ehlo_identity =

;welcome_email_on_sign_up = false

There are also instructions for setting up other alerting methods on Grafana’s website( .

Once you have made changes to the config file, you can restart pmm-server to pick up the changes with a docker restart pmm-server command.

$ docker restart pmm-server

Once you restart the docker container, access the Alert Notification panel by selecting the Grafana icon dropdown in the upper left corner of any Grafana dashboard:

To set up alerting, you need to create an alert notification on this page

You can test your server’s configuration by clicking the “Send Test” button.

You’ll know that you configured this correctly when you receive the following email:

Enabling Alerting for a Variable

Now that you’ve updated your Grafana config file and tested to ensure your SMTP settings are correct, it’s time to set up an alert for a specific variable. 

To do that, go the dashboard for which you’re interested in setting up alerting:

  • Click the title 
  • Select “Edit” 
  • Choose the Alert tab 
  • Select the “Create Alert” button. In the Alert Config section, you can modify the frequency at which the alert checks for a trigger and the conditions to trigger the alert .

Note :

Alerting doesn’t support template variables yet. However, there is a feature request on Github to add this functionality in the future. Because of this, template variables must be removed from the Metrics tab of the dashboard you are editing.

Grafana sends an alert email whenever the configured threshold gets passed:

Read article working with template’d dashboard by Peter Zaitsev  for more details : click here

Updating PMM Server Using Docker

To check the version of PMM Server, run docker ps on the host.

Run the following commands as root or by using the sudo command

$ docker ps

CONTAINER ID        IMAGE                       COMMAND                CREATED             STATUS              PORTS                         NAMES
1807b3085b71        percona/pmm-server:latest   "/opt/"   7 minutes ago       Up 7 minutes>80/tcp, 443/tcp   pmm-server

The information about the currently installed version of PMM Server is available from the /srv/update/main.yml file. You may extract the version number by using the docker exec command:

$ docker exec -it pmm-server head -1 /srv/update/main.yml
# v1.6.1

Creating a backup version of the current pmm-server container

The docker stop command stops the currently running pmm-server container:

$ docker stop pmm-server

The following command simply renames the current pmm-server container to avoid name conflicts during the update procedure:

$ docker rename pmm-server pmm-server-backup

Pulling a new Docker image :

Docker images for all versions of PMM are available from percona/pmm-server Docker repository.

When pulling a newer Docker image, you may either use a specific version number or the latest image which always matches the highest version number.

This example shows how to pull a specific version:

$ docker pull percona/pmm-server:1.5.0

After you have pulled a new version of PMM from the Docker repository, you can use docker run to create a pmm-server container using the new image.

$ docker run -d \
   -p 80:80 \
   --volumes-from pmm-data \
   --name pmm-server \
   --restart always \

Check if the new container is running using docker ps.

$ docker ps

Removing the backup container

After you have tried the features of the new version, you may decide to continupe using it. The backup container that you have stored (Creating a backup version of the current pmm-server container) is no longer needed in this case.

To remove this backup container, you need the docker rm command:

$ docker rm pmm-server-backup

Backing Up PMM Data from the Docker Container

When PMM Server is run via Docker, its data are stored in the pmm-data container. To avoid data loss, you can extract the data and store outside of the container.

Create a backup directory and make it the current working directory. In this example, we use pmm-data-backup as the directory name.

$ mkdir pmm-data-backup; cd pmm-data-backup

Create the essential sub directories:

$ mkdir -p opt/prometheus
$ mkdir -p var/lib

Run the following commands as root or by using the sudo command

Stop the docker container:

$  docker stop pmm-server

Copy data from the pmm-data container:

$ docker cp pmm-data:/opt/prometheus/data opt/prometheus/
$ docker cp pmm-data:/opt/consul-data opt/
$ docker cp pmm-data:/var/lib/mysql var/lib/
$ docker cp pmm-data:/var/lib/grafana var/lib/

Now, your PMM data are backed up and you can start PMM Server again:

$ docker start pmm-server

Restoring the Backed Up Information to the PMM Data Container 

Stop the running pmm-server container.

$ docker stop pmm-server

Rename the pmm-server container to pmm-server-backup.

$ docker rename pmm-server pmm-server-backup

Rename the pmm-data to pmm-data-backup

$ docker rename pmm-data pmm-data-backup

Create a new pmm-data container

$ docker create \
   -v /opt/prometheus/data \
   -v /opt/consul-data \
   -v /var/lib/mysql \
   -v /var/lib/grafana \
   --name pmm-data \
   percona/pmm-server:latest /bin/true

Important :

The last step creates a new pmm-data container based on the percona/pmm-server:latest image. If you do not intend to use the latest tag, specify the exact version instead, such as 1.5.0. 

Change the working directory to the directory that contains your pmm-data backup files.

$ cd ~/pmm-data-backup 

$ docker cp opt/prometheus/data pmm-data:/opt/prometheus/
$ docker cp opt/consul-data pmm-data:/opt/
$ docker cp var/lib/mysql pmm-data:/var/lib/
$ docker cp var/lib/grafana pmm-data:/var/lib/

Apply correct ownership to pmm-data files:

$ docker run --rm --volumes-from pmm-data -it percona/pmm-server:latest chown -R pmm:pmm /opt/prometheus/data /opt/consul-data
$ docker run --rm --volumes-from pmm-data -it percona/pmm-server:latest chown -R grafana:grafana /var/lib/grafana
$ docker run --rm --volumes-from pmm-data -it percona/pmm-server:latest chown -R mysql:mysql /var/lib/mysql

Run (create and launch) a new pmm-server container:

$ docker run -d \
   -p 80:80 \
   --volumes-from pmm-data \
   --name pmm-server \
   --restart always \

To make sure that the new server is available run the pmm-admin check-network command from the computer where PMM Client is installed. Run this command as root or by using the sudo command.

$ pmm-admin check-network

Commands :

  • pmm-admin add

Add a monitoring service.

  • pmm-admin check-network

Check network connection between PMM Client and PMM Server.

  1. pmm-admin config

Configure how PMM Client communicates with PMM Server.

  • pmm-admin help

Print help for any command and exit.

  1. pmm-admin info

Print information about PMM Client.

  1. pmm-admin list

List all monitoring services added for this PMM Client.

  1. pmm-admin ping

Check if PMM Server is alive.

  • pmm-admin purge

Purge metrics data on PMM Server.

  • pmm-admin remove, pmm-admin rm

Remove monitoring services.

  • pmm-admin repair

Remove orphaned services.

  • pmm-admin restart

Restart monitoring services.

  • pmm-admin show-passwords

Print passwords used by PMM Client (stored in the configuration file).

  • pmm-admin start

Start monitoring service.

  • pmm-admin stop

Stop monitoring service.

  • pmm-admin uninstall

Clean up PMM Client before uninstalling it.

4 thoughts on “Percona Monitoring & Management (PMM) Essentials

Add yours

  1. can we create a replication setup for PMM-Server so that we have a backup server and one more thing can we take a backup of docker , so that we can restore when necessary

    Liked by 1 person

    1. Hello Jabir ,

      Currently there is no high availability setup for Percona monitoring tool. For Ec2 instances we can schedule a VM snapshot backup periodically.

      We can also take backup of pmm data directory in docker

      sudo docker save -o /backup/pmm-data-`date +%Y%m%d`.tar pmm-data

      You can also refer to the below two sections in article :

      1) Backing Up PMM Data from the Docker Container
      2) Restoring the Backed Up Information to the PMM Data Container


    1. Which Database are you using ?. For MySQL we should use 5.6.9 and above. pmm user should have below permissions

      GRANT SELECT ON performance_schema.* TO ‘pmm’@’localhost’;


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Powered by

Up ↑

%d bloggers like this: