Skip to content

3.3.0 peter #148

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

Merged
merged 158 commits into from
Jun 24, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
158 commits
Select commit Hold shift + click to select a range
e25f126
PMM-7: Fix pmm server port
peterSirotnak May 21, 2025
9059f60
PMM-7: Fix pmm server port
peterSirotnak May 21, 2025
010823d
PMM-7: 8.4 as default ps
peterSirotnak May 23, 2025
360639b
PMM-7: 8.4 as default ps
peterSirotnak May 23, 2025
aa6ecd2
PMM-7: road on pdpgsql
peterSirotnak May 23, 2025
afe0e32
PMM-7: road on pdpgsql
peterSirotnak May 23, 2025
bea45d5
PMM-7: road on pdpgsql
peterSirotnak May 23, 2025
4e8e23c
PMM-7: load on pdpgsql
peterSirotnak May 23, 2025
ee48ef3
PMM-7: load on pdpgsql
peterSirotnak May 23, 2025
86f7a50
PMM-7: load on pdpgsql
peterSirotnak May 23, 2025
7c00826
PMM-7: load on pdpgsql
peterSirotnak May 23, 2025
4dfa4b5
PMM-7: load on pdpgsql
peterSirotnak May 23, 2025
38233da
PMM-7: Correct name for client instalation file
peterSirotnak May 26, 2025
12886a7
PMM-7: minio credentials
peterSirotnak May 26, 2025
57c87e1
PMM-7: minio credentials
peterSirotnak May 26, 2025
b5e23f3
PMM-7: minio credentials
peterSirotnak May 26, 2025
c7866ac
PMM-7: minio credentials
peterSirotnak May 26, 2025
1c494d8
PMM-7: minio credentials
peterSirotnak May 26, 2025
aa5213c
PMM-7: minio credentials
peterSirotnak May 26, 2025
06f0a61
PMM-7: New buckets
peterSirotnak Jun 4, 2025
3238db9
PMM-7: Configure agents
peterSirotnak Jun 5, 2025
aae13c6
PMM-7: Configure agents
peterSirotnak Jun 5, 2025
ab67e16
PMM-7: Minio
peterSirotnak Jun 6, 2025
e3c4421
PMM-7: Minio
peterSirotnak Jun 7, 2025
4498168
PMM-7: Minio
peterSirotnak Jun 7, 2025
da934d0
PMM-7: Minio
peterSirotnak Jun 8, 2025
4febefe
PMM-7: Minio
peterSirotnak Jun 8, 2025
03c8625
PMM-7: Minio
peterSirotnak Jun 8, 2025
b77b0bf
PMM-7: Minio
peterSirotnak Jun 8, 2025
8fd7b0e
PMM-7: Minio
peterSirotnak Jun 8, 2025
15c7930
PMM-7: Minio
peterSirotnak Jun 8, 2025
353b5f8
PMM-7: Minio
peterSirotnak Jun 8, 2025
4a25383
PMM-7: Minio
peterSirotnak Jun 8, 2025
9fe9408
PMM-7: Minio
peterSirotnak Jun 8, 2025
aacad1b
PMM-7: Minio
peterSirotnak Jun 8, 2025
1ab1024
PMM-7: Minio
peterSirotnak Jun 8, 2025
875ce5f
PMM-7: Minio
peterSirotnak Jun 8, 2025
4c0d568
PMM-7: Minio
peterSirotnak Jun 8, 2025
2085ac0
PMM-7: Minio
peterSirotnak Jun 8, 2025
7ac3513
PMM-7: Minio
peterSirotnak Jun 8, 2025
6ba7e6e
PMM-7: Minio
peterSirotnak Jun 8, 2025
9244f6f
PMM-7: Minio
peterSirotnak Jun 8, 2025
932aad0
PMM-7: Minio
peterSirotnak Jun 8, 2025
2183beb
PMM-7: Minio
peterSirotnak Jun 8, 2025
168b161
PMM-7: Minio
peterSirotnak Jun 8, 2025
1135804
PMM-7: Minio
peterSirotnak Jun 8, 2025
fe762fb
PMM-7: Minio
peterSirotnak Jun 9, 2025
7f9258f
PMM-7: Code cleanup
peterSirotnak Jun 10, 2025
db661f2
PMM-7: Code cleanup
peterSirotnak Jun 10, 2025
dbea822
PMM-7: Default value for bucket
peterSirotnak Jun 10, 2025
f689b3a
PMM-7: Default value for bucket
peterSirotnak Jun 10, 2025
b7ff844
PMM-7: Default value for bucket
peterSirotnak Jun 10, 2025
1f9ed10
PMM-7: Default value for bucket
peterSirotnak Jun 10, 2025
5376919
PMM-7: Default value for bucket
peterSirotnak Jun 10, 2025
bbbd4a6
PMM-7: Default value for bucket
peterSirotnak Jun 10, 2025
f91fe8e
PMM-7: Default value for bucket
peterSirotnak Jun 10, 2025
48e47d8
PMM-7: Default value for bucket
peterSirotnak Jun 10, 2025
f5c3e1e
PMM-7: Default value for bucket
peterSirotnak Jun 10, 2025
8aa7213
PMM-7: Default value for bucket
peterSirotnak Jun 10, 2025
799d8c4
PMM-7: Default value for bucket
peterSirotnak Jun 10, 2025
615de93
PMM-7: Add load to pgsql replication
peterSirotnak Jun 13, 2025
2a9ff09
Merge branch '3.3.0-peter' of github.com:Percona-Lab/qa-integration i…
peterSirotnak Jun 13, 2025
86f3d49
PMM-7: Add load to pgsql replication
peterSirotnak Jun 13, 2025
864dcfc
PMM-7: Add load to pgsql replication
peterSirotnak Jun 13, 2025
01987b2
PMM-7: Add load to pgsql replication
peterSirotnak Jun 13, 2025
8e0d2e1
PMM-7: Add load to pgsql replication
peterSirotnak Jun 13, 2025
191683a
PMM-7: Add load to pgsql replication
peterSirotnak Jun 13, 2025
73f7c3c
PMM-7: background load
peterSirotnak Jun 16, 2025
7aa3dd2
PMM-7: background load
peterSirotnak Jun 16, 2025
544583c
PMM-7: background load
peterSirotnak Jun 16, 2025
c3cb2d8
PMM-7: background load
peterSirotnak Jun 16, 2025
bb843bc
PMM-7: background load
peterSirotnak Jun 16, 2025
d9dc47a
PMM-7: background load
peterSirotnak Jun 16, 2025
b74666f
PMM-7: background load
peterSirotnak Jun 16, 2025
e20029c
PMM-7: cluster and env
peterSirotnak Jun 16, 2025
d7ba180
PMM-7: cluster and env
peterSirotnak Jun 16, 2025
7a6c022
PMM-7: cluster and env
peterSirotnak Jun 16, 2025
ac47efb
PMM-7: cluster and env
peterSirotnak Jun 16, 2025
161d1c5
PMM-7: cluster and env
peterSirotnak Jun 16, 2025
8dd39ca
PMM-7: cluster and env
peterSirotnak Jun 17, 2025
502e8ed
PMM-7: cluster and env
peterSirotnak Jun 17, 2025
7ab0991
PMM-7: cluster and env
peterSirotnak Jun 17, 2025
431d945
PMM-7: cluster and env
peterSirotnak Jun 17, 2025
19ce190
PMM-7: cluster and env
peterSirotnak Jun 17, 2025
e07d892
PMM-7: cluster and env
peterSirotnak Jun 17, 2025
d582fdf
PMM-7: cluster and env
peterSirotnak Jun 17, 2025
061cbf3
PMM-7: cluster and env
peterSirotnak Jun 17, 2025
97c5518
PMM-7: cluster and env
peterSirotnak Jun 17, 2025
04cc2d6
PMM-7: cluster and env
peterSirotnak Jun 17, 2025
0462107
PMM-7: cluster and env
peterSirotnak Jun 17, 2025
c56720d
PMM-7: cluster and env
peterSirotnak Jun 17, 2025
d85c345
PMM-7: cluster and env
peterSirotnak Jun 17, 2025
07ea071
PMM-7: cluster and env
peterSirotnak Jun 18, 2025
b858127
PMM-7: cluster and env
peterSirotnak Jun 18, 2025
9632b2a
PMM-7: cluster and env
peterSirotnak Jun 18, 2025
8bb6fc9
PMM-7: cluster and env
peterSirotnak Jun 18, 2025
9897808
PMM-7: cluster and env
peterSirotnak Jun 18, 2025
be62009
PMM-7: cluster and env
peterSirotnak Jun 18, 2025
32950cd
PMM-7: cluster and env
peterSirotnak Jun 18, 2025
f9dd5e9
PMM-7: cluster and env
peterSirotnak Jun 18, 2025
d17bd14
PMM-7: cluster and env
peterSirotnak Jun 18, 2025
c9ce13f
PMM-7: cluster and env
peterSirotnak Jun 18, 2025
73b8f78
PMM-7: install pgsm
peterSirotnak Jun 19, 2025
70a488c
PMM-7: install pgsm
peterSirotnak Jun 19, 2025
5c79b96
PMM-7: install pgsm
peterSirotnak Jun 19, 2025
f3541aa
PMM-7: log
peterSirotnak Jun 19, 2025
a3e19b3
Merge branch 'refs/heads/v3-no-kerberos' into 3.3.0-peter
peterSirotnak Jun 19, 2025
858bbea
PMM-7: log
peterSirotnak Jun 19, 2025
c3b62c2
PMM-7: log
peterSirotnak Jun 23, 2025
0e2c900
PMM-7: log
peterSirotnak Jun 23, 2025
e488a8d
PMM-7: log
peterSirotnak Jun 23, 2025
9d788aa
PMM-7: log
peterSirotnak Jun 23, 2025
746b8ef
PMM-7: log
peterSirotnak Jun 23, 2025
3fdb320
PMM-7: log
peterSirotnak Jun 23, 2025
f37cab0
PMM-7: log
peterSirotnak Jun 23, 2025
d1a7bcf
PMM-7: log
peterSirotnak Jun 23, 2025
d65b0fa
PMM-7: log
peterSirotnak Jun 23, 2025
0dd637f
PMM-7: log
peterSirotnak Jun 23, 2025
b09b3bf
PMM-7: log
peterSirotnak Jun 23, 2025
56f2a23
PMM-7: log
peterSirotnak Jun 23, 2025
530a758
PMM-7: log
peterSirotnak Jun 23, 2025
15b9cc6
PMM-7: log
peterSirotnak Jun 23, 2025
27083f2
PMM-7: log
peterSirotnak Jun 23, 2025
ec429c3
PMM-7: log
peterSirotnak Jun 23, 2025
d57aa2c
PMM-7: log
peterSirotnak Jun 23, 2025
1971a40
PMM-7: log
peterSirotnak Jun 23, 2025
8a274c1
PMM-7: log
peterSirotnak Jun 23, 2025
77c8dd4
PMM-7: log
peterSirotnak Jun 23, 2025
a80e1fc
PMM-7: log
peterSirotnak Jun 23, 2025
fd3eba5
PMM-7: log
peterSirotnak Jun 23, 2025
b7062df
PMM-7: log
peterSirotnak Jun 23, 2025
7b7495c
PMM-7: log
peterSirotnak Jun 23, 2025
2cc3d2a
PMM-7: log
peterSirotnak Jun 23, 2025
52ba6db
PMM-7: log
peterSirotnak Jun 23, 2025
8fc3832
PMM-7: log
peterSirotnak Jun 23, 2025
2005892
PMM-7: log
peterSirotnak Jun 23, 2025
4170f21
PMM-7: log
peterSirotnak Jun 23, 2025
f7afa2c
PMM-7: log
peterSirotnak Jun 23, 2025
830a56e
PMM-7: log
peterSirotnak Jun 23, 2025
5c6fbad
PMM-7: log
peterSirotnak Jun 23, 2025
9842d1a
PMM-7: log
peterSirotnak Jun 23, 2025
a6a6625
PMM-7: log
peterSirotnak Jun 23, 2025
59dfad2
PMM-7: log
peterSirotnak Jun 23, 2025
2d4d154
PMM-7: log
peterSirotnak Jun 23, 2025
ad607af
PMM-7: log
peterSirotnak Jun 23, 2025
51757c0
PMM-7: log
peterSirotnak Jun 23, 2025
ecab2ef
PMM-7: cleanup
peterSirotnak Jun 23, 2025
bcb2553
PMM-7: cleanup
peterSirotnak Jun 23, 2025
cc750c1
PMM-7: cleanup
peterSirotnak Jun 23, 2025
5393264
PMM-7: cleanup
peterSirotnak Jun 23, 2025
3665a47
PMM-7: cleanup
peterSirotnak Jun 23, 2025
215b314
PMM-7: cleanup
peterSirotnak Jun 23, 2025
4655580
PMM-7: cleanup
peterSirotnak Jun 23, 2025
a511570
PMM-7: cleanup
peterSirotnak Jun 23, 2025
71084f3
PMM-7: cleanup
peterSirotnak Jun 23, 2025
2aac8a0
PMM-7: cleanup
peterSirotnak Jun 23, 2025
98617fc
PMM-7: cleanup
peterSirotnak Jun 23, 2025
0bd0aef
PMM-7: cleanup
peterSirotnak Jun 23, 2025
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
2 changes: 1 addition & 1 deletion pmm_psmdb_diffauth_setup/test-auth.sh
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ docker compose -f docker-compose-pmm-psmdb.yml exec -T psmdb-server systemctl re
set +e
i=1
while [ $i -le 3 ]; do
output=$(docker compose -f docker-compose-pmm-psmdb.yml exec -T psmdb-server pmm-agent setup 2>&1)
output=$(docker compose -f docker-compose-pmm-psmdb.yml exec -T psmdb-server pmm-agent setup --config-file=/usr/local/percona/pmm/config/pmm-agent.yaml --server-address=pmm-server:8443 --metrics-mode=auto --server-username=admin --server-password=admin --server-insecure-tls)
exit_code=$?

if [ $exit_code -ne 0 ] && [[ $output == *"500 Internal Server Error"* ]]; then
Expand Down
32 changes: 32 additions & 0 deletions pmm_qa/data/load_pgsql.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
-- Step 1: Show initial buffers_alloc value
SELECT 'Initial buffers_alloc' AS info, buffers_alloc FROM pg_stat_bgwriter;

-- Step 2: Drop and create a large test table (~500MB+)
DROP TABLE IF EXISTS buffer_test;

CREATE TABLE buffer_test AS
SELECT
generate_series(1, 1_000_000) AS id,
md5(random()::text) AS filler;

ANALYZE buffer_test;

-- Step 3: Perform repeated full-table scans to stress buffer allocation
DO $$
BEGIN
FOR i IN 1..10 LOOP
RAISE NOTICE 'Running scan iteration %', i;
PERFORM COUNT(*) FROM buffer_test;
END LOOP;
END $$;

---- Step 4: Show final buffers_alloc value
--SELECT 'Final buffers_alloc' AS info, buffers_alloc FROM pg_stat_bgwriter;
VACUUM;
SELECT pg_switch_wal();

-- Step 5: Query the data
SELECT * FROM buffer_test;

-- Step 6: Delete the data
DELETE FROM buffer_test;
25 changes: 25 additions & 0 deletions pmm_qa/percona-distribution-postgresql/data/background_load.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
-- Step 1: Create a test table
CREATE TABLE IF NOT EXISTS test_users (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(150),
created_at TIMESTAMP DEFAULT NOW(),
bio TEXT
);

-- Step 2: Insert 10,000 rows
INSERT INTO test_users (name, email, bio)
SELECT
'User_' || gs::TEXT AS name,
'user_' || gs::TEXT || '@example.com' AS email,
'This is a generated bio for user #' || gs::TEXT
FROM generate_series(1, 10000) AS gs;

-- Step 3: Query the data
SELECT * FROM test_users;

-- Step 4: Delete the data
DELETE FROM test_users;

-- Step 5: Drop the table
DROP TABLE test_users;
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
wal_level = replica
wal_level = logical
max_wal_senders = 10
wal_keep_size = 64MB
hot_standby = on
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
set_fact:
nodes_count: 3
when: nodes_count | int < 3
- name: Set external facing port in patroni setup
set_fact:
pdpgsql_port: 6432

- name: Remove old data folders
shell: 'rm -fr {{ data_dir }}'
Expand Down Expand Up @@ -173,14 +176,19 @@
- name: Add service to pmm server
community.docker.docker_container_exec:
container: "pdpgsql_pmm_patroni_{{ pg_version }}_{{ item }}"
command: pmm-admin add postgresql --username=postgres --password=postgres --query-source=pgstatmonitor pdpgsql_pmm_patroni_{{ pg_version }}_{{ item }}{{ random_service_name_value }} --debug 127.0.0.1:5432
command: pmm-admin add postgresql --username=postgres --cluster=pdpgsql_patroni_cluster --environment=pdpgsql_patroni_environment --password=postgres --query-source=pgstatmonitor pdpgsql_pmm_patroni_{{ pg_version }}_{{ item }}{{ random_service_name_value }} --debug 127.0.0.1:5432
loop: "{{ range(1, nodes_count | int + 1) | list }}"

- name: Add patroni service to pmm server
community.docker.docker_container_exec:
container: "pdpgsql_pmm_patroni_{{ pg_version }}_1"
command: pmm-admin add external --listen-port=8008 --service-name=patroni_service_1{{ random_service_name_value }}

- name: Add patroni service to pmm server
community.docker.docker_container_exec:
container: "pdpgsql_pmm_patroni_{{ pg_version }}_{{ item }}"
command: pmm-admin add external --listen-port=8008 --service-name=patroni_service_{{ item }}{{ random_service_name_value }}
loop: "{{ range(1, nodes_count | int + 1) | list }}"
command: pmm-admin add external --listen-port=8008 --cluster=pdpgsql_patroni_service_cluster --environment=pdpgsql_patroni_service_environment --service-name=patroni_service_{{ item }}{{ random_service_name_value }}
loop: "{{ range(2, nodes_count | int + 1) | list }}"

- name: Log Patroni cluster
community.docker.docker_container_exec:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,15 +36,15 @@

- name: Remove old PostgreSQL primary container
community.docker.docker_container:
name: "pdpgsql_pmm_{{ pg_version }}_1"
name: "pdpgsql_pmm_replication_{{ pg_version }}_1"
image: "{{ docker_repo }}:{{ pg_version }}"
restart_policy: always
state: absent
ignore_errors: yes

- name: Start PostgreSQL primary container
community.docker.docker_container:
name: "pdpgsql_pmm_{{ pg_version }}_1"
name: "pdpgsql_pmm_replication_{{ pg_version }}_1"
image: "{{ docker_repo }}:{{ pg_version }}"
restart_policy: always
state: started
Expand All @@ -70,7 +70,7 @@

- name: Create replication user
community.docker.docker_container_exec:
container: "pdpgsql_pmm_{{ pg_version }}_1"
container: "pdpgsql_pmm_replication_{{ pg_version }}_1"
user: postgres
command: >
psql -c "
Expand All @@ -79,14 +79,14 @@

- name: Stop and remove replica if exists
community.docker.docker_container:
name: "pdpgsql_pmm_{{ pg_version }}_{{ item }}"
name: "pdpgsql_pmm_replication_{{ pg_version }}_{{ item }}"
state: absent
loop: "{{ range(2, nodes_count | int + 1) | list }}"
ignore_errors: yes

- name: Start Percona Distribution PostgreSQL replica container
community.docker.docker_container:
name: "pdpgsql_pmm_{{ pg_version }}_{{ item }}"
name: "pdpgsql_pmm_replication_{{ pg_version }}_{{ item }}"
image: "{{ docker_repo }}:{{ pg_version }}"
restart_policy: "no"
state: started
Expand All @@ -104,14 +104,14 @@

- name: Wipe replica data directory before basebackup
community.docker.docker_container_exec:
container: "pdpgsql_pmm_{{ pg_version }}_{{ item }}"
container: "pdpgsql_pmm_replication_{{ pg_version }}_{{ item }}"
user: root
command: rm -rf /data/db/*
loop: "{{ range(2, nodes_count | int + 1) | list }}"

- name: Create PostgreSQL user 'pmm' with password
community.docker.docker_container_exec:
container: "pdpgsql_pmm_{{ pg_version }}_1"
container: "pdpgsql_pmm_replication_{{ pg_version }}_1"
user: postgres
command: >
bash -c '
Expand All @@ -121,16 +121,16 @@
"
'

- name: Create custom database for pgbench
- name: Create custom database
community.docker.docker_container_exec:
container: "pdpgsql_pmm_{{ pg_version }}_1"
container: "pdpgsql_pmm_replication_{{ pg_version }}_1"
user: postgres
command: >
bash -c "
echo \"
CREATE DATABASE pgbench;
\\c pgbench
GRANT CONNECT ON DATABASE pgbench TO pmm;
CREATE DATABASE test_database;
\\c test_database
GRANT CONNECT ON DATABASE test_database TO pmm;
GRANT USAGE ON SCHEMA public TO pmm;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO pmm;
ALTER DEFAULT PRIVILEGES IN SCHEMA public
Expand All @@ -140,20 +140,20 @@

- name: Run pg_basebackup from primary to replica
community.docker.docker_container_exec:
container: "pdpgsql_pmm_{{ pg_version }}_{{ item }}"
container: "pdpgsql_pmm_replication_{{ pg_version }}_{{ item }}"
user: root
command: >
bash -c "
export PGPASSWORD='{{ replication_password }}' && \
timeout 120s \
pg_basebackup --pgdata=/data/db -R -v -Fp -Xs -P \
--host=pdpgsql_pmm_{{ pg_version }}_1 --port=5432 -U {{ replication_user }} > /tmp/pg_basebackup.log 2>&1
--host=pdpgsql_pmm_replication_{{ pg_version }}_1 --port=5432 -U {{ replication_user }} > /tmp/pg_basebackup.log 2>&1
"
loop: "{{ range(2, nodes_count | int + 1) | list }}"

- name: Remove temporary backup container
docker_container:
name: "pdpgsql_pmm_{{ pg_version }}_{{ item }}"
name: "pdpgsql_pmm_replication_{{ pg_version }}_{{ item }}"
state: absent
loop: "{{ range(2, nodes_count | int + 1) | list }}"

Expand All @@ -168,7 +168,7 @@

- name: Restart Percona Distribution PostgreSQL container with custom command
community.docker.docker_container:
name: "pdpgsql_pmm_{{ pg_version }}_{{ item }}"
name: "pdpgsql_pmm_replication_{{ pg_version }}_{{ item }}"
image: "{{ docker_repo }}:{{ pg_version }}"
restart: true
state: started
Expand All @@ -188,17 +188,17 @@
- name: Install pg stat monitor.
include_tasks: ./tasks/install_pg_stat-monitor.yml
vars:
container_name: "pdpgsql_pmm_{{ pg_version }}"
container_name: "pdpgsql_pmm_replication_{{ pg_version }}"

- name: Install and add pmm client.
include_tasks: ../tasks/install_pmm_client.yml
vars:
container_name: "pdpgsql_pmm_{{ pg_version }}_{{ item }}"
container_name: "pdpgsql_pmm_replication_{{ pg_version }}_{{ item }}"
loop: "{{ range(1, nodes_count | int + 1) | list }}"

- name: Get already connected services to pmm server
community.docker.docker_container_exec:
container: "pdpgsql_pmm_{{ pg_version }}_1"
container: "pdpgsql_pmm_replication_{{ pg_version }}_1"
command: >
sh -c 'curl --location --insecure -u"admin:{{ admin_password }}" -s --request GET "http://{{ pmm_server_ip }}:{{ '80' if pmm_server_ip is ansible.utils.ipv4 else '8080' }}/v1/management/services" | jq -r ".services[].service_name"'
register: pmm_server_services
Expand All @@ -217,20 +217,57 @@

- name: Add service to pmm server
community.docker.docker_container_exec:
container: "pdpgsql_pmm_{{ pg_version }}_{{ item }}"
command: pmm-admin add postgresql --username=pmm --password=pmm --query-source=pgstatmonitor pdpgsql_pmm_{{ pg_version }}_{{ item }}{{ random_service_name_value }} --debug 127.0.0.1:5432
container: "pdpgsql_pmm_replication_{{ pg_version }}_{{ item }}"
command: pmm-admin add postgresql --username=pmm --password=pmm --cluster=pdpgsql_replication_cluster --environment=pdpgsql_replication_environment --query-source=pgstatmonitor pdpgsql_pmm_replication_{{ pg_version }}_{{ item }}{{ random_service_name_value }} --debug 127.0.0.1:5432
loop: "{{ range(1, nodes_count | int + 1) | list }}"

- name: Run load on primary node.
include_tasks: ../postgresql/tasks/run_load_pgsql.yml
vars:
node_name: "pdpgsql_pmm_{{ pg_version }}_1"
pgbench_clients: 10
pgbench_time: 120
pgbench_scale: 1000
- name: Create pg_custom_publication view using psql
community.docker.docker_container_exec:
container: "pdpgsql_pmm_replication_{{ pg_version }}_1"
user: postgres
command: >
bash -c 'psql -U postgres -d postgres <<SQL
CREATE OR REPLACE VIEW pg_custom_publication AS
SELECT
pubname,
puballtables,
pubinsert,
pubupdate,
pubdelete
FROM
pg_publication;
SQL'

- name: Create pg_stat_statements extension
community.docker.docker_container_exec:
container: "pdpgsql_pmm_replication_{{ pg_version }}_1"
user: postgres
command: >
psql -U postgres -d test_database -c "
CREATE EXTENSION IF NOT EXISTS pg_stat_monitor;
SELECT pg_stat_monitor_version();
"

- name: Copy sample load into container
community.docker.docker_container_copy_into:
container: "pdpgsql_pmm_replication_{{ pg_version }}_1"
path: ../data/load_pgsql.sql
container_path: /load_pgsql.sql

- name: Start permanent SQL load in background
community.docker.docker_container_exec:
container: "pdpgsql_pmm_replication_{{ pg_version }}_1"
command: >
sh -c "nohup bash -c 'while true; do echo Starting insert at $(date +\"%Y-%m-%d %H:%M:%S\"); psql -U postgres -d test_database -f /load_pgsql.sql; sleep 30; done' > /tmp/sql_loop.log 2>&1 &"

- name: Create logical replication slots
community.docker.docker_container_exec:
container: "pdpgsql_pmm_replication_{{ pg_version }}_1"
user: postgres
command: psql -U postgres -d postgres -c "SELECT * FROM pg_create_logical_replication_slot('test_slot', 'test_decoding');"

- name: Check replication status on primary
community.docker.docker_container_exec:
container: "pdpgsql_pmm_{{ pg_version }}_1"
container: "pdpgsql_pmm_replication_{{ pg_version }}_1"
user: postgres
command: psql -c "SELECT * FROM pg_stat_replication;"
Loading
Loading