 thanks a lot for coming to the session. So, I am based on of India and I have been associated with Percona for about 5 years now. I work with the PMM team and today we are going to look at how you can use Percona monitoring and management to monitor the databases that you are running and we are also going to look into some of the features that it offers out of the box. So, I just go over what PMM is and then take a quick review on the architecture of PMM, jump into the monitoring side and then we will look at the query analytics feature in PMM, talk about advisors, what are advisors in PMM and then we will have some demo on backup and restore in PMM. And finally, if time permit we are going to look at how you can manage and how you can use database as a service in PMM. So, let me start. So, basically what is PMM? It is an open source database tool that primarily focuses on allowing you to monitor your databases. It gives you an ability to analyze the kind of workload that you are running on PMM or on your database, sorry. You get the capability to troubleshoot any performance issues and on the top of that we also provide you features on managing your database. Currently we have support for backup and restore on MySQL and MongoDB and we are also planning to GA very soon our database as a service feature that is going to allow you to run Percona operators and deploy DB close to Acornia Kubernetes infrastructure. So, going into the, before going into the monitoring demo, I just wanted to quickly cover an architectural overview of what PMM is or how basically PMM architecture looks like. It is not an in-depth analysis, but probably I have referred the documentation where you can go in and check more details around how PMM actually works. So, we have got a PMM server and a client where PMM server consists of some of the components that Percona build. For example, PMM Managee, that is basically the brain behind PMM. We use Victoria Matrix as our time series storage database. Basically, all the matrix that we collect from the clients are stored in Victoria Matrix. It is completely compatible with Prometheus. So, that is what we use as a time series database. We have query analytics that under the hood uses Clickhouse to store query matrix. And then we have Grafana, which is basically the UI layer in PMM that lets you look at the matrix and all the dashboard that we ship with PMM. On the client, we have PMM agent. That is the component that is built by Percona and it communicates with PMM Managee. So, if you have multiple databases, you install PMM client on each database host and it would set up different exporters that we ship with PMM client. And then there is VM agent, which is basically a component responsible for pushing matrix from the client node to the PMM server instance. So, PMM basically supports two mode in which you can gather matrix from the client instances. One is a push mode and the other is a pull mode. The difference is in pull mode the server is actually reaching out and trying to gather matrix from the client instances. Whereas, in push mode you have client pushing the matrix to PMM server. Let's talk about what kind of monitoring options we have in PMM and what all databases do we cover when it comes to monitoring in PMM. So, as you can see PMM basically supports most of the major major EU databases. We have support for MySQL, PostgreSQL, MongoDB. And basically I would say monitoring is a bread and butter for PMM because we ship PMM with a lot of custom dashboards that primarily are built by our database experts. So, these dashboards they come from internal experience dealing with customer issues and trying to capture how you can troubleshoot a customer performance issue. So, I will quickly show you people on a live instance of PMM that I have where you can actually look at the number of dashboards that we ship for different databases. We also have support for monitoring cloud database. So, if you are using Amazon RDS or Amazon Aurora instances, if you have GCP, MySQL and PostgreSQL instance or if you have a Microsoft Azure MySQL and PostgreSQL instance, you can monitor that using PMM. I would say one of the most important and a great feature in PMM is the external exporters. Basically external exporter is if you have a service that PMM does not support by default, but if you have an exporter available in the community, you can start monitoring that service using the external exporter feature in PMM. So, let us quickly look at how the monitoring looks like. So, this is the home dashboard of PMM. I should have changed the theme to white, but yeah, what you are looking at is basically it is showing you how many databases it is monitoring at the moment. I just set up this instance for test and demo purpose probably a few hours ago. What you see here is there are two MySQL databases for MongoDB and two PostgreSQL databases that PMM is monitoring. You get an overview of all the nodes and the health, CPU usage, memory usage on the home dashboard. And when you add an instance in PMM, you basically get to see the instance detail. For example, let me quickly show up MySQL instance summary. So, I added a MySQL instance for monitoring in PMM. And as you can see, it is shipped with all the dashboards that we build internally and shipped with PMM. And these are all custom dashboards. And you can see here, you can filter by service that you want to basically monitor. So, there are two databases that we are monitoring. And you can see that the metrics are hitting PMM server. I will quickly jump on to the setup part and try to talk about it. So, how do you set up monitoring in PMM? It is pretty straightforward. You need to have PMM server running and you can install PMM client on the database host. Once you have PMM client installed on the database host, you can config the PMM admin command to connect the client and server. Once the connection has been set up, all you have to do is create a monitoring user according to the docs that we have. And once you have set up your monitoring user, you can use PMM admin ad commands to add specific databases for monitoring. There is a lot of help instructions available. So, if you run PMM admin ad help commands, you will basically see an entire list of supported command line options and all the list of databases that we support in PMM. Let's talk about query analytics. So, query analytics is I would say one of the most important features in PMM which basically allows you to monitor the kind of workload that you are running on your database. What kind of queries are being executed and what is the query that basically needs some have some performance issues. In we support query analytics for all the three databases as you can see and there are different query tools that you can use to monitor your query performance. If you want to use slow log, you can use slow log or performance schema in my SQL. In PostgreSQL, we have PGSTAT statements and PGSTAT monitor. PGSTAT monitor is an extension that Percona has built. It's a custom extension that you have to install on your Postgre database. It basically seamlessly integrates with PMM. So, it's an in-house tool, it's an open source tool and it gives you far more better insights as compared to PGSTAT statements and let's quickly look at query analytics as well. So, on my test instance that you are seeing right now, I added two MySQL instances and one of them was basically added using slow log. How do I get to know what kind of instances I have added? You can actually see it either on their individual dashboards or you can even go to the PMM inventory and you can try to look at the services that you have added and here you can clearly see that I have got two MySQL services running. One is MySQL check service and the other is MySQL client slow log. If I want to see what is the query analytics on a specific service, I can go to query analytics using the menu in PMM. I'm just going to filter by time range because I ran a specific sysbench workload a few hours ago. Here, what you are seeing is all the queries across all the databases and all the data coming from them. What I wanted to show is the MySQL service that I added with slow log. So, I can do that in multiple ways. I can either use the service name filter. If I already know the service or I can use even the technology if I want to filter by MySQL databases only. As you can see, there is an SAP test queries that are being executed and all of these queries are the load that I ran on my database. When I click on a query, I can clearly see that there are metrics related to the query execution time, how much, how many times the query was executed. You get to see examples and explain of a query and you can actually gather a lot of metrics similarly for PG database as well as MongoDB. So, this is how query analytics looks like in PMM. There is also an option for you to add a different metric. So, for example, right now what you are seeing is PMM query analytics is showing you a metric for load query count and query time. But if I want to use a different metric, I can use that using the add column feature and there you get a bunch of metrics that you can basically use in query analytics. For example, let us say I want to look at the byte send data and I can see that byte send information is available on the query analytics. I can make it my main metric and it will basically sort all the queries based on the bytes and data have for in QN. So, we have looked at the monitoring part where basically we have dashboards showing you metrics. We have looked at the query analytics part where you have query details and query performance information. The next is advisors which is basically intelligence built in PMM where we have some pre-configured checks coming from our database experts. Whenever you add a database to monitoring in PMM, it runs those checks against the databases and tries to suggest you or give you a suggestion in terms of what you can improve if there is a change needed in the configuration or if there is a change needed in the way that you have set up your database. These are all coming from our experts. So, how can you use this feature in PMM is pretty simple. I am using a very basic instance without any custom connections. So, I will just quickly show you. As you can see on the home dashboard, there is zero advisors, failed advisors right now because I have not actually executed any advisors check. In PMM settings, you get to change the interval of an advisor. So, ideally they would run once in 4 hours. That is the frequent interval and the standard interval and rare interval. For the demo purpose, I am just going to change it to the bare minimum value. Once I enable advisors, so here what you can see is there are some configuration advisors that we shift to PMM and then there are some security advisors. What are configuration and security advisors? These are basically, for example, if you have a database that is outdated, you would get an advisor for that a check running on your database and trying to tell you that you probably need to upgrade your database version. If you have a security configuration that probably is not done right, maybe like a root user without password or if you have a CV on the version that you are running, it is basically going to show you those advisors. Depending on your account, so we have Percona platform where basically you can connect your PMM instance to Percona platform and get access to more advisors, custom advisors. And if you are a paid customer, it basically gives you even more advisors running custom for your deployments. So, let's see if I am able to get some advisors on my database instance that I have just enabled. Ideally, it is not really needed to manually run it. It automatically triggers, but for the sake of time, I am probably going to run it manually. Yeah, as you see, I just triggered the advisors and I can start seeing them on the home dashboard. When I click on it, I can see that there is a check for Postgres CVE because I intentionally set up a version that had a CVE and I also installed an older version of Postgres because I wanted to see if there was going to be any warning on this or not. If you go back, probably we will have more advisors showing up. You can see here that there are different checks that are basically being executed. Let's quickly jump on to the next part. So, let's look at how Backup and Restore works in PMM. As I mentioned earlier, we have support for MongoDB Backup and Restore and we also have support for MySQL. It is a technical preview right now. For setting up Backup and Restore, all you need is to have PMM client installed on the host page or running your database and you probably need PXB and PBM depending on the kind of database that you are running. If I have to show this on the instance that I have, I will just quickly show you folks how it looks like. Before I prepared this instance for the session, I added a MongoDB replica set to my PMM instance for monitoring. You can see that I have a MongoDB replica set running right now and I have metrics coming for that instance. What I will do is I will go to Backups and create a backup location. You can configure it using an s3 location or you can do it via local storage option. For demo, I will just do a local storage. Configure the test location. There is a way for you to configure schedule backup for your database. They are not going to go into the schedule part but I will just quickly show you an on-demand backup that I am going to take right away for my MongoDB instance. Choose replica set 1. We have support for physical and logical both. I can choose the location that I just added. In advanced settings, you basically get to define if there was any failure, do you want to retry and stuff like that. As you can see, it is trying to take a backup. You get access to the logs. If there is any failure, you probably want to see why that backup failed. You can get that access here. As it succeeded, I can even restore from any specific backup. I currently do not have any restores on this. But I will quickly show you how restores look like. That is how restores and backup work in PMM. You can access the logs and try to troubleshoot if there is any failure on the backups. Finally, going to the last part which is database as a service where you can actually use debath in PMM where you can provide it a Kubernetes config file and it is going to install Percona operators on your Kubernetes infrastructure and allow you to deploy different DB clusters on it. I have got a sample mini-cube that I have. I will quickly show you how that looks like. For running debath in PMM, you go to the debath option and there you see register a new Kubernetes cluster. I have a mini-cube config file. That is why I do not like live demos. I had another mini-cube file that I was going to use. As soon as you register your Kubernetes cluster, it will basically set up operators on it and then you will have an option to create DB clusters. Let it register and install operators while I will quickly complete the presentation. There are some reference material that you can use and probably reach out to us. If you have any questions while you are trying PMM, we have a Discord group and we have a PMM channel there. You can actually visit us and ask any questions that you have while you are trying out PMM. I am ready to take any questions and answers if there are any. Of the PGSTAT statement and the PGSTAT monitor you have mentioned about. Basically, in PGSTAT statements, we have a lot more metrics when it comes to CPU, memory consumption, histogram, all those we have in PGSTAT monitor while you do not get in PGSTAT statements. Along with that, it is efficient as compared to enabling PGSTAT statements on your Postgres instance. That is basically the difference. Maybe I would like to know where these backups are getting stored. Is it on a PMM server or we can integrate S3 or external storage? You can integrate an S3 storage and you can also have a local storage option. The one that I showed was basically getting stored locally on the client node. I do not know why I am not able to register the Kubernetes cluster but I will quickly run the demo that I have for Dbass so that you folks get an idea of how this looks like. I always keep a backup of video. Any other questions? It is completely open source. You can get to see the code that we have for PMM Managede or PMM Agent. You can contribute back. It is completely open source. This is how basically the Dbass looks like. Once it registers the Kubernetes cluster, it is going to show you an option to create Dbass cluster after provisioning it. From there, you can actually set up different versions of the databases. As you can see, for MySQL, what specific version of database you want to deploy for MongoDB, what version of database you want to deploy. That is all the time we have today. I am sure you are around.