Quantcast
Channel: Percona Database Performance Blog
Viewing all articles
Browse latest Browse all 1785

Adding PostgreSQL Databases/Tables Size Dashboard to the Percona Monitoring and Management Plugin

$
0
0
PostgreSQL Table Size PMM

PostgreSQL Table Size PMMThis blog post is about how you can gain detailed information in Percona Monitoring and Management (PMM2) of PostgreSQL disk usage. We take a look at using a catalog called pg_class, which catalogs tables and most everything else that has columns or is otherwise similar to a table. This includes indexes, sequences, views, materialized views, composite types, and toast tables.

It will use some custom queries in order to fetch such information, so we need to create a file with a custom query. Postgresql exporter is processing such files by default, so you should place your file into one of the paths referred to below, to the desired scraping interval and restart the exporter.

/usr/local/percona/pmm2/collectors/custom-queries/postgresql/low-resolution
/usr/local/percona/pmm2/collectors/custom-queries/postgresql/medium-resolution
/usr/local/percona/pmm2/collectors/custom-queries/postgresql/high-resolution

# /etc/init.d/pmm-agent restart
Stopping pmm-agent:                                        [  OK  ]
Starting pmm-agent:                                        [  OK  ]

FYI, the metrics scraping interval can be set on the tab “PMM Settings”:

Setting up Query Monitoring in PMM for Postgres

First of all, we have to enable the extension dblink. It’s a PostgreSQL contrib extension that allows users to connect to other databases and run arbitrary queries in them.

postgres=# CREATE EXTENSION dblink;
CREATE EXTENSION

postgres=# \dx
                                       List of installed extensions
        Name        | Version |   Schema   |                         Description                           
--------------------+---------+------------+--------------------------------------------------------------
 dblink             | 1.2     | public     | connect to other PostgreSQL databases from within a database
 pg_stat_statements | 1.6     | public     | track execution statistics of all SQL statements executed 
 plpgsql            | 1.0     | pg_catalog | PL/pgSQL procedural language
(3 rows)

The next step is to create a query for collecting data from tables. We propose using our bash script that generates a query and forms other fields for a custom query file. You have to specify the database name, or names, that will be monitored. You can store the result of the script in a separate file or can extend an existing file with queries.

$ ./postgres_query_size_generator.sh sbtest sbtest2 >> queries-postgres-2.yml

Now it’s time to restart exporter and check the newly collected metrics.

  • pg_class_rows
  • pg_class_total
  • pg_class_index
  • pg_class_toast

Also, you can upload our dashboard in order to checks queries through the Grafana interface. It has got all PMM2 elements such as variables, menu, annotations.

Here is a screenshot from our test installation.


Viewing all articles
Browse latest Browse all 1785

Trending Articles