From e3bdb4f94e14b8980cf275f7a102c5880f6dba9a Mon Sep 17 00:00:00 2001 From: Maya P Date: Fri, 6 Mar 2026 22:23:12 +0000 Subject: [PATCH 01/61] ci: add SECURITY.md and CodeQL analysis workflow for GitHub --- .github/dependabot.yml | 5 ++++ .github/workflows/codeql-analysis.yml | 40 +++++++++++++++++++++++++++ SECURITY.md | 26 +++++++++++++++++ 3 files changed, 71 insertions(+) create mode 100644 .github/workflows/codeql-analysis.yml create mode 100644 SECURITY.md diff --git a/.github/dependabot.yml b/.github/dependabot.yml index abe23499..f0431ef7 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -5,6 +5,11 @@ version: 2 updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" + - package-ecosystem: "npm" directory: "/" schedule: diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml new file mode 100644 index 00000000..5f382e95 --- /dev/null +++ b/.github/workflows/codeql-analysis.yml @@ -0,0 +1,40 @@ +# NOTE: This repo is mirrored to GitHub where this workflow runs automatically. +name: "CodeQL" + +on: + push: + branches: [master] + pull_request: + branches: [master] + schedule: + - cron: '40 17 * * 5' + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + permissions: + actions: read + contents: read + security-events: write + + strategy: + fail-fast: false + matrix: + language: ['javascript'] + # CodeQL supports: 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' + + steps: + - name: Checkout repository + uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + + - name: Initialize CodeQL + uses: github/codeql-action/init@820e3160e279568db735cee8ed8f8e77a6da7818 # v3 + with: + languages: ${{ matrix.language }} + + - name: Autobuild + uses: github/codeql-action/autobuild@820e3160e279568db735cee8ed8f8e77a6da7818 # v3 + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@820e3160e279568db735cee8ed8f8e77a6da7818 # v3 diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 00000000..f091ac22 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,26 @@ +# Security guidelines + +## Reporting vulnerabilities + +If you discover a security vulnerability in this project, please report it to **security@postgres.ai**. All reports are thoroughly investigated by the project maintainers. + +### When should I report a vulnerability? + +- You think you have discovered a potential security vulnerability in this project or related components. +- You are unsure how a vulnerability affects this project. +- You think you discovered a vulnerability in another project that this project depends on. +- You want to report any other security risk that could potentially harm users. + +### When should I NOT report a vulnerability? + +- Your issue is not security related. + +## Security Vulnerability Response + +Each report is acknowledged and analyzed by the project maintainers and the security team within 3 working days. + +The reporter will be kept updated at every stage of the issue's analysis and resolution (triage → fix → release). + +## Public Disclosure Timing + +A public disclosure date is negotiated by the maintainers (security@postgres.ai) and the bug submitter. We prefer to fully disclose the bug as soon as possible once user mitigation is available. It is reasonable to delay disclosure when the bug or the fix is not yet fully understood, the solution is not well-tested, or for vendor coordination. The timeframe for disclosure is from immediate (especially if it's already publicly known) to a few weeks. We expect the timeframe between a report and public disclosure to typically be in the order of 7 days. From 9dfca8fa609004f67823a07646807af8ec74f015 Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov Date: Fri, 6 Mar 2026 15:15:44 -0800 Subject: [PATCH 02/61] Green: Add preview environments for docs --- .gitlab-ci.yml | 172 ++++++++++++++++++++++++++++++++- README.md | 9 ++ deploy/configs/main-staging.sh | 9 ++ deploy/configs/review.sh | 8 ++ 4 files changed, 197 insertions(+), 1 deletion(-) create mode 100644 deploy/configs/main-staging.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 86a7c4b2..26986161 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,4 +1,4 @@ -# 2019 © PostgresAI +# 2019-2026 © PostgresAI # # SAST customization: https://docs.gitlab.com/ee/user/application_security/sast/#customizing-the-sast-settings @@ -142,3 +142,173 @@ deploy_staging: when: manual except: - master + +# --- Green: Preview environments (per-MR) --- + +.environment_template: &env_review + environment: + name: review/$CI_COMMIT_REF_SLUG + url: https://docs-$CI_COMMIT_REF_SLUG.pgai.green + on_stop: stop_review + auto_stop_in: 1 week + variables: + ENV: review + BRANCH_SLUG: $CI_COMMIT_REF_SLUG + +# SSH setup for preview VM deployments (anchored to avoid duplication) +.preview_ssh_setup: + before_script: &preview_ssh_steps + - apk add --no-cache openssh-client + - eval $(ssh-agent -s) + - echo "$PREVIEW_SSH_KEY" | base64 -d | ssh-add - + - mkdir -p ~/.ssh && echo "${PREVIEW_VM_HOST} ${PREVIEW_VM_HOST_KEY}" >> ~/.ssh/known_hosts + +build_and_push_review: + stage: prepare_image + image: docker:27 + services: + - docker:27-dind + <<: *env_review + rules: + - if: $CI_PIPELINE_SOURCE == "merge_request_event" + cache: + - key: review-$CI_COMMIT_REF_SLUG + paths: + - .cache + script: + - export BRANCH_SLUG="${CI_COMMIT_REF_SLUG}" + - source "./deploy/configs/review.sh" + - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY" + - docker pull "${CI_REGISTRY_IMAGE}:review-latest" || true + - docker build + --cache-from "${CI_REGISTRY_IMAGE}:review-latest" + --tag "${CI_REGISTRY_IMAGE}:review-${BRANCH_SLUG}" + --tag "${CI_REGISTRY_IMAGE}:review-latest" + --build-arg ARG_URL="${URL}" + --build-arg ARG_BASE_URL="${BASE_URL}" + --build-arg ARG_SIGN_IN_URL="${SIGN_IN_URL}" + --build-arg ARG_BOT_WS_URL="${BOT_WS_URL}" + --build-arg ARG_API_URL_PREFIX="${API_URL_PREFIX}" + --build-arg ARG_UMAMI_WEBSITE_ID="${UMAMI_WEBSITE_ID}" + --build-arg ARG_UMAMI_SCRIPT_URL="${UMAMI_SCRIPT_URL}" + . + - docker push "${CI_REGISTRY_IMAGE}:review-${BRANCH_SLUG}" + - docker push "${CI_REGISTRY_IMAGE}:review-latest" + +deploy_review: + stage: deploy + image: alpine:3.20 + <<: *env_review + resource_group: preview-docs-${CI_COMMIT_REF_SLUG} + rules: + - if: $CI_PIPELINE_SOURCE == "merge_request_event" + needs: + - build_and_push_review + before_script: *preview_ssh_steps + script: + - export BRANCH_SLUG="${CI_COMMIT_REF_SLUG}" + # Guard against slug collision with permanent staging + - if [ "${BRANCH_SLUG}" = "main" ]; then echo "ERROR - slug 'main' conflicts with permanent staging"; exit 1; fi + - export IMAGE="${CI_REGISTRY_IMAGE}:review-${BRANCH_SLUG}" + # Pipe credential via stdin so it never appears in process arguments + - echo "${CI_REGISTRY_PASSWORD}" | ssh deploy@${PREVIEW_VM_HOST} "docker login -u gitlab-ci-token --password-stdin ${CI_REGISTRY}" + - | + ssh deploy@${PREVIEW_VM_HOST} "\ + docker rm -f docs-${BRANCH_SLUG} 2>/dev/null; \ + docker pull ${IMAGE} && \ + docker run -d \ + --name docs-${BRANCH_SLUG} \ + --restart unless-stopped \ + --memory=512m --cpus=0.5 \ + --network traefik \ + --label traefik.enable=true \ + --label 'traefik.http.routers.docs-${BRANCH_SLUG}.rule=Host(\`docs-${BRANCH_SLUG}.pgai.green\`)' \ + --label traefik.http.routers.docs-${BRANCH_SLUG}.entrypoints=websecure \ + --label traefik.http.routers.docs-${BRANCH_SLUG}.tls=true \ + --label traefik.http.routers.docs-${BRANCH_SLUG}.tls.certresolver=letsencrypt \ + --label traefik.http.services.docs-${BRANCH_SLUG}.loadbalancer.server.port=3000 \ + ${IMAGE}" + # Preview URL is shown via GitLab environment "View app" button on the MR page + - echo "Preview deployed at https://docs-${BRANCH_SLUG}.pgai.green" + +stop_review: + stage: deploy + image: alpine:3.20 + resource_group: preview-docs-${CI_COMMIT_REF_SLUG} + allow_failure: true + rules: + - if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: manual + environment: + name: review/$CI_COMMIT_REF_SLUG + action: stop + variables: + GIT_STRATEGY: none + BRANCH_SLUG: $CI_COMMIT_REF_SLUG + before_script: *preview_ssh_steps + script: + - | + ssh deploy@${PREVIEW_VM_HOST} "\ + docker rm -f docs-${BRANCH_SLUG} 2>/dev/null || true && \ + docker rmi ${CI_REGISTRY_IMAGE}:review-${BRANCH_SLUG} 2>/dev/null || true" + +# --- Green: Permanent staging at docs-main.pgai.green (on master push) --- + +build_and_push_main_staging: + stage: prepare_image + image: docker:27 + services: + - docker:27-dind + environment: + name: main-staging + url: https://docs-main.pgai.green + rules: + - if: $CI_COMMIT_BRANCH == "master" + script: + - source "./deploy/configs/main-staging.sh" + - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY" + - docker pull "${CI_REGISTRY_IMAGE}:main-latest" || true + - docker build + --cache-from "${CI_REGISTRY_IMAGE}:main-latest" + --tag "${CI_REGISTRY_IMAGE}:main-latest" + --build-arg ARG_URL="${URL}" + --build-arg ARG_BASE_URL="${BASE_URL}" + --build-arg ARG_SIGN_IN_URL="${SIGN_IN_URL}" + --build-arg ARG_BOT_WS_URL="${BOT_WS_URL}" + --build-arg ARG_API_URL_PREFIX="${API_URL_PREFIX}" + --build-arg ARG_UMAMI_WEBSITE_ID="${UMAMI_WEBSITE_ID}" + --build-arg ARG_UMAMI_SCRIPT_URL="${UMAMI_SCRIPT_URL}" + . + - docker push "${CI_REGISTRY_IMAGE}:main-latest" + +deploy_main_staging: + stage: deploy + image: alpine:3.20 + environment: + name: main-staging + url: https://docs-main.pgai.green + resource_group: preview-docs-main + rules: + - if: $CI_COMMIT_BRANCH == "master" + needs: + - build_and_push_main_staging + before_script: *preview_ssh_steps + script: + # Pipe credential via stdin so it never appears in process arguments + - echo "${CI_REGISTRY_PASSWORD}" | ssh deploy@${PREVIEW_VM_HOST} "docker login -u gitlab-ci-token --password-stdin ${CI_REGISTRY}" + - | + ssh deploy@${PREVIEW_VM_HOST} "\ + docker rm -f docs-main 2>/dev/null; \ + docker pull ${CI_REGISTRY_IMAGE}:main-latest && \ + docker run -d \ + --name docs-main \ + --restart unless-stopped \ + --memory=512m --cpus=0.5 \ + --network traefik \ + --label traefik.enable=true \ + --label 'traefik.http.routers.docs-main.rule=Host(\`docs-main.pgai.green\`)' \ + --label traefik.http.routers.docs-main.entrypoints=websecure \ + --label traefik.http.routers.docs-main.tls=true \ + --label traefik.http.routers.docs-main.tls.certresolver=letsencrypt \ + --label traefik.http.services.docs-main.loadbalancer.server.port=3000 \ + ${CI_REGISTRY_IMAGE}:main-latest" diff --git a/README.md b/README.md index 407c6d15..5be9cf7d 100644 --- a/README.md +++ b/README.md @@ -28,3 +28,12 @@ bun start ``` This command starts a local development server and opens a browser window. Most changes are reflected live without having to restart the server. + +### Preview environments + +Every merge request automatically gets a live preview deployment: + +- **Preview URL**: `https://docs-{branch-slug}.pgai.green` (find it via the "View app" button on the MR page) +- **Permanent staging**: `https://docs-main.pgai.green` (updated on every push to `master`) +- **Auto-cleanup**: Preview environments stop automatically after 1 week, or can be stopped manually via the CI job +- **Access**: Public (open-source repo) diff --git a/deploy/configs/main-staging.sh b/deploy/configs/main-staging.sh new file mode 100644 index 00000000..5443f138 --- /dev/null +++ b/deploy/configs/main-staging.sh @@ -0,0 +1,9 @@ +export REPLICAS=1 +export URL="https://docs-main.pgai.green" +export BASE_URL="/" +export SIGN_IN_URL="https://console-main.pgai.green/signin" +export BOT_WS_URL="wss://console-main.pgai.green/ai-bot-ws/" +export API_URL_PREFIX="https://console-main.pgai.green/api/general" +# No analytics for main staging +export UMAMI_WEBSITE_ID="" +export UMAMI_SCRIPT_URL="" diff --git a/deploy/configs/review.sh b/deploy/configs/review.sh index 25d74ee7..086c7176 100644 --- a/deploy/configs/review.sh +++ b/deploy/configs/review.sh @@ -1 +1,9 @@ export REPLICAS=1 +export URL="https://docs-${BRANCH_SLUG}.pgai.green" +export BASE_URL="/" +export SIGN_IN_URL="https://console-main.pgai.green/signin" +export BOT_WS_URL="wss://console-main.pgai.green/ai-bot-ws/" +export API_URL_PREFIX="https://console-main.pgai.green/api/general" +# No analytics for review environments +export UMAMI_WEBSITE_ID="" +export UMAMI_SCRIPT_URL="" From 3481814376f0cc8289d43478b18bf9da1f1770c3 Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov Date: Tue, 10 Mar 2026 21:08:17 -0700 Subject: [PATCH 03/61] =?UTF-8?q?feat(blog):=20NOT=20EXISTS=20beats=20EXIS?= =?UTF-8?q?TS=20by=2020x=20=E2=80=94=20index=20size=20and=20heap=20fetches?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitlab-ci.yml | 31 +- ...0311-not-exists-vs-exists-partial-index.md | 346 ++++++++++++++++++ src/css/custom.css | 34 +- .../not-exists-vs-exists-benchmark/run.sh | 183 +++++++++ .../blog/not-exists-vs-exists-chart-reads.png | Bin 0 -> 67684 bytes .../blog/not-exists-vs-exists-chart-time.png | Bin 0 -> 69347 bytes .../blog/not-exists-vs-exists-chart.png | Bin 0 -> 122478 bytes 7 files changed, 584 insertions(+), 10 deletions(-) create mode 100644 blog/20260311-not-exists-vs-exists-partial-index.md create mode 100644 static/assets/blog/not-exists-vs-exists-benchmark/run.sh create mode 100644 static/assets/blog/not-exists-vs-exists-chart-reads.png create mode 100644 static/assets/blog/not-exists-vs-exists-chart-time.png create mode 100644 static/assets/blog/not-exists-vs-exists-chart.png diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 26986161..d8f44efb 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,8 +5,22 @@ include: - template: Security/SAST.gitlab-ci.yml +# Run pipeline only once per push: +# - MR pipelines for feature branches (not duplicate branch pipelines) +# - Push pipelines for master/main/production only +workflow: + rules: + - if: $CI_PIPELINE_SOURCE == "merge_request_event" + - if: $CI_COMMIT_BRANCH == "master" + - if: $CI_COMMIT_BRANCH == "main" + - if: $CI_COMMIT_BRANCH == "production" + image: docker:20.10.12 +# Allow auto-canceling running pipelines when a newer commit is pushed +default: + interruptible: true + stages: - validate - prepare_image @@ -38,6 +52,7 @@ validate_feeds: - build/blog/*.xml - build/blog/*.json expire_in: 1 week + allow_failure: true # broken on Node v24 (sharp binary mismatch) — TODO fix only: - branches @@ -127,8 +142,8 @@ build_and_push_production: build_and_push_staging: <<: *build_and_push_definition <<: *env_staging - except: - - master + rules: + - if: $CI_COMMIT_BRANCH == "master" deploy_production: <<: *deploy_definition @@ -168,22 +183,21 @@ build_and_push_review: image: docker:27 services: - docker:27-dind + variables: + DOCKER_BUILDKIT: "1" <<: *env_review rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" - cache: - - key: review-$CI_COMMIT_REF_SLUG - paths: - - .cache script: - export BRANCH_SLUG="${CI_COMMIT_REF_SLUG}" - source "./deploy/configs/review.sh" - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY" - - docker pull "${CI_REGISTRY_IMAGE}:review-latest" || true + - docker pull "${CI_REGISTRY_IMAGE}:review-cache" || true - docker build - --cache-from "${CI_REGISTRY_IMAGE}:review-latest" + --cache-from "${CI_REGISTRY_IMAGE}:review-cache" --tag "${CI_REGISTRY_IMAGE}:review-${BRANCH_SLUG}" --tag "${CI_REGISTRY_IMAGE}:review-latest" + --tag "${CI_REGISTRY_IMAGE}:review-cache" --build-arg ARG_URL="${URL}" --build-arg ARG_BASE_URL="${BASE_URL}" --build-arg ARG_SIGN_IN_URL="${SIGN_IN_URL}" @@ -194,6 +208,7 @@ build_and_push_review: . - docker push "${CI_REGISTRY_IMAGE}:review-${BRANCH_SLUG}" - docker push "${CI_REGISTRY_IMAGE}:review-latest" + - docker push "${CI_REGISTRY_IMAGE}:review-cache" deploy_review: stage: deploy diff --git a/blog/20260311-not-exists-vs-exists-partial-index.md b/blog/20260311-not-exists-vs-exists-partial-index.md new file mode 100644 index 00000000..3c249a97 --- /dev/null +++ b/blog/20260311-not-exists-vs-exists-partial-index.md @@ -0,0 +1,346 @@ +--- +title: "How moving one word can speed up a query 10–50x" +date: 2026-03-11 12:00:00 +slug: 20260311-not-exists-vs-exists-partial-index +authors: [maxim, nik] +tags: [Postgres insights, performance, indexing, SQL, partial index] +--- + +import { TldrTabs } from '@site/src/components/TldrTabs' + +One of these queries is 32x faster than the other. Which one, and why? + +
+
+ +**Query 1:** +
+{`select pt.*
+from post_tags pt
+where pt.tag_id = any($1)
+  and exists (
+      select
+      from posts
+      where posts.post_id = pt.post_id
+        and `}not{` deleted
+  );`}
+
+ +
+
+ +**Query 2:** +
+{`select pt.*
+from post_tags pt
+where pt.tag_id = any($1)
+  and `}not{` exists (
+      select
+      from posts
+      where posts.post_id = pt.post_id
+        and deleted
+  );`}
+
+ +
+
+ +Read on to find out. This pattern was first spotted by Maxim Boguk on a 400 GiB production table, where the speedup was approximately 50x. + + + + + +## The setup + +A classic soft-delete pattern: a `posts` table with a boolean `deleted` flag, +and a `post_tags` junction table linking posts to tags. +Most posts are active; 2% are soft-deleted. +Two partial indexes: one on active rows (`posts_not_deleted_id_key`, 1,050 MiB), +one on deleted rows (`posts_deleted_id_key`, 22 MiB). + +Q1 hits the large index; Q2 hits the small one. Same result. Dramatically different cost — as the numbers below show. + +## Reproduce it + +:::tip +Full script, raw `EXPLAIN (ANALYZE, BUFFERS)` output, and configs: +https://gitlab.com/postgres-ai/postgresql-consulting/tests-and-benchmarks/-/issues/74 +::: + +```sql +-- setup (~3-5 min for 50M rows on modern hardware) +create table posts ( + post_id bigint primary key, + deleted boolean not null default false, + content text not null default repeat('x', 200) +) with (autovacuum_enabled = false); -- benchmark only: keeps VM state deterministic; never disable autovacuum in production + +insert into posts (post_id, deleted) +select g, (random() < 0.02) +from generate_series(1, 50000000) g; + +create unique index posts_not_deleted_id_key on posts (post_id) where not deleted; +create unique index posts_deleted_id_key on posts (post_id) where deleted; + +create table post_tags ( + tag_id int not null, + post_id bigint not null, + primary key (tag_id, post_id) +) with (autovacuum_enabled = false); -- benchmark only; never disable autovacuum in production + +insert into post_tags (tag_id, post_id) +select (g % 1000) + 1, ceil(random() * 50000000)::bigint +from generate_series(1, 500000) g +on conflict do nothing; + +-- step 1: fill visibility map cleanly +vacuum analyze posts; +vacuum analyze post_tags; + +-- step 2: controlled dirty — simulate active production table +-- autovacuum_enabled=false ensures VM state stays dirty until benchmark +update posts +set content = repeat('y', 200) +where post_id % 10 = 0; +analyze posts; + +-- verify: must be NULL +select relname, last_autovacuum +from pg_stat_user_tables +where relname = 'posts'; + +-- drop OS page cache + restart PG before each query +-- systemctl stop postgresql && echo 3 > /proc/sys/vm/drop_caches && systemctl start postgresql + +-- run both queries with EXPLAIN (ANALYZE, BUFFERS) +-- compare: Execution Time, Heap Fetches, Buffers: shared read +``` + +## Benchmark results + +Environment: PostgreSQL 18 (beta), 8 dedicated cores, 32 GiB RAM, SSD storage, +`shared_buffers=8GB`, `effective_cache_size=24GB`, `work_mem=64MB`, `random_page_cost=1.1` (appropriate for SSD), `track_io_timing=on`. +Cold OS page cache before each run (`drop_caches` + PG restart). +Dirty visibility map: `vacuum analyze` after load, then 10% of rows updated. + +Full raw `EXPLAIN (ANALYZE, BUFFERS)` output: +https://gitlab.com/postgres-ai/postgresql-consulting/tests-and-benchmarks/-/issues/74 + +
+ +[![Execution time: NOT EXISTS vs EXISTS](/assets/blog/not-exists-vs-exists-chart-time.png)](/assets/blog/not-exists-vs-exists-chart-time.png) + +[![Buffer reads: NOT EXISTS vs EXISTS](/assets/blog/not-exists-vs-exists-chart-reads.png)](/assets/blog/not-exists-vs-exists-chart-reads.png) + +
+ +``` +tag_ids Q1: EXISTS(NOT deleted) Q2: NOT EXISTS(deleted) speedup Q1 reads Q2 reads ratio +-------------- ------------------------- ------------------------- --------- ----------- ---------- ------ +50 (~25k) 5,350 ms 384 ms 14x 50,900 4,132 12x +250 (~125k) 22,574 ms 717 ms 31x 211,017 7,296 29x +1000 (~500k) 63,750 ms 1,996 ms 32x 588,083 18,759 31x +``` + +*500k post_tags rows across 1,000 tag_ids — ~500 rows per tag_id on average. Parenthetical counts are approximate result set sizes.* + +Both queries use Nested Loop throughout all scales. + +`EXPLAIN (ANALYZE, BUFFERS)` at 250 tag_ids, cold cache: + +
+Q1: EXISTS(NOT deleted) — 22,574 ms — key numbers: Heap Fetches: 132,280 · Buffers read: 209,207 (× 8 KiB = 1,634 MiB) — one heap fetch nearly every lookup, most of them cold reads + +``` +Gather (cost=1077.65..12313.25 rows=4885 width=12) (actual time=130.759..22556.785 rows=122521.00 loops=1) + Workers Planned: 1 + Workers Launched: 1 + Buffers: shared hit=542482 read=211017 dirtied=112214 + I/O Timings: shared read=40822.933 + InitPlan 1 + -> ProjectSet (cost=0.00..1.27 rows=250 width=4) (actual time=0.005..0.036 rows=250.00 loops=1) + -> Result (cost=0.00..0.01 rows=1 width=0) (actual time=0.001..0.002 rows=1.00 loops=1) + -> Nested Loop (cost=76.38..10823.48 rows=2874 width=12) (actual time=124.611..22276.230 rows=61260.50 loops=2) + Buffers: shared hit=542482 read=211017 dirtied=112214 + I/O Timings: shared read=40822.933 + -> Parallel Bitmap Heap Scan on post_tags pt (cost=75.82..2739.08 rows=2928 width=12) (actual time=121.114..153.806 rows=62500.00 loops=2) + Recheck Cond: (tag_id = ANY ((InitPlan 1).col1)) + Heap Blocks: exact=604 + Buffers: shared hit=20 read=1810 + I/O Timings: shared read=113.180 + -> Bitmap Index Scan on post_tags_pkey (cost=0.00..74.57 rows=4978 width=0) (actual time=124.449..124.449 rows=125000.00 loops=1) + Index Cond: (tag_id = ANY ((InitPlan 1).col1)) + Buffers: shared read=635 + I/O Timings: shared read=111.714 + -> Index Only Scan using posts_not_deleted_id_key on posts (cost=0.56..2.76 rows=1 width=8) (actual time=0.352..0.352 rows=0.98 loops=125000) + Index Cond: (post_id = pt.post_id) + Heap Fetches: 132280 + Buffers: shared hit=542462 read=209207 dirtied=102763 + I/O Timings: shared read=40709.753 +Settings: effective_cache_size = '24GB', work_mem = '64MB', random_page_cost = '1.1' +Planning Time: 18.443 ms +Execution Time: 22573.605 ms +``` + +
+ +
+Q2: NOT EXISTS(deleted) — 717 ms — key numbers: Heap Fetches: 2,680 · Buffers read: 7,296 total — heap fetches only for the 2% that are actually deleted + +``` +Gather (cost=1077.51..10437.12 rows=4885 width=12) (actual time=119.394..711.118 rows=122521.00 loops=1) + Workers Planned: 1 + Workers Launched: 1 + Buffers: shared hit=374645 read=7296 dirtied=2109 + I/O Timings: shared read=976.376 + InitPlan 1 + -> ProjectSet (cost=0.00..1.27 rows=250 width=4) (actual time=0.009..0.034 rows=250.00 loops=1) + -> Result (cost=0.00..0.01 rows=1 width=0) (actual time=0.001..0.001 rows=1.00 loops=1) + -> Nested Loop Anti Join (cost=76.24..8947.35 rows=2874 width=12) (actual time=113.648..695.187 rows=61260.50 loops=2) + Buffers: shared hit=374645 read=7296 dirtied=2109 + I/O Timings: shared read=976.376 + -> Parallel Bitmap Heap Scan on post_tags pt (cost=75.82..2739.08 rows=2928 width=12) (actual time=111.997..122.751 rows=62500.00 loops=2) + Recheck Cond: (tag_id = ANY ((InitPlan 1).col1)) + Heap Blocks: exact=594 + Buffers: shared hit=20 read=1810 + I/O Timings: shared read=106.570 + -> Bitmap Index Scan on post_tags_pkey (cost=0.00..74.57 rows=4978 width=0) (actual time=115.628..115.628 rows=125000.00 loops=1) + Index Cond: (tag_id = ANY ((InitPlan 1).col1)) + Buffers: shared read=635 + I/O Timings: shared read=105.342 + -> Index Only Scan using posts_deleted_id_key on posts (cost=0.42..2.12 rows=1 width=8) (actual time=0.009..0.009 rows=0.02 loops=125000) + Index Cond: (post_id = pt.post_id) + Heap Fetches: 2680 + Buffers: shared hit=374625 read=5486 dirtied=1994 + I/O Timings: shared read=869.805 +Settings: effective_cache_size = '24GB', work_mem = '64MB', random_page_cost = '1.1' +Planning Time: 16.347 ms +Execution Time: 717.256 ms +``` + +
+ +## Why it's faster + +Two factors stack on top of each other, both pointing the same direction. + +**Factor 1: "not found in index" skips the heap entirely** + +This is the dominant factor. + +When Q2 looks up a post in `posts_deleted_id_key` and **finds nothing** — +it's done. **"Not found" unconditionally skips the heap. No visibility check. +The [visibility map](https://www.postgresql.org/docs/current/storage-vm.html) doesn't matter at all.** +The index scan itself is cheap — a few index page reads — but not the expensive random heap fetches that follow a "found" result. +(See: [Index-Only Scans](https://www.postgresql.org/docs/current/indexes-index-only-scans.html) in the Postgres docs.) + +When Q1 looks up a post in `posts_not_deleted_id_key` and **finds a row** — +**"Found" skips the heap only if the page is all-visible in the [visibility map](https://www.postgresql.org/docs/current/storage-vm.html) +— a condition that breaks on any actively updated table.** +If the page is not all-visible, Postgres must verify visibility with a heap fetch: +a random read into a 13 GiB table. + +Heap fetches measured across all scales: + +``` +tag_ids Q1: EXISTS(NOT deleted) Q2: NOT EXISTS(deleted) +-------------- ------------------------- ----------------------- +50 (~25k) 26,966 heap fetches 554 +250 (~125k) 132,280 heap fetches 2,680 +1000 (~500k) 526,344 heap fetches 10,766 +``` + +Q1 heap-fetches nearly every active post in the result — up to 527k random reads into a table that doesn't fit in memory. + +Q2 heap-fetches only the deleted posts. For 98% of lookups, it finds nothing in the small index and stops there. The small number of heap fetches Q2 does make (for the 2% that are actually deleted) is incidental — even if every deleted-row heap page were dirty, Q2 would still win by roughly 50x. The cardinality difference is the driver, not the visibility map state of the deleted pages. + +One more cost visible in the EXPLAIN output: Q1 shows `dirtied=112,214`. Heap fetches that encounter tuples whose hint bits haven't been set yet write those bits back, marking the page dirty. Those 112k dirty pages must eventually be flushed by bgwriter or written at checkpoint. Q2 dirties 2,109. Under concurrent load, Q1 is not just slow for the session running it — it generates write pressure that affects everyone. + +Why can't the planner avoid this? Both queries use Nested Loop with [Index Only Scan](https://www.postgresql.org/docs/current/indexes-index-only-scans.html) — the right plan shape for a unique index lookup. The key asymmetry: an IOS that **finds nothing** has nothing to verify and stops at the index. An IOS that **finds a tuple** must still confirm visibility — and on any actively updated table, if the page isn't marked all-visible in the [visibility map](https://www.postgresql.org/docs/current/storage-vm.html), that means a heap fetch. Q1 finds a match on 98% of probes; 10% of pages are dirty; heap fetches cascade. The planner picks the right plan shape; it just can't predict how many of those heap fetches will be cold. + +The deeper issue: the planner has cardinality — `pg_class.reltuples`, `pg_stat_user_tables.n_dead_tup`, visibility map fraction — but no model for buffer pool state under concurrent load. "How many of these heap pages will be in shared_buffers at runtime?" is not something statistics can answer. There's no GUC to tune your way out of this. The query rewrite is the fix. + +**Factor 2: index size vs. available cache** + +``` +index covers size +-------------------------- ---------------- -------- +posts_not_deleted_id_key 49M active rows 1,050 MiB +posts_deleted_id_key 1M deleted rows 22 MiB +``` + +`posts_deleted_id_key` is 22 MiB — fits in shared_buffers easily and stays warm. + +`posts_not_deleted_id_key` is 1,050 MiB — nearly 50x larger. On a cold start it must be read from disk page by page during the nested loop. But cold cache is just the extreme case. The same penalty applies whenever the index doesn't fit in cache: memory-constrained servers, buffer pools competed for by other queries, or any index that exceeds the combined OS page cache and shared_buffers available to it. + +The 22 MiB index stays warm under any realistic production load. The 1,050 MiB index gets evicted. When the index pages are cold, the heap fetch pages are almost certainly cold too — the two factors compound. + +To confirm that heap fetches are the dominant factor and not just a cold-cache story: with both indexes and the heap fully warmed via `pg_prewarm`, Q1 drops to 724 ms and Q2 to 161 ms — still a 4.5x gap with zero I/O. Q1 still performed 122k heap fetches; Q2 performed 2,562. Q1 also re-read 55,690 blocks that had been evicted from shared_buffers during the scan itself — the 13 GiB heap can't stay resident when a nested loop scatters 122k accesses across 1.67M pages with only ~1M pages of buffer space. Increasing RAM reduces Factor 2 but cannot fully eliminate Factor 1. The rewrite matters regardless of how much memory you have. + +## The takeaway + +> **"Not found in the index" skips the heap. "Found" requires a heap fetch on any actively updated table.** + +When 98% of your lookups are for the majority case (active posts), you want +those lookups to return "not found" against the small index — not "found" +against the large one. + +> Use `NOT EXISTS` with a partial index on the **minority** (deleted, disabled, +> flagged) — not `EXISTS` with a partial index on the **majority**. + +This applies to any boolean minority pattern: `is_archived`, `is_banned`, `is_draft`, `is_suspended` — anywhere a small fraction of rows carry a flag. diff --git a/src/css/custom.css b/src/css/custom.css index c12a6292..0839af95 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -9,6 +9,13 @@ @import url("https://fonts.googleapis.com/css2?family=JetBrains+Mono+Variable:ital,wght@0,100..800;1,100..800&display=swap"); @import url("https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap"); +/* Prevent mobile browsers from inflating font sizes in code blocks */ +html { + -webkit-text-size-adjust: 100%; + -moz-text-size-adjust: 100%; + text-size-adjust: 100%; +} + /* You can override the default Infima variables here. */ :root { --ifm-color-primary: #ff6111; @@ -18,16 +25,19 @@ --ifm-color-primary-light: #ff732c; --ifm-color-primary-lighter: #ff7c3a; --ifm-color-primary-lightest: #ff9763; - --ifm-code-font-size: 90%; + --ifm-code-font-size: 14px; --ifm-font-family-base: "JetBrains Mono Variable", "JetBrains Mono", "Fira Code", "Source Code Pro", Consolas, monospace; --ifm-font-size-base: 14px; --ifm-pre-line-height: 1.3; } -/* Code blocks: 14px font, normal line height */ +/* Code blocks: 14px font everywhere including mobile */ pre, pre code, .prism-code { font-size: 14px !important; line-height: 1.5 !important; + -webkit-text-size-adjust: 100% !important; + text-size-adjust: 100% !important; + max-width: 100%; } /* ASCII diagrams: no line gaps for proper character alignment */ @@ -1267,6 +1277,26 @@ html body > div:first-child { font-size: 1rem !important; line-height: 1.5 !important; } + + /* Code blocks: enforce 14px on mobile — cover all Docusaurus/Prism selectors */ + pre, + pre code, + code, + .prism-code, + .prism-code *, + article pre, + article pre code, + article .prism-code, + article .prism-code *, + [class*="codeBlock"], + [class*="codeBlock"] *, + [class*="codeBlockContent"], + [class*="codeBlockContent"] *, + [class*="language-"], + [class*="language-"] * { + font-size: 14px !important; + line-height: 1.5 !important; + } /* Assistant Widget mobile fixes */ [class*="AssistantWidget_container"] { diff --git a/static/assets/blog/not-exists-vs-exists-benchmark/run.sh b/static/assets/blog/not-exists-vs-exists-benchmark/run.sh new file mode 100644 index 00000000..bc37f8de --- /dev/null +++ b/static/assets/blog/not-exists-vs-exists-benchmark/run.sh @@ -0,0 +1,183 @@ +#!/usr/bin/env bash +# Benchmark: NOT EXISTS(deleted) vs EXISTS(NOT deleted) — partial indexes +# +# Full reproducible script. Tested on PG18, CCX33 (8 vCPU, 32 GiB), Hetzner NBG1. +# Results: https://gitlab.com/postgres-ai/postgresql-consulting/tests-and-benchmarks/-/issues/74 +# Blog post: https://postgres.ai/blog/20260306-not-exists-vs-exists-partial-index +# +# Usage: +# sudo bash run.sh +# +# Requirements: +# - PostgreSQL 14+ (tested on PG18) +# - pg_prewarm extension (postgresql-contrib) +# - Dedicated benchmark VM (not the machine you work on) +# - Run as root or a user with sudo + pg_ctlcluster access + +set -Eeuo pipefail +IFS=$'\n\t' + +PG_SUPERUSER="${PG_SUPERUSER:-postgres}" +DB="bench" +ROWS=50000000 +TAG_ROWS=500000 + +log() { echo "[$(date -u '+%Y-%m-%dT%H:%M:%SZ')] $*"; } + +psql_bench() { sudo -u "$PG_SUPERUSER" psql -d "$DB" "$@"; } +psql_root() { sudo -u "$PG_SUPERUSER" psql "$@"; } + +drop_caches() { + log "Dropping OS page cache + restarting PostgreSQL..." + systemctl stop postgresql + echo 3 > /proc/sys/vm/drop_caches + systemctl start postgresql + sleep 2 +} + +run_explain() { + local label="$1" sql="$2" + log "Running: ${label}" + echo "" + echo "### ${label}" + echo "\`\`\`" + psql_bench -c "explain (analyze, buffers, verbose, settings, format text) ${sql}" + echo "\`\`\`" + echo "" +} + +# ── Setup ───────────────────────────────────────────────────────────────────── + +log "Applying PostgreSQL settings..." +psql_root -c "alter system set shared_buffers = '8GB';" +psql_root -c "alter system set effective_cache_size = '24GB';" +psql_root -c "alter system set work_mem = '64MB';" +psql_root -c "alter system set random_page_cost = 1.1;" +psql_root -c "alter system set track_io_timing = on;" +psql_root -c "select pg_reload_conf();" + +log "Creating database and tables..." +psql_root -c "drop database if exists ${DB};" 2>/dev/null || true +psql_root -c "create database ${DB};" + +psql_bench <rz~0h1n?;O9qB50p!mTiuIq~ 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%0AdLM-K1{&*;}Uxw4BzWk|^T$GgwCy`GL{SNZvM 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

$lpw>RIwU8tZd$wOCN+)NRd7Tk81VrF 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 aHc9i)fWqBBTw5*v*0f2p%o9!Rcm6*CaD4#) literal 0 HcmV?d00001 diff --git a/static/assets/blog/not-exists-vs-exists-chart.png b/static/assets/blog/not-exists-vs-exists-chart.png new file mode 100644 index 0000000000000000000000000000000000000000..e63343eec1ee4679cd5c5bfe0ee24402d7a6047f GIT binary patch literal 122478 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 literal 0 HcmV?d00001 From 3eae67b87eb8cc1872ca8261e2b59b3873477c4f Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov Date: Wed, 11 Mar 2026 15:06:40 +0000 Subject: [PATCH 04/61] feat(blog): how moving one word can speed up a query 10-50x --- blog/20260311-not-exists-vs-exists-partial-index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/blog/20260311-not-exists-vs-exists-partial-index.md b/blog/20260311-not-exists-vs-exists-partial-index.md index 3c249a97..55196b3f 100644 --- a/blog/20260311-not-exists-vs-exists-partial-index.md +++ b/blog/20260311-not-exists-vs-exists-partial-index.md @@ -15,7 +15,7 @@ One of these queries is 32x faster than the other. Which one, and why? **Query 1:**

-{`select pt.*
+{`select pt.*
 from post_tags pt
 where pt.tag_id = any($1)
   and exists (
@@ -31,7 +31,7 @@ where pt.tag_id = any($1)
 
 **Query 2:**
 
-{`select pt.*
+{`select pt.*
 from post_tags pt
 where pt.tag_id = any($1)
   and `}not{` exists (

From 0ba1029b0792d7c991fca555521a5db8b38ab171 Mon Sep 17 00:00:00 2001
From: Nikolay Samokhvalov 
Date: Thu, 12 Mar 2026 16:38:02 +0000
Subject: [PATCH 05/61] =?UTF-8?q?fix(blog):=20add=20equivalence=20note=20?=
 =?UTF-8?q?=E2=80=94=20PK=20+=20FK=20make=20the=20two=20queries=20identica?=
 =?UTF-8?q?l?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 blog/20260311-not-exists-vs-exists-partial-index.md | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/blog/20260311-not-exists-vs-exists-partial-index.md b/blog/20260311-not-exists-vs-exists-partial-index.md
index 55196b3f..9396f7bf 100644
--- a/blog/20260311-not-exists-vs-exists-partial-index.md
+++ b/blog/20260311-not-exists-vs-exists-partial-index.md
@@ -45,7 +45,9 @@ where pt.tag_id = any($1)
 
 
 
-Read on to find out. This pattern was first spotted by Maxim Boguk on a 400 GiB production table, where the speedup was approximately 50x.
+These two queries are logically equivalent here because `posts.post_id` is a primary key — the subquery matches at most one row, so `AND NOT deleted` vs. `AND deleted` simply flips a boolean. A foreign key on `post_tags.post_id` guarantees no orphans.
+
+Read on to find out why the performance difference is so dramatic. This pattern was first spotted by Maxim Boguk on a 400 GiB production table, where the speedup was approximately 50x.
 
 
 

From c1e2fefd97c17c8d37f2ea050cbdec28044b0757 Mon Sep 17 00:00:00 2001
From: Nikolay Samokhvalov 
Date: Thu, 12 Mar 2026 11:32:31 -0700
Subject: [PATCH 06/61] ops: DCF-5 add CI peer review gate (SOC2)

---
 .gitlab-ci.yml | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 26986161..657c76d3 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -4,6 +4,8 @@
 
 include:
   - template: Security/SAST.gitlab-ci.yml
+  - project: 'postgres-ai/infra'
+    file: '/ci/templates/approval-check.yml'
 
 image: docker:20.10.12
 
@@ -311,4 +313,4 @@ deploy_main_staging:
           --label traefik.http.routers.docs-main.tls=true \
           --label traefik.http.routers.docs-main.tls.certresolver=letsencrypt \
           --label traefik.http.services.docs-main.loadbalancer.server.port=3000 \
-          ${CI_REGISTRY_IMAGE}:main-latest"
+          ${CI_REGISTRY_IMAGE}:main-latest"
\ No newline at end of file

From 0c9bf72ffcdd7e7fbc2b68b32b8cc93b3841b470 Mon Sep 17 00:00:00 2001
From: Maya P 
Date: Mon, 23 Mar 2026 22:52:42 +0000
Subject: [PATCH 07/61] fix: bump DBLab Engine version references from 4.0.3 to
 4.0.4

---
 docs/database-lab/telemetry.md                 |  4 ++--
 .../ci-observer-postgres-log-masking.md        |  2 +-
 .../dblab-howtos/administration/data/custom.md |  4 ++--
 docs/dblab-howtos/administration/data/dump.md  |  4 ++--
 .../administration/data/pg_basebackup.md       |  4 ++--
 .../administration/data/pgbackrest.md          |  4 ++--
 docs/dblab-howtos/administration/data/rds.md   |  8 ++++----
 docs/dblab-howtos/administration/data/rsync.md |  4 ++--
 docs/dblab-howtos/administration/data/wal-g.md |  4 ++--
 .../administration/engine-manage.md            |  6 +++---
 .../administration/install-dle-manually.md     | 18 +++++++++---------
 .../administration/logical-full-refresh.md     |  2 +-
 ...abase-lab-engine-configuration-reference.md |  6 +++---
 docs/tutorials/database-lab-tutorial.md        |  2 +-
 docusaurus.config.js                           |  2 +-
 15 files changed, 37 insertions(+), 37 deletions(-)

diff --git a/docs/database-lab/telemetry.md b/docs/database-lab/telemetry.md
index 2a344fb6..dd22e110 100644
--- a/docs/database-lab/telemetry.md
+++ b/docs/database-lab/telemetry.md
@@ -108,7 +108,7 @@ global:
   ...
 ```
 
-If the change is done when DLE is running, follow the [DLE reconfiguration guide](/docs/dblab-howtos/administration/engine-manage#reconfigure-database-lab-engine) to apply the change without restart.
+If the change is done when DLE is running, follow the [DLE reconfiguration guide](/docs/dblab-howtos/administration/engine-manage#reconfigure-dblab-engine) to apply the change without restart.
 
 ## Enabling telemetry
 If telemetry was disabled earlier, you can enable it again changing the flag `global.telemetry.enabled` to `true`.
@@ -119,4 +119,4 @@ global:
   ...
 ```
 
-If the change is done when DLE is running, follow the [DLE reconfiguration guide](/docs/dblab-howtos/administration/engine-manage#reconfigure-database-lab-engine) to apply the change without restart.
+If the change is done when DLE is running, follow the [DLE reconfiguration guide](/docs/dblab-howtos/administration/engine-manage#reconfigure-dblab-engine) to apply the change without restart.
diff --git a/docs/dblab-howtos/administration/ci-observer-postgres-log-masking.md b/docs/dblab-howtos/administration/ci-observer-postgres-log-masking.md
index 92ea3e0e..40a99815 100644
--- a/docs/dblab-howtos/administration/ci-observer-postgres-log-masking.md
+++ b/docs/dblab-howtos/administration/ci-observer-postgres-log-masking.md
@@ -14,7 +14,7 @@ keywords:
 ## Configure masking for PostgreSQL log
 When Database Lab's CI Observer is used for automated testing of database migrations, it stores PostgreSQL log in DBLab Platform's centralized storage. You can optionally configure masking rules for sensitive data in the PostgreSQL log. Such rules will be continuously applied before sending any PostgreSQL log entries to the Platform's storage.
 
-You can define masking rules in the form of regular expressions. To do it, open the DBLab Engine configuration file (usually, `~/.dblab/engine/configs/server.yml`; see config file examples [here](https://gitlab.com/postgres-ai/database-lab/-/tree/v4.0.3/engine/configs)) and define subsection `replacementRules` in the section `replacementRules`. A basic example:
+You can define masking rules in the form of regular expressions. To do it, open the DBLab Engine configuration file (usually, `~/.dblab/engine/configs/server.yml`; see config file examples [here](https://gitlab.com/postgres-ai/database-lab/-/tree/v4.0.4/engine/configs)) and define subsection `replacementRules` in the section `replacementRules`. A basic example:
 ```yaml
 observer:
   replacementRules:
diff --git a/docs/dblab-howtos/administration/data/custom.md b/docs/dblab-howtos/administration/data/custom.md
index 6ccd7857..4e1052cf 100644
--- a/docs/dblab-howtos/administration/data/custom.md
+++ b/docs/dblab-howtos/administration/data/custom.md
@@ -16,7 +16,7 @@ To set up it you need to use following jobs:
 - [physicalSnapshot](/docs/reference-guides/database-lab-engine-configuration-reference#job-physicalsnapshot)
 
 ### Options
-Copy the example configuration file [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.3/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`. For demo purposes we've used `pg_basebackup` tool, but you can use any tool suitable for the task. Check and update the following options:
+Copy the example configuration file [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.4/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`. For demo purposes we've used `pg_basebackup` tool, but you can use any tool suitable for the task. Check and update the following options:
 - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine
 - Set connection options in `physicalRestore:options:envs`, based on your tool
 - Set PostgreSQL commands in `physicalRestore:options:customTool`:
@@ -43,7 +43,7 @@ sudo docker run \
   --env DOCKER_API_VERSION=1.39 \
   --detach \
   --restart on-failure \
-  postgresai/dblab-server:4.0.3
+  postgresai/dblab-server:4.0.4
 ```
 
 :::info
diff --git a/docs/dblab-howtos/administration/data/dump.md b/docs/dblab-howtos/administration/data/dump.md
index eba65682..37bf4cd5 100644
--- a/docs/dblab-howtos/administration/data/dump.md
+++ b/docs/dblab-howtos/administration/data/dump.md
@@ -15,7 +15,7 @@ In order to set up DBLab Engine to automatically get the data from database usin
 - [logicalSnapshot](/docs/reference-guides/database-lab-engine-configuration-reference#job-logicalsnapshot)
 
 ### Options
-Copy the contents of configuration example [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.3/engine/configs/config.example.logical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options:
+Copy the contents of configuration example [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.4/engine/configs/config.example.logical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options:
 - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine
 - Set connection options in `retrieval:spec:logicalDump:options:source:connection`:
     - `dbname`: database name to connect to
@@ -44,7 +44,7 @@ sudo docker run \
   --env DOCKER_API_VERSION=1.39 \
   --detach \
   --restart on-failure \
-  postgresai/dblab-server:4.0.3
+  postgresai/dblab-server:4.0.4
 ```
 
 You can use PGPASSWORD env to set the password.
diff --git a/docs/dblab-howtos/administration/data/pg_basebackup.md b/docs/dblab-howtos/administration/data/pg_basebackup.md
index 0d69ab03..538ce47f 100644
--- a/docs/dblab-howtos/administration/data/pg_basebackup.md
+++ b/docs/dblab-howtos/administration/data/pg_basebackup.md
@@ -14,7 +14,7 @@ In order to set up DBLab Engine to automatically get the data from database usin
 - [physicalSnapshot](/docs/reference-guides/database-lab-engine-configuration-reference#job-physicalsnapshot)
 
 ### Options
-Copy the contents of configuration example [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.3/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options:
+Copy the contents of configuration example [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.4/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options:
 - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine
 - Set connection options in `physicalRestore:options:envs`:
     - `PGUSER`: database user name
@@ -44,7 +44,7 @@ sudo docker run \
   --env DOCKER_API_VERSION=1.39 \
   --detach \
   --restart on-failure \
-  postgresai/dblab-server:4.0.3
+  postgresai/dblab-server:4.0.4
 ```
 
 :::info
diff --git a/docs/dblab-howtos/administration/data/pgbackrest.md b/docs/dblab-howtos/administration/data/pgbackrest.md
index 55261108..2f4459e9 100644
--- a/docs/dblab-howtos/administration/data/pgbackrest.md
+++ b/docs/dblab-howtos/administration/data/pgbackrest.md
@@ -16,7 +16,7 @@ In order to configure DLE to automatically restore the database using the [pgBac
 - [physicalSnapshot](/docs/reference-guides/database-lab-engine-configuration-reference#job-physicalsnapshot)
 
 ### Options
-Copy the example configuration file [`config.example.physical_pgbackrest.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.3/engine/configs/config.example.physical_pgbackrest.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options:
+Copy the example configuration file [`config.example.physical_pgbackrest.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.4/engine/configs/config.example.physical_pgbackrest.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options:
 - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine
 - Set repository options in `physicalRestore:options:envs`:
     - pgBackRest allows using environment variables instead of command-line options (see [pgBackRest docs](https://pgbackrest.org/command.html#introduction)):
@@ -70,7 +70,7 @@ sudo docker run \
   --env DOCKER_API_VERSION=1.39 \
   --detach \
   --restart on-failure \
-  postgresai/dblab-server:4.0.3
+  postgresai/dblab-server:4.0.4
 ```
 
 :::info
diff --git a/docs/dblab-howtos/administration/data/rds.md b/docs/dblab-howtos/administration/data/rds.md
index 4629e598..f45c200a 100644
--- a/docs/dblab-howtos/administration/data/rds.md
+++ b/docs/dblab-howtos/administration/data/rds.md
@@ -25,7 +25,7 @@ If you want to use **IAM database authentication**, read how to enable it [here]
 You need to know the **master password**. If you lost the password it can be reset. Read how to reset it [here](https://aws.amazon.com/premiumsupport/knowledge-center/reset-master-user-password-rds/).
 :::
 
-Copy the contents of configuration example [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.3/engine/configs/config.example.logical_generic.yml) from the DBLab Engine repository to `~/.dblab/engine/configs/server.yml` and update the following options:
+Copy the contents of configuration example [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.4/engine/configs/config.example.logical_generic.yml) from the DBLab Engine repository to `~/.dblab/engine/configs/server.yml` and update the following options:
 - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine
 - Set connection options in `retrieval:spec:logicalDump:options:source:connection`:
     - `dbname`: database name to connect to
@@ -54,7 +54,7 @@ sudo docker run \
   --env DOCKER_API_VERSION=1.39 \
   --detach \
   --restart on-failure \
-  postgresai/dblab-server:4.0.3
+  postgresai/dblab-server:4.0.4
 ```
 
 :::info
@@ -80,7 +80,7 @@ Alternatively, you can add `AmazonRDSFullAccess`, `IAMFullAccess` policies to an
 :::
 
 ### Set up and run DBLab Engine
-Copy the contents of configuration example [`config.example.logical_rds_iam.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.3/engine/configs/config.example.logical_rds_iam.yml) from the DBLab Engine repository to `~/.dblab/engine/configs/server.yml` and update the following options:
+Copy the contents of configuration example [`config.example.logical_rds_iam.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.4/engine/configs/config.example.logical_rds_iam.yml) from the DBLab Engine repository to `~/.dblab/engine/configs/server.yml` and update the following options:
 - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine
 - Set connection options `retrieval:spec:logicalDump:options:source:connection`:
     - `dbname`: database name to connect to
@@ -120,7 +120,7 @@ sudo docker run \
   --env DOCKER_API_VERSION=1.39 \
   --detach \
   --restart on-failure \
-  postgresai/dblab-server:4.0.3
+  postgresai/dblab-server:4.0.4
 ```
 
 :::info
diff --git a/docs/dblab-howtos/administration/data/rsync.md b/docs/dblab-howtos/administration/data/rsync.md
index 2b847f1f..9e95b9a5 100644
--- a/docs/dblab-howtos/administration/data/rsync.md
+++ b/docs/dblab-howtos/administration/data/rsync.md
@@ -14,7 +14,7 @@ In order to set up DBLab Engine to automatically get the data from database usin
 - [physicalSnapshot](/docs/reference-guides/database-lab-engine-configuration-reference#job-physicalsnapshot)
 
 ### Options
-Copy the example configuration file [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.3/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options:
+Copy the example configuration file [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.4/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options:
 - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine
 - Set connection options in `physicalRestore:options:envs`:
     - `PGUSER`: database user name
@@ -54,7 +54,7 @@ sudo docker run \
   --env DOCKER_API_VERSION=1.39 \
   --detach \
   --restart on-failure \
-  postgresai/dblab-server:4.0.3
+  postgresai/dblab-server:4.0.4
 ```
 
 :::info
diff --git a/docs/dblab-howtos/administration/data/wal-g.md b/docs/dblab-howtos/administration/data/wal-g.md
index 1ef16984..e8f15412 100644
--- a/docs/dblab-howtos/administration/data/wal-g.md
+++ b/docs/dblab-howtos/administration/data/wal-g.md
@@ -14,7 +14,7 @@ In order to set up DBLab Engine to automatically get the data from database usin
 - [physicalSnapshot](/docs/reference-guides/database-lab-engine-configuration-reference#job-physicalsnapshot)
 
 ### Options
-Copy the example configuration file [`config.example.physical_walg.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.3/engine/configs/config.example.physical_walg.yml) from the DBLab Engine repository to `~/.dblab/engine/configs/server.yml` and update the following options:
+Copy the example configuration file [`config.example.physical_walg.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.4/engine/configs/config.example.physical_walg.yml) from the DBLab Engine repository to `~/.dblab/engine/configs/server.yml` and update the following options:
 - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine
 - Set connection options in `physicalRestore:options:envs`:
     - Use WAL-G environment variables to configure the job, see the [WAL-G configuration reference](https://github.com/wal-g/wal-g#configuration)
@@ -50,7 +50,7 @@ sudo docker run \
   --env DOCKER_API_VERSION=1.39 \
   --detach \
   --restart on-failure \
-  postgresai/dblab-server:4.0.3
+  postgresai/dblab-server:4.0.4
 ```
 
 :::info
diff --git a/docs/dblab-howtos/administration/engine-manage.md b/docs/dblab-howtos/administration/engine-manage.md
index 3c8df329..2934e7ad 100644
--- a/docs/dblab-howtos/administration/engine-manage.md
+++ b/docs/dblab-howtos/administration/engine-manage.md
@@ -16,7 +16,7 @@ All YAML features can be used, including anchors and aliases, to help you conven
 
 For instance, you can define a binding with `&` and then refer to it using an alias denoted by `*`.
 
-See config examples [here](https://gitlab.com/postgres-ai/database-lab/-/tree/v4.0.3/engine/configs)
+See config examples [here](https://gitlab.com/postgres-ai/database-lab/-/tree/v4.0.4/engine/configs)
 :::
 
 After configuring DBLab Engine, run the following command:
@@ -37,7 +37,7 @@ sudo docker run \
   --volume /lib/modules:/lib/modules:ro \
   --volume /proc:/host_proc:ro \
   --env DOCKER_API_VERSION=1.41 \
-  postgresai/dblab-server:4.0.3
+  postgresai/dblab-server:4.0.4
 ``` 
 
 :::info
@@ -105,7 +105,7 @@ If you need to save the logs in a file:
 sudo docker logs dblab_server 2>&1 | gzip > dblab_server.log.gz
 ```
 
-If you want to see more details, enable debug mode setting option `debug` to `true` (see [example](https://gitlab.com/postgres-ai/database-lab/-/tree/v4.0.3/engine/configs)). Next, follow  [the reconfiguration guidelines](#reconfigure-database-lab) to apply the change.
+If you want to see more details, enable debug mode setting option `debug` to `true` (see [example](https://gitlab.com/postgres-ai/database-lab/-/tree/v4.0.4/engine/configs)). Next, follow  [the reconfiguration guidelines](#reconfigure-dblab-engine) to apply the change.
 
 :::caution
 When debug mode is turned on, logs may contain sensitive data such as API secret keys for the backup system.
diff --git a/docs/dblab-howtos/administration/install-dle-manually.md b/docs/dblab-howtos/administration/install-dle-manually.md
index f4daa699..41900da3 100644
--- a/docs/dblab-howtos/administration/install-dle-manually.md
+++ b/docs/dblab-howtos/administration/install-dle-manually.md
@@ -242,11 +242,11 @@ sudo docker stop dblab_pg_initdb
 sudo docker rm dblab_pg_initdb
 ```
 
-Now, we need to take care of DBLab Engine configuration. Copy the contents of configuration example [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.3/engine/configs/config.example.logical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`:
+Now, we need to take care of DBLab Engine configuration. Copy the contents of configuration example [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.4/engine/configs/config.example.logical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`:
 ```bash
 mkdir -p ~/.dblab/engine/configs
 
-curl -fsSL https://gitlab.com/postgres-ai/database-lab/-/raw/v4.0.3/engine/configs/config.example.logical_generic.yml \
+curl -fsSL https://gitlab.com/postgres-ai/database-lab/-/raw/v4.0.4/engine/configs/config.example.logical_generic.yml \
   --output ~/.dblab/engine/configs/server.yml
 ```
 
@@ -263,11 +263,11 @@ Open `~/.dblab/engine/configs/server.yml` and edit the following options:
 
 If you want to try Database Lab for an existing database, you need to copy the data to PostgreSQL data directory on the Database Lab server, to the directory `/var/lib/dblab/dblab_pool/data`. This step is called "thick cloning". It only needs to be completed once. There are several options to physically copy the data directory. Here we will use the standard PostgreSQL tool, `pg_basebackup`. However, we are not going to use it directly (although, it is possible) – we will specify its options in the DBLab Engine configuration file.
 
-First, copy the example configuration file [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.3/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`:
+First, copy the example configuration file [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.4/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`:
 ```bash
 mkdir -p ~/.dblab/engine/configs
 
-curl -fsSL https://gitlab.com/postgres-ai/database-lab/-/raw/v4.0.3/engine/configs/config.example.physical_generic.yml \
+curl -fsSL https://gitlab.com/postgres-ai/database-lab/-/raw/v4.0.4/engine/configs/config.example.physical_generic.yml \
   --output ~/.dblab/engine/configs/server.yml
 ```
 
@@ -288,11 +288,11 @@ If you want to try Database Lab for an existing database, you need to copy the d
 
 Here we will configure DBLab Engine to use a "logical" method of thick cloning, dump/restore.
 
-First, copy the configuration example configuration file [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.3/engine/configs/config.example.logical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`:
+First, copy the example configuration file [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.4/engine/configs/config.example.logical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`:
 ```bash
 mkdir -p ~/.dblab/engine/configs
 
-curl -fsSL https://gitlab.com/postgres-ai/database-lab/-/raw/v4.0.3/engine/configs/config.example.logical_generic.yml \
+curl -fsSL https://gitlab.com/postgres-ai/database-lab/-/raw/v4.0.4/engine/configs/config.example.logical_generic.yml \
   --output ~/.dblab/engine/configs/server.yml
 ```
 
@@ -340,7 +340,7 @@ sudo docker run \
   --env DOCKER_API_VERSION=1.39 \
   --detach \
   --restart on-failure \
-  postgresai/dblab-server:4.0.3
+  postgresai/dblab-server:4.0.4
 ```
 
 
@@ -363,7 +363,7 @@ sudo docker run \
   --env DOCKER_API_VERSION=1.39 \
   --detach \
   --restart on-failure \
-  postgresai/dblab-server:4.0.3
+  postgresai/dblab-server:4.0.4
 ```
 
 
@@ -386,7 +386,7 @@ sudo docker run \
   --env DOCKER_API_VERSION=1.39 \
   --detach \
   --restart on-failure \
-  postgresai/dblab-server:4.0.3
+  postgresai/dblab-server:4.0.4
 ```
 
 
diff --git a/docs/dblab-howtos/administration/logical-full-refresh.md b/docs/dblab-howtos/administration/logical-full-refresh.md
index a2d874a1..08bf5eb5 100644
--- a/docs/dblab-howtos/administration/logical-full-refresh.md
+++ b/docs/dblab-howtos/administration/logical-full-refresh.md
@@ -143,7 +143,7 @@ sudo zpool create -f \
 ```
 
 ### 3. Define a refresh timetable
-Set up a desirable timetable in the `retrieval` section of [your configuration](/docs/dblab-howtos/administration/engine-manage#configure-and-start-a-database-lab-engine-instance) to perform a full refresh automatically
+Set up a desirable timetable in the `retrieval` section of [your configuration](/docs/dblab-howtos/administration/engine-manage#configure-and-start-a-dblab-engine-instance) to perform a full refresh automatically
 ```yaml
 retrieval:
   refresh:
diff --git a/docs/reference-guides/database-lab-engine-configuration-reference.md b/docs/reference-guides/database-lab-engine-configuration-reference.md
index 17b5615d..01262666 100644
--- a/docs/reference-guides/database-lab-engine-configuration-reference.md
+++ b/docs/reference-guides/database-lab-engine-configuration-reference.md
@@ -10,7 +10,7 @@ DBLab Engine behavior can be controlled using the main configuration file that h
 DBLab Engine supports [YAML 1.2](https://yaml.org/spec/1.2/spec.html) including anchors, aliases, tags, map merging.
 :::
 
-Example config files can be found here: https://gitlab.com/postgres-ai/database-lab/-/tree/v4.0.3/engine/configs.
+Example config files can be found here: https://gitlab.com/postgres-ai/database-lab/-/tree/v4.0.4/engine/configs.
 
 You may store configuration files in any suitable location. The recommended location of configuration files for DBLab Engine is `~/.dblab/engine/configs`.
 
@@ -22,8 +22,8 @@ Make sure that the file name is `server.yml` and its directory is mounted to `/h
 :::
 
 Useful guides that help manage DBLab Engine:
-- [How to configure and start DBLab Engine](/docs/dblab-howtos/administration/engine-manage#configure-and-start-a-database-lab-engine-instance)
-- [Reconfigure DBLab Engine without downtime](/docs/dblab-howtos/administration/engine-manage#reconfigure-database-lab-engine)
+- [How to configure and start DBLab Engine](/docs/dblab-howtos/administration/engine-manage#configure-and-start-a-dblab-engine-instance)
+- [Reconfigure DBLab Engine without downtime](/docs/dblab-howtos/administration/engine-manage#reconfigure-dblab-engine)
 
 :::tip
 The configuration of DBLab Engine can be reloaded without downtime:
diff --git a/docs/tutorials/database-lab-tutorial.md b/docs/tutorials/database-lab-tutorial.md
index c142ac0d..abaf0e08 100644
--- a/docs/tutorials/database-lab-tutorial.md
+++ b/docs/tutorials/database-lab-tutorial.md
@@ -144,7 +144,7 @@ ok: [root@5.161.212.233] => {
         "",
         "5) DBLab CLI:",
         "  - CLI ('dblab') setup:",
-        "      export DBLAB_CLI_VERSION=4.0.3",
+        "      export DBLAB_CLI_VERSION=4.0.4",
         "      curl -sSL dblab.sh | bash",
         "      dblab init --environment-id=dblab-demo --token=edlhYHOgBPkr4ix1qP3YvQMytfK2JSxH --url=http://127.0.0.1:2346/api",
         "  - CLI docs: https://cli-docs.dblab.dev/",
diff --git a/docusaurus.config.js b/docusaurus.config.js
index 2b8954af..525d0975 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -35,7 +35,7 @@ module.exports = {
   tagline: SITE_SLOGAN,
   url: URL, // Your website URL.
   baseUrl: BASE_URL, // Base URL for your project.
-  onBrokenLinks: 'warn', //'throw',
+  onBrokenLinks: 'warn', //'throw' — tracked in #189 (fix pre-existing broken links first)
   favicon: '/favicon.svg',
   organizationName: 'postgres-ai',
   projectName: 'docs',

From 8277c43c6ecb3a479aeebf1733fa6665fef5a196 Mon Sep 17 00:00:00 2001
From: Nikolay Samokhvalov 
Date: Mon, 23 Mar 2026 22:59:02 -0700
Subject: [PATCH 08/61] =?UTF-8?q?Blog:=20PG18=20preserves=20planner=20stat?=
 =?UTF-8?q?s=20during=20upgrades=20=E2=80=94=20even=20from=20PG14?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 ...0324-pg18-stats-upgrade-across-versions.md | 214 ++++++++++++++++++
 src/pages/products/postgres-ai-zdu.md         |   3 +-
 2 files changed, 216 insertions(+), 1 deletion(-)
 create mode 100644 blog/20260324-pg18-stats-upgrade-across-versions.md

diff --git a/blog/20260324-pg18-stats-upgrade-across-versions.md b/blog/20260324-pg18-stats-upgrade-across-versions.md
new file mode 100644
index 00000000..c750edcc
--- /dev/null
+++ b/blog/20260324-pg18-stats-upgrade-across-versions.md
@@ -0,0 +1,214 @@
+---
+title: "PG18 preserves planner statistics on upgrade — even from PG14"
+date: 2026-03-24 12:00:00
+slug: 20260324-pg18-stats-upgrade-across-versions
+authors: [nik]
+tags: [PostgreSQL, pg_upgrade, performance, major upgrades]
+---
+
+import { TldrTabs } from '@site/src/components/TldrTabs'
+
+Postgres 18 can preserve planner statistics during major version upgrades. But can it work when upgrading from an older version *to* PG18 — which many plan to do soon? Let's test and see.
+
+
+
+
+
+## The problem: upgrading Postgres has always meant losing statistics
+
+Every major Postgres upgrade — 14 to 15, 15 to 16, 16 to 17 — has reset planner statistics to zero. The moment you switch to the new cluster, the query planner is blind. It falls back to default assumptions, produces terrible plans, and your application hits a performance cliff. This means you need to run ANALYZE, either in a single connection or parallelizing it with `vacuumdb --analyze-only -j$N` (but this has [issues](https://x.com/samokhvalov/status/1849574252888064224) with partitioned tables — it's going to be [much better in Postgres 19](https://commitfest.postgresql.org/patch/5871/), but that's another story).
+
+This is not a theoretical risk. It happens constantly (it's one of my favorite topics to blame managed platforms for lack of upgrade automation – their tradition is to [leave it on your shoulders](https://x.com/samokhvalov/status/1844593601638260850)):
+
+- **AWS RDS upgrade, PG14 to 16:** A developer skipped the post-upgrade `ANALYZE`. All looked good during the weekend. Then Monday came, and a frequent query that ran on SeqScan put the server down. P0 incident, painful RCA with trivial mitigation that came too late – `ANALYZE;`.
+- **On-prem upgrade, 16 to 17, 70+ databases:** CPU spiked immediately after cutover. All looked great in planning. And the sad part is that they had parallelized stats recalculation using `vacuumdb -j`, and it worked smoothly in the past, but the team had recently partitioned lots of tables... Guess which databases experienced performance issues? Yep, those with partitioned tables.
+
+Another thing: the speed of `ANALYZE`. As [Greg Sabino Mullane noted back in 2016](https://www.endpointdev.com/blog/2016/12/postgres-statistics-and-pain-of-analyze/), analyze can be painfully slow — slow enough that the default analyze methods sometimes take longer than the entire rest of the upgrade.
+
+[CYBERTEC](https://www.cybertec-postgresql.com/en/preserve-optimizer-statistics-during-major-upgrades-with-postgresql-v18/) echoed this for large-scale environments:
+
+> "For large databases with hundreds of tables, some containing billions of rows and dozens of columns, the post-upgrade analyze could take hours."
+
+And if `default_statistics_target` is adjusted to a higher value (e.g., 1000), the duration of `ANALYZE` increases proportionally.
+
+Multiple cloud providers and Postgres vendors — including [Azure](https://techcommunity.microsoft.com/blog/azuredbsupport/azure-postgresql-lesson-learned-8-post-upgrade-performance-surprises-the-one-ste/4471807) and [AWS](https://repost.aws/knowledge-center/aurora-postgresql-major-upgrade-cpu) — document this problem in their upgrade guides. It is a well-known source of post-upgrade performance regression.
+
+## What PG18 changes
+
+Postgres 18 introduces statistics export and import. From the [release notes](https://www.postgresql.org/about/news/postgresql-18-released-3142/):
+
+> "Before PostgreSQL 18, these statistics didn't carry over on a major version upgrade, which could cause significant query performance degradations on busy systems until the ANALYZE finished running. PostgreSQL 18 introduces the ability to keep planner statistics through a major version upgrade, which helps an upgraded cluster reach expected performance more quickly after the upgrade."
+
+But can we use PG18's new `pg_dump --statistics-only` to extract stats from an **older** server — say, PG16 or even PG14? Let's find out.
+
+## Let's test it
+
+Start PG16, create some data, then use PG18's `pg_dump` to extract stats from PG16 and import them into an empty PG18 table. A shared volume lets both containers access the dump file:
+
+```bash
+mkdir -p /tmp/pgstats-demo
+
+docker run -d --name pg16 \
+  -p 5416:5432 \
+  -v /tmp/pgstats-demo:/shared \
+  -e POSTGRES_PASSWORD=postgres \
+  postgres:16
+
+until docker exec pg16 \
+  pg_isready -U postgres 2>/dev/null
+do sleep 1; done
+
+docker exec pg16 psql -U postgres -c "
+  create table demo as
+  select g as id, md5(g::text) as val
+  from generate_series(1, 10000000) g;
+  analyze demo;"
+
+# PG18's pg_dump extracts stats from PG16
+docker run --rm \
+  --network host \
+  -v /tmp/pgstats-demo:/shared \
+  postgres:18 \
+  bash -c "PGPASSWORD=postgres \
+    pg_dump -h localhost -p 5416 \
+    -U postgres --statistics-only \
+    postgres > /shared/pg16_stats.sql"
+
+docker rm -f pg16
+
+docker run -d --name pg18 \
+  -p 5418:5432 \
+  -v /tmp/pgstats-demo:/shared \
+  -e POSTGRES_PASSWORD=postgres \
+  postgres:18
+
+until docker exec pg18 \
+  pg_isready -U postgres 2>/dev/null
+do sleep 1; done
+
+docker exec pg18 psql -U postgres \
+  -c "create table demo (id int, val text)"
+docker exec pg18 \
+  bash -c "psql -U postgres < /shared/pg16_stats.sql"
+```
+
+Now verify — the PG18 table has zero rows, but the planner sees 10M:
+
+```sql
+select reltuples, relpages,
+  (select count(*) from demo) as actual_rows
+from pg_class
+where relname = 'demo';
+```
+
+```
+  reltuples   | relpages | actual_rows
+--------------+----------+-------------
+ 9.999034e+06 |    83392 |           0
+```
+
+`reltuples ≈ 10M` on an empty table. Autovacuum would show `0`. The stats came from PG16, via PG18's `pg_dump`. It works. And this is exactly what `pg_upgrade` does internally — automatically, no manual steps.
+
+## Why it works
+
+The reason is simple once you see the architecture:
+
+**1. pg_upgrade always uses the NEW cluster's pg_dump.**
+
+In [`src/bin/pg_upgrade/dump.c`](https://github.com/postgres/postgres/blob/REL_18_3/src/bin/pg_upgrade/dump.c#L54-L63), pg_upgrade invokes the target cluster's `pg_dump` binary ([`new_cluster.bindir`](https://github.com/postgres/postgres/blob/REL_18_3/src/bin/pg_upgrade/dump.c#L57)) and points it at the old cluster ([`cluster_conn_opts(&old_cluster)`](https://github.com/postgres/postgres/blob/REL_18_3/src/bin/pg_upgrade/dump.c#L57)). When you upgrade PG16 to PG18, it is PG18's pg_dump — the one with [`--statistics` support](https://github.com/postgres/postgres/blob/REL_18_3/src/bin/pg_upgrade/dump.c#L61) — that connects to your PG16 server. Using a newer `pg_dump` against an older server is [officially supported](https://www.postgresql.org/docs/current/app-pgdump.html#id-1.9.4.13.16): "pg_dump can also dump from PostgreSQL servers older than its own version."
+
+**2. pg_dump reads from standard catalog views.**
+
+The statistics export reads from [`pg_class`](https://github.com/postgres/postgres/blob/REL_18_3/src/bin/pg_dump/pg_dump.c#L7097-L7098) (for `relpages`, `reltuples`, `relallvisible`) and [`pg_stats`](https://github.com/postgres/postgres/blob/REL_18_3/src/bin/pg_dump/pg_dump.c#L10983-L10985) (for per-column statistics like `null_frac`, `n_distinct`, `avg_width`, `correlation`, `most_common_vals`, `histogram_bounds`). These are standard system catalog views that have existed in Postgres for decades.
+
+**3. The restore functions only need to exist on the target.**
+
+`pg_restore_relation_stats()` and `pg_restore_attribute_stats()` are new PG18 functions. They run on the new cluster during restore. The old cluster never needs to know they exist.
+
+The implementation (commit [`1fd1bd871012`](https://github.com/postgres/postgres/commit/1fd1bd871012) by Corey Huinker and Jeff Davis, with Nathan Bossart's follow-up [`pg_restore_extended_stats()`](https://github.com/postgres/postgres/commit/0e80f3f88dea)) also handles version differences gracefully:
+
+- **Pre-v14 clusters**: `reltuples = 0` gets [remapped to `-1`](https://github.com/postgres/postgres/blob/REL_18_3/src/bin/pg_dump/pg_dump.c#L11052-L11060) (the modern "never analyzed" convention)
+- **Pre-v17 clusters**: range type statistics are [skipped](https://github.com/postgres/postgres/blob/REL_18_3/src/bin/pg_dump/pg_dump.c#L10984-L10993) — rebuilt on first `ANALYZE`
+- **Pre-v18 clusters**: `relallfrozen` (new in PG18) [defaults to `0`](https://github.com/postgres/postgres/blob/REL_18_3/src/bin/pg_dump/pg_dump.c#L7101-L7103) — set by first `vacuum`
+
+## Caveats
+
+One important limitation: **extended statistics** created with `create statistics` (multivariate n_distinct, functional dependencies, multivariate MCV lists) are **not** preserved. Single-column statistics from `pg_stats` (including per-column `most_common_vals` and `histogram_bounds`) and relation-level statistics from `pg_class` are all carried over — it's only the multi-column extended stats that require re-analysis.
+
+The [official pg_upgrade documentation](https://www.postgresql.org/docs/18/pgupgrade.html) recommends a two-step post-upgrade process:
+
+```bash
+vacuumdb --all \
+  --analyze-in-stages \
+  --missing-stats-only
+
+vacuumdb --all \
+  --analyze-only
+```
+
+The first command uses `--missing-stats-only` (also new in PG18) to quickly regenerate only the statistics that were not carried over — extended statistics and expression index stats. The second command re-analyzes everything, which is still worthwhile: the new major version may have improved statistics collection algorithms, so fresh stats can produce better plans than the carried-over ones.
+
+Since the stats dump is metadata-only — no table data is read, just catalog queries — it adds seconds, not minutes, to the `pg_upgrade` process even for large schemas with thousands of tables.
+
+## Planning your next major upgrade
+
+PG18's statistics preservation removes one of the biggest risks in major Postgres upgrades, and it works retroactively — you do not need to be on PG18 already to benefit. If you are on PG14, PG15, PG16, or PG17, upgrading to PG18 will preserve your planner statistics.
+
+At [PostgresAI](https://postgres.ai), we specialize in zero-downtime, zero-data-loss, reversible major Postgres upgrades. Our methodology — battle-tested at GitLab scale (multi-TB databases, 100k+ TPS) — combines physical-to-logical replication with pause/resume capabilities. PG18's statistics preservation complements this approach perfectly: your upgraded cluster starts with optimal query plans from the first second.
+
+Note: statistics preservation applies to `pg_upgrade`-based workflows. Logical replication upgrades (including our [zero-downtime approach](https://postgres.ai/products/postgres-ai-zdu)) still require a post-upgrade `ANALYZE` on the target. The key difference with our methodology: that `ANALYZE` runs while the old cluster is still serving production traffic, so there is never a moment when the planner is blind.
+
+[Learn about zero-downtime upgrades](https://postgres.ai/products/postgres-ai-zdu) | [See what customers say about our help](https://postgres.ai/consulting)
diff --git a/src/pages/products/postgres-ai-zdu.md b/src/pages/products/postgres-ai-zdu.md
index ba11f198..27a449eb 100644
--- a/src/pages/products/postgres-ai-zdu.md
+++ b/src/pages/products/postgres-ai-zdu.md
@@ -57,7 +57,8 @@ This solution is **fully developed and battle-tested**. We're offering preview a
       textDecoration: 'none',
       padding: '12px 24px',
       borderRadius: '6px',
-      display: 'inline-block',
+      display: 'inline-flex',
+      alignItems: 'center',
       fontWeight: '500'
     }}
   >

From da5b8fc39b14223676bc49d4b2b7c06498f5715f Mon Sep 17 00:00:00 2001
From: Nikolay Samokhvalov 
Date: Tue, 24 Mar 2026 17:46:32 -0700
Subject: [PATCH 09/61] =?UTF-8?q?fix:=20reduce=20blog=20feed=20size=20?=
 =?UTF-8?q?=E2=80=94=20summaries=20only,=20limit=2020=20entries?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 docusaurus.config.js | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/docusaurus.config.js b/docusaurus.config.js
index 525d0975..2548c06a 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -621,6 +621,22 @@ module.exports = {
             description: '', // default to  `${siteConfig.title} Blog`
             copyright: SITE_NAME,
             language: undefined, // possible values: http://www.w3.org/TR/REC-html40/struct/dirlang.html#langcodes
+            createFeedItems: async ({
+              blogPosts,
+              siteConfig,
+              outDir,
+              defaultCreateFeedItems,
+            }) => {
+              const items = await defaultCreateFeedItems({
+                blogPosts: blogPosts.slice(0, 20),
+                siteConfig,
+                outDir,
+              });
+              return items.map((item) => ({
+                ...item,
+                content: undefined,
+              }));
+            },
           },
         },
         theme: {

From 9ec55b9eb24e579fc7fc204261c4ab54fb1b0a11 Mon Sep 17 00:00:00 2001
From: Maya P 
Date: Thu, 9 Apr 2026 16:56:30 +0000
Subject: [PATCH 10/61] docs: Teleport integration howto for DBLab Engine

---
 docs/dblab-howtos/administration/index.md     |   1 +
 .../administration/teleport-integration.md    | 551 ++++++++++++++++++
 sidebars.js                                   |   1 +
 3 files changed, 553 insertions(+)
 create mode 100644 docs/dblab-howtos/administration/teleport-integration.md

diff --git a/docs/dblab-howtos/administration/index.md b/docs/dblab-howtos/administration/index.md
index abfc4d60..8530b654 100644
--- a/docs/dblab-howtos/administration/index.md
+++ b/docs/dblab-howtos/administration/index.md
@@ -16,4 +16,5 @@ description: How to administer DBLab Engine
 - [How to refresh data when working in the "logical" mode](/docs/dblab-howtos/administration/logical-full-refresh)
 - [Masking sensitive data in PostgreSQL logs when using CI Observer](/docs/dblab-howtos/administration/ci-observer-postgres-log-masking)
 - [Add disk space to ZFS pool without downtime](/docs/dblab-howtos/administration/add-disk-space-to-zfs-pool)
+- [Teleport Integration](/docs/dblab-howtos/administration/teleport-integration)
 
diff --git a/docs/dblab-howtos/administration/teleport-integration.md b/docs/dblab-howtos/administration/teleport-integration.md
new file mode 100644
index 00000000..cc6c7017
--- /dev/null
+++ b/docs/dblab-howtos/administration/teleport-integration.md
@@ -0,0 +1,551 @@
+---
+title: Teleport Integration
+sidebar_label: Teleport Integration
+---
+
+Integrate DBLab Engine with [Gravitational Teleport](https://goteleport.com) to provide secure, audited access to database clones. When a clone is created or destroyed, the DBLab Teleport sidecar automatically registers or deregisters it in your Teleport cluster — no manual resource management required.
+
+:::note
+Teleport integration is available in **Standard** and **Enterprise** editions of DBLab Engine only.
+:::
+
+## Overview
+
+The `dblab teleport serve` sidecar runs alongside DBLab Engine and performs two functions:
+
+1. **Webhook handler** — Listens for clone lifecycle events (`clone_create`, `clone_delete`) from DBLab Engine and creates/removes corresponding Teleport database resources via `tctl`.
+2. **Reconciliation loop** — Periodically (every 5 minutes) queries DBLab Engine for active clones and ensures Teleport resources are in sync, catching any missed webhook events.
+
+The sidecar also registers the DBLab Engine API itself as a Teleport App resource, giving administrators access to the DBLab UI through Teleport.
+
+The sidecar does **not** proxy database connections. A separate Teleport agent with `db_service` enabled handles the actual proxying.
+
+## Prerequisites
+
+Before setting up the integration, ensure:
+
+- **DBLab Engine** (Standard or Enterprise edition) is installed and running
+- **Teleport cluster** (v14+) with the database service enabled
+- **Teleport Database Agent** running on the DBLab host with `db_service` enabled (see [Step 1](#step-1-configure-the-teleport-database-agent))
+- **`dblab` CLI** — required to run the Teleport sidecar (`dblab teleport serve`). See [Install and initialize Database Lab CLI](/docs/dblab-howtos/cli/cli-install-init).
+- **`tctl` binary** available on the DBLab Engine host
+- **Teleport identity file** — a bot identity file with permissions to create/delete `db`, `db_server`, `app`, and `app_server` resources (see [Step 2](#step-2-create-the-bot-role-and-generate-a-teleport-identity-file))
+- **PostgreSQL SSL** enabled on clones — Teleport's database service requires SSL even with `tls: mode: insecure` (it skips certificate *verification*, not TLS itself) (see [Step 3](#step-3-enable-ssl-on-postgresql-clones))
+
+## Step 1: Configure the Teleport Database Agent
+
+The sidecar only registers DB resources via `tctl` — it does **not** proxy connections. A Teleport agent must run on the DBLab host with `db_service` enabled and dynamic resource matching.
+
+If you don't have a Teleport agent running on the DBLab host yet, follow the [Teleport Database Access guide](https://goteleport.com/docs/enroll-resources/database-access/getting-started/) to install and join the agent to your cluster.
+
+Once the agent is joined, add the following `db_service` section to your existing `/etc/teleport.yaml` (do not replace the entire file — keep the `proxy_server` and other settings generated during agent setup):
+
+```yaml
+db_service:
+  enabled: true
+  resources:
+  - labels:
+      dblab: "true"
+```
+
+This tells the agent to proxy connections for any DB resource with the `dblab: "true"` label (which the sidecar sets automatically).
+
+:::note
+For **Teleport Cloud**, ensure `auth_service` and `proxy_service` are disabled in your `/etc/teleport.yaml`, since these are provided by the cloud cluster:
+
+```yaml
+auth_service:
+  enabled: false
+
+proxy_service:
+  enabled: false
+```
+:::
+
+Restart the agent after changing the config (`systemctl restart teleport`).
+
+## Step 2: Create the bot role and generate a Teleport identity file
+
+The bot role must be created **before** generating the bot identity, because the identity captures the role's permissions at generation time.
+
+### Create the bot role
+
+Save the following as `dblab-bot-role.yaml`:
+
+```yaml
+kind: role
+version: v7
+metadata:
+  name: dblab-bot
+spec:
+  allow:
+    db_labels:
+      '*': '*'
+    db_names: ['*']
+    db_users: ['*']
+    rules:
+    - resources: [db, db_server]
+      verbs: [list, create, read, update, delete]
+    - resources: [app, app_server]
+      verbs: [list, create, read, update, delete]
+```
+
+If you're using Teleport Cloud or running `tctl` from a machine without a local auth service, log in first with `tsh login --proxy=yourcluster.teleport.sh:443`.
+
+Apply with `tctl create -f dblab-bot-role.yaml`.
+
+### Generate the identity
+
+:::caution
+The role from the previous step must already exist before generating the identity. If the role is created or updated after the identity is generated, regenerate the identity to pick up the new permissions.
+:::
+
+**Self-hosted Teleport:**
+
+```bash
+tctl bots add dblab-sidecar --roles=dblab-bot
+tctl auth sign --format=tls --user=bot-dblab-sidecar -o /etc/dblab/teleport-identity-dir/identity
+```
+
+**Teleport Cloud** (`tctl auth sign` is not available):
+
+```bash
+tctl bots add dblab-sidecar --roles=dblab-bot
+```
+
+`` in the commands below is the join token printed by `tctl bots add`. If you no longer have it, generate a new one with `tctl bots instances add dblab-sidecar`.
+
+**For testing only** — generate a one-time identity (expires in ~1 hour):
+
+```bash
+# Use the token from the output above
+tbot start --oneshot \
+  --token= \
+  --proxy-server=yourcluster.teleport.sh:443 \
+  --join-method=token \
+  --data-dir=/etc/teleport/bot-data \
+  --destination-dir=/etc/dblab/teleport-identity-dir
+# The identity file is at /etc/dblab/teleport-identity-dir/identity
+```
+
+:::caution
+`tbot --oneshot` generates credentials valid for approximately 1 hour. After expiry, the sidecar silently fails (returns HTTP 500 to webhooks) and can no longer register or deregister clones. For production, run `tbot` as a persistent service — see below.
+:::
+
+**For production** — run `tbot` as a systemd service so it continuously renews credentials:
+
+Create `/etc/tbot.yaml`:
+
+```yaml
+version: v2
+proxy_server: yourcluster.teleport.sh:443
+onboarding:
+  join_method: token
+  token: 
+storage:
+  type: directory
+  path: /var/lib/tbot
+outputs:
+  - type: identity
+    destination:
+      type: directory
+      path: /etc/dblab/teleport-identity-dir
+```
+
+Then start `tbot` as a service. If `tbot` was installed via the Teleport install script or `teleport-update`, the systemd unit is created automatically. Otherwise, create one manually. In daemon mode, `tbot` renews the identity before it expires — the sidecar always reads fresh credentials from the output directory.
+
+See the [Teleport Machine ID deployment guide](https://goteleport.com/docs/machine-workload-identity/deployment/linux/) for detailed instructions.
+
+The identity file for the sidecar is at `/etc/dblab/teleport-identity-dir/identity`.
+
+## Step 3: Enable SSL on PostgreSQL clones
+
+DBLab clones must have SSL enabled for Teleport to connect.
+
+### Generate self-signed certificates
+
+```bash
+mkdir -p /etc/dblab/certs
+openssl req -new -x509 -days 3650 -nodes \
+  -out /etc/dblab/certs/server.crt \
+  -keyout /etc/dblab/certs/server.key \
+  -subj "/CN=dblab-clone"
+
+# Certs must be owned by postgres user (uid 999 inside the container)
+chown 999:999 /etc/dblab/certs/server.crt /etc/dblab/certs/server.key
+chmod 600 /etc/dblab/certs/server.key
+# Directory must be traversable by the postgres user
+chmod 755 /etc/dblab/certs
+```
+
+### Export the Teleport DB CA certificate
+
+PostgreSQL needs the Teleport CA certificate to verify client certificates presented by the Teleport DB agent. Without `ssl_ca_file`, the `cert` auth method in `pg_hba.conf` fails with "root certificate store not available".
+
+```bash
+tctl auth export --type=db-client > /etc/dblab/certs/teleport-ca.crt
+chown 999:999 /etc/dblab/certs/teleport-ca.crt
+```
+
+### Add SSL settings to server.yml
+
+```yaml
+databaseConfigs: &db_configs
+  configs:
+    ssl: "on"
+    ssl_cert_file: "/var/lib/postgresql/cert/server.crt"
+    ssl_key_file: "/var/lib/postgresql/cert/server.key"
+    ssl_ca_file: "/var/lib/postgresql/cert/teleport-ca.crt"
+```
+
+:::note
+These settings are applied during snapshot creation (with promotion enabled) and baked into `postgresql.dblab.snapshot.conf`. Existing snapshots are not affected — a new snapshot must be created after changing `databaseConfigs`.
+:::
+
+:::caution
+The `promotion` section in your `retrieval` config must have `enabled: true` for `databaseConfigs` to take effect. With promotion disabled, snapshots are taken without starting PostgreSQL, so `databaseConfigs` (including SSL settings) are never applied.
+:::
+
+### Mount certificates into clone containers
+
+Clone containers only inherit DLE container volumes whose source is under `poolManager.mountDir`. For SSL certs stored outside the pool, use `containerConfig`:
+
+```yaml
+databaseContainer: &db_container
+  dockerImage: "postgresai/extended-postgres:16"
+  containerConfig:
+    "shm-size": 1gb
+    volume: "/etc/dblab/certs:/var/lib/postgresql/cert:ro"
+```
+
+:::caution
+Cert files on the host must have uid 999 ownership *before* DLE starts, because the postgres user inside the container runs as uid 999.
+:::
+
+### pg_hba.conf — Certificate Authentication
+
+Starting with DLE 4.1.0, the default `pg_hba.conf` includes a `hostssl ... cert` rule that enables Teleport certificate authentication out of the box:
+
+```
+local all all trust
+hostssl all all 0.0.0.0/0 cert
+host all all 0.0.0.0/0 md5
+```
+
+No custom `pg_hba.conf` or volume mount is required for Teleport.
+
+**How rule evaluation works:**
+- PostgreSQL evaluates `pg_hba.conf` top to bottom and uses the first matching rule.
+- `hostssl ... cert` matches SSL connections and requires a client certificate. Teleport always connects over SSL with a client certificate, so this rule handles Teleport connections.
+- `host ... md5` matches both SSL and non-SSL connections. Non-SSL password connections (e.g., `sslmode=disable`) skip the `hostssl` rule and match here.
+
+:::note
+SSL connections *without* a client certificate (e.g., `sslmode=require` with password auth only) will be matched by the `hostssl ... cert` rule and rejected. Clients that do not use Teleport should connect with `sslmode=disable` or `sslmode=prefer` (which falls back to non-SSL when cert auth fails).
+:::
+
+## Step 4: Start the Teleport sidecar
+
+Run the sidecar using the `dblab` CLI:
+
+```bash
+dblab teleport serve \
+  --environment-id prod \
+  --teleport-proxy teleport.example.com:443 \
+  --teleport-identity /etc/dblab/teleport-identity-dir/identity \
+  --dblab-url http://localhost:2345 \
+  --dblab-token "$DBLAB_TOKEN" \
+  --webhook-secret "$WEBHOOK_SECRET" \
+  --listen-addr 0.0.0.0:9876
+```
+
+### Configuration flags
+
+| Flag | Required | Default | Description |
+|------|----------|---------|-------------|
+| `--environment-id` | Yes | — | Identifier for this DBLab environment (used in Teleport resource names) |
+| `--teleport-proxy` | Yes | — | Teleport proxy address (e.g., `teleport.example.com:443`) |
+| `--teleport-identity` | Yes | — | Path to the `tctl` identity file |
+| `--dblab-url` | No | `http://localhost:2345` | DBLab Engine API URL |
+| `--dblab-token` | Yes | — | DBLab Engine verification token (env: `DBLAB_TOKEN`) |
+| `--tctl-path` | No | `tctl` | Path to the `tctl` binary |
+| `--webhook-secret` | Yes | — | Shared secret that DBLab Engine sends in the `DBLab-Webhook-Token` header (env: `WEBHOOK_SECRET`) |
+| `--listen-addr` | No | `localhost:9876` | HTTP listen address for webhook endpoint |
+
+### Running as a systemd service
+
+For production deployments, create a systemd unit.
+
+First, create the environment file with secrets:
+
+```bash
+sudo mkdir -p /etc/dblab-teleport
+cat <--`.
+
+### Check the DBLab API app
+
+The sidecar also registers the DBLab Engine API as a Teleport application:
+
+```bash
+tctl get app --format=text
+```
+
+You should see an app named `dblab-api-`.
+
+## User guide: Connecting to clones via Teleport
+
+Give this section to your users so they can connect to DBLab clones through Teleport.
+
+### Prerequisites for users
+
+- [Teleport client (`tsh`)](https://goteleport.com/docs/installation/) installed
+- Teleport credentials (login to your cluster)
+- Database access permissions in Teleport RBAC
+
+### 1. Log in to Teleport
+
+```bash
+tsh login --proxy=teleport.example.com:443
+```
+
+### 2. List available DBLab clones
+
+```bash
+tsh db ls
+```
+
+Example output:
+
+```
+Name                                    Description Labels
+--------------------------------------- ----------- ---------------------------------
+dblab-clone-prod-my-clone-6000                      clone_id=my-clone, dblab=true
+dblab-clone-prod-test-clone-6001                    clone_id=test-clone, dblab=true
+```
+
+### 3. Connect to a clone
+
+```bash
+# Connect directly
+tsh db connect dblab-clone-prod-my-clone-6000 --db-user postgres --db-name postgres
+
+# Or use a local tunnel (works with any psql client)
+tsh proxy db --tunnel dblab-clone-prod-my-clone-6000
+# Then connect to the tunnel endpoint shown in the output
+```
+
+:::caution
+Use `127.0.0.1` instead of `localhost` in connection strings. Using `localhost` may resolve to IPv6 (`::1`), which can cause connection failures.
+:::
+
+### 4. Clean up
+
+When done, destroy the clone through the DBLab API or CLI:
+
+```bash
+dblab clone destroy --id my-clone
+```
+
+The sidecar will automatically deregister the Teleport database resource.
+
+## Teleport resource labels
+
+Each registered clone includes the following Teleport labels for RBAC and filtering:
+
+| Label | Description |
+|-------|-------------|
+| `dblab` | Always `"true"` — use for Teleport role matching |
+| `environment` | The `--environment-id` value |
+| `clone_id` | The DBLab clone ID |
+| `dblab_user` | The database user configured for the clone |
+
+### Create a Teleport role for DBLab users
+
+Users need a Teleport role that grants access to DBLab clone databases. Create a file `dblab-user-role.yaml`:
+
+```yaml
+kind: role
+version: v7
+metadata:
+  name: dblab-user
+spec:
+  allow:
+    db_labels:
+      dblab: "true"
+    db_names: ["*"]
+    db_users: ["*"]
+    app_labels:
+      dblab: "true"
+```
+
+Apply the role and assign it to users:
+
+```bash
+tctl create -f dblab-user-role.yaml
+
+# Assign to users who need clone access:
+tctl users update alice@example.com --set-roles=access,dblab-user
+```
+
+:::note
+Users must log out and back in (`tsh logout && tsh login`) to pick up newly assigned roles.
+:::
+
+## Full server.yml example (Teleport-relevant sections)
+
+:::caution
+SSL settings must be part of the **same** `databaseConfigs` and `databaseContainer` anchor definitions used by `retrieval` and `provision`. If you define these anchors twice (e.g., once without SSL at the top and once with SSL at the bottom), YAML resolves `<<: *db_configs` to the first definition — the SSL settings are silently ignored.
+:::
+
+```yaml
+databaseContainer: &db_container
+  dockerImage: "postgresai/extended-postgres:16"
+  containerConfig:
+    "shm-size": 1gb
+    volume: "/etc/dblab/certs:/var/lib/postgresql/cert:ro"
+
+databaseConfigs: &db_configs
+  configs:
+    ssl: "on"
+    ssl_cert_file: "/var/lib/postgresql/cert/server.crt"
+    ssl_key_file: "/var/lib/postgresql/cert/server.key"
+    ssl_ca_file: "/var/lib/postgresql/cert/teleport-ca.crt"
+
+webhooks:
+  hooks:
+    - url: "http://172.17.0.1:9876/teleport-sync"
+      secret: "your-webhook-secret"
+      trigger:
+        - clone_create
+        - clone_delete
+```
+
+## Troubleshooting
+
+### Sidecar refuses to start with "requires Standard or Enterprise edition"
+
+The Teleport integration is only available for Standard and Enterprise editions. If you are running Community edition, you need to register your instance with the [PostgresAI platform](https://console.postgres.ai).
+
+### Clones not appearing in Teleport
+
+1. Check sidecar logs for errors (e.g., `tctl create failed`)
+2. Verify the identity file has correct permissions: `tctl get db` should work manually
+3. Confirm the DBLab API is reachable: `curl http://localhost:2345/status`
+4. Wait up to 5 minutes for reconciliation if webhooks are not configured
+
+### Connection refused when using `tsh proxy db`
+
+- Ensure PostgreSQL SSL is enabled on clones (see Step 3)
+- Use `127.0.0.1` instead of `localhost` in connection strings
+- Check that the Teleport database service agent can reach the clone port on `localhost`
+
+### TLS handshake failure
+
+Clone doesn't have SSL enabled. Add `ssl: "on"` + cert paths to `databaseConfigs.configs` (see Step 3).
+
+### "no pg_hba.conf entry"
+
+Missing `hostssl ... cert` entry. Upgrade to DLE 4.1.0+ which includes this rule by default (see Step 3).
+
+### "root certificate store not available"
+
+Missing `ssl_ca_file`. Export the Teleport DB CA with `tctl auth export --type=db-client` and set `ssl_ca_file` in `databaseConfigs` (see Step 3).
+
+### SSL settings not applied to new clones
+
+Snapshot was created before SSL config was added. Trigger a data refresh to create a new snapshot with the updated `databaseConfigs`.
+
+### Webhook not received by sidecar
+
+Docker networking issue. DBLab Engine runs inside Docker, so use `host.docker.internal` or the Docker bridge IP for the webhook URL instead of `localhost` (see Step 5).
+
+### "access to app denied" from sidecar
+
+Bot identity was generated before the role was created or updated. Regenerate the bot identity after ensuring the role exists (see Step 2).
+
+### Permission denied on cert files
+
+Wrong file ownership or directory permissions. Run `chown 999:999` on cert files **and** `chmod 755` on the cert directory so the postgres user inside the container can traverse the directory and read the files.
+
+### Sidecar returns HTTP 500 / "credentials have expired"
+
+The bot identity file has expired (~1 hour with `tbot --oneshot`). Regenerate the identity by running `tbot` again, or switch to running `tbot` as a persistent service for automatic renewal (see Step 2).
diff --git a/sidebars.js b/sidebars.js
index a9c25e2d..65f7adf7 100644
--- a/sidebars.js
+++ b/sidebars.js
@@ -129,6 +129,7 @@ module.exports = {
           "dblab-howtos/administration/logical-full-refresh",
           "dblab-howtos/administration/ci-observer-postgres-log-masking",
           "dblab-howtos/administration/add-disk-space-to-zfs-pool",
+          "dblab-howtos/administration/teleport-integration",
           {
             "Data sources": [
               "dblab-howtos/administration/data/index",

From 637e9b8530efd022189c53fee91da629d92d06b7 Mon Sep 17 00:00:00 2001
From: Nikolay Samokhvalov 
Date: Fri, 10 Apr 2026 10:01:51 -0700
Subject: [PATCH 11/61] Add DBLab Engine 4.1 documentation: monitoring, RDS
 refresh, Teleport

---
 docs/database-lab/index.md                    |   3 +-
 docs/database-lab/prometheus-monitoring.md    | 245 ++++++++++++++++++
 docs/database-lab/supported-databases.md      |   1 -
 .../ci-observer-postgres-log-masking.md       |   2 +-
 .../administration/data/custom.md             |   4 +-
 docs/dblab-howtos/administration/data/dump.md |   4 +-
 .../administration/data/pg_basebackup.md      |   4 +-
 .../administration/data/pgbackrest.md         |   4 +-
 .../administration/data/rds-refresh.md        | 234 +++++++++++++++++
 docs/dblab-howtos/administration/data/rds.md  |   8 +-
 .../dblab-howtos/administration/data/rsync.md |   4 +-
 .../dblab-howtos/administration/data/wal-g.md |   4 +-
 .../administration/engine-manage.md           |   6 +-
 .../administration/install-dle-manually.md    |  18 +-
 docs/dblab-howtos/cloning/clone-protection.md |  93 ++++++-
 .../database-lab-engine-api-reference.md      |  78 +++++-
 ...base-lab-engine-configuration-reference.md |  20 +-
 .../dblab-client-cli-reference.md             |  77 +++++-
 docs/tutorials/database-lab-tutorial.md       |   2 +-
 sidebars.js                                   |   3 +
 20 files changed, 766 insertions(+), 48 deletions(-)
 create mode 100644 docs/database-lab/prometheus-monitoring.md
 create mode 100644 docs/dblab-howtos/administration/data/rds-refresh.md

diff --git a/docs/database-lab/index.md b/docs/database-lab/index.md
index 1d8a2bbb..44bf8bf1 100644
--- a/docs/database-lab/index.md
+++ b/docs/database-lab/index.md
@@ -14,6 +14,7 @@ import useBaseUrl from '@docusaurus/useBaseUrl';
 - [DBLab tutorial for Amazon RDS Postgres](/docs/tutorials/database-lab-tutorial-amazon-rds)
 - [Supported databases](/docs/database-lab/supported-databases)
 - [DBLab UI](/docs/database-lab/user-interface)
+- [Prometheus monitoring](/docs/database-lab/prometheus-monitoring)
 - [Data masking](/docs/database-lab/masking)
 - [DB Migration Checker](/docs/database-lab/db-migration-checker)
 - [Telemetry](/docs/database-lab/telemetry)
@@ -69,7 +70,7 @@ Some problems that can be solved by using DBLab:
 - Works well both on-premise and in clouds.
 - Thin provisioning in seconds thanks to copy-on-write (CoW) provided by [ZFS](https://en.wikipedia.org/wiki/ZFS) and a special methodology for preparing PostgreSQL database snapshots. There is also an option to use [LVM](https://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux)) instead of ZFS.
 - Unlimited size of databases (Postgres database size [is unlimited](https://www.postgresql.org/docs/current/limits.html), ZFS volume can be up to 21^28 bytes, or [256 trillion yobibytes](https://en.wikipedia.org/wiki/ZFS)).
-- Supports PostgreSQL from version 9.6 up to the most recently released version.
+- Supports PostgreSQL from version 10 up to the most recently released version.
 - Thin cloning takes only a few seconds, regardless of the database size.
 - REST API.
 - Client CLI included.
diff --git a/docs/database-lab/prometheus-monitoring.md b/docs/database-lab/prometheus-monitoring.md
new file mode 100644
index 00000000..5561f036
--- /dev/null
+++ b/docs/database-lab/prometheus-monitoring.md
@@ -0,0 +1,245 @@
+---
+title: Prometheus monitoring
+sidebar_label: Prometheus monitoring
+---
+
+DBLab Engine exposes Prometheus metrics via the `/metrics` endpoint. These metrics can be used to monitor the health and performance of the DBLab instance.
+
+:::note
+Prometheus metrics support was added in DBLab Engine 4.1.
+:::
+
+## Endpoint
+
+```
+GET /metrics
+```
+
+The endpoint is publicly accessible (no authentication required) and returns metrics in Prometheus text format.
+
+## Available metrics
+
+### Instance metrics
+
+| Metric Name | Type | Labels | Description |
+|-------------|------|--------|-------------|
+| `dblab_instance_info` | Gauge | `instance_id`, `version`, `edition` | Information about the DBLab instance (always 1) |
+| `dblab_instance_uptime_seconds` | Gauge | - | Time in seconds since the DBLab instance started |
+| `dblab_instance_status_code` | Gauge | - | Status code of the DBLab instance (0=OK, 1=Warning, 2=Bad) |
+| `dblab_retrieval_status` | Gauge | `mode`, `status` | Status of data retrieval (1=active for status) |
+
+### Disk/pool metrics
+
+| Metric Name | Type | Labels | Description |
+|-------------|------|--------|-------------|
+| `dblab_disk_total_bytes` | Gauge | `pool` | Total disk space in bytes |
+| `dblab_disk_free_bytes` | Gauge | `pool` | Free disk space in bytes |
+| `dblab_disk_used_bytes` | Gauge | `pool` | Used disk space in bytes |
+| `dblab_disk_used_by_snapshots_bytes` | Gauge | `pool` | Disk space used by snapshots in bytes |
+| `dblab_disk_used_by_clones_bytes` | Gauge | `pool` | Disk space used by clones in bytes |
+| `dblab_disk_data_size_bytes` | Gauge | `pool` | Size of the data directory in bytes |
+| `dblab_disk_compress_ratio` | Gauge | `pool` | Compression ratio of the filesystem (ZFS) |
+| `dblab_pool_status` | Gauge | `pool`, `mode`, `status` | Status of the pool (1=active for status) |
+
+### Clone metrics (aggregate)
+
+| Metric Name | Type | Labels | Description |
+|-------------|------|--------|-------------|
+| `dblab_clones_total` | Gauge | - | Total number of clones |
+| `dblab_clones_by_status` | Gauge | `status` | Number of clones by status |
+| `dblab_clone_max_age_seconds` | Gauge | - | Maximum age of any clone in seconds |
+| `dblab_clone_total_diff_size_bytes` | Gauge | - | Total extra disk space used by all clones (sum of diffs from snapshots) |
+| `dblab_clone_total_logical_size_bytes` | Gauge | - | Total logical size of all clone data |
+| `dblab_clone_total_cpu_usage_percent` | Gauge | - | Total CPU usage percentage across all clone containers |
+| `dblab_clone_avg_cpu_usage_percent` | Gauge | - | Average CPU usage percentage across all clone containers with valid data |
+| `dblab_clone_total_memory_usage_bytes` | Gauge | - | Total memory usage in bytes across all clone containers |
+| `dblab_clone_total_memory_limit_bytes` | Gauge | - | Total memory limit in bytes across all clone containers |
+| `dblab_clone_protected_count` | Gauge | - | Number of protected clones |
+
+### Snapshot metrics (aggregate)
+
+| Metric Name | Type | Labels | Description |
+|-------------|------|--------|-------------|
+| `dblab_snapshots_total` | Gauge | - | Total number of snapshots |
+| `dblab_snapshots_by_pool` | Gauge | `pool` | Number of snapshots by pool |
+| `dblab_snapshot_max_age_seconds` | Gauge | - | Maximum age of any snapshot in seconds |
+| `dblab_snapshot_total_physical_size_bytes` | Gauge | - | Total physical disk space used by all snapshots |
+| `dblab_snapshot_total_logical_size_bytes` | Gauge | - | Total logical size of all snapshot data |
+| `dblab_snapshot_max_data_lag_seconds` | Gauge | - | Maximum data lag of any snapshot in seconds |
+| `dblab_snapshot_total_num_clones` | Gauge | - | Total number of clones across all snapshots |
+
+### Branch metrics
+
+| Metric Name | Type | Labels | Description |
+|-------------|------|--------|-------------|
+| `dblab_branches_total` | Gauge | - | Total number of branches |
+
+### Dataset metrics
+
+| Metric Name | Type | Labels | Description |
+|-------------|------|--------|-------------|
+| `dblab_datasets_total` | Gauge | `pool` | Total number of datasets (slots) in the pool |
+| `dblab_datasets_available` | Gauge | `pool` | Number of available (non-busy) dataset slots for reuse |
+
+### Sync instance metrics (physical mode)
+
+These metrics are only available when DBLab is running in physical mode with a sync instance enabled. They track the WAL replay status of the sync instance.
+
+| Metric Name | Type | Labels | Description |
+|-------------|------|--------|-------------|
+| `dblab_sync_status` | Gauge | `status` | Status of the sync instance (1=active for status code) |
+| `dblab_sync_wal_lag_seconds` | Gauge | - | WAL replay lag in seconds for the sync instance |
+| `dblab_sync_uptime_seconds` | Gauge | - | Uptime of the sync instance in seconds |
+| `dblab_sync_last_replayed_timestamp` | Gauge | - | Unix timestamp of the last replayed transaction |
+
+### Observability metrics
+
+These metrics help monitor the health of the metrics collection system itself.
+
+| Metric Name | Type | Labels | Description |
+|-------------|------|--------|-------------|
+| `dblab_scrape_success_timestamp` | Gauge | - | Unix timestamp of last successful metrics collection |
+| `dblab_scrape_duration_seconds` | Gauge | - | Duration of last metrics collection in seconds |
+| `dblab_scrape_errors_total` | Counter | - | Total number of errors during metrics collection |
+
+## Prometheus configuration
+
+Add the following to your `prometheus.yml`:
+
+```yaml
+scrape_configs:
+  - job_name: 'dblab'
+    static_configs:
+      - targets: [':']
+    metrics_path: /metrics
+```
+
+Replace `` and `` with your DBLab instance's host and API port (default: `2345`).
+
+## Example queries
+
+### Free disk space percentage
+
+```promql
+100 * dblab_disk_free_bytes / dblab_disk_total_bytes
+```
+
+### Number of active clones
+
+```promql
+dblab_clones_total
+```
+
+### Maximum clone age in hours
+
+```promql
+dblab_clone_max_age_seconds / 3600
+```
+
+### Data freshness (lag from current time)
+
+```promql
+dblab_snapshot_max_data_lag_seconds / 60
+```
+
+### WAL replay lag (physical mode)
+
+```promql
+dblab_sync_wal_lag_seconds
+```
+
+## Alerting examples
+
+### Low disk space alert
+
+```yaml
+- alert: DBLabLowDiskSpace
+  expr: (dblab_disk_free_bytes / dblab_disk_total_bytes) * 100 < 20
+  for: 5m
+  labels:
+    severity: warning
+  annotations:
+    summary: "DBLab low disk space"
+    description: "DBLab pool {{ $labels.pool }} has less than 20% free disk space"
+```
+
+### Stale snapshot alert
+
+```yaml
+- alert: DBLabStaleSnapshot
+  expr: dblab_snapshot_max_data_lag_seconds > 86400
+  for: 10m
+  labels:
+    severity: warning
+  annotations:
+    summary: "DBLab snapshot data is stale"
+    description: "DBLab snapshot data is more than 24 hours old"
+```
+
+### High clone count alert
+
+```yaml
+- alert: DBLabHighCloneCount
+  expr: dblab_clones_total > 50
+  for: 5m
+  labels:
+    severity: warning
+  annotations:
+    summary: "DBLab has many clones"
+    description: "DBLab has {{ $value }} clones running"
+```
+
+### High WAL replay lag alert (physical mode)
+
+```yaml
+- alert: DBLabHighWALLag
+  expr: dblab_sync_wal_lag_seconds > 3600
+  for: 10m
+  labels:
+    severity: warning
+  annotations:
+    summary: "DBLab sync instance has high WAL lag"
+    description: "DBLab sync instance WAL replay is {{ $value | humanizeDuration }} behind"
+```
+
+## OpenTelemetry integration
+
+DBLab metrics can be exported to OpenTelemetry-compatible backends using the OpenTelemetry Collector. This allows you to send metrics to Grafana Cloud, Datadog, New Relic, and other observability platforms.
+
+### Quick start
+
+1. Install the OpenTelemetry Collector:
+   ```bash
+   docker pull otel/opentelemetry-collector-contrib:latest
+   ```
+
+2. Copy the example configuration from the DBLab Engine repository:
+   ```bash
+   cp engine/configs/otel-collector.example.yml otel-collector.yml
+   ```
+
+3. Edit `otel-collector.yml` to configure your backend:
+   ```yaml
+   exporters:
+     otlp:
+       endpoint: "your-otlp-endpoint:4317"
+       headers:
+         Authorization: "Bearer "
+   ```
+
+4. Run the collector:
+   ```bash
+   docker run -v $(pwd)/otel-collector.yml:/etc/otelcol/config.yaml \
+     -p 4317:4317 -p 8889:8889 \
+     otel/opentelemetry-collector-contrib:latest
+   ```
+
+### Supported backends
+
+The OTel Collector can export to:
+- **Grafana Cloud** — use OTLP exporter with Grafana Cloud endpoint
+- **Datadog** — use the datadog exporter
+- **New Relic** — use OTLP exporter with New Relic endpoint
+- **Prometheus Remote Write** — use prometheusremotewrite exporter
+- **AWS CloudWatch** — use awsemf exporter
+- **Any OTLP-compatible backend**
diff --git a/docs/database-lab/supported-databases.md b/docs/database-lab/supported-databases.md
index 936b119b..4cb63d78 100644
--- a/docs/database-lab/supported-databases.md
+++ b/docs/database-lab/supported-databases.md
@@ -4,7 +4,6 @@ title: PostgreSQL versions and extensions supported in DBLab Engine
 
 ## PostgreSQL versions
 Currently, DBLab Engine fully supports the following [PostgreSQL major versions](https://www.postgresql.org/support/versioning/):
-- 9.6 (released: 2016-09-29; EOL: 2021-11-11)
 - 10 (released: 2017-10-05; EOL: 2022-11-10)
 - 11 (released: 2018-10-18; EOL: 2023-11-09)
 - 12 (released: 2019-10-03; EOL: 2024-11-14)
diff --git a/docs/dblab-howtos/administration/ci-observer-postgres-log-masking.md b/docs/dblab-howtos/administration/ci-observer-postgres-log-masking.md
index 40a99815..a29d7d72 100644
--- a/docs/dblab-howtos/administration/ci-observer-postgres-log-masking.md
+++ b/docs/dblab-howtos/administration/ci-observer-postgres-log-masking.md
@@ -14,7 +14,7 @@ keywords:
 ## Configure masking for PostgreSQL log
 When Database Lab's CI Observer is used for automated testing of database migrations, it stores PostgreSQL log in DBLab Platform's centralized storage. You can optionally configure masking rules for sensitive data in the PostgreSQL log. Such rules will be continuously applied before sending any PostgreSQL log entries to the Platform's storage.
 
-You can define masking rules in the form of regular expressions. To do it, open the DBLab Engine configuration file (usually, `~/.dblab/engine/configs/server.yml`; see config file examples [here](https://gitlab.com/postgres-ai/database-lab/-/tree/v4.0.4/engine/configs)) and define subsection `replacementRules` in the section `replacementRules`. A basic example:
+You can define masking rules in the form of regular expressions. To do it, open the DBLab Engine configuration file (usually, `~/.dblab/engine/configs/server.yml`; see config file examples [here](https://gitlab.com/postgres-ai/database-lab/-/tree/v4.1.0/engine/configs)) and define subsection `replacementRules` in the section `replacementRules`. A basic example:
 ```yaml
 observer:
   replacementRules:
diff --git a/docs/dblab-howtos/administration/data/custom.md b/docs/dblab-howtos/administration/data/custom.md
index 4e1052cf..1b098073 100644
--- a/docs/dblab-howtos/administration/data/custom.md
+++ b/docs/dblab-howtos/administration/data/custom.md
@@ -16,7 +16,7 @@ To set up it you need to use following jobs:
 - [physicalSnapshot](/docs/reference-guides/database-lab-engine-configuration-reference#job-physicalsnapshot)
 
 ### Options
-Copy the example configuration file [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.4/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`. For demo purposes we've used `pg_basebackup` tool, but you can use any tool suitable for the task. Check and update the following options:
+Copy the example configuration file [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.0/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`. For demo purposes we've used `pg_basebackup` tool, but you can use any tool suitable for the task. Check and update the following options:
 - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine
 - Set connection options in `physicalRestore:options:envs`, based on your tool
 - Set PostgreSQL commands in `physicalRestore:options:customTool`:
@@ -43,7 +43,7 @@ sudo docker run \
   --env DOCKER_API_VERSION=1.39 \
   --detach \
   --restart on-failure \
-  postgresai/dblab-server:4.0.4
+  postgresai/dblab-server:4.1.0
 ```
 
 :::info
diff --git a/docs/dblab-howtos/administration/data/dump.md b/docs/dblab-howtos/administration/data/dump.md
index 37bf4cd5..46bb29c6 100644
--- a/docs/dblab-howtos/administration/data/dump.md
+++ b/docs/dblab-howtos/administration/data/dump.md
@@ -15,7 +15,7 @@ In order to set up DBLab Engine to automatically get the data from database usin
 - [logicalSnapshot](/docs/reference-guides/database-lab-engine-configuration-reference#job-logicalsnapshot)
 
 ### Options
-Copy the contents of configuration example [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.4/engine/configs/config.example.logical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options:
+Copy the contents of configuration example [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.0/engine/configs/config.example.logical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options:
 - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine
 - Set connection options in `retrieval:spec:logicalDump:options:source:connection`:
     - `dbname`: database name to connect to
@@ -44,7 +44,7 @@ sudo docker run \
   --env DOCKER_API_VERSION=1.39 \
   --detach \
   --restart on-failure \
-  postgresai/dblab-server:4.0.4
+  postgresai/dblab-server:4.1.0
 ```
 
 You can use PGPASSWORD env to set the password.
diff --git a/docs/dblab-howtos/administration/data/pg_basebackup.md b/docs/dblab-howtos/administration/data/pg_basebackup.md
index 538ce47f..a3d0d23e 100644
--- a/docs/dblab-howtos/administration/data/pg_basebackup.md
+++ b/docs/dblab-howtos/administration/data/pg_basebackup.md
@@ -14,7 +14,7 @@ In order to set up DBLab Engine to automatically get the data from database usin
 - [physicalSnapshot](/docs/reference-guides/database-lab-engine-configuration-reference#job-physicalsnapshot)
 
 ### Options
-Copy the contents of configuration example [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.4/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options:
+Copy the contents of configuration example [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.0/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options:
 - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine
 - Set connection options in `physicalRestore:options:envs`:
     - `PGUSER`: database user name
@@ -44,7 +44,7 @@ sudo docker run \
   --env DOCKER_API_VERSION=1.39 \
   --detach \
   --restart on-failure \
-  postgresai/dblab-server:4.0.4
+  postgresai/dblab-server:4.1.0
 ```
 
 :::info
diff --git a/docs/dblab-howtos/administration/data/pgbackrest.md b/docs/dblab-howtos/administration/data/pgbackrest.md
index 2f4459e9..f88a5d21 100644
--- a/docs/dblab-howtos/administration/data/pgbackrest.md
+++ b/docs/dblab-howtos/administration/data/pgbackrest.md
@@ -16,7 +16,7 @@ In order to configure DLE to automatically restore the database using the [pgBac
 - [physicalSnapshot](/docs/reference-guides/database-lab-engine-configuration-reference#job-physicalsnapshot)
 
 ### Options
-Copy the example configuration file [`config.example.physical_pgbackrest.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.4/engine/configs/config.example.physical_pgbackrest.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options:
+Copy the example configuration file [`config.example.physical_pgbackrest.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.0/engine/configs/config.example.physical_pgbackrest.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options:
 - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine
 - Set repository options in `physicalRestore:options:envs`:
     - pgBackRest allows using environment variables instead of command-line options (see [pgBackRest docs](https://pgbackrest.org/command.html#introduction)):
@@ -70,7 +70,7 @@ sudo docker run \
   --env DOCKER_API_VERSION=1.39 \
   --detach \
   --restart on-failure \
-  postgresai/dblab-server:4.0.4
+  postgresai/dblab-server:4.1.0
 ```
 
 :::info
diff --git a/docs/dblab-howtos/administration/data/rds-refresh.md b/docs/dblab-howtos/administration/data/rds-refresh.md
new file mode 100644
index 00000000..e882228a
--- /dev/null
+++ b/docs/dblab-howtos/administration/data/rds-refresh.md
@@ -0,0 +1,234 @@
+---
+title: "Data source: RDS/Aurora refresh"
+sidebar_label: "RDS/Aurora refresh"
+---
+
+:::note
+This component was added in DBLab Engine 4.1.
+:::
+
+The RDS/Aurora refresh tool provides an alternative approach to refreshing DBLab data from Amazon RDS and Aurora databases. Instead of running `pg_dump` directly against production, it dumps from a **temporary RDS clone**, leaving production untouched.
+
+## Why use this approach?
+
+Running `pg_dump` directly against a production database can be problematic:
+- **Holds xmin horizon for hours** leading to bloat accumulation
+- **Creates load on production** for the duration of the dump
+- **Requires direct network access** to the production database
+
+The RDS/Aurora refresh tool avoids all of these issues:
+
+```
+Production --> RDS Snapshot --> RDS Clone --> pg_dump --> DBLab
+  (automated)                  (temporary)
+```
+
+## Quick start
+
+### 1. Configure
+
+Create a configuration file:
+
+```yaml
+source:
+  type: rds                    # or "aurora-cluster"
+  identifier: my-prod-db
+  dbName: postgres
+  username: postgres
+  password: ${DB_PASSWORD}
+
+clone:
+  instanceClass: db.t3.medium
+  securityGroups: [sg-xxx]     # must allow DBLab inbound
+
+dblab:
+  apiEndpoint: https://dblab:2345
+  token: ${DBLAB_TOKEN}
+
+aws:
+  region: us-east-1
+```
+
+### 2. Test
+
+```bash
+docker run --rm \
+  -v $PWD/config.yaml:/config.yaml \
+  -e DB_PASSWORD -e DBLAB_TOKEN -e AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY \
+  postgresai/rds-refresh -config /config.yaml -dry-run
+```
+
+### 3. Run
+
+```bash
+docker run --rm \
+  -v $PWD/config.yaml:/config.yaml \
+  -e DB_PASSWORD -e DBLAB_TOKEN -e AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY \
+  postgresai/rds-refresh -config /config.yaml
+```
+
+## Configuration reference
+
+| Field | Required | Description |
+|-------|----------|-------------|
+| `source.type` | Yes | `rds` or `aurora-cluster` |
+| `source.identifier` | Yes | RDS instance or Aurora cluster identifier |
+| `source.dbName` | Yes | Database name |
+| `source.username` | Yes | Database user |
+| `source.password` | Yes | Password (supports `${ENV_VAR}` syntax) |
+| `clone.instanceClass` | Yes | RDS clone instance type (e.g., `db.t3.medium`) |
+| `clone.securityGroups` | No | Security groups allowing DBLab access |
+| `clone.subnetGroup` | No | DB subnet group |
+| `clone.maxAge` | No | Max age before clone is considered stale (default: `48h`) |
+| `dblab.apiEndpoint` | Yes | DBLab API URL |
+| `dblab.token` | Yes | DBLab verification token |
+| `dblab.timeout` | No | Max refresh wait (default: `4h`) |
+| `aws.region` | Yes | AWS region |
+
+## IAM policy
+
+The AWS user or role running the tool needs these permissions:
+
+```json
+{
+  "Version": "2012-10-17",
+  "Statement": [
+    {
+      "Effect": "Allow",
+      "Action": [
+        "rds:DescribeDBSnapshots",
+        "rds:DescribeDBClusterSnapshots",
+        "rds:DescribeDBInstances",
+        "rds:DescribeDBClusters"
+      ],
+      "Resource": "*"
+    },
+    {
+      "Effect": "Allow",
+      "Action": [
+        "rds:RestoreDBInstanceFromDBSnapshot",
+        "rds:RestoreDBClusterFromSnapshot",
+        "rds:CreateDBInstance",
+        "rds:DeleteDBInstance",
+        "rds:DeleteDBCluster",
+        "rds:AddTagsToResource",
+        "rds:ModifyDBInstance",
+        "rds:ModifyDBCluster"
+      ],
+      "Resource": [
+        "arn:aws:rds:*:ACCOUNT:db:dblab-refresh-*",
+        "arn:aws:rds:*:ACCOUNT:cluster:dblab-refresh-*",
+        "arn:aws:rds:*:ACCOUNT:snapshot:*",
+        "arn:aws:rds:*:ACCOUNT:cluster-snapshot:*",
+        "arn:aws:rds:*:ACCOUNT:subgrp:*",
+        "arn:aws:rds:*:ACCOUNT:pg:*"
+      ]
+    }
+  ]
+}
+```
+
+Replace `ACCOUNT` with your AWS account ID.
+
+## DBLab setup
+
+DBLab must run in **logical mode**. The tool updates config via API (no SSH required).
+
+```yaml
+retrieval:
+  refresh:
+    timetable: ""  # disable built-in scheduler — rds-refresh handles timing
+  jobs: [logicalDump, logicalRestore, logicalSnapshot]
+  spec:
+    logicalDump:
+      options:
+        source:
+          connection:
+            host: placeholder  # updated by rds-refresh
+            port: 5432
+```
+
+## Scheduling
+
+### Cron (weekly, Sunday 2 AM)
+
+```bash
+0 2 * * 0 docker run --rm -v /etc/dblab/config.yaml:/config.yaml \
+  --env-file /etc/dblab/env postgresai/rds-refresh -config /config.yaml
+```
+
+### Kubernetes CronJob
+
+```yaml
+apiVersion: batch/v1
+kind: CronJob
+metadata:
+  name: dblab-refresh
+spec:
+  schedule: "0 2 * * 0"
+  concurrencyPolicy: Forbid
+  jobTemplate:
+    spec:
+      template:
+        spec:
+          serviceAccountName: dblab-refresh  # IRSA
+          containers:
+          - name: refresh
+            image: postgresai/rds-refresh
+            args: ["-config", "/config/config.yaml"]
+            envFrom:
+            - secretRef:
+                name: dblab-refresh-secrets
+            volumeMounts:
+            - name: config
+              mountPath: /config
+          volumes:
+          - name: config
+            configMap:
+              name: dblab-refresh-config
+          restartPolicy: Never
+```
+
+## How it works
+
+1. **Startup cleanup**: check for orphaned clones from previous runs
+2. Check DBLab health
+3. Find latest RDS snapshot
+4. Create RDS clone from RDS snapshot (`dblab-refresh-YYYYMMDD-HHMMSS`)
+5. Wait for RDS clone to become available (~15 min)
+6. Update DBLab config via API to point to the temporary clone
+7. Trigger refresh, wait for completion
+8. Delete RDS clone (always, even on error)
+
+## Orphan protection
+
+The tool has multiple layers of protection against orphaned RDS clones:
+
+1. **Defer cleanup**: clone is deleted when process exits normally
+2. **Signal handlers**: catches SIGINT, SIGTERM, SIGHUP (SSH disconnect)
+3. **State file**: tracks active clone in `./meta/rds-refresh.state`
+4. **Tag scan**: finds clones by `ManagedBy=dblab-rds-refresh` tag
+
+### Manual cleanup
+
+```bash
+# Dry run — see what would be deleted
+rds-refresh cleanup -config config.yaml -dry-run
+
+# Delete stale clones older than 24 hours
+rds-refresh cleanup -config config.yaml -max-age 24h
+```
+
+## Networking
+
+The RDS clone must be reachable from DBLab on port 5432. Use the same VPC or VPC peering.
+
+## Cost
+
+RDS clone cost is only incurred while running (~2-5 hours):
+- `db.t3.medium`: ~$0.35
+- `db.r5.large`: ~$1.20
+
+## Related
+- [Data source: AWS RDS (direct)](/docs/dblab-howtos/administration/data/rds)
+- [Logical full refresh](/docs/dblab-howtos/administration/logical-full-refresh)
diff --git a/docs/dblab-howtos/administration/data/rds.md b/docs/dblab-howtos/administration/data/rds.md
index f45c200a..250b13f1 100644
--- a/docs/dblab-howtos/administration/data/rds.md
+++ b/docs/dblab-howtos/administration/data/rds.md
@@ -25,7 +25,7 @@ If you want to use **IAM database authentication**, read how to enable it [here]
 You need to know the **master password**. If you lost the password it can be reset. Read how to reset it [here](https://aws.amazon.com/premiumsupport/knowledge-center/reset-master-user-password-rds/).
 :::
 
-Copy the contents of configuration example [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.4/engine/configs/config.example.logical_generic.yml) from the DBLab Engine repository to `~/.dblab/engine/configs/server.yml` and update the following options:
+Copy the contents of configuration example [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.0/engine/configs/config.example.logical_generic.yml) from the DBLab Engine repository to `~/.dblab/engine/configs/server.yml` and update the following options:
 - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine
 - Set connection options in `retrieval:spec:logicalDump:options:source:connection`:
     - `dbname`: database name to connect to
@@ -54,7 +54,7 @@ sudo docker run \
   --env DOCKER_API_VERSION=1.39 \
   --detach \
   --restart on-failure \
-  postgresai/dblab-server:4.0.4
+  postgresai/dblab-server:4.1.0
 ```
 
 :::info
@@ -80,7 +80,7 @@ Alternatively, you can add `AmazonRDSFullAccess`, `IAMFullAccess` policies to an
 :::
 
 ### Set up and run DBLab Engine
-Copy the contents of configuration example [`config.example.logical_rds_iam.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.4/engine/configs/config.example.logical_rds_iam.yml) from the DBLab Engine repository to `~/.dblab/engine/configs/server.yml` and update the following options:
+Copy the contents of configuration example [`config.example.logical_rds_iam.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.0/engine/configs/config.example.logical_rds_iam.yml) from the DBLab Engine repository to `~/.dblab/engine/configs/server.yml` and update the following options:
 - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine
 - Set connection options `retrieval:spec:logicalDump:options:source:connection`:
     - `dbname`: database name to connect to
@@ -120,7 +120,7 @@ sudo docker run \
   --env DOCKER_API_VERSION=1.39 \
   --detach \
   --restart on-failure \
-  postgresai/dblab-server:4.0.4
+  postgresai/dblab-server:4.1.0
 ```
 
 :::info
diff --git a/docs/dblab-howtos/administration/data/rsync.md b/docs/dblab-howtos/administration/data/rsync.md
index 9e95b9a5..19755155 100644
--- a/docs/dblab-howtos/administration/data/rsync.md
+++ b/docs/dblab-howtos/administration/data/rsync.md
@@ -14,7 +14,7 @@ In order to set up DBLab Engine to automatically get the data from database usin
 - [physicalSnapshot](/docs/reference-guides/database-lab-engine-configuration-reference#job-physicalsnapshot)
 
 ### Options
-Copy the example configuration file [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.4/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options:
+Copy the example configuration file [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.0/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options:
 - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine
 - Set connection options in `physicalRestore:options:envs`:
     - `PGUSER`: database user name
@@ -54,7 +54,7 @@ sudo docker run \
   --env DOCKER_API_VERSION=1.39 \
   --detach \
   --restart on-failure \
-  postgresai/dblab-server:4.0.4
+  postgresai/dblab-server:4.1.0
 ```
 
 :::info
diff --git a/docs/dblab-howtos/administration/data/wal-g.md b/docs/dblab-howtos/administration/data/wal-g.md
index e8f15412..e94f3a60 100644
--- a/docs/dblab-howtos/administration/data/wal-g.md
+++ b/docs/dblab-howtos/administration/data/wal-g.md
@@ -14,7 +14,7 @@ In order to set up DBLab Engine to automatically get the data from database usin
 - [physicalSnapshot](/docs/reference-guides/database-lab-engine-configuration-reference#job-physicalsnapshot)
 
 ### Options
-Copy the example configuration file [`config.example.physical_walg.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.4/engine/configs/config.example.physical_walg.yml) from the DBLab Engine repository to `~/.dblab/engine/configs/server.yml` and update the following options:
+Copy the example configuration file [`config.example.physical_walg.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.0/engine/configs/config.example.physical_walg.yml) from the DBLab Engine repository to `~/.dblab/engine/configs/server.yml` and update the following options:
 - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine
 - Set connection options in `physicalRestore:options:envs`:
     - Use WAL-G environment variables to configure the job, see the [WAL-G configuration reference](https://github.com/wal-g/wal-g#configuration)
@@ -50,7 +50,7 @@ sudo docker run \
   --env DOCKER_API_VERSION=1.39 \
   --detach \
   --restart on-failure \
-  postgresai/dblab-server:4.0.4
+  postgresai/dblab-server:4.1.0
 ```
 
 :::info
diff --git a/docs/dblab-howtos/administration/engine-manage.md b/docs/dblab-howtos/administration/engine-manage.md
index 2934e7ad..21d5dfd2 100644
--- a/docs/dblab-howtos/administration/engine-manage.md
+++ b/docs/dblab-howtos/administration/engine-manage.md
@@ -16,7 +16,7 @@ All YAML features can be used, including anchors and aliases, to help you conven
 
 For instance, you can define a binding with `&` and then refer to it using an alias denoted by `*`.
 
-See config examples [here](https://gitlab.com/postgres-ai/database-lab/-/tree/v4.0.4/engine/configs)
+See config examples [here](https://gitlab.com/postgres-ai/database-lab/-/tree/v4.1.0/engine/configs)
 :::
 
 After configuring DBLab Engine, run the following command:
@@ -37,7 +37,7 @@ sudo docker run \
   --volume /lib/modules:/lib/modules:ro \
   --volume /proc:/host_proc:ro \
   --env DOCKER_API_VERSION=1.41 \
-  postgresai/dblab-server:4.0.4
+  postgresai/dblab-server:4.1.0
 ``` 
 
 :::info
@@ -105,7 +105,7 @@ If you need to save the logs in a file:
 sudo docker logs dblab_server 2>&1 | gzip > dblab_server.log.gz
 ```
 
-If you want to see more details, enable debug mode setting option `debug` to `true` (see [example](https://gitlab.com/postgres-ai/database-lab/-/tree/v4.0.4/engine/configs)). Next, follow  [the reconfiguration guidelines](#reconfigure-dblab-engine) to apply the change.
+If you want to see more details, enable debug mode setting option `debug` to `true` (see [example](https://gitlab.com/postgres-ai/database-lab/-/tree/v4.1.0/engine/configs)). Next, follow  [the reconfiguration guidelines](#reconfigure-dblab-engine) to apply the change.
 
 :::caution
 When debug mode is turned on, logs may contain sensitive data such as API secret keys for the backup system.
diff --git a/docs/dblab-howtos/administration/install-dle-manually.md b/docs/dblab-howtos/administration/install-dle-manually.md
index 41900da3..d0a0d0b4 100644
--- a/docs/dblab-howtos/administration/install-dle-manually.md
+++ b/docs/dblab-howtos/administration/install-dle-manually.md
@@ -242,11 +242,11 @@ sudo docker stop dblab_pg_initdb
 sudo docker rm dblab_pg_initdb
 ```
 
-Now, we need to take care of DBLab Engine configuration. Copy the contents of configuration example [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.4/engine/configs/config.example.logical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`:
+Now, we need to take care of DBLab Engine configuration. Copy the contents of configuration example [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.0/engine/configs/config.example.logical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`:
 ```bash
 mkdir -p ~/.dblab/engine/configs
 
-curl -fsSL https://gitlab.com/postgres-ai/database-lab/-/raw/v4.0.4/engine/configs/config.example.logical_generic.yml \
+curl -fsSL https://gitlab.com/postgres-ai/database-lab/-/raw/v4.1.0/engine/configs/config.example.logical_generic.yml \
   --output ~/.dblab/engine/configs/server.yml
 ```
 
@@ -263,11 +263,11 @@ Open `~/.dblab/engine/configs/server.yml` and edit the following options:
 
 If you want to try Database Lab for an existing database, you need to copy the data to PostgreSQL data directory on the Database Lab server, to the directory `/var/lib/dblab/dblab_pool/data`. This step is called "thick cloning". It only needs to be completed once. There are several options to physically copy the data directory. Here we will use the standard PostgreSQL tool, `pg_basebackup`. However, we are not going to use it directly (although, it is possible) – we will specify its options in the DBLab Engine configuration file.
 
-First, copy the example configuration file [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.4/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`:
+First, copy the example configuration file [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.0/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`:
 ```bash
 mkdir -p ~/.dblab/engine/configs
 
-curl -fsSL https://gitlab.com/postgres-ai/database-lab/-/raw/v4.0.4/engine/configs/config.example.physical_generic.yml \
+curl -fsSL https://gitlab.com/postgres-ai/database-lab/-/raw/v4.1.0/engine/configs/config.example.physical_generic.yml \
   --output ~/.dblab/engine/configs/server.yml
 ```
 
@@ -288,11 +288,11 @@ If you want to try Database Lab for an existing database, you need to copy the d
 
 Here we will configure DBLab Engine to use a "logical" method of thick cloning, dump/restore.
 
-First, copy the example configuration file [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.0.4/engine/configs/config.example.logical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`:
+First, copy the example configuration file [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.0/engine/configs/config.example.logical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`:
 ```bash
 mkdir -p ~/.dblab/engine/configs
 
-curl -fsSL https://gitlab.com/postgres-ai/database-lab/-/raw/v4.0.4/engine/configs/config.example.logical_generic.yml \
+curl -fsSL https://gitlab.com/postgres-ai/database-lab/-/raw/v4.1.0/engine/configs/config.example.logical_generic.yml \
   --output ~/.dblab/engine/configs/server.yml
 ```
 
@@ -340,7 +340,7 @@ sudo docker run \
   --env DOCKER_API_VERSION=1.39 \
   --detach \
   --restart on-failure \
-  postgresai/dblab-server:4.0.4
+  postgresai/dblab-server:4.1.0
 ```
 
 
@@ -363,7 +363,7 @@ sudo docker run \
   --env DOCKER_API_VERSION=1.39 \
   --detach \
   --restart on-failure \
-  postgresai/dblab-server:4.0.4
+  postgresai/dblab-server:4.1.0
 ```
 
 
@@ -386,7 +386,7 @@ sudo docker run \
   --env DOCKER_API_VERSION=1.39 \
   --detach \
   --restart on-failure \
-  postgresai/dblab-server:4.0.4
+  postgresai/dblab-server:4.1.0
 ```
 
 
diff --git a/docs/dblab-howtos/cloning/clone-protection.md b/docs/dblab-howtos/cloning/clone-protection.md
index 92acdd0a..28fae330 100644
--- a/docs/dblab-howtos/cloning/clone-protection.md
+++ b/docs/dblab-howtos/cloning/clone-protection.md
@@ -13,6 +13,35 @@ DBLab Engine automatically deletes idle unprotected clones after the idle interv
 Please be careful: abandoned protected clones may cause out-of-disk-space events. Check disk space on a daily basis and delete protected clones once the work is done.
 :::
 
+## Protection leases (DBLab Engine 4.1+)
+
+Starting with DBLab Engine 4.1, clone protection supports **time-limited leases**. Instead of protecting a clone indefinitely, you can specify a duration after which the protection automatically expires. This prevents abandoned protected clones from consuming disk space indefinitely.
+
+### How it works
+
+- When a clone is protected with a lease, the `protectedTill` field indicates when protection expires
+- After expiration, the clone becomes unprotected and subject to normal idle deletion rules
+- The default lease duration and maximum allowed duration are configurable
+
+### Configuration
+
+Configure protection lease defaults in the `cloning` section of `server.yml`:
+
+```yaml
+cloning:
+  accessHost: "localhost"
+  maxIdleMinutes: 120
+  protectionLeaseDurationMinutes: 1440   # Default: 1 day
+  protectionMaxDurationMinutes: 10080    # Maximum: 7 days
+  protectionExpiryWarningMinutes: 1440   # Warning webhook 24 hours before expiry
+```
+
+| Parameter | Default | Description |
+|-----------|---------|-------------|
+| `protectionLeaseDurationMinutes` | 1440 (1 day) | Default lease duration when `--protected true` is used. `0` means infinite protection. |
+| `protectionMaxDurationMinutes` | 10080 (7 days) | Maximum duration users can request. `0` means no limit. |
+| `protectionExpiryWarningMinutes` | 1440 (1 day) | Send webhook warning this many minutes before expiry. |
+
 ## GUI
 From the **Database Lab clone** page enable or disable the **Enable deletion protection** checkbox.
   ![DBLab Engine page / Create clone](/assets/guides/clone-protection-1.png)
@@ -21,18 +50,23 @@ From the **Database Lab clone** page enable or disable the **Enable deletion pro
 Before you run any commands, install Database Lab CLI and initialize configuration. For more information, see [Install and initialize Database Lab CLI](/docs/dblab-howtos/cli/cli-install-init).
 
 ### Reference
+- Command [`dblab clone create`](/docs/reference-guides/dblab-client-cli-reference#subcommand-create)
 - Command [`dblab clone update`](/docs/reference-guides/dblab-client-cli-reference#subcommand-update)
 
-### Protect a clone
+### Protect a clone with default lease duration
 ```bash
-dblab clone update --protected CLONE_ID
+dblab clone update --protected true CLONE_ID
 ```
 
+### Protect a clone for a specific duration (in minutes)
+```bash
+# Protect for 8 hours (480 minutes)
+dblab clone update --protected 480 CLONE_ID
 ```
-{
-    "id": "CLONE_ID",
-    "protected": true,
-}
+
+### Protect a clone indefinitely (no expiry)
+```bash
+dblab clone update --protected 0 CLONE_ID
 ```
 
 ### Unprotect a clone
@@ -40,14 +74,53 @@ dblab clone update --protected CLONE_ID
 dblab clone update CLONE_ID
 ```
 
+### Protect at creation time
+```bash
+# With default lease duration
+dblab clone create --username user --password pass --protected true --id my-clone
+
+# With custom duration (2 hours)
+dblab clone create --username user --password pass --protected 120 --id my-clone
+```
+
+## API
+
+### Protect with lease duration
+```bash
+curl -X PATCH \
+  -H "Verification-Token: YOUR_TOKEN" \
+  -H "Content-Type: application/json" \
+  -d '{"protected": true, "protectionDurationMinutes": 480}' \
+  http://localhost:2345/clone/CLONE_ID
+```
+
+### Create a protected clone
+```bash
+curl -X POST \
+  -H "Verification-Token: YOUR_TOKEN" \
+  -H "Content-Type: application/json" \
+  -d '{
+    "id": "my-clone",
+    "protected": true,
+    "protectionDurationMinutes": 1440,
+    "db": {"username": "user", "password": "pass"}
+  }' \
+  http://localhost:2345/clone
 ```
+
+The response includes `protectedTill` showing when protection expires:
+```json
 {
-    "id": "CLONE_ID",
-    "protected": false,
+    "id": "my-clone",
+    "protected": true,
+    "protectedTill": "2026-04-11T14:00:00Z",
+    "metadata": {
+        "protectionLeaseDurationMinutes": 1440,
+        "protectionMaxDurationMinutes": 10080
+    }
 }
 ```
 
-Also, clones can marked as protected at creation time. See [Create a clone](/docs/dblab-howtos/cloning/create-clone).
-
 ## Related
 - Guide: [Destroy a clone](/docs/dblab-howtos/cloning/destroy-clone)
+- Reference: [Cloning configuration](/docs/reference-guides/database-lab-engine-configuration-reference#section-cloning-thin-cloning-policies)
diff --git a/docs/reference-guides/database-lab-engine-api-reference.md b/docs/reference-guides/database-lab-engine-api-reference.md
index b2ade16a..d692e3f0 100644
--- a/docs/reference-guides/database-lab-engine-api-reference.md
+++ b/docs/reference-guides/database-lab-engine-api-reference.md
@@ -16,7 +16,83 @@ DBLab API (DLE API) is a REST API. It can be used in multiple ways:
 - indirectly, in browser: [DBLab UI](https://postgres.ai/docs/database-lab/user-interface), being a React application, speaks to the DLE API as well
 
 DBLab API reference documentation is available at the following locations:
-- [DLE 3.5.x API Reference](https://dblab.readme.io/v3.5.0/)
+- [DBLab 4.1.x API Reference](https://dblab.readme.io/v4.1.0/)
 - [DBLab 4.0.x API Reference](https://dblab.readme.io/v4.0.0/)
+- [DLE 3.5.x API Reference](https://dblab.readme.io/v3.5.0/)
 
 The references are published using the comprehensive ReadMe service, equipped with a developer dashboard and provides code snippets in numerous languages.
+
+## Authentication
+
+All API endpoints (except `/healthz` and `/metrics`) require the `Verification-Token` header:
+
+```bash
+curl -H "Verification-Token: YOUR_TOKEN" http://localhost:2345/status
+```
+
+## Endpoint summary
+
+### Instance
+
+| Method | Path | Description |
+|--------|------|-------------|
+| GET | `/status` | Instance status, info, and list of clones |
+| GET | `/healthz` | Health check (no auth required) |
+| GET | `/metrics` | Prometheus metrics (no auth required, DLE 4.1+) |
+| GET | `/instance/retrieval` | Data refresh status |
+| POST | `/full-refresh` | Trigger full data refresh (DLE 4.0+) |
+
+### Clones
+
+| Method | Path | Description |
+|--------|------|-------------|
+| GET | `/clones` | List all clones (DLE 4.0+) |
+| POST | `/clone` | Create a clone |
+| GET | `/clone/{id}` | Retrieve a clone |
+| PATCH | `/clone/{id}` | Update a clone (protection status) |
+| DELETE | `/clone/{id}` | Delete a clone |
+| POST | `/clone/{id}/reset` | Reset a clone to a snapshot |
+
+### Snapshots
+
+| Method | Path | Description |
+|--------|------|-------------|
+| GET | `/snapshots` | List all snapshots |
+| POST | `/snapshot` | Create a snapshot (DLE 4.0+) |
+| DELETE | `/snapshot/{id}` | Delete a snapshot (DLE 4.0+) |
+| GET | `/branch/snapshot/{id}` | Retrieve a snapshot (DLE 4.0+) |
+| POST | `/branch/snapshot` | Create a snapshot from clone (DLE 4.0+) |
+
+### Branches (DLE 4.0+)
+
+| Method | Path | Description |
+|--------|------|-------------|
+| GET | `/branches` | List all branches |
+| POST | `/branch` | Create a branch |
+| DELETE | `/branch/{branchName}` | Delete a branch |
+| GET | `/branch/{branchName}/log` | Retrieve branch log (snapshot history) |
+
+### Observation (experimental)
+
+| Method | Path | Description |
+|--------|------|-------------|
+| POST | `/observation/start` | Start observation session |
+| POST | `/observation/stop` | Stop observation session |
+| GET | `/observation/summary/{clone_id}/{session_id}` | Get observation summary |
+| GET | `/observation/download` | Download observation artifact |
+
+### Admin
+
+| Method | Path | Description |
+|--------|------|-------------|
+| GET | `/admin/config` | Get config (JSON) |
+| POST | `/admin/config` | Set config |
+| GET | `/admin/config.yaml` | Get full config (YAML) |
+| POST | `/admin/test-db-source` | Test source database connection |
+| POST | `/admin/ws-auth` | WebSocket authentication |
+
+## New in DBLab Engine 4.1
+
+- **`/metrics` endpoint**: Prometheus metrics for monitoring (no authentication required). See [Prometheus monitoring](/docs/database-lab/prometheus-monitoring).
+- **Protection leases**: The `CreateClone` and `UpdateClone` requests now accept a `protectionDurationMinutes` field for time-limited clone protection. The `Clone` response includes `protectedTill` showing when protection expires. See [Clone protection](/docs/dblab-howtos/cloning/clone-protection).
+- **`clone_delete` webhook**: A new webhook trigger type for clone deletion events. See [Webhook configuration](/docs/reference-guides/database-lab-engine-configuration-reference#section-webhooks-webhook-configuration).
diff --git a/docs/reference-guides/database-lab-engine-configuration-reference.md b/docs/reference-guides/database-lab-engine-configuration-reference.md
index 01262666..b02e81da 100644
--- a/docs/reference-guides/database-lab-engine-configuration-reference.md
+++ b/docs/reference-guides/database-lab-engine-configuration-reference.md
@@ -10,7 +10,7 @@ DBLab Engine behavior can be controlled using the main configuration file that h
 DBLab Engine supports [YAML 1.2](https://yaml.org/spec/1.2/spec.html) including anchors, aliases, tags, map merging.
 :::
 
-Example config files can be found here: https://gitlab.com/postgres-ai/database-lab/-/tree/v4.0.4/engine/configs.
+Example config files can be found here: https://gitlab.com/postgres-ai/database-lab/-/tree/v4.1.0/engine/configs.
 
 You may store configuration files in any suitable location. The recommended location of configuration files for DBLab Engine is `~/.dblab/engine/configs`.
 
@@ -279,6 +279,12 @@ Options:
 Prepares a snapshot for logical restored PostgreSQL database.
 
 Options:
+- `databaseRename` (key-value, optional) - rename databases before finalizing the snapshot. Runs after `preprocessingScript`. Each entry maps the original database name to the new name. This is useful when you want clones to use different database names than production (e.g., renaming `mydb_prod` to `mydb_dev`). Supported since DBLab Engine 4.1.
+  ```yaml
+  databaseRename:
+    mydb_prod: mydb_dev
+    analytics_production: analytics_dblab
+  ```
 - `dataPatching` (key-value, optional) - defines SQL queries for data patching. This allows you to run custom SQL queries against the restored database before creating the snapshot, useful for data masking, test data setup, or schema modifications
   - `dockerImage` (string, optional) - specifies the Docker image to run a data patching container. Can be inherited using YAML anchors (see `databaseContainer` pattern above)
   - `containerConfig` (key-value, optional) - options to pass custom parameters to data patching container. Supports standard Docker options like memory/CPU limits
@@ -336,6 +342,12 @@ Options:
    - `configs` (key-value, optional) - applies PostgreSQL configuration parameters to the promotion instance
 - `sysctls` (key-value, optional) - allows configuring namespaced kernel parameters (sysctls) of Docker container for a promotion stage of taking a snapshot. See supported parameters: https://docs.docker.com/reference/cli/docker/container/run/#sysctl
 - `preprocessingScript` (string, optional) - path on the host machine to a pre-processing script
+- `databaseRename` (key-value, optional) - rename databases before finalizing the snapshot. Runs after `preprocessingScript`. Each entry maps the original database name to the new name. Supported since DBLab Engine 4.1.
+  ```yaml
+  databaseRename:
+    example_production: example_dblab
+    analytics_prod: analytics_dblab
+  ```
 - `configs` (key-value, optional) - applies PostgreSQL configuration parameters to snapshot. These parameters are inherited by all clones. See also: [How to configure PostgreSQL used by DBLab Engine](/docs/dblab-howtos/administration/postgresql-configuration)
 - `envs` (key-value, optional) - passes custom environment variables to the promotion Docker container
 - `scheduler` (key-value, required) - contains tasks which run on a schedule:
@@ -348,6 +360,9 @@ Options:
 ## Section `cloning`: thin cloning policies
 - `accessHost` (string, required) - the host that will be specified in the database connection string to inform users about how to connect to database clones. This should match one of the addresses specified in `provision.cloneAccessAddresses` or be a hostname that resolves to one of those addresses. Use public IP address if database connections are allowed from outside, or "localhost"/private IP for local-only access.
 - `maxIdleMinutes` (integer, optional, default: 120) - automatically delete clones after the specified minutes of inactivity, 0 is being used to disable this feature. Inactivity means no active sessions (queries being processed) and no recently logged queries in the query log.
+- `protectionLeaseDurationMinutes` (integer, optional, default: 1440) - default protection lease duration in minutes when a clone is marked as protected. When a clone is protected with a lease, it will automatically become unprotected after this duration elapses. Use `0` for infinite protection (no automatic expiration). Supported since DBLab Engine 4.1.
+- `protectionMaxDurationMinutes` (integer, optional, default: 10080) - maximum allowed protection duration in minutes. Users cannot request a protection duration longer than this value. Use `0` to remove the limit. Supported since DBLab Engine 4.1.
+- `protectionExpiryWarningMinutes` (integer, optional, default: 1440) - send a warning webhook notification the specified number of minutes before a protection lease expires. Supported since DBLab Engine 4.1.
 
 ## Section `platform`: PostgresAI Platform integration
 - `url` (string, optional, default: "https://postgres.ai/api/general") - Platform API URL
@@ -429,6 +444,9 @@ Webhooks provide a way to notify external systems about clone lifecycle events.
   - `trigger` (list of strings, required) - specifies which clone events should trigger this webhook. Available trigger types:
     - `clone_create` - triggered when a new clone is created
     - `clone_reset` - triggered when an existing clone is reset to a different snapshot
+    - `clone_delete` - triggered when a clone is deleted. Supported since DBLab Engine 4.1.
+    - `clone_protection_expiring` - triggered when a clone's protection lease is about to expire (based on `protectionExpiryWarningMinutes`). Supported since DBLab Engine 4.1.
+    - `clone_protection_expired` - triggered when a clone's protection lease has expired and protection has been automatically removed. Supported since DBLab Engine 4.1.
 
 ### Webhook payload format
 Webhook requests are sent as HTTP POST with JSON payload containing:
diff --git a/docs/reference-guides/dblab-client-cli-reference.md b/docs/reference-guides/dblab-client-cli-reference.md
index f31d5ca8..aa7b948f 100644
--- a/docs/reference-guides/dblab-client-cli-reference.md
+++ b/docs/reference-guides/dblab-client-cli-reference.md
@@ -93,6 +93,7 @@ COMMANDS:
    clone         create, update, delete, reset, or retrieve clone
    instance      display instance info
    snapshot      create, retrieve, or delete snapshot
+   teleport      Teleport integration commands (DLE 4.1+)
    config        configure CLI environments
    help, h       shows a list of commands or help for one command
 ```
@@ -303,7 +304,7 @@ dblab clone create [command options]
 - `--id` (string, optional) - clone ID
 - `--snapshot-id` (string, optional; DLE 4.0+) - snapshot ID
 - `--branch` (string, optional; DLE 4.0+) - branch name
-- `--protected` , `-p` (boolean, default: false) - mark instance as protected from deletion
+- `--protected` , `-p` (string, optional) - enable deletion protection. Accepts: `true` for default lease duration, a number of minutes for custom duration, or `0` for infinite protection (no expiry). When omitted, clone is not protected. DLE 4.1+ supports time-limited protection leases — see [Protection leases](/docs/dblab-howtos/cloning/clone-protection).
 - `--async` , `-a` (boolean, default: false) - run the command asynchronously
 - `--extra-config` (string, optional)  set an extra database configuration for the clone. An example: statement_timeout='1s'
 - `--help` , `-h` (boolean, default: false) - show help
@@ -313,6 +314,11 @@ dblab clone create [command options]
 dblab clone create --username someuser --password SomePassword --branch main --id test  
 ```
 
+Create a clone with protection for 8 hours (480 minutes):
+```bash
+dblab clone create --username someuser --password SomePassword --branch main --id test --protected 480
+```
+
 ---
 ### Subcommand `update`
 Update the specified clone.
@@ -325,12 +331,19 @@ dblab clone update [command options] CLONE_ID
 - `CLONE_ID` (string, required) - an ID of the Database Lab clone to update parameters
 
 **Options**
-- `--protected` , `-p` (boolean, optional) - mark instance as protected from deletion
+- `--protected` , `-p` (string, optional) - enable deletion protection. Accepts: `true` for default lease duration, a number of minutes for custom duration, or `0` for infinite protection (no expiry). DLE 4.1+ supports time-limited protection leases — see [Protection leases](/docs/dblab-howtos/cloning/clone-protection).
 - `--help` , `-h` (boolean, default: false) - show help
 
 **Example**
+
+Protect a clone with default lease duration:
 ```bash
-dblab clone update --protected TestCloneID
+dblab clone update --protected true TestCloneID
+```
+
+Protect a clone for 24 hours (1440 minutes):
+```bash
+dblab clone update --protected 1440 TestCloneID
 ```
 
 ---
@@ -631,15 +644,23 @@ Delete a snapshot.
 
 **Usage**
 ```bash
-dblab snapshot delete SNAPSHOT_ID
+dblab snapshot delete [command options] SNAPSHOT_ID
 ```
 
+**Options**
+- `--force` (boolean, default: false) - force deletion even if dependent clones or datasets exist
+
 **Example**
 
 ```bash
 dblab snapshot delete "dblab_pool/dataset_1@snapshot_20241028174127"
 ```
 
+Force delete a snapshot with dependent clones:
+```bash
+dblab snapshot delete --force "dblab_pool/dataset_1@snapshot_20241028174127"
+```
+
 ---
 ### Subcommand `help` , `h`
 Show help for the command.
@@ -650,6 +671,54 @@ dblab snapshot help
 ```
 
 
+## Command: `teleport`
+:::note
+Requires DBLab 4.1 or higher
+:::
+Teleport integration commands. The `teleport serve` subcommand runs a sidecar process that automatically registers and deregisters DBLab clones as Teleport database resources, enabling secure access to clones through Teleport's access control.
+
+For a full setup guide, see the [Teleport integration howto](/docs/dblab-howtos/administration/teleport-integration).
+
+**Usage**
+```bash
+dblab teleport command [command options] [arguments...]
+```
+
+**Subcommands**
+- `serve` - start the Teleport sidecar
+
+---
+### Subcommand `serve`
+Start the Teleport integration sidecar. This process listens for clone lifecycle webhooks from DBLab Engine and automatically registers/deregisters clones as Teleport database resources.
+
+**Usage**
+```bash
+dblab teleport serve [command options]
+```
+
+**Options**
+- `--environment-id` (string, required) - environment identifier used in Teleport resource names
+- `--teleport-proxy` (string, required) - Teleport Auth Server or Proxy address (e.g., `teleport.example.com:3025`)
+- `--teleport-identity` (string, required) - path to the Teleport bot identity file for authentication
+- `--listen-addr` (string, optional, default: "0.0.0.0:9876") - address and port to listen for incoming webhooks
+- `--dblab-url` (string, required) - DBLab API URL (e.g., `http://localhost:2345`)
+- `--dblab-token` (string, required) - DBLab verification token
+- `--webhook-secret` (string, optional) - webhook secret for verifying incoming webhook payloads
+
+**Example**
+```bash
+dblab teleport serve \
+  --environment-id production \
+  --teleport-proxy teleport.example.com:3025 \
+  --teleport-identity /etc/teleport/dblab-identity \
+  --listen-addr 0.0.0.0:9876 \
+  --dblab-url http://localhost:2345 \
+  --dblab-token "$DBLAB_TOKEN" \
+  --webhook-secret "$WEBHOOK_SECRET"
+```
+
+---
+
 ## Command: `config`
 Configure CLI environments.
 
diff --git a/docs/tutorials/database-lab-tutorial.md b/docs/tutorials/database-lab-tutorial.md
index abaf0e08..bb676ad9 100644
--- a/docs/tutorials/database-lab-tutorial.md
+++ b/docs/tutorials/database-lab-tutorial.md
@@ -144,7 +144,7 @@ ok: [root@5.161.212.233] => {
         "",
         "5) DBLab CLI:",
         "  - CLI ('dblab') setup:",
-        "      export DBLAB_CLI_VERSION=4.0.4",
+        "      export DBLAB_CLI_VERSION=4.1.0",
         "      curl -sSL dblab.sh | bash",
         "      dblab init --environment-id=dblab-demo --token=edlhYHOgBPkr4ix1qP3YvQMytfK2JSxH --url=http://127.0.0.1:2346/api",
         "  - CLI docs: https://cli-docs.dblab.dev/",
diff --git a/sidebars.js b/sidebars.js
index 65f7adf7..4cb11abe 100644
--- a/sidebars.js
+++ b/sidebars.js
@@ -90,6 +90,7 @@ module.exports = {
       "database-lab/index",
       "database-lab/supported-databases",
       "database-lab/user-interface",
+      "database-lab/prometheus-monitoring",
       "database-lab/masking",
       "database-lab/db-migration-checker",
       "database-lab/telemetry",
@@ -126,6 +127,7 @@ module.exports = {
           "dblab-howtos/administration/engine-manage",
           "dblab-howtos/administration/joe-manage",
           "dblab-howtos/administration/engine-secure",
+          "dblab-howtos/administration/teleport-integration",
           "dblab-howtos/administration/logical-full-refresh",
           "dblab-howtos/administration/ci-observer-postgres-log-masking",
           "dblab-howtos/administration/add-disk-space-to-zfs-pool",
@@ -134,6 +136,7 @@ module.exports = {
             "Data sources": [
               "dblab-howtos/administration/data/index",
               "dblab-howtos/administration/data/rds",
+              "dblab-howtos/administration/data/rds-refresh",
               "dblab-howtos/administration/data/dump",
               "dblab-howtos/administration/data/wal-g",
               "dblab-howtos/administration/data/pgbackrest",

From a8c95ae9ffa0a226490f0296585409b1f9309057 Mon Sep 17 00:00:00 2001
From: Nikolay Samokhvalov 
Date: Tue, 14 Apr 2026 14:36:55 -0700
Subject: [PATCH 12/61] Add DBLab Engine 4.1.0 release blog post

---
 blog/20260408-dblab-engine-4-1-released.md    | 161 ++++++++++++++++++
 blog/authors.yml                              |   2 +-
 docusaurus.config.js                          |   1 +
 src/components/DbLabBanner/index.tsx          |   2 +-
 src/config/authors.ts                         |   4 +-
 src/css/custom.css                            |  26 ++-
 src/data/blog.js                              |   7 +
 .../20260408-clone-protection-dropdown.png    | Bin 0 -> 215459 bytes
 static/assets/blog/teleport-logo-white.svg    |  21 +++
 static/assets/blog/teleport-logo.svg          |  21 +++
 static/assets/thumbnails/dblab-4.1-blog.png   | Bin 0 -> 1606642 bytes
 11 files changed, 239 insertions(+), 6 deletions(-)
 create mode 100644 blog/20260408-dblab-engine-4-1-released.md
 create mode 100644 static/assets/blog/20260408-clone-protection-dropdown.png
 create mode 100644 static/assets/blog/teleport-logo-white.svg
 create mode 100644 static/assets/blog/teleport-logo.svg
 create mode 100644 static/assets/thumbnails/dblab-4.1-blog.png

diff --git a/blog/20260408-dblab-engine-4-1-released.md b/blog/20260408-dblab-engine-4-1-released.md
new file mode 100644
index 00000000..707fb48c
--- /dev/null
+++ b/blog/20260408-dblab-engine-4-1-released.md
@@ -0,0 +1,161 @@
+---
+authors: denis
+date: 2026-04-08 00:00:00
+publishDate: 2026-04-08 00:00:00
+linktitle: "DBLab 4.1: protection leases, Teleport, Prometheus, and more"
+title: "DBLab 4.1: protection leases, Teleport, Prometheus, and more"
+weight: 0
+image: /assets/thumbnails/dblab-4.1-blog.png
+tags:
+  - Product announcements
+  - DBLab Engine
+  - Database Lab Engine
+---
+
+import { BlogFooter } from '@site/src/components/BlogFooter'
+import { denis } from '@site/src/config/authors'
+
+DBLab 4.0 introduced [instant database branching with O(1) economics](/blog/20250721-dblab-engine-4-0-released). With 4.1, we're making it safe to hand off to a platform team: automatic resource governance, enterprise access control, production-safe data refresh, and native observability.
+
+
+
+## Protection leases: clones that clean up after themselves
+
+DBLab already cleans up idle clones automatically (via `maxIdleMinutes`). But protected clones are exempt -- that's the point of protection. The problem is engineers protect clones and forget to unprotect them. Disk usage creeps up, somebody has to audit, and the team ends up over-provisioning storage to compensate.
+
+Now protection has a timer. Set a lease when you create a clone -- through the UI or CLI -- and DBLab handles the rest:
+
+![Clone protection dropdown showing lease duration options](/assets/blog/20260408-clone-protection-dropdown.png)
+
+Or using CLI:
+
+```bash
+dblab clone create \
+  --branch main \
+  --id ci-migration-test-4521 \
+  --protected 120 \
+  --username postgres \
+  --password "${CI_DB_PASSWORD}"
+```
+
+When the lease expires, protection lifts and idle cleanup reclaims the clone automatically. No human intervention.
+
+Platform teams can set default durations and hard caps server-side, so no clone stays protected longer than policy allows. Before expiration, a webhook fires -- wire it to Slack so clone owners can extend if they're still working.
+
+The result: tighter disk utilization, lower storage costs, and no more "who left this clone running?" audits.
+
+## Database rename: no more production names in dev
+
+You clone your production database. The clone keeps the name `myapp_production`. A developer isn't sure which environment they're querying. This is a real class of bugs.
+
+DBLab 4.1 lets you rename databases during snapshot creation, so every clone gets clean names from the start:
+
+```yaml
+databaseRename:
+  myapp_production: myapp
+  analytics_prod: analytics
+```
+
+Every clone inherits the renamed databases automatically. No post-creation scripts, no application-side workarounds.
+
+## ARM64 and Colima: database branching on your Mac
+
+DBLab now supports Apple Silicon. If you have an M-series Mac, you can build and run DBLab locally with [Colima](https://github.com/abiosoft/colima) -- no cloud VM required.
+
+Experiment with database branching on a plane, in a secure facility, or while waiting for IT to approve a cloud budget. See the [macOS setup guide](/docs/dblab-howtos/administration/run-database-lab-on-mac) for step-by-step instructions.
+
+## Teleport integration: auditable access for every clone
+
+In regulated environments, every database connection must be logged and access-controlled. Ephemeral clones were historically a gap: they spin up fast, live briefly, and often bypass the controls you'd apply to long-lived databases.
+
+DBLab 4.1 bridges this with native TeleportTeleport integration. When a clone is created, it automatically registers as a Teleport database resource with role-based access and session recording. When the clone is destroyed, the resource is removed. No more manually setting up SSH tunnels to reach clones -- engineers connect through Teleport like any other database, with every connection logged and access policy-controlled.
+
+```mermaid
+flowchart LR
+    A[DBLab Engine] -- clone created --> B[Teleport Sidecar]
+    B -- tctl create --> C[Teleport Auth]
+    D[Developer] -- tsh db connect --> E[Teleport Proxy]
+    E --> F[DBLab Clone]
+    A -- clone destroyed --> B
+    B -- tctl rm --> C
+```
+
+:::note
+Teleport integration requires Standard Edition (SE) or Enterprise Edition (EE).
+:::
+
+## RDS/Aurora data refresh without touching production
+
+Running `pg_dump` directly against a production RDS instance is risky: it holds an `xmin` horizon for the duration of the dump, blocking vacuum and accumulating bloat. In severe cases, you risk transaction ID wraparound.
+
+DBLab 4.1 ships `rds-refresh`, a standalone tool that gets fresh data into DBLab without ever connecting to production. It finds the latest automated snapshot, creates a temporary RDS instance from it, points DBLab at the temporary instance to refresh, and deletes it when done:
+
+```mermaid
+flowchart LR
+    subgraph rds-refresh
+        B[RDS Snapshot] --> C["Temporary Instance (auto-deleted)"]
+        C --> D[DBLab refresh]
+    end
+    A[Production RDS] -. automated .-> B
+```
+
+Built-in orphan protection ensures temporary instances are always cleaned up -- even if the process crashes.
+
+The temporary instance typically runs for 3-4 hours. At `db.r7g.2xlarge` (8 vCPU, 64 GiB RAM), that's roughly **$2.60-$3.85 per refresh** -- negligible compared to the production risk it eliminates.
+
+Schedule it with cron, Kubernetes CronJob, or ECS Scheduled Task for nightly refreshes. Your developers and CI pipelines always start the day with fresh data.
+
+:::note
+Parallel dump/restore (`-j`) is currently configured manually. Automatic parallelism tuning is coming in the next release.
+:::
+
+## Prometheus metrics: monitor everything, build nothing
+
+DBLab now exposes a `/metrics` endpoint in Prometheus format -- ready to scrape with no auth or plugins:
+
+- **Disk** -- total, free, used, snapshot/clone breakdown, compression ratio
+- **Clones** -- count, status, diff size, CPU and memory usage, protected count
+- **Snapshots** -- count, age, data lag, physical and logical size
+- **Sync** -- WAL replay lag, last replayed timestamp (physical mode)
+- **Instance** -- uptime, status, version/edition info
+- **Branches and datasets** -- counts and availability
+
+Add DBLab to your Prometheus config:
+
+```yaml
+scrape_configs:
+  - job_name: 'dblab'
+    static_configs:
+      - targets: ['dblab.internal:2345']
+    metrics_path: /metrics
+```
+
+Set up alerts on the metrics that matter most -- disk pressure, stale snapshots, WAL lag -- so you know before things break.
+
+Not using Prometheus? DBLab includes an [OpenTelemetry Collector configuration](https://github.com/postgres-ai/database-lab-engine/blob/master/engine/configs/otel-collector.example.yml) that exports to Grafana Cloud, Datadog, New Relic, or any OTLP-compatible backend.
+
+## What's next
+
+1. **Logical replication for continuous refresh** -- keep snapshots updated in real time without full `pg_dump` cycles
+2. **ZFS send/recv for instance sync** -- replicate data between DBLab instances, including from staging to a developer's laptop
+3. **Major version upgrade testing** -- spin up a clone on a newer Postgres version to test upgrades before committing
+
+## Get started
+
+Already on 4.0? See the [upgrade guide](https://postgres.ai/docs/dblab-howtos/administration/engine-manage) and [full changelog](https://gitlab.com/postgres-ai/database-lab/-/releases/v4.1.0).
+
+1. **Try the demo**: [demo.dblab.dev](https://demo.dblab.dev) (token: `demo-token`)
+2. **Deploy DBLab SE**: [AWS Marketplace](https://aws.amazon.com/marketplace/pp/prodview-wlmm2satykuec) or [Postgres.ai Console](https://console.postgres.ai)
+3. **Install open source**: [How-to](https://postgres.ai/docs/dblab-howtos/administration/install-dle-manually)
+4. **macOS setup**: [Run DBLab on Mac](/docs/dblab-howtos/administration/run-database-lab-on-mac)
+5. **Enterprise**: Contact [sales@postgres.ai](mailto:sales@postgres.ai) for DBLab EE
+
+---
+
+DBLab 4.0 made database branching instant. DBLab 4.1 makes it something you can hand off to a platform team and trust to run itself. Protection leases keep resources in check. Teleport keeps access auditable. Prometheus keeps you informed. And `rds-refresh` keeps data fresh without risking production.
+
+All of it on top of the [O(1) economics](/blog/20250721-dblab-engine-4-0-released) that make DBLab unique.
+
+[Get Started](https://postgres.ai/docs/database-lab) | [GitHub](https://github.com/postgres-ai/database-lab-engine) | [Join our Slack](https://slack.postgres.ai)
+
+
diff --git a/blog/authors.yml b/blog/authors.yml
index d9437275..688745fe 100644
--- a/blog/authors.yml
+++ b/blog/authors.yml
@@ -24,7 +24,7 @@ nik:
 
 denis:
   name: Denis Morozov
-  title: Lead Engineer
+  title: Staff Engineer
   email: denis@postgres.ai
   image_url: '/assets/author/denis.png'
 
diff --git a/docusaurus.config.js b/docusaurus.config.js
index 2548c06a..1fcbc939 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -44,6 +44,7 @@ module.exports = {
   // Files with  text need HTML entities: <placeholder>
   markdown: {
     format: 'mdx',
+    mermaid: true,
   },
 
   customFields: {
diff --git a/src/components/DbLabBanner/index.tsx b/src/components/DbLabBanner/index.tsx
index a82c6620..29bdf9ea 100644
--- a/src/components/DbLabBanner/index.tsx
+++ b/src/components/DbLabBanner/index.tsx
@@ -15,7 +15,7 @@ export const DbLabBanner = () => {
         height="170px"
       />
       
-
DBLab Engine 4.0
+
DBLab Engine

Instant database branching with O(1) economics.

diff --git a/src/config/authors.ts b/src/config/authors.ts index 1b63d0da..4f218775 100644 --- a/src/config/authors.ts +++ b/src/config/authors.ts @@ -44,9 +44,9 @@ export const bogdan = { } export const denis = { - avatarUrl: '/assets/author/denis.jpeg', + avatarUrl: '/assets/author/denis.png', name: 'Denis Morozov', - role: 'Lead Engineer at', + role: 'Staff Engineer at', gitlabUrl: 'https://gitlab.com/Sarumyan9999' } diff --git a/src/css/custom.css b/src/css/custom.css index 0839af95..b6ffd117 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -354,7 +354,7 @@ html[data-theme="dark"] .blog-sec { /* Blog post titles - same size as body, just bold */ header h1 { - font-size: 14px !important; + font-size: 22px !important; font-weight: 700 !important; } @@ -364,10 +364,32 @@ header h2 { } article h2 { - font-size: 14px; + font-size: 18px; + font-weight: 700; +} + +article h3 { + font-size: 16px; font-weight: 700; } +article h4 { + font-size: 14px; + font-weight: 600; +} + +.teleport-logo-dark { + display: none; +} + +[data-theme='dark'] .teleport-logo-light { + display: none; +} + +[data-theme='dark'] .teleport-logo-dark { + display: inline; +} + .table-of-contents { font-size: 14px; } diff --git a/src/data/blog.js b/src/data/blog.js index f446d0c8..58476d31 100644 --- a/src/data/blog.js +++ b/src/data/blog.js @@ -1,5 +1,12 @@ // Duplicates data from the blog. const blog = [ + { + link: 'blog/20260408-dblab-engine-4-1-released', + date: '2026-04-08 00:00:00', + title: 'DBLab 4.1: protection leases, Teleport, Prometheus, and more', + description: 'DBLab Engine 4.1 brings protection leases for safe clone management, Teleport integration, RDS/Aurora-safe refresh, Prometheus metrics, ARM64 support, and database rename.', + image: '/assets/thumbnails/dblab-4.1-blog.png', + }, { link: 'blog/20241003-how-does-planning-time-depend-on-number-of-partitions', date: '2024-10-03 21:45:12', diff --git a/static/assets/blog/20260408-clone-protection-dropdown.png b/static/assets/blog/20260408-clone-protection-dropdown.png new file mode 100644 index 0000000000000000000000000000000000000000..a559bbb982ef380003f9ef5298413c900299baf8 GIT binary patch literal 215459 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

=uIxti&HcRfR&o|5#JA^cfAG80p&lq>)( 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

8BPnDN96n6HkX0;@xMX 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 literal 0 HcmV?d00001 diff --git a/static/assets/blog/teleport-logo-white.svg b/static/assets/blog/teleport-logo-white.svg new file mode 100644 index 00000000..342cd8b0 --- /dev/null +++ b/static/assets/blog/teleport-logo-white.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/assets/blog/teleport-logo.svg b/static/assets/blog/teleport-logo.svg new file mode 100644 index 00000000..afb92c58 --- /dev/null +++ b/static/assets/blog/teleport-logo.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/assets/thumbnails/dblab-4.1-blog.png b/static/assets/thumbnails/dblab-4.1-blog.png new file mode 100644 index 0000000000000000000000000000000000000000..52f6a16829c714db89872658ad4ffcd72d72b601 GIT binary patch literal 1606642 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 M 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�U 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≷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ʑ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 z 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⪙qab0IJZ`FSIjZS^k-VW^R}l^oHp}J}m203eZ6!YqhH#F+f z1I2G=N`HBhc>d1p%}*w7zH?#Cxs8MBygLb8HM~%2#yNCac4_$hjeno}ZQ7ixYYyFh zapj+Ht+=Fr`=kHN*WRG7))~i+LqV#>=fn7=MwSyQtMG;cN76iC3#<{Mym_NIcCg`h zLCit~8*9DxaA`@btHx{K{ExU((wCebH^A}3kwBSJr2@Z-uY=PNiW=8Fpl%BqOdx0D z4j>gUzp#vB`GcP6fP7d28QtQ5O0A+pE-ZnrcQKo`-{N4jt+3eTbq#scEmQ#jXNz+3 z_p5_FHl%`!_Nn**n}Abq#nHry)ih}8==y@_>tWx@ek+m)(;aJo=4vE3{^!#@ZRh}R zsE@=077?+?{*abZu}UNc`N*?BVZb&#^mF?g4>qlT+VkVH4O1TMxqSTXw+C#N zER)Cg1nWsUj35V}#|@6sBkV2$Z)~UxGiTunVB_U1h|~OELE-4pw{BSu-8*pTujf|W zNuBaX?&~^s>U5MbUhBd&7o?x4f4jf(`tB*<09-S_ePH?G1xrUg=ic83RpMi!;s|&F zaWz5sn5)?s>FJo7iJ(?H5!O~_w^J-fb5B85na&{K7mbA(ytE*f zC>`gnENj!O?XlohT;x>`!3$pH?X)HYo1%^F(AE~sW9PA`0f>aQ7F|14gBfQqUuVNa z`ASaRnvz`iZyUJEwd!&&X5FR_lf#8#j!+=!b;qh#oma{;W2DN6XZ&;&qzLm;tO-RG@mu>Q=m;Q5Efpi}UUV1RaH6j!S>*-% z4SrW}sTd#-h7#~$)UpwXyW$^SL~I&ei0Yv{adC)w#KZ_5_&5f6B?E^;Z+1YmCHT)z z>VOT-=PWzT1M${N&hVcFAA&$-Z*#_oBC&|@bq^>`6_g~%17&)al>L9*ynUzI|I-e;ll zV&6NF?ZetdY>Z`IK;6^Yf}&p0RFF?S*7TO?Tv)-20w_+VC0@J{ackC;+|B0VD}*|G zu`APG9xDMa>UY5$N(Lvj&NDi&CVAiXzMomIFzMNO~bR@!> z;YEQ`V3QM+rc-se5z$}|3EA3Tu03)pyVAmA_iy?lD=wKO@R(r@z1X!c+Yq928Y;FK z+a*Rd7wIbGHRB1C(UpCM-68aS`BthhBQiBcS;Gj$&M>|XRv#54ZpZ#?S6UGALpnHI z^b|SR-dKp~s6Ry1gi)`~&Juxc6RUtFPR#KkqC1O=n&)^TsH~|;FBV(k5xu7{(5d10 zAQ@}1Q{6+^YvAYyjsP&gD-%}5g%-N#V${g<8eh!tP95{`LgDR{`xjsSqhZcp|8Mi% zs^gRQ?Tu$kX_)Ab?$N8`Lw{=X?0xN#?S(a)P7?%2HY@%brfG4s!6 z{q&16nGS7$sLTZ%g7(7NR}Z`^FdgDb5^;^-4og56Ys1QR=?2StJkqul9*(V|E|VxJvMB6+5=k=h>M zA$UPpMoz3T5f|lGfSc4or!20#RmV=yyY$X!aR}M&Ehsgt|L97^`9}xO zJ=l5v>0jmL^EO%%WmOkeaP>CD=V*}ijI2#O{Kxo1w+|e8@@Vqi4U-GDT6SERBV)O& zEDgR`j;pT(20S|hjI$%u71^oDTX0#i>)Zd!I`rqK2ft4}bhYu&g9W3fOb$UH{u1BL zB8yOLR==(8j|GPxUf=w8^_)*0&HnJ^DJ#C6ChxSyIUB&c_X4BFQP$J7T(`s}_+0Nt zTh2c88n?Pf=Q`zL-@=0h7r(oEO>*wi&U3?Wp1YR_BMFVdWIdK-{Do6eSpi{8;ZyJZ zXTO|X@$-i-k6CxGX1HT#j0J}Q`Q3NJd@A^7MQh8pIT1v$b8tFHLM=vmox8c==3n!_ z@D1-gIdkdBnaiG>U0(D0CmUuSe!99?YO{pL%l65z-B26Vq(zDM>B?u{y!~X`tN+wb zdHDTd|Ip-fL%%h7FEuy@cpIg*KK!6Vkw@jVv2=-W1C1)!hHl9{O?ihGJl&VZJN{;RUR13`$@m}r$o@}kPqC;a) zcaxXmA4-)? zslj_SC?VAgIy=xy2Y7*4%3?coZ$(;|G%_LnowCKw291b_q6muTQwc2vi)Tb7K&a|o=HmB5nO~2#|2N zp=S3~7X}|S=~M)Hp%z-O(HRb7CBaSz&FE29ouFAlyH^F{CL)4rZCAD+Mb>sEGt$jS zogFP*6-1UTY^?xaXQXLTB+QmHQ45Z>n^>cWV;5?2kuqkwvDjzA!O`PV_)P8APZp;RqqB-Yx=&+gxthfw28(PswPop!sVEktqEKNGLdxj~nl2he@|a-cgGXog zn73BR7zSz+Sp`~hi@<5-5TbfkPMkH~>uSXIFwmoe(dv}i|H>Oc)gx1FNWU%8}i2?tv{qwF*o&0z-)+6Wd zz-D}Q<&{S(FWr56*`hC(?A_hExGkCGv^vv#HY8$IkQ@Z;k^-D=)v?BSw6UP8)5at! zp!v#772z)TG+EJLJQ2-tp_0aq=L9n1p|rChckO@?E+JMNk_rPoY$*bkMLDtjL8AmP zI)aB!Lg4p|9tX?vmL(gmbVYWb;zTp_AkM-L>j{y_AeX}8#j@@1%kaab3SKi(eN|p_ z09O8R5mPoq6%lv_Ug*NU9%2!;kBIhx*y|o3^`06{QTu=kMK-Q|-C{Sv3&4>K17c6M zwpwj}YPNO#VX238Aj%tRB7t;1d0R4tf%I%e(LVu={UBtVZp= z|8V!Rhkw><+ZK+~NC|f>VS#avFpQ7PedYJxSN=M4`Lh>R+Mn^pWoBc<&}bW0!71s%T9xTuZb%yUBEALvqlI!obrP13t%&XikYXLgmP!FKe(1u zYXU_f#^AOeMV}EmiWvCZJh0)~#@}1Nm5`Sf2>rp`@+l{#scBX9)5eKT>DTsggZ4vXdkpMbSS$ym(fzhi^(aR( zTE&NA>O5|>^Q6|+93S7T#65%Bh8ngzLgqC}1m#(ulipLJnB-PL@T9J92X%qyRb`}% z`~kmR5XK3lh{G+v(iNkRZ8lVD?1fqBrcp3ET+RV+aYo#Li&gqPXxKWvSP)vQWzk zNdXka)pSY=54{B-TR*$ZZT7E^B8TkR{|CG%+m49JB!vVpj<&M@+fYrf6OAp=6Uo0*)Gkiy`1cqFjGn zb099$lDUXLQ41=EvwTc1C7D@11HbpVe_r*PZ0CHxpNIGR^(F#+x*g7>M2;^f!6qD0 zXA-QFjgb8V*(`a>GbF7!S!$TV7XI(0R5e+V!eBz~vL{@a76*?H*d)rLAcUsURXAq1 zL_6K`#BaCm;$gSRmcK)`*kuP44&w}SpuD=NiLp1LEY!z^0Fjq=S> z&m1@i_8-%q3}xza1-J=tp+nTv=^R_W$!!giGyl^dmtrqP=4~Mp;|)+mK#vjatufT1p}Q8TjI8yV4NIfn~Sa?VzxqvYi#GF z8~Sau*TxN)l;|el6RM+~Di_rF-Y6fQ3h+cSkYWLAqLJ?vqOKHoVZS6U&1z3H8pQdv z*)$b^D4eLG8Og}(1d@eQq|;JCE(xp)WQw#sOs7MUVNxl`)EK5tP}LT~5gSna z0Yp)riFA8;QK*D+TdP#mOIotfbL{wFfTk!d#IB!;s3=+x zCdHGEB&#qkLTY02^tz-<&6eS9rt zNpSP}rN}|x=H_OeeCwGdACDKTxf1jEZ4LWV|D{>E=JLtuM2SMlvsq{w=zAgL`<(Ve zNTS;QhjHn>Uwi)gI`DPQ6Jz_2e8SC;_TCatp^@^-nuhp7mmvl}>DUMF zUN3%ivTo^LMN=xiIdwbC&8qu3qPaG>)l5jI^UEbam%i}DgA+$D1S-a6SM0w%{!a0M z1r0{3rP>|gfJyo6+$jewo?|9Tl~2i7DAx#|!SXaFIESfs8j;~_dEDRw&hhwiidNYq zJhXS%91%h(2Wm!#lR!6tXA88HVXXu`Rqkk;4wJ*2JOrk``6g@wmmU%|OFoC@ws0F4Xz>^&or_ zDqmCvyRyhq@I1SimSFNC&zqliA}*b`#DEbufj*$P5I`|){GmaN+_5!7j3=W%yYFd% zlBO)YkP(A?sFVa>{Es?{V-}E#)cKGL{7lP@cd%9I_t-Ta9gB?L$6}v`A+54Mnpra*Sl9rovM$(2g=MGRWM*-nWAZ9~G-j(K>ijc?NkvytBXCnr=&) zR>XtQn=E^#3J{TzCPRXNc>do{(@@({+^~4as>K4D2=ht(T}1}OpF1Vv;+{fl}{Tm5ecYr3o`Kd>&QE%IR!(9~vV&jgrW)bTLh6Z%c#)=I|08dchoP3-g~DSWkb3ZK!`iO#dKlt}g z{fBQn+|4du*7i(Uvt`QtZ|ToNNDsRq)J|u6zQWElQQJAI1yWw!-(=P zpoiiIkrq@9(Y4*dT*QK!!pu_>+-Z1z{TLfHd8tf*%~l zH9VoZm#@BMD9!Q{QZ~icW_?}))f+d^)H{xw3nvSV>k&e(dQq+T?+b^luUpr4&)fdb z{eK*vdFPQE51aPin>w>%Jbbz>J1c(UqrK8Bn-!bx=!rj0PhNcUxnF;sK=z-z^PlI2 z|FP$jj|t7`Ed;W7OvY1sv?2zmy^*5pl7E!cyyDB(mz_qnE$FarnW}lXceA)^M-R-xYzK z6oJfHamtvb&u=~~DRNlB)z3XEy}YWRVXXJmsrgTAII-*Td(}(Uk1bg@xcS+;O@*H% zipao-SR~pl*|r7gkj$*bP#8$x8=YQpefH5&+0i?n#;M%W6Vf(5J+ z`hY@T1{occf?T>#-RsR7IW}K5q8QX)V-AKS9*U+5-q72Uu)ebWXc2m1Sg-?j5nttW zM4A;v9b?t~Z}BvIERh%1wh!`kzP=`4(X3jr3s}_0^7hCug>Uyp`^q;031T#?-cwJ2 zRS?)qc7$`&-dM~d5ck$!N)(mo+v|iWGJ@0IlDp>^B0Oyz?1;e>81Sb!S1o^%ne_-z zYFfjnC5|rH2;^Iu!2~`!4|xT`u877`Ea$nc?>k}D)R-vjz#{uS^$et>R#q1Xj9_0L zGhCjDc8lARe1WtO0nhv{>@e^Hp{(boTG=J3E#f+&$RUW~t3U#<2j>)$h>rGBt?dZ| zE2KCK1A4MG??N{~4e;+Y*Xa6l0;{Egz17)4rov{vxg)WP*|DsF>!@QIn*nx<5bPXm z)b%6$C;PAww1WUh;(LIIDot%q_M5_haJZPw(qJGl08_)P1WJ$%&Jf#@5|s)BVGgn2 zMV?ARExYGDF+5eV!B6<_{DG$SKT>{8j9juie>4Cb~C{lu37AQ6j1Lrgfl<^Q;($N zL};}4#rw-c=CDEVZX6N3DB9%Z0?U_EXzK*stC&UP;8uj`tkUc)6%wr6(QcitJC)4m zh@0hft3VFA#An-QAw=TXUQFE<^E^ptGItu_X=nycQsv<=$h8!>BL+%2e)!tU_Uw|B zWJ;Y3a@=jfo;n791y<@dcdW&$!%mGSZRw80$4g zVR44M_&=oOsRNu)M?C{OCmg=KsN;GHmaTfPKi*t|Bo8kx9qy4#6jTHr7htW)dMIz& z!~OBT(yGP`Da1XHGRHT1Byh8MFyc4MTF5XVOeP!yji|4B$c`2g+?Z%PCybjbjZtw7 z@P?@r)@&FBjef|`NlV8^Dbpww#>8e;LKC8*V3t~zpk;$z)Qh?#I+t6t#keE)tlx%l zvaU}oo>TyXnEC0@UnlQ9z4XBsXs3qfjSkOyi1Z-DwTO;w){3>J)WVy%*jGnSieojdpJO6$3wetPcBKkn{YdZ~WqWY^4F zTle1yDan~O@6D5)Bmd!g3bWE0<9CBSi%+{SXM(~(Z~oTvXI9UZkB^=`@$B`B zv!N&%_#{dY*!Q$iB#K>=1AGU-#(vBdMK7#B`^wT=|2jX8yu^S<6BTF{)TF_VVKHx$GX(kw2o z)`_oCYy#gPpR0nztgqIq$9E0GrMnJ#b7OwLpKOtPnZm8e*ah)|49f?gAx!Lo!B2w{ zKg)k?Tte{-?E=aGk{tX(F)ACOKZ|{deD9pjvJ8Xx-zK9Hh}R+->p6zgE{xa4&)PDw z82Pxh{ckPQP9yt`LFaqK!dj0_O62Q0g>vnMUWfzBpVWn1 z$D-;H0gunRyIO02@vCZ-R+Fi4ISQO4;}q%MBV?d?>U6etx#KgP8etJCDmt`?7EC9& zN{e>%O0z_b;N8NVg9#u^MA|uuM&nu0B{ld#HX&XDTG&iJ-)|xy7mOLm&`5&~UB?)m zoHFKJWoRC)4E899Dj00|(cr(7?h^7tk#+!amCFI)Lv{CN?&V~cGpSzPl1l>k6^?OJ zJ^B{9BTWpoXHm>2!pzy|-ykN=M9u^irmH^j5ponb0-dj^pXWsBs{mJFIXrW^KEKEg zGLEimQQBFPQJ2S=0ci%Xpg{Mz2&0rJsz*Atz~Xd%w{<>PLkdf~Rxb&-ViZt3Rw6K$ zC#R#$LaD{clS=ZqAp`l;Q!_-()nqh$$B2EK zMiJG7Ob5;K?r;OgR<~PAru`pmIL=P^Wso8r5ukvJprXqPM6hBxF|EUbDubl3MeWCd zf=!zd(;9o4z0NsH<8mSjT%c^jQbN=vEPpSPC-n0`wWN6bRWI#{Bsrc~uZvrwDt(FE z#50&$(ROQzu5b?x4x!(0RZU?prb)@gFt%+{#!KWlDht= z=4i^OVdVlk*OMd^d|-Z)%y52Q*7Jf6RF1JjDbv8wCW<6b8p6gRQ*9YBaMck?XOig2 zuM!1C@H&f{Arq1h*y^7G>y6WTG{?lRDK|di?b^(UfVEM`a;Eh_v5oa^&B30e(#FXqK-NwhR1NPck^tEM5S3e#UfXtyFI%S zA*lee3)Hf>oq`ZY@?`bGA|=o`;os-L|w;hFi%H)bk7@3#~?ZC{Unx#;LGGmiesCJkqv zxpQFcVNS|eT+O3Zz{sN3fx{61=RjWA<#iAI*H8ZROCrozhqtV$`TDtsqA7P76Qcuo&<9amX-$nLr%;3qL1rz+cA>V-TFtPLvTM{xgo`3^Ad4TW4Y{tGP8sXcLy zZr{`Cq&G1Uk4#Pn?6Tq~PxT@}JqDTx2aYS!Q3ql_s;tCUbe`e&$?JoS;1M)02ytT! z8zU$=FipgVqOxpHn=8z-Sz!ezET!SZP=+Wct7{hNMYgD*{^Ua41$YZ#*s>>=N2Nd0 zrteQdx@-MDr4C7AMOzb<`V%kq*D!T;`ol%-S^|o53K&%|2n6=F+DqAP4xn)v;(REE zTSfISTJ}MHQVI+i!DWFibv5wj6Vrj2UtoYh@~XO{9vfxAMFSb=#G2!;{2<{Re@n1C zk*EUePwXru`v)5(qJ7J1UJJ;pb5SEBY15nD-L1ne6Yt7p7!+HhYnzm1aXL}6rvM+eRLPqI?W#JV45%LEx=Ocz7XiXCfeQa-5ioQZ4hwEV#C|(_H=6G8-%oH%R z*Edrm`6k@LQ)x~!AEY-}Bg;Pm5<3W3LxxicFS2E?kjHP$(ZZ-0gP*m0qe21qp1Jsl zo+#x~t#S}|80G=_FiuLG~|F00lq4(Z7~m0 z=mq=!MXFqQEP`t0bJYNyqU9>;SZGijNXO172936^3!?NsC93`Q?pdPMaRy2q3C;yj z98QImleaYwq~%xvXk76&uLf}F?zb3s;>gR(1GR2zha`iLg0*Ds;9P;gec|hSmWA2i zkb_pm?-n%SC_@AmzO1g`Cq>w6wN|HPlv zjobatKPyEB*`;*3;Klz7vpzO^_TeoXnm2uMH|x18(|#H~Suy$cj9= zB(c>@eRuYalB85#bE1`#zvH7H#Horka)Ig*0p_+rc_x}taZw}cN%(8_^%!fNOOC?{r3LfDlU}tjI~t!{@an$D=n578~{B3Vjch1JBA^IZG$L-`*c&-cv^#U28V<-a^mc-aUEug^7t@kN&cL!{n3+ z%MT~7Za%4bx)Kz>G6jWu!FcK30U#*0rThB$TBqE2;`?uL`OfIMDEngWodcY#C)089 z2Ko&3qw^j#eEsg%pHBXF<-@)wF63KQjP!YUSg2xc8H6LS;o6r{0)v0RgI#rUYn4s> z?Vi%su74Y2GwZ=1oT(1jbehwL#*V_tw)Da16O&&BR`k5_T+2$!3Xg^2_>tQqaPfFW z;ub;xRPx-yK83dY&8uSzB@lCy!{ZF=T~o0}O?0F1*+j9g^-hWwnRr zkqo+ab8#-x!lh^%tPGlMHwQH`0hHjF&^ETi_L)u!Uxi7Ah+iL49pTcoGVR^5%ccrl z<`Uj$ca2c0ijq4b+Y^;eXPO#gvv%NzbUwguM)h1lOf5u03fY`StkYy{D?ZIYFRK<98BYqP(Z#>r1s_lLf6DMK{l&Q*j7?SnV{!PU4XG zO@u(GW0Pt$eh-Hi!pUgI#V8^z0)@pE|7}4N##~|p(j^xfoTXT=(N#&YVQ60}6Sb>f za|+w*nY!?J9)^c4$gES_3ZJ3rju`BaAqw9sPA9qy9bsaFEexc?Y9Wls9GZi?xIuDv zVlWMA5M~nfgb{%DTpS%W$){MR1QP#TgGn!yD=3v;&jYQD4l?BFAq!$T=f!!Z87TX+ zupKH5Wh8!NE@-8I%;!8GU#N&-!x`cd?frvto|bWEE1qgVw}!tMpa|P6n>KH1`(T)p z$6(?ib`@j^!0*6;l=&YgSa0wniH(DT!D^8#(|J>|Lft(y_H8ji1I4vMea5ReZ2VYl#@`XqXWeo+pvW70ct7 zWRPCJ99gV5Ta6m0E=niv6RGu34vy?~Mkwi^YD8EDWAT`0A^_2lI9(v&!fl5*Da7w_ zpvvMxnirQ(B_MA-4y58Db`C32`w3kf0EcsQIbig-h)v9)Y;H{x%$^>F>O!@lgc(wr z9|I9617I`sbdXVE)}THBiK0`|atUOiRh;^aCthZ>P-S!c zq=Xx0!myeO&M|t@<#{LLBqAR=cU@+o9@!DXQAtQ7R;fEe{DdFwbi<5ekje~UU>5TDl~x-$(k?O- z$&6}~4BWaJNq-K2utn$MYrwSx4^dJp9>bROY_e;XY4W6GqY^ z7tS;jo4X=)?_=jPG4=@N${^f+0xC7J3Wc@)te*ruEe4z%ccKcN5i}(lpSsDN_VV(M zdduGos};!iFow80+4U;fL3ivXLQ%AMZQ*@1hN*y$^RJW3&UWdSbM>Yc9=s4;orx-C z&5TxDbr`F8P4YS(BtL06g&~9tz|fsAsD-=R}{aQI($hTWC}do4DCob1ay76zGedtz~{b=UwxkB_%atL zS-t*u#FO%DX%HzzUi`CR+go2xnfzwv!@(CO{-_FFFOwBoU*EU;vq5R-$W?WaSiWsa zCDdX>%uti}>IRmJ=*Er)#ziGQ8p6Ids&dWI)|%?vJ=-5LfeLK0Zg*7tv1R6OzajcC z%lt;I%4y)_bSP8?cm~5f*2m$sKZf&^T;{2M4NFN(MVg(N%7ywyE*npZoD;NAyLmA)$ znL0yPIM_%=KZDHji`jNbv(l0vaN^Hi$;RA%%LrL%iNzQ^jl0R*AY}I^-Clo6ye&yE zLiliX0~l_e%Eruh)v0X3r7`x-G^lBfK^gMaQkn>(O+gwIji7LlD5a6nj(t`YAww3H z!vHUtiyq2}85n67s)5jOVig&RDK=E~XsjGH@uejw_nY7*f}b0Icw_f6JMeV^qyy*K z#u}N8+2-7{VthA3MVpXC&jtFrtPBQKrJM~V(3Jjf9gH+$f;bAtAsT6 z6Jh)2ppig=1u~3;dCLnZVx)8i8`%LrDz9CXVqI0m)N!sPUsBtx-uJ}c4%K>_-237^ ztDaOGYZe{v1>OqVg&djE+ngwA)@G_xV#9J6Uegtvy+BD}hF%Y2NiKFr7D45(*sMT$ zXyp)Wfy0lay$4^UA!U&mAq$?wBE=Qt$Fgt}eD@c+grhvW!V(GzRG~=ioG?n6lZfk`ka`hcmUoOFqplD0+f;GZ zb|HLp1iWjQvbyU+axCfH$t3;~u0=v!Oy=_Z&{`*ou>nn?-2V%(xA!NL?0!mCBn$QC z7~`S7gn+I@F(MCSTR)Sy3i!9)TrYJ=58l2(BcXGt#UaC;7$@si+NEgX;4fEGkm4# z$W3Oa1=A%?2D4+DR=2@H5ah9hw!SZx1_;xUOfaR0D(vfVu64zR$r+f!n|K&kCtzSN z7f@bS&~H*vxzJBYwPXP4kLb2KokAZ}KyHxUPIXJTJR6B8+;vEYarQt42pyFGp4pKc zTr}M!l(Qm9@?UVPYR~S}YFHgN--)cPebsM;h`2)ZDMd55#gEykj|`Wp#7j~bhVG4Q z65KhkFR*>L0C^OMt-Ui<6Sf6lsrDH4r9U884hj?0!8ip;)~%Wn?N zeDM30HG4N5J+c1tpD#~L4D?KHs<^$WXL9-r6~~jFdfC74K*1Yl-hMNaGgLa=PyPoV z2SU<74MbB6oSTWUz9iy+K?+4+V4-3dJPnFRx*c`xUL#xJ0jyz3m2kDDAf_?H0P=>R z&xI$*1UH(cl8uJy^h#IFqg1%cWk%{?wvoatRVGBni-p~gAutVL6HcCiPiLD7LqLrX zs9f;Ww4(@_W0fnsIzF~6_QWcy*7QI43I0A@*e0RW951S_HoWlbU&sC^o6~aUjZ>}b zMwYA@-LiJ?mUl2?8{PEWpM7IvpE145-Y2(Bv9C?D1Zs(Ge|&dj!|&^XC#m>l$x|;M zI@IY`n?hBnG{vUhroWnke`!%D6&h_$5Qy^hazW-k>ZRE`lsw#ev2m*xmK@JK8HwMmHBX$@Dn@b$le1x2ec zIs8mFcQ%F!weImhJAS;?Fz@CY^TsdttPYI5ee&w9v9`9R1^qsc&}Gz8Dq$YXk_26I z?Q1EmYF~t`EzsYcL|LO^C&{^Fhk|j9CScn~rgt~J@Xon?J@?^xq?%hJ+iqf4dy-${IE{LNm z+aOKK)b)XvXH&Ri9l=0T>RecaQSLN`@e&!J1M0Xzaw37SJpb>5Q41N40Hz=>(T{|~ zFkRO)kx9G5%P$h59Sm#hS;t_bQJxu+4xF?j9h(w}SaO}s2J9PL z7=rq_B(&o-ED`Gyr`Zw1i&rEqL|G57xD<+Ce>@ZmtE$?23DDyY`9?p|N@MVJqwduq z$PEb@Zb-cZXiM-E$b{VgMZFrifZzexkEDfqKzysT>NHyTkKkPGb%+9r^G`;f3x z4dgf>KyOGF>;bWz9w;YiQHsDqa6qfDffeeEz@<+KSL4D!(}NH*Cr2neuFq9Ky$EWF z3OIofHW)88)=n@`R8a_^eNm@DfSrykHbB3Q;C3!7u}1OLW}dOps{yN$AA^CrJg|@( z6s3zo+V}I&T8CkJ*cEF5iXSNwF+Pnj#G4`3oqItCex^H;%M01f5oAeixwblsPM0zZ z@0(VfkAMp_n>B0R(51~WLK z2*lwkMN*m%Oa_4}M0hH`NM?CVEDvt)3`ZhzB@cEd?Bip2a>&H6TgTai8G)swKp`o0 zW0fPQ=@t|TDn)XRB0PoXTJZ0bh!HXZ9j>nl9VUqXqq+7*i;V|0>A@cqjipM3xlqI} z!-<)=5WCl$8Qh>g8cH*{OdtngSkvUwz%gXXG61zkLpy@w)Lb^z9nR;NKwNK+Jf5uu zeTNK48E+|%gpr+DMugf~zn;CW&1FjlnGsHGU>6qi%Fi}oyVIV{vklkGM;nyjjzDNG z;abHq^nu3k<($YzOp0QFZ^z7|H*~q+Z6wF+I{@ojQ?|%L4 zUmr~Vcjm;E4<@d!`k>;{#f!UF4c>zq@RN_Hr8l1%%r4}0r9r)qxE>qy2vO=SFlhlF zH-lRlzIrNwofzG!flODB8m>4139dAVY^_0Tp`{~M;F!g>DfVOU!TyYH1}iAov}3(- zzwd3Xv2JkJ6Zekqp9uNj z-NBeAZe5xZ7}<7as()?+UZ2V}Iah=GvyHVW&%8W7_`<`hARN8$>~H(Gzg)h2^H)&- z#mbG%0{IBWz8Y4zjzACEq9WnX!~udrT5*7*(THa%0w#x|ef34(PctV5Z%q0>m>5DL zdBls~oxIA%u_jOrCaC{h38?6+ddGVY2pq%BHJ!)g7TV&qalC%hbsnxD2S+F!JRlg1 zEZ?)sP&@d}9}z1a{A=mG@$L5pmR9^Syz=ASD^`q|H6^bN5eAL34^SXmwpLo{TzeF8 zpEhD3#}3H1(ExZ!Wh{(wH+3oD27_+vp3#+)zYO%;o>6i4ajir@%G&iGpC*%}($f~GI8$5L!hn14I+2?a|92|6*ls9K*FVHNM8>4m5R#O)e zFw3|jjPlD)e8+$y51b+{W8_`J#V9tA$3dzu;Hp+M&5nAvw=cuxjcfDgnYY4*Ma$rs z!FW?-kQcWqwHLZ|?ZKKm2kMYugl!W9bYf2@-N8ZNs6|$T(w0n}1#nzA&O&USunf0# z+6Nom9H^RxgRt9QVJ-deac59HKJfnXUdCUPr$}5@XtW7$I*<{)a*$OuY zUPqOAD*ks6|6;PpR5brARv!^Q|9ftvo2Q1$TQy>j_Ztix7N842YPE-*`FvB5p)AF= z(}oh*&8d%_-s4M9T zj7|0*8H+onb+j7^Xz;V)-gcHLaQRu_9UV4cYNipZ$wHGL)ykpDq=GDPQLDWBVyS4s zbUsTS!!}-PFlS1OFa$VmXNKdUj%^v#bILEFpujbzj@?}kJO}MyrLXJue5I&T3Q_62M5t*6Q>+09WA^F85gKuOZ*)SpjNMdMUnJ8_l zstI|8ZSg$(LG+t?o|GZzIq>bfVMv3&oOX{@Lt>5HQJ*JPC^dS5;p4piB2$N1Z0Ns8 zEvP8EeA03q3x)RN51sVEK>)|_N3g_|M;^Dh6g<9H*GIZxu|}6=njy?d$R#TiUdn6a zW?oC)_rcyh zLh(#-fG`xLRBV`BQgQKv4Yx}+jGvzT<3^w6pRYVB+V`|Y3*irkf&U;ur$(Vd)m(c` zxFy=|o!h`zpE?kUR!3hKqT>TdJ1^+Nw=x*ruM=^GE@94%8`H+W zy)p6q%7^!#m^k*t!>@k4)7DaO>e_*+_02h1_5@$b0#vtsFGnF8*Vk9h&`t%RlI%#DgcT_Xzap1D9BV&p-VN| z4N#?r^B=f7Y{@%800&$y*I*!vWWXXJS#1oND3OX@aqGE~#Zfu6A#!!@ZB_ zr)h=&y_?;UsuzVIngDbf4S{);b|a5tqE6^cz_wr%N+i^mQp)Sez9t6Sc`Nb;7WZ@H zC~hS_wjxK0L6*8&wO4M$^Ck#WH=!tC6WkEA#4f4F;j5p&=ou8_;#)N|l>iDAkV zgd?&GxEw;O;1s%ML0km~PyF$0pgp5}&^{{K@Tqmc6NQyFQt(K46si#S-Nz;xkdz(2 z%0pn@iRSm?O?GUiJt9zW+1-hX>m_?5H?o^wLD1D^1%$--32J6I=2Jy6_-#?j0y%Qk z0X2tsR)+2o<5jm60UU%-je9)bRo5GtM-oPUv~goo6bYm)p~|4lEl!K5|3Y^f;PiDm zZb0m@lSOWzhsD@2Xiexk#o!&N40yiq4Yn`9>t|0Rx*Dpz9*(!#X=_>lepW~k#w;Tl z7&-cC00cta65D~qUq7EqRPr=7WT44VDQWQ)zmI_T!DZ!7HhR$ELYd>L!V&Z`m^_Hx1K;nzN$Hm&_!{n zN+Au>y9!yZJ42)=xCm|Tf3Y9-C72=j;z|rGAws~pXy>3Lzplp)GJ7h~5pKY&7(f;> znuU>A36vRiJcA!$LD#$InY`>E`LE=T1?b8%Q>TsKL07iSOMyJAsHkg z83cTM*g5)$axUNA=5izTpw0`;gG*bU$wdS#KO*lL>@}>;&N^E{tVVP7$d*So{P}go zy|*jwyl@^uxnF<8YUhb@|0aDu-a;f1TwSUFc1BUyzEvJMC$NV8e$n>Ze~xFZ|M8tSf10`c)|{r3-(}zo<_2-g3NT}g_R@TT zJqgcqdwBfD?pe0R5x6uBU5T3k0Y4@+V$afH9nhSdF*;vxL_N%5!e-Ykm-+xF`+S;mUFT_(EE_{-hLl74FRbh!Dy*K6R`N_W;D*pU>!^JZdKi@gM?TG*6{jXm8 zGBH+N<>ayielkpYF#A;=0Jt427|K$dg|mUzRk|o>uxC&sH#$e(ymp60cHG=jar4t{ z4;xFu7R@*~xcrtS@c;*U<`F*JSC~Iwn5zY&F{;Zdli}^fR#HaGf{>R)@NW`L=9UL| zxkA2r{b^hVlVdX4Ss_-qo(| z;J%zJF)H1(J2Me&HEeZHT~PX?qLWv5-tQwuOm znPb(GyX%BpL?x;`RuZ&Sa}YVAAqhP3%HV!E+7>)c;BAfYIi#f+x4NGnY|i?Z7kiE% z5)vuw&|?^Y__$?LqZxA;2~@fz3o%I$x8=la0?<{(CY}wBTY{PyFRdZKUWA3ooT@*Y zA-b3>4Gr@nraM`T=xa{#E&?40hH8-S`cgPvU^lUQiXAb{SG1!U&(2gfE9?1?InkI; zSkwJ|84%ERhKs?%NJE+Lf-MLf#r9bH0_00F_5FGgS&|WN4a7DgCe4to0P2FaL*gke z=jLhOD|?L+q_#mw7K<7II#XNsXM-?=I%jFmn(S732sliUsbiX``Mt(QO$Ox%&rh*Z zPaO#7vS4ZSn1IZhT22gsPY&AJFgrfMm?aDjSVE@qpyqWl;VJdtTd-a-O_Xg|9*oxq zr)p)HCl}HL-pE!(E7CtGEL36A@k8wFNeoV5+4dX<)rO5thTYo?#9$_-EfmYQK*WwM z+>gbwA>m>+@NfJM4t8-!D9(n(&lZMMB?FFYIMSeDMby=6xVQxN2mv&Z5dJe(2Pe?C z+SVy*X3(1X9~pqD+3M&V!v+>=rJSdd;yP*fa4mA9;`MtJsv7V+^!3AiK*aiM8b=X% zWv)!L8$m&sg|;NCsL=n-5VyHI5(zO<|w1D-S^2<{B2kI@7Pu#9A1JGuD2o4mS`q-<||fZ&+p^zAPk`y<((Dml2XG zQ`zB0_dqvV_0mukK1;V%B0j~#DqD$+w-LS!hVMG-0QfD{my)qo5k5H@wKH1=Ixoem z0cw!KxrU)ZXm+(_F~cN%w%r|Win-3iqT!n%iW&9*Iln;PIhJk2gji#c7oCs?m!kQC z9SAKpp8`7&g^*N;mvF^i5^6TU61jL$7>;E#u|!Kc4k?fT1G`QZ;Wx;6a%l70BkVjh zHllKF&J2anr1eGF*>Z%?k#dFFDu!wSBQ-G>MIAQC0gv|)fj3H*Io+idL-S!gp6t?< z#&9t5aR!^TSo_!@Gr<^ufFom3t8r{c6TfZ0`>&-FW3x9joLP5%%9?AN=3dVbux3{XNgro)hlUoE|qwsP|Qm1}Na-`z3y=iBqfhb!*hn)l%2p8L0Y=2TpKx#e?z{^0$! z^L|aLdv-xMWS3?qI?>vAw@z~cT;SLUpkN>#^@wpd|K=SC3qm;M%ULcNasbkBIwGwPC-WX zH4}(mzL%F9`4nW{SS(Y3IK&hYGJ=wXq%-{)Z(P3kE%o|=qw`ih^v68$muuzSxcv{* zGjDx}pZvXjC)e)98|AS&^?Er}If9xQy-CKoGvQ?1S-tn?rITMpu>1SJSPA!UpFgmi z`AgOkXs$^^rYXTXh3p)Tv-DM(%W)AD*k@jYomnJaoE3DbYSkW{%eLwt6?dk*@ZhuU z6DQ|QRQ9a-qhb5b>go?qzJB7ZJxEP+`uIG4%?VxC0+TFeCuywJa#g1na4CClB;ww2 z{EN3#y(mHsjva~oOz%{+7Z|CR;uiS(3dJG(go zs+cM+qGf{l24K;g!qZ>zX-W&}j!VC_+S$Jxw{5MnjLW{a2992N*+22y{%sGZ18&tb znObqXar%$zuC?7suRHtC17C5o;#&}xkf>9`NoVl8c(x!&I2jzA!CbPY1h_g?)SU>q z0Ns27gNbB}4G|RroOxO@ECZ{M3kZ!QI%2`P#Pl29516@&C};nR7%BAg(Sa2a3J8}{ z5T_#U;{so2E;QKWbq@EUCy`-HA{!a_=GZ+_ATSF>4+#)ut zgHV7+%NW`c8jW4Kqs`?IQAPBS31AZpZDF1gBelo5>dmOXBj$-z?GVc8IUu~F1x*Mh zEiW0M(zK>yitPn(#xvZfXPmR-9H|gdYZ8!B9N4IC?55NGdIl2_g?o`}fu4xfA}Jh6 zX|N)WcqBR#TYT`f{Tq{0V(lWxt&L=~ybWLpxE@4Z938?`vbdP~$cx?dHkKuCb9(Vs znb0{=<^;Svz6>ryw*W(ib`dfkK>vu5#e|8fB&sYibP+wLE-W*ZCY%J|{~zn$*sIM$ zxDZM>ERG8E#oE`h_0UjJ_#oy}2yAomQl^RXo{5D`&PNJOmz{J$K|J1PbnQ)a5M)i@ zu^^lSgMR~jN)k`HEq17hphbQ?RDVi(h+WofYB+gf_%N4=Dxi8lfpd?3pEwr}5n&6bY>yS=AW6b~zt%k1`M@P`l;Rw?)ol3w6y5?BKH;336q*u|5s}mY8I4I42Om(q4veDryF#hSs^1}!dbxjI=Kv6iFynxXR7|N$Q-5f`(TW)nq&_c*KeQLhDuHKsuRjZ{?(IBkGro&VSADl)`^oD|7sg^H$ zlX0{zHp#-w1swi>Chql-b7v19I`Z(h8xsRd$A3P*{^L*Aefjpg`#)X#`~3Y|c*tO2 zUGx1PKH3ZLAvZHolT&EUs`})}Z@qt=*}kUk%$k8!>#iO7?aH0Tn6GXJ^505QcHh?3Na#@eaD#ymh-6Q)f0 zz}dDI=y zjzPX38-F<`j~QEk^sYpv><`POwKXLTDAj{9Kp8*~4!s&#$CH=x)Qudh-DVF$8xi3rG}P?={$`0V)n`1-!e!!oh}y@T5vhpj`R%Ft@k^`Q#X# zc3K$l)S?^YT5b?)msUd}=7B1;DXlq!44^wobi=m>{zuixB*bl^pIS)pGS6*|VUu!7 zc}<9p+Jg*cao&kWUb(`E@}6o%#1BW{D14He3ic_2W;EPZPb3Gd|5BY_W4qpXB|F_V z{8Zk7V=m;kjzBk2Xv066&3WYp;;wWz%4KfC03WC&hL-~rnx*hbQ)*fs0IljeAz2cK zw1NUpZv7RDL0%GrocEoUL|rrNlkvQ`G*ATasR*FoVZ-9vovq<|XCk2fI=Jtifr_=X z5@(_Z8xjY&6%pLj2&JU_wIF^N0%lDXd4#~*l!l<3TGxoeoVq~nu7f%hixg`|>`s8; zJrO~ot~L)8hYCRdt6K5woyVvAh;8Yil&j^Pv!+0g8$6FKHg9C_kBhUOXx1)Vkv;R{5WO5%mhk0@~i zr;0L6_RoA`Pr>qdZ_X}Z`5rnwWmt|hqc#s1kW54Xf?})`Vg>jlnzXr641gI zG16RkAsZN^Q1~*e?e2(J%%}?ew#c2?K?Xk(8te<=9V{FVIU-m-+ZVn8BzzzPR39yD zAYu7FLIaR^W2wY-OiBl;leuGl zbV2oCR7gPR3KlfKpZiRe0@&j7SsG>Y<4d zvdyczGmVdpJlb~%4+3Ia=PSVmlNX7!N)E*?LtSAetq1}0Sn@=`%?utzecc1=+m9!H5Vbj7 zIo@~mqhHs1`%E3y)JW8!m@h46kfzZHAt{p_OJv-~GW?=gUHV1I@t?n4z4D)j3Z}ffRCDdtqw5Er|Dt#EysKZm`b+(kcYm*Z z95}pZSG{vYvZ@DOIk{21WsWtW=5J!%=g>Bl>*HU0HoNEk=88X|Ion+E$MY2j3#Po% z_Rj-rAy7t2rc2eALns03CW^Oxbv50rO<{p<23s1plHMuL>`s<9pRg3qU?i@wTi5Pv z7`?XP&Yg-I`zL-|x$Ui0E8l($K`9UJor^nQgpNf4PamjeC?^x)74qd9upGe?*z%~B z3+-_%EQ(0h;sUe6-@4C-B?cf=})ry>T^Z^I&(~ zuwjQ#fcys+L*QYOuBwulD4rZztm+G&A>x_SJ5D>?kv4sI)8?<<)1O&Fq`bZ2#i^y!`TRCUo24@2lSMKI@>MBdc$7&oJp7zq_m8xR?b150Mx%4LJ2SZ^%d!rW7Irw;g112u-z41E{ZB@e)H< zjXWux;0DFfWoLD+>x~Q)6l`iU``!Gmh#V5@57kBQiLaC1R zM^_E*{ASF$;&m9z;ioE1jNvt5re7a|cA0}OzFJ=AWIoe@o=T61b3Lv7{Vu{xD*a*;rzb1?}e zAa4RWow73!XP)lnvNiIibD&ehW!@e;p0JMDH?vHCul*i%{;>{?ZP#^u-tX7z^?XSr zaNu~7nJc;1Q&wD%ss@!O9~KJ|a6&w{vQdnU?Pjj7uW2_<>#k-{@G=B5B2^R0PzwtS zwiY&W2A{;l5mz0@%G^G zL@}EW_!A7a8F8Vj7V`RGLOQg_7p8q3ZE|BKiZi7+FXGIwwgv1xol5N7#@KvQ55!1l zxFX0_yBjLJBm^d951Pl@9;m?7CiCjRQi}$p_TWbi%H@%6kS8P>@a|#4fHFBtnJgo= zae9)N(`Aw?Fg+AkpEPrL%2Kp24Dg^(D26F}IwwL+^d}p*TGtFSOm#2o2~y<9ZdlFB zOVvV77A(bDN!FZTN1K3Z3>BgD5@Y4%mcI<*3yeM|lr4;ffGVdPNGqc6zy*Jk3dT_j z?#Y_-KxNeTWkMV6lhawvh`*6A%`86wOCf6u7vd= zCTt5ZHnacq>^QchuiUN$8*49 z3FXM7XZ?G+^YZX|nLM1WP_pXEU0%z`nK6WCb*P5wr&)ZSpe>oS%|U@(-;%y(7p1Y( z*P@PuMPd?b-E4**=$>X%V%XExziOj@-z}T{RFN* zqvESc_i>3VqyBM?#szUaWPFe;6wVI5T7A+Flc}ym)_E zOpL|4cC1GVRPsm%S$AfxV&E{wTk^HJQtDEdg|KIXTMvv!n%0laaB38a)-amtM4CxQ zHk#l?@o6ZKt?V?F3qAOl`+C$(PUqD#fB5Op&g&hI-1^t)XAW(DzU|u6-yPhvZ{E}Y zzW(NIz)}+MdE-JD17*HM=be!>l!XT0zJ77rywlJ9H~p*s{o8ZbLkph!{`}4>^EUr_ zA$dgKbmRQ1Zy!AP?6sNK{FCb*4ej{XTRT7fy0)|HxOw$SvD55ea9o$1MMXHDtmE^c zRe}|}n%zOPqIiqiP?Q%*x}=b0%r9H5B-uWe4^Fg^3B(0(0k6fLpO7&yw7?9XfVDvp zHz}7#NoQ7b*xS(w&siy^+;crJ*Siy5Pm87Y^#I#({_T}_|9RSrZ0zCw(i&R7Zm6?x<9||b zKDT(&uUj{rX}o#%yPff=_jmqr|BAh*UV*`6q_C|)_L4p{j5;tbt|k&U9#^|GUaZ^9 z+Jvb-k)Cp*J6`jcl?Z+M)l*lV+Vsoao3C%*^c@Bz$+c6@zO~`^H5DCyIWSmMq(Yzk z*e6v-qqM&;X7VP9fCy%}TY}g^9>1E6kaE47&05SCdEUUtpx*n$=k+B^2RU-`{i~s8 zH(i}~^TNE%zucc}b$;x?!~YupVrApima*<7(}p^E!O(*MF;3y!meEu&WQPTh1Y3N1 zmQ<$v^!Tb=nWGM%GwzeQFvid+O%FZwVbA9`24;Qr+&eu0o>mwikV?66%K(wc0(e1-Jq|2rVa|0DaHi`u{4=>4 z0;Rbfd_mh$z|SW5u1T52q49~b4Qk&a(jAV6@b1M;R{rwnU~nmkK^HS>pkJ;NWy|6U z^c;vn={{&IAvRndCq~knAaO6pPZ7=Ea*h0s-@6$PFl}QgtA@RmZO7* z$SkfwgbscuU$8@DOE#a*RZ}Ax2SuZ&pxxu|(6Y!LUXr0hC~Vgbr7AH>IW+^Qwn9Eh zGD~l<3m$j{KbebLVD33-Z);!@G4BF2KX$T>FSu})iHf0FBx`Mv5$)ES7v!9u%fR`e z0fna&X|d5%%9V?-kwgQg1c6bmM{4s9FG(hl0uxb!loyvW3fu(}92)E3S(d6AfOisCp#y<*U1Xd%l0IC?mQ z4OCvybmfR=*0M(-C)565hboi`2jPC3G0wZtavtpG+41(^WeoEguh3VHVPkREv0UGt zh6>Ut_W~M<1((EueOg^yEXl9$ozoX@-vYm8vJ^O~9gpUTif7iWS+Gr>Novff4)MH6 z2Peug;Q)EHG$6_chWQM3R^Ie;J$+5PRP!}~!!EfU8jIqwCP`K}TC6j|W~EMcGL@r! zgqUB1dl7)*e9Yep=7JQlr466g!uEg?V?Dx^1WGN<4mlCZz-c>Sp0Ng&yqU`FS!{54 z&~T#4)|2duAE?^;*|?NAI~O^OIuNNkmPVpLD`iUiBz6|_d2O=FneU+N%@4SHsRpw9 z4+WKZ>PCo@C-d?;2+e2X0Z{npaF2Z5YFaakEIql0>06=*c^01;xMzE7ce+5r&nQ1b zu?;Ilf(fBfU%1UcYMR|Cj@~)$IiR&$>~%@v@No6b-DFuP5a61-B)hg`~&of#hW)xbbRsN#5?a^FM021 z@2iJ?>_VWg-21c^Z95TyBTP!U!VCE8cu4osou{8`dGMLx2cLfV_GdSLHT&|Z%B}a` zcxUK$*I)k>n7wDuO}u*Zhq|3V`hWR${rdq^_gRIM9!o|V6QuJtmtvqM6tpczL2wF0QfrC_u zqZW~}eBriIA{r75agI>h7j5y|X!Iw))-^->vgyFl(*$JBMq%flsuz|j5Kk@j7@GC ze|hNM%O@WBsps_dmPc+J|M=Ha8ShNKx%1P`lb;ziF(fbWz?8_zdQ>PXyaMoSV`&ZY zPji#d0e2;)YoR)1liCh^!!}%;cy-+`r+@ud#;yN+dh_Q8H{ZN=ZQ8V<&o5qm=7Sw8 ziuVtuBD5ojB`frl!_ql$nXX5k|Dv%DdPgY{pdzME|IDV+PTTHaI@p!0pG~u!55E8J z(l5B#2Ts2K-M3di_`kg3R81_q=f+FBP>0V>tSG zBu<89{ea>X3>20R6k%IqEdH~(4VZol_ z@#Un5Q)ew!Nm9MY9|rKwL`=!rqMSZ-W@lsa0=oujBeSl5d9qfEoS(j&WGT*Qa)4S7 z=KHu<=aMS}WEI7jlSqej(k!0rwlMW|w9qFRF-r;fSH+YU8<9N?WFVaUOCbV#(t}2~ z{HZQVsb=eCkP2D!(^B1^^;r~fm=YF(7Cc(K7B$2pW77I~WV%9>nN(6T6*x&EZ=JC7 za-IrN-sujdmUZQ)%9U!OlAJViVwJI*$Z}Wu0RkGDG{@u4}1GiH*kC~oFg9oc?wqMXck2^53Os8Z>L5}@8HRP60!axgo0;OhrlUH6yc3I!<(@L2HL;-#xe zDe4ID<>Ju144%!v==2C@gwZo!ByD&FB@acNZxV)SsbY}T3D|Qa&TKZ%lM*Et5z%&9 zyGYfrA75&GPU_0i)jAe}QQ+--oiSai&GVFWw5Y(FgWgS#m&dJbRf%aWY%^yldnr3-tB`jmFs*Me5RSZ>APWw8;!J~4>X+CDKm5G?4ln;8h9b=U{OHqBW; zz@WnnDYIkd(m+47sHt6;!L2mRfiPU2*&wwkjbbITP9g-wwQ^7)EHBVgUF|s6No;nl zJJE$_wQgKYA&UBv&S}1A z%nMG(u2Vpab_~412t5`fSje2=T+6>!t@h4Er~ve%iz}=rFB+Y6!~~Xj zK8)dL3e#1ro*h9QXJI$_+lUx@B0S9qL&4HmPpz6Cp3t+H{bmLD36rurtVW;AT9upJEy3mO+Bm~Jl=qq7nrr#S>&V%7LO$53dYB{_~lw^Hfbz?pF?rhttOna zZt1f5r9uxXo2%nJC{Om_XkNK)!36s5iK@Vs@;T4@P@wnq`~OM%;ELw`Z=e0@e@hvP`!q3+gy@4k6~olp@@Rl;oj;>EJsS@VvF)q zS2L52s%LEaAtJC&_h4pSUBT7+H{E)2^DhT){^#K4U;g~+kDrx1xOLG7g>O7``uOdg zOHZBhHHem%lJqbkT^TZs6sy zN7w&yuI0mzZ+%#_>D$Ilmk+|8dGqX(I~TtB@uuI^x!q5^8ZXVgw9pVw|2~-iB-8|yU>T2)~SB%(s%ECS9@kt zDC@-q2gc@}??ZCGl3MNqKrt3?WBWqc?Gu#R5-KXvF@J5-X*E}n@muW*Oqgw7 z<7aLwDq@oghtLbcG%AYFP+6goIWR$kz2|JE9E}V1&?QTES3y})lo`Dus0m}Sje37a zSeuA*#k~V_mA;AcRO18TCh)=@h!uyS4mT}|g@T@1<%!jPsukh&AW}eXn?2u&)g$~7 zo)kN1t^I~{50g@HK1gBZ0#$fg=3 zWVlC9pf$qb8yIa#nKVVbh59g7dS0YfeC`x#Ah`@d91l9(i$pU(`@#f=TEiwdikU1+ zu_x(XXYf|0FlXm#0f*5RMBQqnCJ4(nQs1O(m)7@~E`N+Bzu#UY!%ifa`{D6?Y;Dvkg@(<*~Lxb$Ew0E@>BlP_Q8ziZHb} z&sfLz<^4W50S!+=PpTdV60^)yDx0m3v7GK%KfMw!mK;H z-Z_MSX4|*`vRg?F?aa^XSi`|=xp9G|9ETN+w#0+EInzj5uqA;JZ_|? zj_7g7$jjgW)tXX`DBx`NEgCqagVUyOHxP!t^w6Sp3$Vs*F2b^{Cm`Sp5QTR+&k)s4 zHUX2jL^pO~wMt=%dJF0k7>aNNA%;LbfDO~1f)$s1K*VC~bq%RP8Q3_50XKl#iQ7Ny*@8OVJv3+uc*w8WTcdKh+p5?pY7y+)lVXq$lmDZ8 zjx1BTOLEX&(^MG<_ejX?^sLN)fl!Lwn9Wldw@4iU;}TE?7^fu~fU5_N^ypQ459ANV z^VYl~mj^EM-eaQ$)7Px7K!ztAN=3aHUUaqyw3Rb{0YjZ&7Ygy5kEm0O5foJb)yau? z4t1920T*@!LAEMpX+?KSd@-S}Sw8 zitX&~3dsgK_5gyTHE1V$xY%U1nu>w_?P4-u6$H&hYwV2JIq*k9ErKTnDAmclF~Kew z%30gfSqQ>*C7vA|Gj?J&)|s4dAKeU@0Sy}C-Td46h&=a|$B_*|CtyOM%{x9l8juCv zencO}mwrsbSgoTMTfL*5axx>HmkQI3Lj=E1n0YmC7?@cNwLFlKblh7)4H$RvH;U37 zN(n6yS%?uqwu%0+HSWa z4=t)X>Bv5Q`>8kHj~;#ZzmLBw+dlcb;^n8FN!+{nX5+2@jShYF^B0@1{`AhbhkhCV zYVcp{o)13t7rLfmpRVFTwyeO8EjexY$I5NN!lpXl@ynIuc&69vC}Xt7rA$)PC8p-) zkoB;ocs(f!qDKsrZ}W7A5!OEa{;^snuc*b0Q=mNBw3v1^te$OQY`}MA=t}()|9D~T zjA-jI(}ssWcyIsy_xAtscu()c-~RjI?;9Te`J+d^o&L!8#}3R|y?=JwZNc=W=2DW) zI`X0!)M^&g-wA{^=6vq(cjTy>$LF)4b5_A3rs6pd0kX z*W{VAP0ARu4K{k4W%gO?F8VD&)YjPfw2wEFD}-__G_wvYPqNa|JzvgW`*Y)_|02fp z_2#Q@m3+4pHjh&&wo~j*Yq+dt=l`4|x{hATY&M{lcr9N-1W%kC| zF)JhkU<1e$1?l$+1PofyXpU4Z<08vCVZo+(+-libQtf!&%Y+LZOonJT^O^C*c9+u@ z*V+bhIxoqAIb{V;mZZ5<9w&Xv z7f8jJ<|`Gq7!)6s!*{4w*~8K+`2jBoon$tilEflT&Er@+Tfy{ESi|bT&D5`%A+o5Q zFt*|O4FX&goCLOB5>_%!SVqoXLou;vp)jNcJrt4$LU#?JOV3Fq0H;7|NK5T0XMGdRXjCspa$? ztUr03pzgwe23tNTl6iIJxO9?!S*YGJjFTnNc9iTqQ4KT=-~a?xLQtfVHbE$9%8gyI z4SM;OV=7XkiV#q@%JiTD67#_y!)x&-SGyU zD3{~J@>JoB+Yi(z8^#B@;WY2>p97Dol0_*nYj}Eob zW?i}o)?%R8+Ji`CU`}sCFbW$8^Wz||E=p#Yg7BG^Vi|?~RqtGkLMfyVaddA7;Myi7 zPG-wP*xU;I@S$V$toB%yHq9?29dyX?8setd@&GfTd=Od^)w98-W$_0HlcZgxcpEV^U3d?d2im+2cCL% z`@!dixBtoY#e?t=DsQcIe>+RU-nAbs+vd8utBXH~FS_H`M}KqHm~bB5f9;{afA{Lu z`!`1)+I(Z{=Kt#&T6j5B_uZHG#S`zmeV@Icx3ZvT#ba+D`axUqdX9cje_4rs+J?%O zcG<{MGBr0tqJ@!_UU8{Q7tBb|TEQbK4@`KGaUg}r@faZmi&pE-$dQuSZChZ(t8nz~ z^SS>$cgaN8z5{*X16{Qh4;;U^-}!Oq$v^!secmIRe|_U!bU^&4Tl3aCH&1GwJhZX! z8_PM7J8@BjWx_e>)xXt)d5kGP-pz(j%w4VsccM( z@lP`kIQw!B=C-6ea6-l8#>-3~Wf`QCxrL5bk0Xt8wd!2Uh++iAolNks7_0wgU+Z}8 zNXHisuW#PhJ@HwtJ0C4vAgZ8kS0snK*S)?4@vZ&XqRApADN2(@JAjCq*cj@@(HZVd zkJCWU+pgT#&_zax<*P1QcXxcW%*_`}^iA$94Va~Qkl?CUZ$UB+YD}Iawt+Jt-Ims{ zmnE7@A+*B37IDZ;B*Q+8&%Z`rH`|qH3rCu;Q`k8B(6QxoopeaSg;Fn0y3;0`AQ2=2 z06invgPfh21HCqY5j4T0lfXcnJJdoVOPL7BPRPbgYAzcaeGRB{HX@{h$GFa+5s(&< zI1*|(Q{qu2&(bll27Rh{Ik+StMXseM)B&)daycSEk)F8TScD~oWuzY!L|M)O-0SB= zdN%5OM;c6Y36?UwCkJLGH?+fUwwfxQFwqpkfG`tR0p;QC$3Cs^IKa4l z>0@I5gqIcB;SZS1gFhAyEQtnsTk;P9;ws)RS>eb|FkX32H*07UVVvc%eG_8dpTPqR zi5)moG$@aSJQ^W*m@6)*Z|($dT!X8S5Q7T>n{6BL^zz~i2`GCJvCQK22&o%e(J!$U z4A@kY9$ddnZ9aSwz`|8(gG(W%*szK&o*?TNkxbH;YmSPA&hW-KueZ0F0U`joo;viYH`9`LCI?mS#uS0Fgm6mKXyAWTAgPP0r+!Qj!UXMRaaF@U zZW}2T<9isF(DO@4R2CxGn31YZwiDRIez^QW1rh1%U4MNQ2$lvqh6 zNq78OsV{8VLDiQGqnO050^`A^AGt^3*8u}3(bk`JFGGSaHkUv=V2TogEpBB>9A;|| z*q!K-U#eqHs%8S z$4}I>_rvymNe1lP4td)+%>oNW#H?GwdHCWWPbbJfIfi~pw+7lkLP^d7(th8##Jb zZaStR%BD^MDiwzl#OqDoHLI2Qu2o~kDz&G0W^`1je3$3e#!Yz=*H99NA3R<(-$w;O zgpJq@f60l!dQbEH%8SNXF=dDn%5ilzn2RT<0AJK;F~*~MS3;c@E*W#U@Kmd?3*RAAINTb0BBufG!wue$qEjd3H7~&waPWhlzxwVvQndek z*n9E$YyaDN zYTec5w|YPQyYMvO^n30AFd^<0UHvZGj7CTNWuFxt{7g^o?f&!T8~aY*y7#{8&wlXh z#|KZZJ^ki)f8P{3bm(44P))O>Wy9%7sgHHqF2Pg-1R>GZzz)RbTJU8`h_7IcD_0X* z!!9Ixa3oZcSsCYxL2*=h8*Eq!z3YhmmC z=r%`WqJ<}%6slV*y{sTYr_o5d9mO<~=7KRht1X$nZe^{N$Shc@V*&q3Eyw`2T0zU& z3720mFg6A0>-20T-G07?AE4cfbP2)|3t5!*H|gG1oiJx)p9OwIN zTcpYCkWk4WwisLr9yen%4U9gjliA4;ZHiZ3tOFa14=;xwT;W3( zUDz5!FJ=&XJhgCP?sBcufF>bh#QSunq-{e*eZC~D@0!#_P)~(u8<`!nkmfkz=-}^= z2|hTzxRccMDH&i9>y%=Nd|F;n4HGN~qAv&&7@Xq-iG=lwa_}S2Y3lW4V|wsjJTgsN z55fY^)#(t<$xD|@iLp$bb;~x`uti%@QOnDlwpxfM%E=TIQ7Z$5sM=)7tS&LF{pWZr zx*Gs?jEY2>ZFkjnp_520_8kKVLg#HInCz}f`(sHmLGeF;ll|~7ke$1Lj>qO-W z5~V`Bt>D-yh!G@}XS?cZyJA*7uEKJZxmb8oE<)L`c2dF+&HUx+yb&lf23V7`Ft!nS z?lg?n7zUIZ`SETVdh-aj#TMFTcdH^uuCo3@g=n-}>I5S@a9HZ2UeV zk7Aq*nr1Oy#>uj{c(OwP4-YN?*wiWmG0GN+=YncJ;kA%F*rE(OcB0i>T-0uyS%W{# zTa3JfNr_2rLGJ9y8fW_f~;kwCyuvYH~K?`#18$`uh?)ZnvwQXc}!?-S$dT zLfKPJiHg(Fd8vXi&lH#%ZEGF1Wv^V#gu5@V{jGo}&FBA`+_rPw*NxA8^5Aomw?B7v z&intZeE*}~_rBG_x_#!@U4HpeXMw5>(=w@=70IrwQoP$`^&fQJ$>`Wx0er|I`Gc3SH7Hl@%-D6 z&mVc~rDco1*-&@)*3luY#&h7edrci5&VA;Syy>o@vu?@2QU_|Fdyc~MJOIj^X!boL zD@sj^B~`E2KmNOKD!Ph>?k~u^x~F*4f0ySC?|9OE=joNlGQW6e^Uv`s{g?YMgT4Ji zQKNmz{p20@4gd3BN)jojLpvv;me$(>t`q`EXf<{5K0e)>K54WlT8>6vzxUfapZIkW zj>FS84xIkr*O#7+u0473%Y_@Ktmi)8Ynq0IX2|nxV=wTg>hLmaWse)uVCj(dp?)R zKe-6{u@@njxYy&Hs=B&RW`W$pQtA|B>Fbr*h;5EwQ=iv|Vo^<+;gVk;I_%Yr+yg_f z7L|A#t?H5jkv#)Ococ&7B^$}fAa!nj7JpNHjGO-eO{PjP`4Z#B@?Sw z(;%&;s$EA1F1H$RYAS{3WPLnK>&D5&;{(7A)-TJ#+pcVx%uGU`61yLrMGK&E_zER) z98Seka#K^-1k;%ko;UpG6(_{TK-UR#GErAN;UyC4F<=i~nF&?ow_tUb6ZU469d8Y! zzg?}zWC*+~9Vm|Biicgseq{iYj}g=W>(MUK?`fvIrN`k1^(yQ(`z)Fg=S>~yPF^!T zoD%b(h3E-+O85-enrEbj7Qr7))}#Js%jbJ*A6vaGB6ORDo?5=ENsdZKIPT^bv<%za zw&T;rkY|y&lW1oi805~T2dXL}6;6~RFXNOb{XBat6CqS7Mg*sGFxZKPA7sG5l)-t2 zb(hq{?0G~Gx0rHtX(!X#hpL*wwT_ia5Q6xbwI>6xN7eF%o~AqulUt?no?3mR0LVn? zWI)-tzH80O7?I~{mOJ2P3b`q2xe$_%2t_c#O_syoF;%6Kx=YfL3esk!gu+n}7Fcx0 zzF=7w0!w_f0X=-C-5Xw@;^m~MXIYoKKzFPNOMS5_A~a#Ip9N9H#O-QzFHxZKy00lU zAgg`+CBfqpA?KRGN{k&W+B^Tb5_ceRxSK5LBxVIV`ti6!Vb#W5<%wL$n$=dD#zv@L zG;Gw3EoXv-5Gz7_YSW94W@%U<-<1fM$!!EYnyO+%ITTuRafeD|S2f|Yeu>s_C^w7b z?olTsa6~zrI5yU0q8e8nRDdpIh83z3pFG<

P!`;)IfJyr$=nSmwi%hB<$ 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

@cJT@u1ek17Dqm5o)6^SC8P6WH%= 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 alw2M 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≦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%0Al3i_nr;r{$Rl6wIWF=@z1Tpbz63V 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

%d7f3p61R$`vLsFGD6<1pQ6-sbOF3H3 z5l-B|l**JsT8)p*?EgqywYp&7f!%6G=k_CEBAzW4qU~WqSg28kE|{ zOV7Na36CIkoaA6H4wN-7oOC9K0L}o7!R;(Cx4?bMhwgrnbgWRUs$V_N_pkWO{p{<8 zcHbOyWPgZMT%K`)9EV}6xV1cmIHyldL0=&_C(w-Egrp=z(fa9SRQ1zj8i_7RIQmF2&YXfIdek6 z%UWgTZTbrXA}DrKqD@VezYmA`U!&vHR8S8MP|z zuZhi%-2HIYL8XUpvUmq-Mxc&(^7d)_gihvzr(WhhR2*3;Q}Pog#W{o^Ys1<~GfX*& z#B9aHTdY=!RWkyqUO^q}HoZj5`DDUN%m%rW^ju&7#73@3sgD#ytU2se69mf;F<&;8 z+sL2!QP%>zZ|Bdwmx&$-D|N%oJjMWHX+i|BTk|H}dHN93H7gHPj&;tWL^!~Ms;N2x z$Ve+6Wyx_vjDPFsEP`G&7bEkXjxZB_?3b(V5nTYEM8%r3AxTXD>E3SB`(d)A4}IoV zmVp=f6GHCocgU7{`?f2fe!_4eYMeYQB(!xVZ#L79ss*u7#T>sP^|LCz+Dn&TyO-J(&w2aE!`oLn?a-N(Aa zheN-M2$O&GO| zl9oYmv`kB3VPACp(dWPC+c(s*TwC5x%j{Bif-jmQFKNk%8q0vv+?2W2Ieg*(znRi7*MO^ z_KL1Idoe^KgwONgFS_1eMDY5A;~3Gv!rd^lEvz`>g3_TltT=`` z#ybOw<9Xe8T`7_WBx)l`p(0ed$q^U?*I&aqLKjx!+E?$t(+BSQ%nGXia+Tfm?XJMy zh1;KjkDIN4T5>Ig3Nq7q*k2)UpWgzTrYy}XJWoU$S*N9U>FRBg`GYu-JeJ(ILm*|G z=FLqISJAs*qwqc?+=ZcTYgV`><@gJNfeql)=-WC?#|{=}x5+JHvU{lE5pJ#HgN7{B zf}UU{(Q0InfzueS>+Dak16fw2m1rc!vMY#Ec6!7Xd@@jDr-omyaf<*EvFubkC%HIz z?*S@SCx8)4IdZnxT1Ht=U$+)-B-E4yRt%*zmCYuup(9ZZi*@LeiOWhjF~^`SV8VPG!;9eImi$)*)rV-w2>oInn+f~ z2~9V>4U8^=Z|-uz9Jxj~>m-T2-BHoLvE2Yx=Sdr}*IoH9#&cvpMj1N)#5uzDI`fKb z6YhwH0yvzdu7#pKDoYH>lgX&gNB1AMywDE3(uiq$zzA5p`*0_em$|;VnK(-Wq?=`Z zyZIoKJ$VMbw_2|x>fqMsnvJF=+G=^gHHR_Sk~Cy)H99Blk|muzxZ5!L&8)d_{;lDc zdjgT6h%K)`6M`pNppIg8X5FO*+HZa72c~WYI`VAbYwurNpLd1i>C#vLqOCm0PMVuc z&QczD??Mvd67;&r-Ig5!56~x=+N{k>g6pJa{vkt}K52!sbYk@UjkYcntny{QV`|+| zs2~gr9bSNgW`uwvY{PNLAhWF)J_T-uNk?*}9puQQ-+bIp!o^oBgV(}hg#1qLBec-pID4|@V#wNg?-xctqeKW(GG1%%f&^4o zD~^$1z|M$2H#!s`O^g%!X((&{-MqO@<0eXi9Ds_LFZ>2Js3cUQnWWWWp|WPb#xx;r zJh4`trD*yFS1DU_#&@=0DGp6Lt9D zSyXT$ktC11#H}|J=DQ7=v^+%)*!vjqJeVIgKMN%(&w#0eb}R96SSil&!gC=32G!&2 zZ;f6}*8b&?h;kzWmUp;_xnLH(g#9YkgHDOp)oee@4yMS|*S|PU00q)IB9CQ%VGaOK zyy-rIVdJ+b4>y)h=wwr;Y;k{tKIT2B{|}3#QIVQX4jk4P?+wN2sqlsXI&6J4kJi`O zUOBz^c`GT$j#DjRbD5a=Fk#u(*6ObUGB=Sh&9Hh8TX|91$6)<8r^b?rN4I3)&40Vp z$~mb%ERSDcy^6m5PLF=s%Q5f~sDwsl2B&5i+Zy??X6wR1;zjzYvvR!1`8nh28_M)g zq^heU{PK`???Ow+qvh>%|`xXsP#dpPdcO_D2W$P zE<4SYBC%rC6XoWR-|=ihk!_?qbEaYj-d!E`LT0bHPcukv!GE){D-(#xckuH{WX{Ul ztEU0DJ-}oy4Wr1?aTRT=;D?SI--l6PSP$kCi$@O(QJV3GQ_fNfKrD+b-cyeut;`3_ zghFKE#2j-$}!LJ^VZi3kiE9aBmxzuSb|KL_xN6_&C zKT0}N3C{JfH2gRjI)^8fqKx~lo#7v zUmC6*1*BtJ(D&w^p4~NrvZ}x_Q|6qd8j{xYfv~aicD_UwK z<|3hD{xHxRRH$0AqxSkrf5i!fC=LP84V*oQoE?N_U2v~1l#~kUWJlQ5)&U`FM$v7K zQc4h`gIgbQjvk;H)kyL8JsHEr?UEOK*w0Lth^~Ih`JG^IL4|AR=J4&|a0>`Yv;r?J z5jFXS>z`MOfOVnTr60^d$d_!^XDe>Bq8@( z45xHrxmMw~b!&Bn$Vx=B`X5R4t)FI|+G9KzNO^`sy8}W4i94AIjIK!W$hUO<>ktgW zneZfw4G;1is80LG`R!9)05jTj+qvh#c|0Z(FQq0Ux12#GD`xFd^E6`daGsIVzHxpP zzhmRb+Jh>gC`(6d{P-=1KNCSsnoq3Ls}crM1+Je&%!}Lnc;acMopCbRtjYNA%$`R* znlMZ}8$+CJ2H<(-F?xEwBEmlTw-`EXT@;hER)=p-$Tn0gm}e>zMJ1I(SXpa^Hwj=8 z#Qfd|6IqSL8^{?%IvAErRORu0#u~#I*?xlx*BmR6=W3`jOsPQ4F;g!)wj144N0P*= zMl@yw-O!t~li*OW6r)huPb(+l+gk!pk&{BT!$oFrCy81LqL5(FoPKM6 zE{VaDdxWnOZxcVV;=31P0y$uPiH9@673Rf@2t7lye^}Mg#^r@KShE!H+dlCr~LMj=!StwL78f6YZ?_ zFq2hKF-nGXD$l!fV2618HTTi>R>DepoBkHc7poCo6MVelS(lLJaA6|tkVgrfe+w6^ z!QALIy9tLAcxZ6Lwl61g_^a^1)7|&Y`IrF#Y1;(fp^cMxV)&}&sQxe@ zYUeN438}#JjN{itu5$72Mkh!kCrJ~mF(9le3k<^EJz1_VBzfS3Mdi#teXUgpc|@|R z3A81xDdmpqR18`Qou*J|D3NlblXkDZZnA4y0#2_rm!9Zq8FHi8%q}V}$VG!9V?^N=F zTuFD%<(*e++hzttVr!ByhSvdfMFk^^$YK%o!W?h>NCAI^U3EP)@Yk^PZ&h z&PwNX@UnFBb=Ep%AVl{YA>s}&0*!2*ZvP*Nx>@#K$pmWHY#h8k4^ej!=q>=s@To=# zcx9Lyl}ylTn2Ddalf@>tE>s1tWVZ6^hJh4dcLm!ch6gyPe?7(0opXp^kJ{qdwA%ds zuOLU8}s{~hW+pj|CEHTh10b|8c~VhpmCluR-l zT3sLK_!)&@fB@g=3V}to`%rCt%WS0#Cqsj(u+HEF z_e)UB*rvE|m$CxaFLxygLThZyl3e|fG97Gbo|fBbHHKTG!jQfEaHaSg_ugo0s}Cg% zSQQS`ieLtyZGbzF&v@&v;CcE`&g>KOEG?<72#vwIF58CH${WVeXUYrv@f&^eVx;}S z{P~wp=7Y5&f0MW!lXrP{3Q`J(+AU7pR88oQOpj6Lt;SuccqlKw5XRYgOzbc1J=gJZ z?wh;1wc2U6Y|-UcDoq=LFXVj)rom|W`CGBwuJ#*_I6-uW7qu#U9~jdsopw=>;Z2(4 z$Hsh(Kfg(xYlLU=JFc#TB6iR`y}ta+S>v%Bu6AvT zX;2kEfe>Lz{Pj+V@}q|g+X!}If@9EhUBBf@@ha`&YaH0G{nVZf+4v(0_2r4ST?ygd zT@`Swgt^CRk9xn8869|kQ1HQvl4uRAWc6OXkZ5_*h#4aY<>Il#Ji-poB;8`fC>@)H z=f}^Has7JzR*GhqA|~7tQ;9?=(m4;#`w#V=r}h`8(E}cVD*r14u!m z6bfXetKmWqTnKwk4O>jBA!EI4QbPSmGwMb9!^m#WKnO8k)DNH?)b_p&Uy)Y5Ws;Xzb_=cJ&9r@8Fl97eUluKew^r3{(hycAZC)kolnYe@&ZF{c@a zc!31jxXK%pO5;`_zM6Ch6m`n#7ib|yhlG)3Do401geY%8vz}J=xWG(6Bp7Ek9$I!h zA(z?KEa^;mt06j}g!Mzl3xbnUHM7xyM3MaK!14d*$(8>V{aFy&%(%7R5Z9ORn?M*> z={qA~uBjD$gv$+}4Xs`MK2U&Qd3rZdfAu0#NRMB7yTIn3?-)-6#+#bFQa|E(bDJDg8Jv~osrMDcN<-IVq zv!pj8t1AXr5(nTfT$lXH+iVrz<*|FTbPZH1)EtB6B!W%NH{e%wn(K4zl^ld?~7_s#61^NjhA z*H{b6HL--k_e{7AE?9Ot7X@l^x9xjV_&g0r;^qpa^md2;1Vd~fbqxNJ{~wm>?Y@_m z_}+jOS}RI+;qLEGah!-QwNr@dDs?e_<~@`p<{~nFd~nBtlaqYoal?ys$RFbUgcEib9BrlO*_*D+UmS+Z7W{P% zP(SHt(CtBPx>@L=V(5+JrTJ#sZ=z%1rreEi2MPr44J-EDk&J!BU#34zfqf-Fl}pQI z5H|U%)ARzb?D7IZG_7tj1#h!tjtRN;TYxfv5 z)LWfI82Fy!Rk8gSkeF6G{WU!$MsQt3h^iG@t6ln=Ew$F<;^_;|h}<7Tnjn+hhR2TR zMOXNVb`J{J+i(eXOAr?$I1RKi@pmPVRz_c{;46&340MM@6!s?O)WI^b)ULjqA;6W zY!6HAKpv8hixG&2t#z~2^>vXr2!7sPUW?jCgiWt=jjdbUT*C4LYLV?R3Qu3mTHJBM z@IkP)eih%5E#ia9UI^$6nrB~rz4~J&BJB%m$2|%C*xkF7FwZ)~hL~<-#v-pfT46uW zNz;Nf@XdWz;vn9UL^VB zvpG(AO;8V^eWl>`*lg|-H6dS&b_ps9vjY+ZreTe zxaNG;RI!1amdCYO69kJ#hBKzryzs&0l_)!Nt$9&Kxf2onhy1dBODyzI(5Ua>^Y!;T zOG`&0)~HQ#HdCf?r?*n{S%AyUk8Yfz$?RWCC>FF?BwCNMKLm4*c-$I1O1sx=f`dyb zhXJSbJ*CcU6t5HXJB3bVx{@Wf-u0N0o`^>iNVS&&O zucwmdT#x`R0)$rQLowsm|A>A-D|_c4IiKXKj(xhh(V^sq&#&@6ryFX{Afc2V%%-Lb z-McG5_oFTTU7mOV6}q6*Me>o_;7PJW`aNy82!k_k>>-=3(8)SC;|LQL;F>u zDMTz!fCMS=uRnu7-ox8h>RF~CQ_f!jy=W8Y1}@&>hQl(^IBFT!JqKc^avX1`v~SLA zHxgHAPA6C-y?Fkh(C=_4YfXR1e9RQ__B-^(*(KxbK{>yVpMFPF0mS6?_p20Jhw#J1 zsv@Eh)+zYwa_Od!+vJ9wTXrb3+*00Ted5sD()9E1WCTKs>b>t)2(XQklBt@Fo{M)W z4{Z4#!bNT@3+S<}Z%!Gx3y=NfF=sy#U@u>{{YF2@i7HK9+%Wz!uIQNR%TBc$lz$OZ z21xL4M?ZcEC9Ew=OnI6-M2G4D<|5Ztu#JGh_bi|w5vJ*pa!67_Ujl)#C-}?50sw<| zadt?m;)2s1NWrcVwClr?gT)Ey4c!D;YVW+sJWQt;whP-l)~W2pR2kU_im}f3vW9|~ zi4k#>CnVAJxJp?79*p`hyM_WL7S0m9PNJUETXn&x20Gs-90NoQGjNTgJ{ z-6fgZt#qD8l_0cSqd3N5{OgggF0)gX#j?TMruecIlS#p)MGn4Z__5~s2L|7*G#f_< z-PQ$SvIrWiLop`y&?; z_RF&$xr22^@X9rE586<1yDLFycZKFJ5a`IsJFh0mC~K2KjVr|d^6Zvr)AIUMZiW~; z&>iv$ZZAH0Q|>Z^8q;C^uj%ZmR)l6cP?bU1)M;7)VzNLpc)6(&sl*%qCWwDL-i#f> zw>(YzfM3qS&M4hg?#U%Xj-hU7L~Br!5LfhT3LZ;@Gx=@3XD9zmU9d-c{VYHC2a3{a zvsPJ{4rwnvS`?a7`7Dzu{*W5>_H-+I~?~YM3sYIfz*&w zyaUFub_#I{q_=)&I4lhfu7~`k0re%iT9-<5mETOm*~II@B@I*x z5&7QMR;=I5_qUX8qvTt3%~}hA-bgl0f-}bn=1~L}f}fdB7jj$nY(?1HwmT(tV9_z? z;?h%6vKL%T8e`*ce?2Eo4*qotVW%5UQ;R? zG>?P3hOUPIKljP$%%_bLWP`f0KOCsf&e05gifjeTK0-kk1~aVFEMg43OHPpSNjm=+ z|E?VDhhv%|+A|AL5X&efjz;Hel@g6@>2*Nx!!L&LwQdL^GuWeGXMXUe554;_ye z4)J~ueQg+Ty#xPYbA~5>RP@a^>63+8Qc{uH&}S1bpV+Lc<^THDXeLRv06F2yM(H;$ zjbn!*d0p+V4^pO_;#rCQ=Px}tg0z+)sUK8=ta=%mp;m>>-T5R$Mc1)t-sgu($)UKJ z0a4};oh{c>Wvz>2Kf44)iFn~}&cAcn{Z78=UQ1t$3{7(LwDP4p#U&`~y!gY2xG4qr=??9&$aCpERT ztTX#&?_y@GN1PcGF9P9X^syiGp;d~+%$ThdLVg2E>R~Ih9aD-wakzyC`e9DqdMitP zv;M;GmQmeQm669&RJwuN?~Dc>8Mj1SVLyiK4ME2a8{*%OPiC6{trLK`r+)ll_iUiKpHvdc3S;i|>CGj!<-86i29YJy+s zh*75&yQvgjxa2rMd<6stXY$jy!2FOrQ^1;fvHVCty+D&R21Qa+SfkMS5mY)Rcv5`# z^HzIhUI_+P|2>yy_WAxzZ*s3+)4I>ED0haRsfqxee|AY^z1_*8FRo@Ddn=MwO8Ixb zn*Rks_>e!+AG=kVM1oc3Z$WY<_d>? zK7UvSdKv>RGR*DvC`V~!mMqWXsAFUGSz?zP2JY+$ zv!(afuOcU7E607Qs{1D&C+qhbJ&U0>%yK;!ip9a~i1ckX5DmOU@d5ET#A9OYfAmq( zZffYkkgMmXahlGU`QLh}kJI%~UU!hCk4aUIb1T*{Gl%7J&!$3JK)Bme*aHfsG<)U# z*~z>YEfKhKZpb!%S^3AawO5%erK|oZC;|yYMtm4liei>HBcHzlpvJ8MNR;oV`Yekt zc8}x~gmGn0@6$=7eL6y}UUoZnCXo8Kqxd_z7@qW$E&e2c#3t^Swk z9c2Ipl^O>_|I>iv1BkBo7Mg4L_f6ps?>o*>3Jr+CN_m7ZOa?+$weaA75HKZYH;)8Z zoIJPKoU?2eUpAUlH*5jZBRBV&YGX`iGQRB)pT`4!)o;M|OC#+_p5#y`f_0ryk4ga= z)bm2on>Em05T2Ua8cjrb3I+%%#b(a%KdP|xL;(0dtkbUrs6c=i6Cw68enRdEiyZ33 zsr;2MWW~9rmx4CP6gyO(vG8I#EVP9f;aE+-`GiAYm<>{=BP^Ki8gd|-+I|{Zt?cR` z!$H9+a=085_ZfJF{wOnycV^@*yxLsM-Hfav`|z`aH%IAVpqPWNeC*g@MFiEtX2Uir zHhRDm+g?~P#3k(A6946UqTItr(juI=$($Clk2u*e0?A?bz{q~Cl)ODqBt-x*J*kg(g%%S@0qaSA+KuL`MsVgQr13NxPSf9U!J`4|#$5f#Xn^de4u5cc88wIi zS>%oA=$R^#4AcbOK={?Z&}ArPN6(lg6Vzo8yVhll6~Bwv>@?%)SxF)e#$=j|zB zC{Li;@Fd2&!Wei`y)$|FE4LIxK{RX&`ZGzCGgv4IPKZA2xVtf1DREnMwpZ%+H0SdN z4GW0Fu>b-sDp#zo24eBBeI$Q|y-= z4aItla`V|p+xW2>X;h-^1>SV_d`KG5MV&4rM6p~SXZiAlmoXRE#)+h3iAip*hYJHa zO;5P@e|PLP9TbGrEy|VTeBJ&0zg#6rMa*AK>%ssM=XF7>U7W{*76J4zATo6qf#hOh z&kA?ASo)KanM7tBk#fl>Y`w$Mr0b$4L+0XpAd4j`1`d?j>Xv#Wl4gtv)Vd+b=}m^W z?C2z9-kl#$-I+Z;dsy!JX#UjLre>jVaGihJ?4Mx0MngYW77RmmPbSStO{M288YWYd zgv@|hllI79v1h9sw@xQ8^DD`tV$Pla{&E!d|9CIXp-gymF;b|SQnc+Ki@kz7u()8z z?|pIEC{&f5^ybErLsF(%4LaCJc0%>fVygb1e*Og@)pT7}`fPe_v zQ`e%Cr(^~?$U^AoOSq{pnbt`e&&V4bwvHo2e3(7ZfY1U&dV*e;6;l%mOhc$xHa~OC zw{_!>6AlWje%J@bMuK%CwlF|iFDsIBja?qm&kIKp)(ES9;wn(W8)fv#j`2|a>1o`< z%E)|3X@YWK6W#J8yk(=hyiPz+?A&d1k@vQ@BGxAlGO?b8!=?I?kh9qM^@@>;`1dZt zdE^u`2^X3WRQJdCkIr}|S!J$+h%_p;%Lc0?3fUCC&`7KO7rUntTuM~-yw}9Zm`iLW zKxbk50pc1mR37rDclwSli8P1pYp9^9kvxTw%wvu={Ztk`so27+fQTOL+nPWI zFrxSzD~WpU_BCZB_OOAV6BSfTQsp*OdGF#?qPU&&0%@wI| z6+Kw1_|D^%B7rqR=u_>C6cHwq^7e(tZ&2^r`!I*hDu3=BM_8Xga>rvVjK27Pobr)8 zJ=98D`d*_qv^6uP5#HW2MzGXoII_NfhjtDJLnacLC<&Gv0Rlb|5Q8L3A;CzfsvLct zG$o_EAVk~UlMCDpyW>~KbD)DOMn{q<(XmgxqQ*xw$V~+I>)iK_p0H62VI--@7A~|g zEB1;5IRUeji%2`8dTt8evmliQCJ^V+s|ObhH6mwq5=k8AT9>!9anq#jWjS&hzYDXN z48?=D;W0k~V}UM^P2_~^5)@g1d@1ePXaBo`j044Ac+zgIbcShj`w8Ez5}GRZZ5o{9 zEUK$BcTUCG0#hzDHJMR&JM+Lt@Z+F1C^e0=6s0Lg9GiGQ>5Gz(az<_da*>- zSHXoZ(A}{|!{|087?3`jqC#T9m`ZqctaUyC*>K?dG2+N;0kt zM7nI8bW(!iN}w1SPCvfm^!Dx%@}D4Y?bebv*p zxEJm~=1mbpoG)rlAt1y6S{ba6#K9QU2}3sa-ff4t3epfMdK$^^t;jzO1FQFwFvMZ> zhf{N!d>tR&QX-Ydv@HP0<7tiuFE*jZvzz<*GTzp~$B`}Y5zf@YC@LvBMjAs?GkGQ1 z!t`+q#%cPOs}=X@z-bdOFXo!d#a(Lz`qx)F`;DPxH^t41XWh{Mp_}>)495y6;~nS>j-gkbr+1(Ksr6NLvN@#8 z^`gN~2lQ{`T;fr0;>UR#4za>>J6)AM9g5#${1+a)E;E&Rp~u8L;o6L!AoW2Et`vPN z@ex{%N{Ql}oE5Z8_H8r*hgpVp-hO9n$ZwT%Jz*kgD5ci_pW6R@v=o876oG#D4 zqEs+Iw6PjYCLbZ2i^Qf6FM468uVx#wP(8z>UOLyBuL_iyC*jHyQEOKOY)P<=8qF3GKari zt=`L0Cbbtc>SZbc%3|>+led>KtdWs=Y=1L}R~6a+9`OUBaY{D-c0xP%^6O^49LE1B z>sS3=R!+y1+jza+p!h%+ z+N%yrYl)rJ@G@h@7gJ;&O7jzsE%?DhZ;Y`b|W6h|De5n6;2l zVX{bEOG3QWywc@mN4j&Mi~vERF*!et{d|eXY5o0!WOPFXn1QMRD=MTgU92OFCpKz- zU3ajJEK=~yH!{@LnuM@!b|TR2vY28XVesRt6w}HHMcu>w5{#6ED~g(G{21H;Q=UUG z?VBwA{pEV+WHxcsV@8#49z?#muj%EDUU}=Itq5MbsF9=Ly@af8lmY;xYNUmsLPg6_GFevy2Qna+sh&Q(WIw1K<0Zu=ld@3 zzL^a^*Z(LWrUPUz2^!g5GZtC8i|>EnoF!4>IL#CN!ue!fr)zL1|6y@J#7iaZPdr)- z4RsaBTQ|P`Bn)0vCUIgug8lagzuk;%&KlvC`$Mv2 zhgL_AL6*Vkokpq*T^B!}otk-t5_Dq?k7`cndUBV5&hlBWQYU89y)t|mK3*ac^bT-4 z#GydpIRHrLg9*DAuW+B2?Tu3H;tCyBzx4*H;+cDAdC8)&Fwt**lmz1qT}V0!96%A$ z^T?hwf>V@_))){x9N1IuZ(z1EFe8zb!w%kuur6Fay7;hvBm-}uSVP*bN?lPzICk>h z8~^9f2_1h#>wO!k3yNzLsjEsdPzl3>il!0}{L4|~pxBrHKz;cl#j2S`Z zOV-W6^mliAu~OwkZ5^dvQDC1j5jL$QTw!0uATd|_t?L#6<`546n_AMtPa~fwp>*#_ zEc7F`8281fnLDD*D|_3k3z!(te-;M%j~;+@1UUWB5dFF#Cx6w~GeQn}aMGRyQk7A4 zyM!^u3f&6jM=6SlC1>e|E&32)FNs*WjlDp39ckzD;fPBdSp}0&go|AAP39?ZIFN05 z7_E10{QU+CAj?rRD~&|=6l}n~Z{0Q)hz-bBql#wD$YD{#lX;7fcTGpQVJQ>anpZDN zN(RE!)0Z3TY!Ia!+YlP80qp;VgGMY+t|*1W#d)PvdALGR7+G0{KIb^Yk;ru=IB|mu zm`;+ZuKwhwQf_ANh2Ey0=8Oym6UupPLU^-7S&0>XX|^Lt`YfB_65x~yCEcNQ*cfa+ zdsY&Vo^+}`5{%(C_qVKEp}t|X_GpXkf*t0#XfS5@_rjCgm>NampaA~Lw*&)#zlUD| z)Qom(meS(h)SA}JyGvedurtdu6Cm;eVCk?K!y$}-Kdhff@_ynRk~NtlNEWhd&t?)T zaayYZ-}o!){R0+6VS>17?txa)lGd4m$xY6M(*df{7BQmH7(THr5ywhAfmWgSW8BbF ziy;Zkr;1wx;UW2-e$qF&R=Lg7Sz$DyS4$K}3~A1RlYC^8i02KqJw*mFJdH4m)TpQP z*)tKztPyJv$0UpdzPQ%_Q{bAwiP1)_&~qMzgoU8k*sACyLN)Wc)puxi!!;x#D!@$@)VAhUg1p3WjBYjtrf0TH9Gm&dzKA+4}1sk z;+CipfFH4|9g{JywPNN9?X60VkS_--8?Dm>M0BfSc=JC+?F}|#!7*^~4wntyw+5lK z)I>7bq4T60g0w~1uUZKUk&|15)>#7uzB!*fc9VF{SPE!i^A?;pvu#F75|qo`wipsW z5%qN$^Ztb0h!3;dx-Ci_XDS*64b82Ki$P1 zLDzuPA8hoJ`|`0uvrV@6_nD2(B(q79>UbOpF$g}sxTx*o>=?eSGN8@jgV(p10pM{G@|;ZaX-03pArqE~6OjCFPmCh02uLIt z%F_YF;H)o7N4`gOmaAl{7x%!B74^KNolhc}mbbD60D0Im<;>!PjA!*IHy2u?o;U(+ zEV<~xc_wAFkRFvjO}A|vqf?kw;?3 z@g466TD$eU7klJ4@ekDT%5Q)2@1!d;(l??mY$BPU*@g(f+@s2|>B{BR#rl5y1?Xeb z{8v*U7=^j&k-qW-I>(`v?@kR&pU)KE($N`3yT->P9YJV5L4obh{u+ruP4bP>A#+sp zS@~a9xJam7cP@~OfZod36=ET#b(XpA-RIQHeb!emW-#Xwe2yC3?s#T>rJ_8JhwD3q05tz%0oKq@rEfn856_C?HvL2}O@lvkP{FQsY`D&kKip!+hN zz}_00OPfj@v36>U^VwJkHAI!~#+M&kUZqB3`B!~8YUoI0dZxF$HKAPj_uXzi9{PDZ z3(|f@&mDU$95ZY8NY3$Sr$Ny4Tr0{hW^0dXp_UevNR1--A$XBAf|kJK-cC#4MpRSI zDmfrzqp5x25ncsPbcxUJx2dfs6W9hE3J$?~C|_AWwWB~i^AK)#8@_wW0 z93jMgFaO60S{+v9btxZ}>i1B~1V`I8vpOO8N@aE$)66Oq9^Je?z9wCO1nWtK3j!86 zsW4_&?}dr(f}TE&in}I%;#N<60M3Pf=YUkCnssm|w$B~RoyNyLN|cgcbM9S-Gvw|? z6;~&h@j?czSzx!n$j`=*hI+PX_uf*~y|3nfT8!uDBx!2rpJ@+0NAS$e=9Yh~CFtFP z9tR4l3y$D}PV%qUmn3`z%6w=mPc9Yb+NPL;mmi^Vn*zR#WeiHgjg13CHUYTsktSbT zXP|&my)b8Bs6kFeC55^Z>q(7L#1b@}dev$PNvE`zl)j;>4qteZpOL6rtr;vA&XP!3 z@3QsP>x$G9w1@uOVu2A*HT5oDIh`d0T6bQfUrCx{t~rrGyIPhnTwD)X`5qWp2!&0+ zw`mZ(I|mBKqXL?#202Wq$vCFaY9Y7GtaGLtQ)z1`k!Z~n+=PUn9r??tPfeKW5!9KXRA5O z(HOWLu%s?jBBXD{*4ZN|T_~4c$*`H{8Pp7jGhLkqdh?&~qPj(dD`ZEF0QKZ78*V{y z+{@#iIxc%$60so<3lJiOMSw^Lgf+}k%RJEpQ&LSL(Tyxr0!SkuG{|7WyCST)RUQI; zhpAQ2RfUSSBCy^(Zfhb~B;8n_P>gah$E0p~zvDoMfKGeL;`Nzl;H(k!fZmUXHutu^ zyE4J4!sO-{)BPZD41zYWt0?Rf`Q8L z4Mz~CS`6&P2?yYkpV>(?tRL%W!d9AHlS0-ng35I?L}P^LNTWD{h1!)U{$iRC{FLb69Xe2rCu>BF@6CqI)R5Upj_387Wu0SDk zyO$^gAph|_^mtsm9<_(~xP(O(45+T>l~p{0YsZxCUB~zcG6s(RW6P2t;%cXwD{FCi z(8!rAbl{N@)I@Y6g!F#d;=K|@)x%QBnFzjW3YN}8TQ*MoorX6++u0(%|6tw7nT{YU z6IsFHcJbOY$`*#$A79MYq~Cb92|;aU7|&Rt;?6R`i`FL-1Pwyv!Ro45KmqZUxj{x* z3%XASwjpl{cBJeEJ|^#goTR1&W3+JhL`M}TW-VmtxgjK8er7__BeJ%WV6HPQMqERd zd`UyRsEDkw%_*9=F&cx^w-7vP@2*O|EJX$ASxRG>?a=@tPe~{nhPmmfav0z9CaMAz z)yh(Jc0fO1g1Tp6PlJHKFNFO;i>O!2juHakFB{(GX4U|?YU>_cz-9B$_vgdh^8+em z+aoI=7!KTM%`F=Ga+)pOjMyd^L$aPbLsKypeII|*=e2v~;8&tUX(3$ZZe0&Gz{kx1 z%jX{_GEOLviZEa!3*=1Drx_Y6j-ZwkpATS)>*kl?JGV9Vc!uX;MW`@;E7LBu&p<_U zKe|n>_zqfYWX=~Sv|DkWt&~KjYqm9SvVzE?wpI8|A`VXx%EopH#Sl0h1$CfoN^W%M z>(>(khUDO6Ry#vb!;bfIoQE4^WX+C-pfXP&f-%lr+|S*DcV06@Wxc+vZ9iZZ=L=#n zGAd4QPAMSPifEYGwQKpD?yU~lJJ{yCveJMljl`S~=NK?W@3T`!FT3^s^j$_8Q1MQh z5R)x|HFk88Z}U}n!xLJC8yhp@{1*vR>R{Oz6$0HK8mOpsQ?}iUUqo#iG{(p!>tM&5 zp&HEPVNwquYka)il;iY6>qfP{+;ii9`Ox8+)FHf#Ty2=$*`K?Ri1SyJQzOD*bcDd5 zdb}ThMZy)CPr>kLp!w##|F?Z&mfsJvv4zh}*dIm?1lpIwhO?Y%lLUG|N2SaHZsMF7 zwvo)*z=hADMGv)Y`QrPdQL2zkW(q-;;>fbZranMzn@a3Mzidg|-%5ND&G8b|de zNYnG~tJ!=hG+Mi-0Y7dWHKut=LNQb(})atAWNMxAklLEa^xyFgY9o?NJU&TV{J|-2> zho~h3^>+`}2@&N+D7%fYp5&;|`m(%LE7o6=<^Tmot#4PIVV)yKBfK{Ua8IScorJxX zCiCxQR@xG>6qxa%Xj(tJgtgL3?1W`5-%AHnM*J#k5CRZF3?)s(ZP0}cTBys;}chUIMz_>w75g8!D_GoyBnGsmG##^T_ zS2EbVcAx8zC}bNg^q3HgM2((uc&f+2D+Ju9q`HvovTYAm2?4QC%Lrt79xm=_sRojE z&5S&Gu_j=G3B^z%n=e^C3hRmZEopj%X$as^vL%C0+^bpCt5w3=r@W>Fa%FY( z4!$~jmWg=yF@qJ!GG5T;E+ki+5%8P4VXg?-EW9xD4hmC0a#3HOrNxnsD$^7*C%3A#>*-XTZE`o6rZvQBmiufnc1o)67{+*C-vVlxK*415TI}Eh- zP8~-<_;xbYFuddtdfD!s1;IW(i<&Q&w1qiw0Lx5h3oWGv>#rA#hg*|cX-~m;Jb|FU z829k=pv^CU@DH7QYDIL1y_lXWhglxH)&>-7rqI@SR%Vr_p>!xuUR3S;W4}7q?$WDd zFBk${$Mx9`OZbHMQOVfZVyCVeb564{Sl*cZw4DX)M&cPI3kTCsu{!7sx1Xb5P30d@ z;{(L#?JH1YMcmQw%XB=CVNZYID7mUpo*vZ@rW0r>=BTIchi?W3_-poT9;4mva4bp; z6^_aX^&t%!cW^!cp`nrzd}J%VN+|;d6wf-*15AdCxrfWPx00d{jr4(@0`HYc62*jq zf$kN9i)Xee|Ng-gdM6Rmw?tSdK!Q;E4{h3CebOGN>L=&+?eIv$;dHBaPQww08bV#p zuJg!`4duOh_tDA6lgw6NHrt~&GV8PG?rV?M>dWYCXT9=udM4|=V&2>;m#&2JJ}Xa+ zhlWg}drmqokz4ZlDU4`6wCX_(uE^3!hoH5555*eF0r!Y4#Rp`~31(wCdoZ^h+o$1# zhPe~>>vvFo-8>(uT}z`6>RoGcim5r;wxp74hsLW6YjMFtr0crWQ}4v%oSHwkSqb_% zj2?cJWF5wS@(?|*;F~A2VCDQl#@f8t61IO(cKu>lDj82-WJha~4v@KhLZpgr6aQ`A zr^V@(9A>{f4R8}Lmaip=VC68~(`0|PN%>qKbiV6`iU<&Prg#konp66o2|N9{#T2o@ z3l#M>PkZem1QB{5z&)}eY+)H@3YojWOM%CaV4+9-EGq)Th%dJHhFr5WUf1YGVk)mP z$6X@7Yen$o`%R@klbu9=Lr6RF13@cYDUF}cc(}K$J-uugham$x(tVE>qJe_kmvGk2 z6<#akq+CZ)GAa-|PeA45_NZQ=K@blzS&N9^z5G5cXG=^_%nn%$b-a>uQU{(t8qL&> z2yfJmFFPwjcNtucnKZkpg2(Ys^5*h4^Qfb|nLCu#aI%%%bs}Y)tK;;gk!wKT6K?^` zlGmSr%7!zHg9TuFkVfs+V8xKhq=NOY$w`TVK9C+LZRz*42=Erl>B4f1ze6?-w*3}l zl_myCC(ueUN(B9=Ozxiz>tjjycTzgpZGb^06rVNpaW3zv;A>hcT$3GZ`?_LYKmRiS z9!*3{f!m&i?V)7673Gg#=PbM;# zU6M6T;%_TW4>h-CmaH{}zo9qVe=vH*ZH3hEDQ@(BK`rjnqDW(GcVmJ(b&Isb$hK`% z2C%9#;+Bm$z)9=L1f?x;Po_CG1fm!8_dA68YPp#^urga)lw83iIi|m|$k5##>dPLQ zbb^sZ?lpF?D_3+&*|*M+?(Ld&Yh}<&0|g7%@Ki+=0(WBZXf|es#nA}hzpfhP36gOv z>ILt!u@YS|73RSLMkph}F~O1ZJU<1Y(wed?4TyY?1La zF1+nLDhy*J!!C&a%oQpF=+;n90^0S8N{V$2ve0JkTu+`h^fKA=Gx7b!+Xj?F(EH0q zZ&(_U3Hu{nS=Ea15R*J>2RCooHBs8Zas<@q=CyGYJayyOUv901BHj)kj~gMPxDe@t z10o1K(jKosLnSre(hXRR>>0UsgbXIB=u2d)L~vH3kwq8MK1C2GTUjp)4RKP%zdw5k zex((A{f35MmV0UXi|s(={(*0Ydh7{}wZ+JZi^;&7Xv|tzZA^BsNjYiIAY`%(vuq)F z`3(%Iq$1hkdss_|D?*{iDm%vgvt;=CKuV}FXbr`PqmEVZWMtX8vw^$FqSE(I{`V0WYJZPG~0mECL=!DHb3mp)yMjr}M~P z4%v_^0I&;#e`DqenDi1a3f*Eptkyp(NsWI_&{u1-M3V4|<7Lek#!Mi}51Ui62m>Q=8AX((_-G zup6#i9+l!LJYjGJ8&NHrn~@`p!MPEeZBQpsC8ne9LaLf@9(F?mrTj*@8N)p!U=vZB ze&TMpEX0RB2Nqa7q*Z>^w`XfV&Xf7WMp+^%xjri(Vq;XhEvRrW%>Qs1u1cJKLY8a41kTPQSZCP--hW|HDZ=mFKJdhx8Ee63=><0oed4>2DfVUkXm=a}%mSt32SopziT!i*XMfGv zk**c_BnCZ#FuzSo{-EJ%mMuEM+JtDGJcKoE#rR_abw+W(^lSh%r^MTqcvG~l^vf9C zxXoE2A`o4}66vGtJftba$oUo0uu39}XmqnPZ_hs&QrF%;N$cPk5m)B;;UbS9QoFjC zBE)Y(`Is39+@=dk;Sj#}g5l2!>+&sqPo*h!E*5<>s*Sp6; zZKyP|$x;(BnNaRXXOw1E(`Xm|*3z*8E$b1uEdF;e_(~<6ya;qS5n`Pih(llq+16Jg)idi zz;n4kb}*>sRa8}131tllA8@=`_YOd7YdWe%p7%G2NMYoTnN&Ux@)G??<8Zdeph$JT=2Po<`x9BU-$t-9qxL8bkW4bnyBo&k%Ho$`akE6GbZR1Y!JgZ72PLZZ^ z#S*QfqGYd%EZJl%KLJvWe|IUq@Avj~tZFgJhf0gD0dQyE|e znAp}!vFcaP^L_45UV+`?%6Ba3at zyGxv~uoZnok(=bF0Sxfa;2okTxM6JONIj(AT$SL2LxIJItFnXof=%naJTyWAH!WiQ zZEt5lfgk1b?f0AhPyn<^aT(MqZ+&p#vvj=8>oaLd$-cno#dB1nZMt)MROZ!UYzpDh zlZj}w5>YUrjis&q-5oPJS~`Ndx1ZH};Xgf8qHrg(@n5DgV!4$_yjlxIpy zHPnhVd}FpLM<$iTJyR_J%%f1R)Wpenc#zjGi|f&ptsnJS;DY`cCsdI$&rH%s!Gu;| zA%{Yh>+BLZtWPZ`o3$GXwm14a|lVro#ATP*qhBgj$Q$Fg z1wR)-2r67*Pw^C$7Klu#c+`a7*(q-`vBL1nk=;nz3LJi!WDS%0X*?=0Lu zETx5!Eo9%VWuVK}VMM8RV}VtJvsZUG;Y>btKTCr!s-OPxxkYR!wO{~NIvz&+I6?!9 zG8#5OFer2vM&oRpX&-QFXOU8)f2QH@rRRo6dW~J)3TBbxI4|BTZyFdkLok#6H);Y) z$&f~C(X&@4?Ws-NTNOEKH-pNp@T47hWG}h0!Y8Ayg{8JT!5iYt`6CIg17L)pI?BdE zGm~AsKlk$~(=rr)k>5OhMO*o|eK%PgCFnVON*ye}x1gY?!)$V^(j6+M@0V>hl^umJ zZp4a4E!=RUk9_CkQ|C56RBC0$wn>;iOYl`c8lMsrB0wOJ(?uj?lK=PjZoGpkZ0yUw z%4w(YfPi4qToseNb^v*Ta&TL!aBxtKwsYD3df#!q|F4D|#TCd11O*g=8v^2cy?K5I z`y&;p#>zMFP2_S9*H9(J3`DXo**iYKvTkh;6*CsioOby$-uoiSO@*r0uf!lerZI7o zT$WzI2AHmh7e*LW&1&=P7GXcJ((a^}=!WRzjrGm@gLz7(K;{T|nYb-nU$Yv-r8DeB zABP_NOPM`@o)}wdUtYcR0fLn3N=apc1bv$~fg`||sSbj*R1Tgv3>JcULzp)g$73vL zq@67bc$D2Yu=~MdF+zFFdS(2@uinZ=X5J|s90{jCU|-BrQhuQ8-anX|5Bq|h&mT_i zdG1bF^;%|X;h|hT&SP}sI71pkh@<+9U_*3;M=ve>SB_3yP!+)uZmYE3@9HESYSXsh zn{*x<OpaZV}0#^5dygVg$oriYboH_H8^GVzlQ`@mOyI;2wp$=dIPQ#>-9 zng0ApWQ@jZ4}hf^^-h~F`+6>pvY*}wIuDRtQDrnj!*2w%U#|{Aa5zoWSJEdD3aM|a zl!lSORJes@RX9gkfRJvi)Xh4uEX+t{83S-yVANK zm(Fy--|>i;N$euR)CaLra%zW&l}Bq|-Oog=^pkmthF7S7^V`QH>J190uTz2Fokm71 zb+MGvb=OYGF{p8B;{${v#k4qys7oKrYBxZh@jr1dM z45BZ9LSufxmeZMF{a)!5ZmS*a3WEE5oJ*_~#(+?dN70D_2vtlkd!O*g43onqA7(@N zp_0rxj`);Ozu`SAxdyksPL{s7Um1MuVxn6hn|RD(BOrD$zuteo4czN$>+eprp_eF4 zyNQSC<&Hp%Hh~3wBRX^3S+s&=wp!9)z+73M5-RP2f+-x0R)AeAkwh`h>b5`PHPW^} z#oEQ+9uo`UNb%5SvND+DU#Ls>&vqh~K`IkiH;N;|_ih*)l~tjiNZsZ0S(phdKw{qb z;$yqBp3aJGOHiwi)kf0y6w4SHi!_M@@GT_DW26<9{qrYoua1LPVx<}JH?T=yHlq8j zyM)q_7?v^yk6dDUTlcJ)T7z%%-`2#i7QJ>ya6%*x5jXWz<8eB>$GyGQM7v)~8*Lvk zVXJ<`L#9+s=&q20n$+BUL)ZS>rp zESpdz<*V_q&~jJOg*GeHbmSe{yBfV9un!l~SX9=rG?@LO)U|VpcPO|Nkl^D+^RTq< zn8_p33%5#=cSGG&#I^5~-Dqh*Nj%n($Gh!`YB(~Jzd1ezF(EtxChz*3d2i%d<8DTS zbe920v27BcK~-(lg@8AT{Hteh%;L;29Ql`7@fa!v53TJEdF}N9e~jdM z^nvvJP$9{9pxGo_0h^-NjxNcS&GvAQl4vXXEpOD<&=FVgZiZHfgh?XJP&}ogc{?3= z6lXLL$nVFkhT|f5ULw3QtqGnOX3|B~(s?QCX_5dm{jNR0>zub_IR>p|a4rbl=m}_1 zIdp)ugRpY5hLo6z41aXJG>{0xPA@3+ja9*cQO|4$4rn(m0|wX72wIJ+3zL-^KM83! z>>6mXKuM?K7C@y4X_=QoRkDXpMFsSi5d;7zhFo(D5A29dKxcW<{>T4*i8tqol_>u7 zf1v4H_Z+~RU^sx%BQNa$xgs3*`wxY17o1-Tr;z{h{gp=vVc6J zcjZG>(BjB6P__8dV}_JttFvcqzUe5HTN_+GBTpVgjbv4_l#p8%s(#icqKCat zG!ec2l0e!z)Qq2Nm`587=99ibSG8OydZ9}JFq>T547ElW8A>j09$ zQRk}r$`RYzxL;imHeIqBAId+EK6_PCv(EF2X`jfxl}K)QY)jc%S?4w()_bcbods|N zV}qc9h?2~a-aIN5kGtVV{w9b)23L`$1S4aTP@`{>%oPtvXjwnFcGgHd58Qv4i_4=V zj}T5RB$${RAHTMwbgLTBICXqjRG6dqn$$IAv#qQXy|LscqIWWc;FJSW#I8an zwB|<;EK8*MhEady(a&ixye3fSnX|}&tLC2;u88w)^Dw@O6-ISALY$jx94zJ25(ax-64qR>Aiw2lh9OP&iM2pQ~gZ4qDiAox? z>LQuP+zmz*D~DF7FU0q#_uv{ozq&JCtEa2xci6ZqTlge7vY*_Od^k_b!wFb@_B&lXR!C1_-$LG1{fA#L ziVC5a$@^Q~GHhtgw8`(zn@$ zBX;quJZA~H4l+_)uhW{F!(XUwM~1E(lLOb(^%O7C5n$~BazO_q zuN{HrM&EE5q=qB}R@-E;6H9-xmBzIaU5h?%LYot&2`EM%U$ zLl6r@jcZ=xy)WJQ@wqpmHTm*$nY|sXlcZjILFrs4f-DeW$BHuoK(Fb46z{yvAn2FM z1Lom`*SjQkO}`q_t~^{dt6tDmo3=F7H@<+?RX~vJxj@FVLhJ0g0W(zSY7C*>G9K~% z>$2b1zBs9=g@MIC<2xXg-S>4(6Ff`TG1&gNM6NKu2ojQZgy|&*z=#ZP|Lc)O=w?2F{S@Zc2%h)dab!Ch z;i%}4(1l$)7L^E7PCpl0n)9w-%hJoW>nTYlaxs}R?hf|H{KBA3eWFTOuMMgkK6Rtqc8-RI?80ZozHQO5SB&pY!3^CtzUwsKdY$!RuUa>LRm zpFdPy`^=^^HWT1fkoyF{`V{6W*B~SeIm+Sg`Y`%@_<;1M!S28TI6A}l2o4$od4;%; z+)2Gz2?17v%N|t#QfGz?4p6P~TGz7yhI5Y*`ko5vl04gn8o-V-%G1|n=>jGTfAyY= z@pKzE?bK%so-8D(A93uH1rdTY`2}DaT8+IH2gB3n1#-#?-ajlOR`#KlLPYn@SNEgB zb)@2OPgTLjicNgh<501^mTV1rVd>4M8=~3WdXNLNqxFD!sk2@&uN#A;8U$xOV_p%J zp4GU4^!v3B+-15}S!n1qA-W$3(MyD^r7_9f_9l37+lO8$ELLjn$O%XcVs%!W@(i-6 z#jtic=ZILdanUEb17%G7iA`~4)RFdQ53VS$eZV+16HEJceNT0^TV}sdGwXA`#--0Z zR?$36SX+-I&z_Bt?T-|Rh}5d8Gt|w&t)~k!$D-}jR3QfFd7b6wzg%r*UhQ*wBrdHm ze|+kA-+N@qARm0A)=7~cN?8QynApm^ujTg8?Xu>vK-&AHUXg@>a;ZyEea-f^)N9Pd z@};QOh2Oc7+%BAPh*T|L#~*nc`^}gr4UjjW5b2pBqHA6yta0tDG8Im~nK0dNu=~lv zz-cU+-FmXp=41U$GXojF?xXC$dbNn$FNSQR1fg3RK!~;NqoA>O>f*VPPOgM&n+)tT z9&)go+R>sI&3Ww68-iR!(mVh0|GW1NMq|_+C|av#`1kjJ_cu)7AOBX#Bj+Cx8f}V5 zUNPpuPen&&5Y$jsGGDDqEMpCtQG%;cc1@)r;Uc*vZWw;7nB6g z_3(zxGf#5Kx^zRHMo42)G2LmnA6b@hG)ig>Fv4w5K7r_ns7K`4Eix?Kr%A{@q zTIILtbC23FmH_s?0H?HOi>=-TMR?h`HtA1K3|Z0;LkPkho0u{GwFRxg@y-Ct5?Dfu zgFp;;*HlwTp3x=-^3`ET9)o$s6K^3`+3&Lv1_@KBC_R^H+G=pZSLf1LDg$C?dI|e^ z0Tgsom{02fc3kL!>Xb}8zDjor&9Phh>jdCmO|F>hvPs_*!ZklX?+gZR|9~EiGW#Rt z3>W+ftdbD_9UY;y#~F>s$zO!)CC^3%I6eY^QsF1ZDi2XWVlCgPco*-8&^+Go=I>nm zd&5IDIEZyvv~Mmjw+pgUVlVboIG8?gc4+B17ZHg@>#R{tR#p&OOQvD+0jdg28&fqB znVEUUL~hG{sxSC76x=_76gj(^@b0a(SibV&T$N)6y1+9 z44|eFk;119ai>zM1*bd+znTsV;O+4qH;`d1#h%Q5Thc9QQD)n4xJx5x+YoR7v7#6M zG@e~lD<+2+_gbJ1sbqMA6y}?n7wO}&envf28?>3pdBYWC>w+O9K)3>4; z*>8=k@mF`J<6(MVL}pg=QEQk?O@3S3sM|wwT$X<5xHuBi)JreJhUugVlxAWZlfNL_ zYtZj5sC+K39)XM$xn|r-8N1QVXVF1azqq!>HqCE9MW0;oygM4g!N(g2KJh1k|M zG3FywM~hW;;q}FZlY>jmuW(|Byq*$H_Vbgx^X**6j@x)EKJt`edfmb%{Js32jf`PK zGxi0;K(Qp5KmjA)*9^*+3BJIKSac_qQh6W^_*)r2$9{^{rN4{(f~iW(<~1oaN=M)4 z0#%p4gV;9SkpVtEjd<+t_H-xCDaZ!=>a@fADf8`z&v&YM7otb$>qt@E2h@I(~EzB<-;chcs2lril`jM5O{lnOV# zZboGmShJLG)LDNIzxhgo6!!<0qnm1W2M$kIP`Rec%S^a^cpF}Xkd?5MpZ}(t$);DeA{&E)ds2(FjTD$in3u zVLE{%@0KHo%#EO5mbx$y909#!rtjJUDfGKl!4f~JUsRADhJynHbdpe#y!U>qq z39a9CQ2vv^J%wn=S4VwDeNEkIxBN|tkpw+x+tlD9wWwkcl#*8Na<0%N7UnlqXVoV+ zzB(CdjqO~HcAHpYD7#PvkEMAxJ~1Y&JI=CQf4b45Q3gR4gI)xv6(Wh?o|bB1KTRA* zE#sp%ClDD*Z?QNDx#(k?CPD=-D+e`k*mk9-(w1U$4$XLeMIEXJLRe87;JM~s4!Xi7*K{@0%i3ph{c<}|$yOwn!Kp?lPa z+%e`S?z;cbKBMZKiR#Q`l8;rBJ6@DdccZ@S$V^o}EHrqoi>7!vP(^-6Saznft%yR0 z`;!Tv+2e&fp~gP=+#Tt$=uYRSYg}gq8Rl;iNlEFPkN00Ff|$oUCKbkO=^!gtLKb%P zAUs-C65#{vtq-BS`A7&E5g0$x zn|pBy0wPC=2$w-*uH$7hFUY)$gk3@T7LpC0I8n7w{5R!qmDis1vx>8fMv7yXuXrR~ zVF)5{uzX2J&@yr%jLVoMiS{Zl>))NL@=*r2BNer^l9c!e$YPSbN;963zLcaI*K<{+ z)+1qiX>cb=U%VA%1)G^%DIay52ayAm@nlf3t#PaE8O5TB{4iLVgAt)m0(pp=Y6S7Z zq5=Bj?h)ttU$`SL1b{2-#*IBo4`O0suO?KWNAv2@obp+_^EPuoy#w}MKD*bammNWE zTxGMYW~SZ`V?6XsLQH3>q;V&t^tABlee?BmE9)Rav|+SX?7MRbm?n$5p#f)+INx@J zn6)APR0(1C0clC6X#+E>BK(7IRM_+JT75jVQ|XD&H1{hKZU+W}ku$dn)QzdmS0}+~ zcW0X>{sbWsBUqMX-cv8a1PDh4PcK`ivLBp>@+7Vw2DnU#j(a&r`Za?Kw5f5OV}J-8 z!eDJt^L|Id6>7kRBE?4jgE-^VJk_((A;JAlDP!L%Cm|K_9}fGO3x;pj4_|v?cN^c}9K>?(*TJV*J{2#xznBo1YgU-`eCoH9*buES_t`@?gFb9rc z=5vPWqH!%uk|tj@gJvH<;+O>Ol5dbr(h2md@AU(})e%r@??~z&38oQ|ON*K#gtQ8A z8&yo6B?>V?GEmO$`ijsV{#dACdOE7(nyM*gw$L@D2>fZ07%XSgD{W=2VsZ%V>!_(% z@1o3yRXjDko|AS+D!Nh6;fV4Bk$5|2sf4T`YEpJ9iI9?>@`iE%x&-4HlSkD-zhEB7 ztr`NZH~zeMfo#f9H>yKk^+-tuHW{-RhFA$fu23O~8T;!1j0~A#jLI%JcjsauT|7WJ#8>NFoohZ^ljp$KsN#jBkpy1X1#l#URTzg1oHqS~|dZ-JtK+Gpy>P;BPvLkSq(- zTq2AMJZj=PU5R(Us@3e4R}dc^b{a%=(~TQFA|Dx+@ZJDngXEbELXcpCK;B4ub_9leV?NCWOoqj>CkAHbX5nxluO%Z^ zC2$}PVc?!qysZFX!4#ynWo`NMH-%3wCrA%q6(X5X;4s~dDAnc)HP3s`a>wAKU^`&j z8!)@=o9%7hF`EKC*I60x=K&v(BZfP``u;S+6|M2$lsW%=7O4LXCy0h!wxis1s*6=O z{h1xI3Pb*Sn(xtNp)ji9cv?yR&<7={gjL7I$XecQga zrhf=MZWcDh*1H<=nuuE4h&E$?|7dE}y@zFQTY(r0R$MbSbFi0MO24|%21TFe1et-S z;{5DD!Ga1|?YN)r;PkCtUAKF~Xz>_7FY3K+LZvY7git3P+myy|e(2 zFjS-T-V?E8KAvVc=wr_7_<~M}>Iu?^kh9x}8l*8Q6p<4E^vMWYlL}c? zd9Ic;_fXX-4}0eT8Gw-J z^6Dnhsr$xx3}Bmc*mY(tB`8RbX7ey6Yb7daim_*3D1^6=EX{%WpI-jzE&u*RSl_uX z((C9&ptiR%ty+{?zpv?SJWI&U;OWPL^A&=&I6+Ct0y|8dfbLPTt;_UlgjxWss7adhJZ+c_EF)i6Uj%%me%kdgLa-M%R_yIbXVN=H3J_{o|> zAzym$AOGkBB5Doh_3J#&nBF2W#X0*c@R1&AfJ9JKr2P^ZPz1luL|=YJ*<4x z5j0f&g$s%)+#RM8c;W6LN%C#lY$jc$6!p|77RNfnKV4y$ZgS|UFlA- zrXJ+@3PE2p{ppcKIz%v$FzADFf9HY)>&JhT-C4KkuQ{$XQOc<4Co%L4;q&+WL(1vL zTDv=V^vSr_+~XbRQ_uZw zynwCwo|z~gIiCb`-DNo8c0%NGPE`7$fvbSadcp$wc2sE{A ze{tWL8{?5z(Y;E_%Iv5jzkL$B({Z*jdY5epXhK$Q>%SfK>{|$C1To^T$k_UKTZ0*A zq!&BRp#$nE@`2*fog+*yN)k>4(d>H&A&KZ}IuG>f@=B*gMy?e-A=)@_NA@aFc-Qll zd%ZDTK9Z3JnxzXnDFPL*lSw_j6H)gf&F++a6HBwdc!*GmgQaBORxhq^*18}p=Uege zPyZa!Yp!>r{4V|)W!S`hg;#-rKJQ&*)M#CC`njD?RSv=`7oobhMC(9(_X9?FC&&ZNCqk5QA}+Bld^3I&!^mQDIFEJFM;iH!b*pva@kBysn#q?I-EoH7W;ZTJkl7+k4q2pD z<3-1sil|u`(}CM`RxDPfKW1PWgnhD|sSWjbzs;mQaa4L^^hwjiWziKmw%U@Jlm&pp zQs?ryMtbYVyrJbttV=4%QabXje5`Zo7UK%D2})d}ABD~}H5#6BtbhQD=ie0q3KnVg zW;}xI2mzQ%F&u-yUwpWqr5A=t=3rlI(maLw@T?TWE;M}Mg9qB)HxD1)KO1OQu3hVq z-l%=|*4WWF>j@<{rW(JM7DAT3p96nu-UD3*2KO7RK{_SFFF<=V%nfQ8jJz5GYdGu3 z+zd|C#g(!l90M;;5V6S~5D>GglMa3W#1xe<9oX0+zCD?;4U)t9+kxu!wRGio4`==I zh+gx8@^7c5VCzJlgqrKWQWE7`PWzh$R#L#!01DJ3F_460a<-VinT$IX*O9+@IPUKT zp%gsKP=C=e+X1hvzUCw+jskk$7KAYPLVCm(78UpK@88PWBOno4L>FXw$gn|O{!FR~ zx~1^S77!~*Upz#lhI4V0_o-jbdFGiUVL_Gouj_6a;Su^MSe4lyG6haK8>q{N7}$?bhlo4o`Rr}*9s1GzWh?eT)y+N^ezoWY&CD$-fBO&Z^*_M*?0y<& z6D>7|CwI7u*nJr3u!?jpC(iTpc#Q5E4%&3662@JDLDtBRhLobHg&NQQ??x0JB8n zk2`9}aAXWJLH3b}Ncpk#i&tUp zga{dQ>xm+{CcJL-MA%Z!EDt)oTs?**jm)ZY4-5%G(DnUCvqPakyKv^WcY4kIO_lN^ zruwiU{co!ho`apf_fDGz6+{7fx;pw?j96Fbl51{STbz4`WjJ1PB?EhYSJpp(@G)Fu z!x$}?rc?6wAKhHp)aT9&rkC0Z2)Kuo4vJfj(6yuc-Kaum`FW|VblV|)95jE znuG(PA!JYgpZ`3mMiwSfYj-h*zYAx3mCbHtmOkbWF^y8Yf$bk*ofpDskP7i_Wl&4nB*{9Jw=3$G>q9~E z4ywmV6@n`dbzqMuWHly>5Nfm|ZN7l%EGJp#=V4&5 z5-tOou)8yw<$d$ss8W1~r8)Yci{dGTe}$Pj%B%2t4wC|$e!Ji%t!;3Y>$9kN^d>1w z!dmGNxi`GEeEep2{HV3^r-rMm-z@BmyUq<_{U5M?_~%iZnAq2Vs^DPqT49Eou6a-Q zQXDEl;oa@^{IhbamoQ(8u*Ha9wf1Ji66&Pu&kiO5Ylh(blJqX{6PGQk@Wc335* z#de?8640r1^{tclKPL`S{f4}H4f6D17s5Oam;HWB5SLyFt^bPSn6iqWUwL}tq)KL% zV0sM`BcAzN`!r}cchaYN6Xd2G(CWO`w}7_6LLl?q!lmcVp~wL)4@&b+MzK02P25wT zseDHZK21Mb>nhbZf71o7Aa$jpj8Y&9@Z)Fr|G;|A7zx><2z(ALd+A~;LJ%ZH4 zEGO4ohZOv!peF{Ot(AqU*zE=6#v{p!;|B@H-_U+_gKWw-KT}{>1PlK6Pm@Txp6x}K zm%?@Yu9E!xt*khI$0c|(^61%60i(ioK**S2UUFVJ5;sZqap$mb5TyJLN;B7@CB6dS zZ3_Q9Zbie9VB;@S)#Ec$5 zZ44&wG&90r$6XJhFegzHwx(TabJP+HK4yre=b}Qpg5ga!g`=L-8$bv3PeVmw6kDA| zq?no#fuV~_C4y})GgFn&KXH>nkZhcUnwoDLP#Cz-F($Os%iO|JRSZ|3*4*i+aP3Wz! zJx?(lNBzLv!PlOY+?|V7Z~lZ$^vCD^u*T!Qi3dqiC&s$DmyId{_jkau z1Pd!dGjo$jUGnCDd^W)lo z`B@wd9-H)2=kLuCLDczlRf3hl)8k<+b1odmW;TMLDdMHdzLh;S+})Y2p$3bPxI?X+ z+`5DFDO_DHfp1gr)JC&Yn=|t3?{bWEUD1jMaqIK(F{A%LJx{fAO4g0UcS`jSho4|U z;NFpTKh@rRa+G-=SfzA;SK3n~=JA>@t^}rAqIdCbPkt_MHcv#a=L}@c4R?92X>Kh1 z1TxoZ3@6zU?bKkW6{4vQ46p1)(|f9-`G3B1k!(`c{{6!R;Y>H%uZdfgrJ6?~bA@AR zJ!kyqqoVZs6*;hfQ`ny!GY0-?obQW2gu?~%fgPHl9gIr2|989(QD11|AEp8a8%Qgg z!_DJBBHg*l>Ngk(ByL4o0CSv5tFwtV{7ah7yvl=TkG}ioEyRFhYpzH=_l-52iK3xccSD8F6!x@IlU&lQ%V^+HF%D z4i|?T;D_hER;JD2O$HhiZ^S*?d)}n)SOsjS=Pragf!B{<733AD3NK|HnHk=lNFY=3 zWG*>vJ7R>jX$>{|13kn}Y8lrE-W;KhNJ=k(_ks3%@sQ@7xr05FhMd%@ePsb7KurKi zCuE5_LX(7ra)lD2DPi!+C+Fl5r140Yq{UCd=%BL*{?<^iCGEX3!uU-sA6=Ev z&V;Z}qMZ3pb;X^AFW<`lC6NZAGYno9fV2^vqlrSADI$Hm|Vk}a(W!8L~MJbXZwyL@OteZ74Vyf z$kQ}UuX}{V&#?%*zo40URh{jOCN|s zI5XBw_8l(~w1ptN5cH&T3S-+~0^pV5h)$MGwcr?0b>f|Xb`z&c7!r;2uQ!h{qn=rM z^aT1TGJ>w0+#9rbH=-Uzm<(=q+2;m4%N{p_zdb4J{Go3OZry2~#|~4R2NyyU=(~yB#xC9k6S84i znd6;2i(g(kgjJffH(o{H6IGN*W;(T(C91&O+P~S}`h<47a8gScvQ#-TG&4u<$g_+(#ffj{I)RAo{Zo*7&s#9@CoeE`@ ze$U!J;y{ghPSWPzy+#UxROKBKg&OWRtCsO{V{kmHrxBlZ*?g$zCxHOkj4oD`yxHIe z^Q5abKu2U6UkZwUQRRlu$CJPgVrOj_U_7+4$u+bcJM}|YjHMWLt!1&fm=&CU1;weX2 zWkaus3+^z-4&DIReDp>!aOzbh&tpw&SdT4`9q5|x{prkqBO0vpDdRNFLOGO^v?Nc( zrR(eTxrhXg&$-U>0}#Groc{W^b>%1#Fd*rBIRcdkS|Sq#E=K}2?a3Jr57Ve+FSxij ziNhdhm-CN&8oT8Q4O9xvK7A2W^3=jOj*NrI=+5loN$_t|Ak7G>L6GEcWcWW)Pj183 zZ3^-?9NSd%(0q1paneC&EmqLew0OP1cH}F}lXIp#Tg<2J^&eb4Uw~*w-+eiIY5fMU z?{|2PFgzPw8llBWXLW+3*b^#UI|elJgR38n^V74oEV;NNX9lVnjj$yI{AQI;n||G? zJ^!9vynvg!)9S%$VsBU4sZeT9iRDKC`dONQcZU76y4-dt!3s(Ba6~sB3775EQnc;g zW6%{uX`lw;4F!5zRer4uG}|fTz$h#J-FT_jXwP~?g#CGRf6-A}FP#6!spwo(_KIdX z!x>r#%3Qa7tgnU1R$UoD*>oX*Xi0<( zVW6p{;gE?fInYb>+II|Od87H=g7kiHS7;5JtDmBo4xBmsrbRo9Q#xiIYzKb#a^nFY zjotn2+B4MUiSxXWA6H~J-34U;%fU}a?e_^Dg_@<&XyKTX2u+M}dceDtha4m}dJyfj zRCXL7%Y5p+)8Ulv1Y2SJK)+B>A<(~ytwB_0KtD_?bvC3 zd^k|Mbi}g(9@tKDuYxMxWYZJrN6dg-DdTa_u{YMKND;*MWve()O#=pEmk5opxHr?E zYlA25sDHe8CThEKAxb!{O<5B(BT|B7ST!i zncg7QMJFvV&i}=S`QrRA;@rmEh049`svUzM>-tnUOZ zGD}TSMz7S4cs-KKhX=Rrn2RN0Ua~LwES(9Cz3k#n7WJ6|V^KEu7mt$xd*XNF z2>NC?lsrSEX&<%l>2XvQP`^+u#_~`A2&~#_0o+6!XZ}Ip7t_rHq2WD{9AwG9_wwt{ z8Z#HJU{fPC<=I2nCGv%NVIE<1^8rr#`-eqTq0)Q3|KYz2AoZs^^@A9idk-m9Q9>T^ zk|!#YaZpmQ_ZZxQpk_&gB;V!Af6Z4Rge{^0Z9N$&>|2GgS%u0rv4C zo=j&8Ds~D46s$u%D3<=IOwaP^6T_pP04oO*h!#r*VTAb~v#kPw&t_H3$D4;Ymq`*= z-1OERUW0x)ZpZL@6HN+0Y9^Q3(u>jWCY7N9!24tXT><-lUn)RqO1fh4D+W=J{G}O z0jppdO{K^ioevv+Pb-DSf8k`>VcfJjWI1ew8cG6{8|Z6#vzPo!J_}Et@y0qNQM%F2 z+1eJ7QHa_!!UP>@OgptH0|(+=!4**M!qMziRk`MG6iyRsYcU@2oWcQrmp8F z0KP2iuHEIZ`wAEt5Rc>EfL*h+*`G}+V3l-L5bnk;r2Qx^nN&Jhw!{uW*|Q@u@FUu) zxaD`y577?c2`&$T_6kWpVi#MN1Etk4|5=Dq0+zG_Mv{FX)0liNCV_t20PYQ#3%yon zu`|x$TIVv~%u2oeHH19>Z<4_D~1!BBITZ80NHBINrc+4~E z687}2Vw4Eah?ly^m-9y6kGNpMqFeXGWr5fKS11kCNie`uIM3^Y&Jf?8q&On?nbReL z0(^;5F9$e#X6N07i$9ca3Zzz4f!%N=oUkAX$u-!!{7mW0W}N(9K0=5+Ccbk8@zev@ zYqnc)MAIVu+*{n(31FZpUhM%twi(9>#YtHWAr}l3IikS2^u;&-m;bb(Gvra=Bh9eh zAwL#7vtz)YzS#E)1#Np;7mOrb;tVZboN!9&D!c%8PY^|~-|0me`|3p$CVb=iGAfum z?MlW@Z8YzpYVD$_Qy^nMsacg98%ZA#ftf^;8RlYJi_ z_R;8I?**<4dx8Dbd;RUo3YnJ7heGuMn;PuG9#je4RHC0*ZV#!I7yHdG#)4Wt^oUl* zY@rMyj05pyZdgg;qE6Ds~bAYP=RP`qlVcIL)aLhCR z?t{OZ+;&kqr9nv#n)gH7}tXn+r_@+~D4+Y$eh3|6+yU;QqmagBx)HVk; z(ZSu@s*|rj;0dg^?X66Mx<&M861htm%CAD7yLH4vO)lcrhpJB;vAn4f9gL!3brS5V zTl%DBCUYTTQs;GZ{1==Q=7AMBy)0eW@o>Rd_qHH4&x*RY11m?T145lZ;bh9F-ry6U zl59(yr!JB9^c2e-ZD}bI6R@We2M`mAsJ5YH8%(+wJIvydIZbmwoiX^F) zOftoKvHI`=GmNXY< zOj|R*mi-KI7UQ-@cN|L7tCkM*oAa5*9}WjRR*g2%m>3Z^cE%HepMaK;!b}>Ydx_7( zW6k~;-DLqsrk6s;?aTk;zu6iVidJKlUTbgi-|ErHNk#o5PB-fJ&Z99~5$>)ayUIv- zQo;?LF5kub;t)m)`WaZ36TyP}VBOeE`{Y5CR=s+= z;NkLwIYY!nla=q{|M#pBRECl_g?4LHpqO^zdWBJOe^JU82<>kZ3U|mrgu6|0A7y zBtYJZeS0~Py?mJPJ0&?C$X>i!I@-We4mN8(f+nHq9>2#$ z^c-#B8DVp7^xi#qkijoxgq(g}o84E&$E5na$3z24rrrOsVy+;5%WW--F5Ifhv~p$; zlY=twC_xVY<0~IW%+34rxDIEouMZMsB0?hh#a316H(%a%duHa%^`KEyUy5H%4?_4s&I-(+ z?2F7VLssXd_+x}Fj``CX4lf3-Asp83H%R!oYBGKlI@THJc@rH1K`~LM>P<^W5VW0@ zkF-C?iuJ*7LG^am14J<(;o=*nwZ14Bt|s9L^|>F0A8FHA_JnWaE9)Clu97D91*^Eh zNL}!o?i{>Hhg@7$8iKPbK?!?Q+RJZh#=M}^M0^Bol1kW$k05~N%utp6)+Df%*)9Yb zfU0e}`gCT=xkI%Q#UBDy z9{lL)_xR1U;)W?qDw2E|0qjMr3lgCFoB6Y9gF}OTC$Fs+tedL7pIYPZ^mf<@sPR-O zt~Ufsi+8kG$~R4b~`y5;D@O}UdRjN4E6>rr3_N6!@0EoE0P zRzG@(9g7Y-(dJ+|?D4yV%(4<8*ShI0w>vo< zpMcXQLD@MDsu@da>n|13JDPOt@3*KW4kGo>TSpH6eht*{tG7N=$N@p_1sDolM^%so zEaP`|StBuh(t9K28(}ZBy8-EwzID2)(7%Sw4|0XcIM)4s^KsfP9C8FFsn-v)ovc&o zO*MSOoJyn0x?qn?D;Gdy)vp6H8_Fxs0eh}g)q<>Q>}uV6>XKV|_+tD-cR*wqJ7_(B zWoc<{CXX2Cf115?F-KT3aWqlpc~(H-{RPOpidc;{v*!v(Mn>R29l7AlRX0zzVzO_t zvJ&z_u}v{D1LKGMdZ`Toeedb2+k+Ck($;1Vf#{bHMZc1R{)T)d`{r{}oeC(EMDa8n zjHaJHVU`XYbkMxJJ)Rb?npx(}$8(ly)HAPMd@8gjNe2^SG!-#^0vTj3o(qLALetKB zfQc53nQJxYahOBPzg|vm8gUlcK2Xsv9x#k zZnl3#RCB(I6y}1I7C4qszs8lZKpFJyY=bnAuF(03r~Z8$4+4#^F+%XhMtsS@>E{71 zfJrF-NJ+%#7Q09lRrV+Dl7iWoBc?~gaI~!>n^-pYXBP+;+!3%4cy-i2+MC+z8(A}j zdPW1)b4BX4%4l*T1H}Zp!~SfnHb)iY0ZAx(f#hsdDsv1`7)U8}^Ds?Ky;C2YzqGC@ zv1CQ~;-sogn8AW`b%7YmIvkQ`M3I;-=Vb&K6fj|*J>4tY9}U9fDHs=Xf?iH@$#(Um zjwg3hn28Bh^z_wxAVZJICZe}YLbJsf!f4EZQ4xPy6V=ofr4Fr(P)+*Eq!x5iabUzj zQU6!z!Zk!+f-u&Z#e&(T_~(h7Gtk&kliY4G)v=ryhlvV5@{;#sVE#$!!c);@UOD{-b^)n9=r;q0*xOhR z(fmFLaT}zPiyt9BJAd}~lxXq&2X=jlBxkgRhgf9^AoK;k^|a{ks?;7H-rh6%%jTsk z0)eXV<_G!)oDiSoz~aMf1A*U6Ol2^1AEOTM99fnpj0CpSUnm zJOG+%Ss9XBcl9$L#;wZ)$CbNsY5#sIKs+P?h|Ds-vydi!KA!jWdsHOYY{NNm2fMv= zp)*04$-r$wW#huQlcpRdE6D}Q8fZItac4G0###6Dv@?gq&`A2OTdm%osq`b8m-HE& zL37^Gqw}1`mf90$8lje45SQA02)t{La+;#i0zaR|J8se^LtUx!nEv2Q>p{n-o&waa zG}*Aqu1Nk6I-+dorn>HnVyWuha+=_UMsRAWVJ% z+^fFZC#0@m6~jb895x8vV`fQ7p~M)L(Nj=l`o zpY=$Nbma;$fBAwjkQY<*lu;w0MJPm?t9MIXids6NC`rmp+nYU!X0QK3qnEUbA?Jp* z9Y?y-qbaXk%-&lbuBolbpP1qnsn|gmrwb z{L_$yP`e=Ki1*u^BrF)&@Pb;o#w8*7TJif8|H^EWWt)MG+MAjMk>>;VhiC@TPu_&P z2vnQljxX9dV(C?uF3ZLPY19QK?{;j78uf84gv zAklEa@`*HyV)WQ;W#jCuV#TZj-RZktj%Oq+N!PH5hNwRmYBC;jW=uGhlpSD@efDRx zssIewpT1}>O$yrA>xjFQ<{flFOkJb#IRf}oUd(yzH4bH9VFN2YIr<KtgNHeS{gM9pMB!1hk)|>|4-8U#0mv4UtY*oDlMaj>9Izm*Vn@XQna&?aBCDR~_xt{x{PL;Y zo?zXYqu7MZM2{-UyGV|f)pVOT(p;LMxwPznpJ)Ed5bAXhEOo}YeXZ{9Ak!u6QKnIY z=B{9U9pq$O)sVWJ1+7-SG}b~5eGQ&u_I3}4AA>B+;xJ=Z4D$g1m|-HQ2W=qmS%(-R z3mA)$lq>*kSw#g8R?Lq~8{W;JkgI8#e~&P(88sfMWZf7f;Y&tbci=J5mjdmI9bw)> z!CrHM`XPT#x~*%#-g@^j#D4XN{5Jo!eO*a-pgi6UCz(-FIWc4&pm0NK1Xrmz9vyh* zq@IBf#y-d%P=HC2;;!h&V%X(iCkAOnNgg9pbJch*{{Vzaq1{UoJeMz zZ)fGn*fmufYOM9_U2)N^#8*gRRV$Yst*KSP#Q@6o77GlSTzI1Ql@fE>g5m;MBf ziOjP|t~!kJ&My()P$$RH!q{6iw~2a(?Wos|l2a)M%i^{1XC%J*%6gF?2=vXLUX4Y* zV3V>c_TgvCoK+@WYOAh$^)n~}eg51vi35z>gDT;wy zOgk0l`2tC%@LsB6Zc})zLxngi?zK#gJcR5Mq%XTpDE$k&v)P%!8who%l55t2m#w*2V74Cqj&g4n>1A(L-$W^<6b~8qL2x(Zvbd@~N5;=;G{9(K%!8%}$ zn8crVF1&l(PnvI;nNwyOTui!&FL=$Y6S@kA7IS1vgBoh@JX z%c*KZWK$_`P$Z}1g1wj7?|_M^3;A(~14_n9BpzO9FML zDBbed({%akI|%e)ZGZIrIEB?aZpm11^_@>MU;W2a+9}ppZhNHYvl%M3lWPA#l!Af> zJS96*?>9#JmK=9%cg#V>1X8n(VY@CpM!ACdK$9Oc^lw#ZQ^Q^~PefUPH4D{?ScFr& zftOV<8>5FfZ>cL&C*(Ao=%kn^6KB3e9EL!)2}X25U2lT6+pBU;c(~{UYKC>Wc*cyJ zmQ1zAn;@r~>tDa&Y^4(T2*w?9OYixxOqIm~C1735504M5Iz7VKXKP563%%%IOi>8< zg8IAagJ`9CjeS!B*hd{mP*(lxPiNa-e2TnjSJVFOX2>eM$bpkssk;%3{7Jb4y)jUfbg@+_fZe$PqY_* z{?~8K+?32bZSSRV44fLVxY1_`=-e&g%Q-uW3mzo7G!95Wx>hv1_^j4%bg6LzrDPyg zKj+*}m|GY3eJX}YnPpoa>LItNHX@Z<+m{}tR{HdNr~mle?UM+x>9SbSx}$W7#pO#k zxiI@NUVBJdopnhd-R5SIVA#&VW*Ep^#}s zjjPif>VLU0d$N3TmD3S-R!Ua@y73`VZX7R;D|^0L@HCQ{QxVdgLc{p8K7kNYJ3Dilg;qGIjzk{`3?HK5OCUionW@?!!Jum63KMz;8;gA!Ru0Q7Xd zM6AvRk^v9yE@qn;a43fO`N5o*NqQg6VL8&7KH(8^{M5zC3ZJ6{sSgaZPUk@ZqHp%* zSgzql770M&RJ;7>K{+OCugm z{E5|vui(Hsbwj`OU#`~aJ!`IjZLdYXa3N1FeV!R=Rzqc{#RVJ|*HLCxvj5pJM@!O^tB7hV zC+j%7S%ltmBv6LfaU=6HRlA1}u~g$p?V7MsdwX!bl(Q4#=UEIc+gF|fsp?ncSD#qD z9~$kb)^15vXx!kr&33|zEKl{?0E01y=Of*@57PhQum11<_lB1m;q`TU3C_)LpCWYW zH&dKTzMaN%bzW-Toy$sUF2@xTV6(NrA5wbt6!{&tdV`cZ{uvT0aD5=unC1xU($7d) zXuK*R1E(VC&qJ8*rDM|zXRIr{t_?2+ZsS@wJUvu6oM!bCUm}?AH`Br*WXtZ*X*%BN z94iALXjAV6U%z?f&PhXB#Kr9SN=CB&qI2F}oa7$S^XLoD&2JaaljxIb`#iX)c6OKG zpoWAqfRJux#96wVoRCw-SW;<98(bZ0*<;shno%#-bfxx`KsQ%SI%Y$!_$k_ zceObFPV&N6S zB#plgal_Sbh z?nKJ1vJRG)3Q;;n$jr6Hs{Hbch6t4L-mRGpsrc?ET=_$MoSt3cJ zC=@cYzXyQY1geR9d%-X%hb)5#amuxUo&AlF)RYj5piS+D@Beb@&*)cNtdc@dvXCK4 zoz*KPx7Lllf!4^iF>7#OREip5#8U}{|51T(+&Q~Z*N2nF8^=`g)+gtJ@A!VFlZ}?ju|Lc zsK9BT4)2V8q3{b$l)VNKlkgi~))$DmCw(iQ4u?`Br@X=%P~Y-vD_2f7dlf7f z#aeY>bR|)LxH0{{YyHjWQ6o@@A^1=_PY#UoL^WRfMef8^A3P~`H~5dGlF8%c2$*zJ ztR_xNO9Zn*n-}BR*KcAMA|I04wdr8)kQ;r0F?_vj^}qe6 zS|RQX+mDkMGe`~xVoVvo)xc$Hd&eE~&z+ z#B^H>p@d(0t+|A%fBdqMN8`~FYTwewUGFS6*6`LL!6)?UuwIi2fB!Gr!pi;kDcs2% z_=Q`MTrq<8y?>tDGP~;j_9*^t(xXf~p|vr&A(8UsppTPi5I9sLQGs?ZMqDBJ0IGKQ z7Bx61)Z>uJg&%E#-l`9V@UwmB_RQ`7!7l;A!2O+&`-wdqBdldGHlzBG3?^47YzH9*b+H+92V-;sfS z>y6$ShI=liK=`ZCg>+}Y!;Y~GG)5$xkwf(v@(&L@03LufsEsu4TAme* z7xeWTavd()ZxIC@~tel=k!tB_=h#g^92q#+g=b)PFY`XgG_` zj6FS!5FJ#ec^}V1G+;dNWMCAC#VBkn0u-09QQ#X1G?Ba^R*U#a+^O7czQ&0kXkX5} z_99AQ!%Lz1EMvo5rmkRpLeCwDE|B+KY6LAR@&LtN+azb8Mf<~c`rH}J^{;uAayes( zCzp3^{t3~<H+0Vnk%wc$N9M2H4*t~pD)>O2xGdAqaOF;^ z%iwY*;O8a}Pwb<%{_uGwcDhfXicsYkM*^~NT612JcrZHLP1FGo?c>*(?10_b&Wy1~ zrD&Rm+b5mI)SCG6DRfYC{zH;>%GpEaUCLrlbL%2qx^&_0&N?$X`n8}wJk+Ztn=xoe zfNfkKc>s?$FTEHRP@rABy9oEg^^(?g+1c&u4)RQiFO?)E?m7}O+j#iKL_4alDaL!T*!!n<56Br%EN(#J>lD1=F=B(mq(bg6voTT;GY z*C+XwAj#7EiTth7FLRAGzFN$&_-L~GpAoH1V~xu>>hf~6IO*EtT#}p2Z%LABvk`1x z)}CHd(*ErF=8da&PzPN8{Q8VYyjQ;TYkV9 za`UJLvU=kh$=E|!AM?l_#~xju*xxyy`O80!6~kr~;UJsT!>hRKtz6?I|8arQDPBDE zU5JbvA4tN^?Umgz{mVO&+P$%+;FM^Tx^m2xsAWtV>d->(_HYe~f@Z=?C@G5S3Xdzh z&bN0gl{$&vy_bdvxmLfIki~+P9|n6=QV0vtzJ#-zp#n*uOCy^{bT3YFYh`78 zh1{37Io4I;_BDkiJX?o}e>mITaFw=5SY=Gww7g}{!2#0O<3FGgj$Q!q-u}%@NEaaw zj^$^ybBNvvvP;KUJ1`(~#;|98^yhHp^;$?LzQ_1IwclXJo)^=Ss{*~adI*7^&9uSk^-=WZW`q{alL@nh%H!h+z7_Q)l{HqP{<%7Rik!R=23k1(X=86@kt4p4oWQ0zgYa)H?Wd*4OG zAm_3~cvkQsZ3Okdpix3#5k>q2Yb5jtC1^y|(}Ik%18_M^3(6%&DD^aiomW9%wsd31 zJ&)xE1})luXeXSpgt9Em9lk~{T?o<^j-r0e@@t}+HmVp*OqcU_BGp042I36~0RmpO zwuR8reg(sZR{Z#=VU%g~WfvZKFcFLFmxExNwil4eOpqP*YY%YNgQ-Iyh_e~N7mT6i zIBDTak+6^{D?w4=ecF{OAv|dr4!!~~2$aPcS9v)?NI^6W_)MNJ-;`}%5z-UuB$sL0 z`gGP>ZEd*n(vE&U1Ao1N+Jzq5`x`tKgE8|3wGv^9BI8#nhvqO2w^6RsV^z<5&Ih!E z83L04S+h!L_xJ_;D_)2!PdhRb5;i>-N6=VUm~n!hKiAXgV*o{ew+*p)h2Hc6`~qZC z&<}h*XZc+{=Au#wtFACif>&3A^%;!G)-)(AcIx!b2oIh|12HmSItlX9#S}vuHbCa> zDBrhm93^4K`PE=2vZrGW#|h@n+M(ZM>ZT*PGy8)PSS`;-%>e-QcFg9|6r|i6D`|}X zd@nI978}9LK990<@~2gv$BUU)h4!p7;zj64z$I0I>rV;L^ z<%NEVT00x9@4XFhcWm?rb3#UfqAUAkNg^h>eU|J^^bE*>$-!q@CY5)8r`Pl>O6`r< zsgQxorKKYv_7d$|8}yrLt-t%7k@S{eJ;~s=(VmVVql>`d=kf@eymQ`LnZe=XP7h>Q z%U9`c-uS|ghgJ)o9$-nSNK%feJF@%RquhwtGuBKTW_!^i-tvM%N)3*lCUn0aXu1ir zj#_>`v^Oe{yQOz~R8nxHT>Kw~_ej|LMCp{d6&PT9cvK(XV5;k90==M$Bd9MMUcO?# zR{PVN%$^iOjR7AvmBG?da90|SQi$`#j0-fC(y4H^ax}l#uiso#I)l$QN=It92P*6I zWOUCV=UKY9=On+lW7d)!ZuIQtwAvVXA6d3H^!|G|OBVrDgzTA6kbnnC*cBvsrV-Vi z_*#kWd>TMpaDZw(m5|738RF{Q`orh~uUK@l(sL}22l~(W`#9c93Oa|As#5;zqmXvr z@Ys|Uqzx@3yG$1iNootc3rK*v>PaLK2T`+eiL9|AAT9VDJLZvWuJPMbTHl$m@-=?A zO3yBUHLC>JfXlc88`mPBF*~|9XLl~Iig@w|%dhT|PAF>+e0ej^mN`YtCuS}5lPcU7 z@8Lw7eRruPu=MoQ3EkBsAJk3}RomIG{9OnFw1v1!G`B+bE=P6R#r1sN)@ds62Xo+r zdY%jxX`#R6b!TDlIYh`6X+NTUqG#P^3?D77PhX3)a1eMza3|TR^67HR$H2d&Ob~yO z?9|g9!bK^G7nvki)|{ht@}ay_bmns}3pQS%;G}}wt?tafsOVoRG@cxm*Bhm{u|K6= zQX3`dbSX_;$-$zbOyr7P6|vM{{=$S>+L3d#(V?QsA~74zxUqHP1>pa+JEjEm8eatI(#Y zZ!pryG4qpkYw?7xo3Hx&z#M8HpQ1swy*FspcW;nKAdm+qF%h;wk0~`-h=2FkH1GP< zgUy7pM{1rF2v5YgUzDg@`mR+R^&jnTW5L;HyvjALfTfavI4Fw=f8(`v_;UrzfPw$H zmCIsQHTFD zwl{&tO3!*~jPxGv2=Zw`;CQyl0tcsp@AuZj2|f6OeUx2=;mXVON3MCksG!GHX#Iu2 zF*z;QZj;R~DI3LwpqKdUTzZsb`kG^&8R_=L=>Q>OBFCY*^66DeZ=4MOSeYE(r|Rak z`M6%hxg{S=|5-9;j%w28qFK>PU8h?)x3yCuKes<_EK%EuT8bQgN!grWVGnfVE~Lr} z{oV3Cb;?6@EdbZtBrk;F)|_7EqOrDzG@t=$n(#%H7gN;j0^CL&nYRZ#L|{@w*)W8< z@WC-J5SN(d@)&7Mx8C~x-$etqu?^rR8InxqrkezqUw-2pPX~#W^bfn-kXhX0VS#o5 z&L@9shBkulO(yuO$fp?Pg2eV$xG)`-*;xuk$ht_F0zC}l@9+T;@&@MDKpDavcPkJ) zuu+RpA6qxbh2^4hnF_!1d#!BkIY)_cBM! z%es+7s+(~Dq>IFu#4a4mV!jYWp@6|stEa^l^xH1>2+kI zH*>rNCW_K%$bOD)4=rnvpK3z?5#Y#7j6jQ-wi58Mnc4`^x(N|v+>`9(S65Z@$s-!I z1M&`&720fnH|t(qA1F~@)09l zmrm@sMb833A%dXRz`+)Pt$chx=b8r_yei`v=Vbe$1C=aIdRb*L-X%V*Y~_9~t5>eP z@u+D5X^|=0OA1yEd$MJbfy}%goQfA#uL# z+mXvZ78Uly>)sxAJT!7VMBL0V5P))lxmqKXp?1UNU!f$WJz=B7QjjZGiR7{P!L3}M z9H}GZMd50Yg?2H+pK{w$x65EjFAjAGjxfnw7DisrQbBIJ)X=ANj}* zs3e5P3*jUO>zyWi;vH|^{@Un)%LVE^8}R>1-VCi&Y~HBT9dge zMeSvZwN_po6&p!pa}O33C-cJqv8ROP50E0Z*THMV*c;(eO0urg3PqGnS;G95GVbvr zqA`*7W^*m!f5@Y)jy-C?m$4KRf;GvRb6CVlQgfJjE={-Jc9Y*21GTnfDLf-DNP9 zYn=U!5lXaz6QfL|YmPfo4KeX4Iblr`WXla6m!xKo4Eq>uiB!kepqHQ`Ar5+NQ=$Qn zQ^^})^ll^`m9cW-{ZId*eBA`zkwzpfFV zt6DUiKCnmk6DXQE=lbbq!KAO|Gwf?Z4oI0K2Wf%RVq=pN5J!5^qd)m}kn2HAsEyF=B*;z*e$U(GBRM*kF?v0QRVZhSwe-Z&n5DNhWu9A+z7ZZSgI zI#%@@QMRp4YG z3XqP2v6~~+5^8{<7WzKcPL|sZS(^{`_d`rP-pz=|>e0+O~ z#HT92LCeVK4 zHvY;IK7!8%5v}Pbo8|{(SoYiV;Z(F+7XcST7Ef}ChY2!z!QJxogV~o}5gr+(qT2lr z(|h#yfXgu6nmDT1_(!mDF%FE|dx-sjAGljydS%?D9RwuxviT( zk@(cKd{?4SW4=LVq^-P4zoH?%BU}b7wW@4bs)*6nB;zIozANK+8_#4Stqy@$ZqTs| zL1K=P^`w7TwoaWI(1P!{;;che?{JmnCO?_LK44oQi?ti+98JT-_jA#gcbIEIUrXM& zleV|LCS=PlgN_lpq;#Ujkb4`r)f+l%Ab`+Dt3Dam!zZt^GkXZmqnHc84g;r+DhCi;t=?WddY!=b0e7x>bP=Ujg0Amw5@iP-N@>D zD%3(S@w`}3E5+L{uLc_HrtGc?AP5i-lPdOKg8By**-%B8p;zJDl$6_1`d9CKMMbnxVpL7 zgHHUXeOaN_K6GD8SOy{>fBw~1o=BGmMo*b&38;wjGCm|1?qx*;@X?Ab10P@q8${c0k749k`k71_bBM$1(!%GCD9z zFS`%#1TwZflY7DV)S{GuwnQv_w3$|miu|~9JPJ)B2-9OK>Q5IE` zU@=`xB?N0*emE90gPb^Y$Z>`kXT7m#E~N8;NP}2U+KIx$JLZ$Uvg3k9aW6=|sl}GW*+#y8AZg}+0T5z}Y>Xi#{bysHeuKgz}RtQ)@ z;6>%LrzYseId`j+CyZ-@=T&Ls)?v3LYCYR+=SBBD{ku>sAX+NMTLoi zsmc*YSyYLy)q=3o>;?BUeE$=*E0iQKs|6%Pt|sFby4)gvbya+K%=u?%)W>dEB_ z&2lio)a3OUz2uUo>k(`8$qP^z`8r#o z2WI=+RWRki75WU~WSgT_nMWPJUpL&_Yo1myS2SZ>1xdo?pN#~X3bwcudGcUlX63F< zU(pSFx0iZ%v!G zCWjU$k;MVPE@Z9UQ|1y+biea$>}e{!=ffNn3NuHKz)>LR_v- zKKMqxF=k|GWcDO3EqfPyAXUF4Q+u)mMZM`W<-QZ}%&5&(jKe@-NU>dW>zjlDu9}}b zy(Wj`gW=py@Bw;`4S}iA%Tp~Y8jq|T$w3IWY^*f4*B%WSTL2&H*ITr)ZumN4>OPAOU5*^@)Ymx5U=5VESUwr`7}-9W!*xvZM`1T zzI-D?ghte2pn6x$A9=9R+A!MRc)UgqUkYJ>a^<)mkc<4J7ji)eEre2>D-2iW*ykV* zEEwb{g*N;6g|e?dLnuzDA`M-7B@@N(aceA$H4!R@x8T&NbL>bi-+MG0&e4n8#!&35 zDmlhCwl#$iCZb=`w1s^6)ZG4r+#g5NVZ;v&Lb~|=Jb^bsCX?f@59Jr0J4d#y#-Lw# zg#>l}(8dZ;8CgLi0UIYtT04UL-mzDHEc5t(d1p+ZdTaDpL`m@V3Ig@!jX>@UCQuRs zOdjbDPK`{C5nNG^^eG%*I_`Cp>LGRE*_BTN6j3rrOd28otsCGMJaDZj(km|%mK|p@ z7h5gmgZj39>UKna^+i8}Rr2)l5NoD0_Pw`_+CcTvD_qh2Uc|P8La$rTAF4qKed93k z<;d5ohS!2htJA10m6LmPKNFZQyItA^3J;(&CIW+_>vC zyH`dK9x2Uhm@;5T3%~9|ZbymB;W)+EqH)3bHauE*M%M2GnXVik*rG~-FXgEGu(o{1 zP~!rktD8nKT`t_Zz^#vRYM^hyT3;cr5!YjV?Yvslj$rPm zN_YCrRThiG`X%&nXMe*P%H#6wOc`5{si3`Oyl~J;OF!B=B=L%~)Ofwxp^n_U= zZW{B%2HfGL1u)w$W^8i0ZJ7oLFG$`VCAaatJJp!QUE(SP4NTaEalqTiI2@B}X16XK z17=>rM)ST}0fhiwr}6N+c?74X@gQ;KDLv#DT>5Fq$()OJ6XRWYl?1tPj+;oqi8qv< zMIW1wkqcz$mG@&%$b4(6__HOC1BL!m2; zKR&mPIrSuylv#dU_~Nq>+U?kR&oO5pfUBHL z$ox4>Pv$sQmNMYqVYEtjG}V2P{0HvNjPT$1RfZg|Ohl@jcg)wSBJz5yg0x3z-o}Rr zeQ5ns-q6N6pE~1+}&g z+NdooIcDo}rc4c$^3I8f0W}ufh{%jCX1DKySw5md|NHU5$2^`+H@B1tx@W_D1iTqemgn9ioXT{Qel~?Bs7u2Ps)w(C&N@Jz z>LDdb-JvgcGJ2q#CDqLt2wVp>6%{9RS<$B=FArMb{ibYk?@M|mzJKR=3%v~~DfwRf ztltJ%^KXT0jk?PAz@@;N6xduh}1IlwEp z)^}9h^694Gy`lbe?7bYMmM>$gJipm;P#!A3{y#fsyYcV!32rOz_WaNdkY`8IU~}CQ zHdLpgjK;*NepN2^uAV>z)=+C81CsHZF2Q zKt}xi6v;I?P~G1=#S=B*@1DlV2`(H6M-OK&eg9o*4}$ovB|P9OR=p)~_brl#afZ|- z5V#RQtH#=Glyl)Xot_QiCUskVem|tEs zIhmv|Zy7vl)O`9wRrDHg8}uRLnYlvPuF@oA+6-}jngtg<=}||3Q`u8+wR!wuUw@RuubOOCOhaEuV3ATd8ag1goW2u8#)OJ2fn56Exj&ctf1Fsl7x7dbn3*1@>G z_jV7xbdGcNawgYrm8B2xw)m8xFB8#s@+Mh!@BB+_>E6oBQoJPrA7|*phjM-24 zZmi~At9cYc;E4J3i1t#9F*OO*mV00Q`^QJqhlcXN^55e3ye_EC@tsz0pPA0-!UckPd31R07mM+qCZ3a>ci$cCF2%5kM0v!*9U z+Y_fxoqO#?@&TPvBhnl|N-~gNYT;E-i~TYG7gOV;8}}odWpOCOEAVmxb?dRwUaOvY z<;r*IYW(~-T~j$ikx@xag8UJ@TDiTh>}3=JoGBw$4=yK)C$9WaWBsG44!KfeDxXm_ z&IEU6U1=kZ!{R>CHt;CCkP{N2JJ3c8!=XCyOq{t3lRQiH&2U*_Eb-EIN$TE^3;%k2 zM|1b@fTU8E#tQE`y^mcGmtHw%ogNuFsTcaCN2(`Pfzm%Xv8^8Fs8*>KgL(}dfA;48 zD)-k0NG07oQTs5F<2BD==IUoa# z`-5f+|GU*mm4k`30#RLCzifHn{t}?L(=!*&O~x{>JmH^fH_6V-o9oj$tW-Uc`}Ch4 z+m|)EPTY@=a`F(XA-WRE>7MPR%G8u!3aT&I8zpbYYE67qalXZ6$VZIBpZ03@A6E|O z5^O@C;~PRA8L#|V?0zPPs?VbAx{8aVe!GYwik#Dm4phdAg2#VdOSp~u$U_H=FC*02 z5ur48t}yt-Dl!9qxmP^s3(C{&ls5+ick&aZbC`6nIi;Kky(`!N3Kn~4~=C*)&{fIayAN-VF zf(qD0T2&7wtVB%AWV~)BMa-gd-5uH1@1xH}*K$SaL)cVzZ%6zR`hH_bnN?0(P2~7U zJu8A}wjFT-uR_G%RZoMWLKz)3n0a)`PmW!mtJoXbO#K!4h{p9D|0fnFFn*Nv^)g3s#_vUz8!;162bvsXI?hd3MrQLBs+s_DwHpI zYf)g13=||Z6u0aVR4{MT62Q#P;L4Yg_Tr4nUI4v(qA|jE0cHdV(!%v_MPnA49rbBT z4|N6yJb0TF$W^s_&Y*6CNLd46bJa1sgY}+_roF(-nGR3Wh?3?YO^^L-#+E^fhD703 z_hKCVi3^#3`@@-_ZwAqqdC3Xr`J*>9?l9m;hM06Ycx5?gkApv(GaO_9(chABF=i*^ z!ms}}{Dh9|jY7Hyk5m=vaZe4H&PRWaJME&A#FG*IiT!JybVTv|519|OZZ4b|U`=GM z!_MLHIw*ZUY9~xsBZ>z7=#A7FZ>%Jc(d_;%kf%Ux>B6{kdyI_)$q-?`UOs~+)zR9S zo-@Y8-&j}nF&3a#3hM`#Gdm-Zu-i=6cixD3(krAb(B-IlXhhWA0-?uMCrLtuu&DeB zb>2#hlJy&l3DR_sCaf$&M5k4hI_ycw*+{Y-^|WO?z^J3{y#5ymNCDLH7f0qV&QKn9ixT+j`S>iv8telTtBlqdCa5;E#5=Be?`k5q!0i(D zHB3iMUsn%#BfPiD(@tt6R)MneUoQirGB}sb+olMrK`k z>hYk*g;Gr%qRfbU6&c_?A6uRy&&#-bS)TZAf2ooaQx);zn~Z)CX>Hpc#fK&L;pa8Z zQYx}7YB$7{Pw4uBqQXZd$+5zjYhiz$xxvRsI2rPfWzc$a0%r|as(K)3sP`@=6d?b! z&p>BbZz(L+zlvP>gqbA!VQk{LDI0 z&I|4pnk!_tt%nQ}-OOyTjo_thb!L^{9UFW4wf~tf^N8+mvgj8hr;pc9VPR*f^`4~c z=?iLnm}4&=M+9N(3!t+^4ib}zH|fw~0hc)iu_A6xg#Smcr;sjIi$XUMn~G@HW!pCo zId(%NRTKs=-Xww)X;C$tRtkL^Ir>3gAN>Z%Lr?`S9M0;5e8Rvmd8F$FfE%2tM$l*G z7f|_m6how=_jmuUe%a>5uJnkE+LbVwmMbF-X>#|Zm!I!O_B}%4-B0dmby*ytL?D^? z=u_;l@^|4pszSaZNgFI3ZD4~;Da#)Snn;2_dRN2V2eTi3_=)ch222z$zMTsii0vj*t+R~#Hru? z@W=x^x2S0Q(J_7(RUbgi^H_*(^J7-dEdu*5ie-0gJ&pO3m|#=c;~>nFAxV-@(c1m1 zDFnuD=~99uguLh)w5Izxb_GEcZA`bp`kDt%W5q+ocNki4wt(!8B#(W!DP<{m3kx4F z_K-q(1gFL*CYeq~fl-By!Z%Pq)y@AyjP|VH;G|>E#lJim#=Xnt%El*ZCy}_<)kd#r ze96F07>5}^hr8PYRf*f>kdULbF0^oqRM_?C^} zL$%?;sZd_4C)*GsCss)mDa`MbB4u;wyyMAX%zo!SM}}t5cGi{JPX6=-uR^94`rTN2 zk0Ov9f*$!SsneccriFioEN_n0=9q$gVj#<6tl-`Qy$>IoKJ#Amh*N8g@2)Y6oD{~x zTH+<%7~@s!_PE~7kckYaJ>ZP-Yk86swIRWZTrV=I>R8J#SfV-YLYBgLQWgvhF zD|d*?z<(eEB6Y&kply)Yty~a{Mo4=TfW|~YrR5_qo@uWIVeNVHjc^Fl&%6#X*;?F5 z$3_aM$C@Fk?a$hZSIy$Oy2v4*-$MED>IT4H9NB6{@J83lT z4?Zu7o1OMU5<{ zGK~!6-LJ!u69}TVfJ?HngcrGaw(zL@!hXt=fkw6AuI5Rd*kE6G$LF@b8bxC+-SfD_ zR;L`&^9v_d<0f03?jd zAil!p>KwZ{VBo}pbFIn90Ux^e2I22`VisH=QBYG%{xacG*wq*vks3COX!(9=?>@(c z+TUQqSrU=c|9Oq_(rgpcY+;7#pb`+QTz<-+kgr@oBJ2=UgPx{G?R(!ff1l=z0rNKs zM6KDD{H9k=P`>@~%NSuRCD4zcu(-7Y6XYkhR?z2qh`RYfgE znSxgu^NTMO(?C5;wB4T$zMXLJcj!KKOOD2LeoV+X_`Pr%?Z_XT8P8XI$^E$(G;>IO=_=F zC6c*|oQ}%%WpJx(4*xB+MYWwbTUtA#k@Pmk_i`h44M&xOT=sJGPGl{?*`@%`!cCMJ?RibmGAi9h(48ZBF=?6g#E zkfl;cxA%f|?sm;s2-VjSlaHCAP5r4YhYPXQnP-4f!3WhJZKe~9+owXasDp!Z+fydl z4w2VyG8S51`k?8RzX;}*MS5~wWF4_c)M@F2D{ZcRv01yoH)NP%?mPX+HfD;xt9Oso0e!g60Tz{TTZu+c@~ZS z22aF6(=%wc_flbNZTDJ_Eh9n6UP)t4sTLh_uDzi`pkB&!0XX zmXA1}{*zgZwNuyKUjDRhvojr1L++fxBkYVl0Rf+xoNQ0TT()*@mX7b7@<0BJ<{X%e z%F6N^6Nz3ed-;kJamkH7;qfMWJI~Dq)$CsAH%~P=!h^eOu{vz3j}&;QmzFvi1k%g?DE{ z6PINIa?5Dx^#!r5Zh?acTrrekm6I3M0vDdE__xBdy4^30>cLUl=V_O@_`<4)TXp&zxmSsCN< zGZ{2@)b-S=JFvxM6NVZJAK0Ut7j2Onj##rki&&F4seLv${J|0C2Q&Nrr|%+5)TosT z7?t~FOTYI>V>nLQh%$;I*DS6~VRWof&dN1>BnZIKr8~)EM&Hjy#+-WyyD26;$J7%5 zq525!fm&$ZG+2l#o6%r2JR-0I|$33(3Pu~8o|H{W^K$0Uj z+;Flz~-AR&cF|Bt4^6DXS232n4=5!Z%!LO`kQaF~EZtO0=Yl9XdyAXkCN9YyYH z#+_@^<8yK{%3?m_@rCzz1jpANtCkJ#NPXwn5N@~g7N zR?2jWb|Xb2FC%7s4O_NTis)!P<^Ug|cCx#@luK2?n|$PagYzr|!s;y)r6<(@&khsa zyQ*~goF#jKxblL_ra`cDKyCEc`L2mkQZqo>Fqqc&+GT4jvd z&@ErS1?0*gPg;vV3CM;7pbBc}MFnu=jL8qL7J^JzDIUHuzX*5Pg0$iMpSsp{ol=N3 zuIEEi?`0+=j;~yQL|$;#G6d<`SMFT!f9HIsfxco(PQqBMjETKLJk+V>SJy#B7+<#lzq<4apD9}zMhQuKEX*15fL4`aJm`sZ z^-~z*VMSXLGy`xNkx2v529&Ul(bfwmB3BFHM6QOh^$0+AtJ%Zmj=n+IU%e1uL>1GX z_M~f0hF+oO){`$GbDK`*D2XV%n(3(CX`2Iu&eaB_)6e+2G;BUTOK zZ_r5OFwGkXNyK*&7xTM%0PcPwSO4zcEPp~%X9;DzAk&*ZHyrCcYw27||M_p5WZFgA zWgwJ={2B07c8}8U-6CRd$x8sjt4?ZM%ZCjC?K1g9qHDr18pPeb{wNs2q5aP(t3P_d zHu=Q@Y72l_D>@D+yH?EpVU&g~&+}mBS>1_U6a8<>%ETx`X6#|&bk$`nk=Urlool2;V(eu| zCN1WtjLSAI3S8IUD7Z3;mskX>`u-jBFOuY3peh6QDNdg5HNU-8mS6)4d-EQ~pvFUk#%{;VU%DZKXeiD?e)CNHAr7i&Ng?Ua8Xzo6ZQl}9l4 z=+1dEPW$?kWl7?0wK@pp+ItgoF80i*IBPFrtHsMr%9rdtz}l^mY^qZage6QK_P-`A z=*+;jr%FPSNTXM@xX?gW#ahF1=uo>i-LJ81Q-7(qHrjiawU-AusU0SRG%YF^O<1^* zWSQd3spok{hsX(=D1*9qTZ(&O-^Wi)vI7Gh3D_^af{KYip0B(iBj1mm2#9t`!KNdb zdAFt4FkqB3KQ@DM7wswp>fnHg1+S>omSlHI{hUI?W)-=KNkj;32kTyj%6B;`v|vn) zb)3J&eu{tyIC>KvnM zV#EbQY2{pGwDl4ZElvU4YWMi;3TU4lzL+6qCvOJ#JcK>#rQWoN?LeNw@vSzlnb$o4 zZ;wGB$lJU!a~FObL$Ra|iJ=`4ky~}l0|}ND2n$OM=C(F5fdU%Rwrtm9@}$mx>w9lA zAg_DxrJmjVC30^Ub@JVdjQv}w(@2fN*0ur?2AU~X?*sTP09v>n@^>T<3WawM-gp8S zvJLV)Yl9^o_xuJw&vJGB^Usv_uuGE$kFb5+EeS4zlWzrqhNis`8zPj!FTWZ+Bozk& z!u3$DxzP5N756sMuqX7Tm##qk?(w@1x+2|^G4k5Nz=`$68li}4|BR$qhTQ* z=qsOCv-|pt>V(2%TDSp(rC=-?5ts|(w3y?RF!OIuFOB(;fMb*he&t^uyiY3yPz67} zRR$KMP}ThVR~LY`Gp~FOyn;&VzJ{)Xf*I2teGbWM#D8N1;sEopm-}$!1>K3rjrTLp z#IJlp$YHfSqgDnC#I#pFiM4&bA^hZurT0yS`P0#uck4;oJcdwwigRi(}q9dN{sDMcBrWgZbP}VcLnbGbnRtPN>TKACzxic*a|5c6&A^ z(5=*Wh}jXyB%U}|TsTC%oHoEBg|#~4Aj$tp;`CA3W!@=*N`sT4ChAMi!qggu+iF$ zpx;VFP^{D~|J$}6Qq9KBr%KD-_bj%iR^4%5dnSahSX3jkj%+hj&;EjEGVeNMwq%8D zSom?~|DByeCUN5GT!u4&{A;L{JkU1Ue0dpD5g9Lr7T1iS(nGHR0Vo8*CwSrIp{vtS zbog7n77A{7X$}f7r$O1(#i8GDw=^9g^k+qdoCCyM7ysK=C{uiT??@2{r*|GF;Yp} z`qIGvPtx1QwsGJ4p8pw**dZt_=iKJ4&i1sS+iCtK+9Jkn}pw)m#?<<-&6{IFj7xsN2S?7iG zaI+}joZare=mNV3*w1)@25Ayo=EKbVf4}czumlL+=dXQGMa{m2DYdfS4@lW-y5ho% zgTA#sb3+h<&QR-}^-HU&w)HC&@09tk&-BXM$A4!;<+wSP6pAi2;ha+UE!Q3*V%JTd z*=ip(ER>INySA<$bx;b`r(CN@i*nv@Tj?`;5RxTeAz67y#l1AVa@CJ)P{fE0e9oX* zK6`rIlS`!p!VeS3mJu)Hj)noO4@k{*jl$|k*x<^-)7@&V5Fmcm-cUY0_du_4e3Hcm z;1gTdy6*xru}nm|#r<5sh?_$nCL6(lcU%|w`atWnzPk+quM=U0LEYxjCiQ z-4qYRIIK~xps;Wxzve}G#RdX-F%t@lL-Bh>_)KG95V|s=WTu5)Sn9kBITZeSBjP{B zAl2p%IN^olslIITIzzc}A$bWmx+fbH|G4#!kywhIi&;?&(oPb^Ioga)#zQd!l_arX z6=A|o_Yy5|XOz>C=U!Ycoa$LkJD_rzRRS@BQJLLTPel#GWs|a|UwG?L3B@NP96o}~ z4HdsE<5R*M+kyk@B1?ZWx0S(0>gE&MOt(!d$}TJ2PKfUP~~hY7}ISAjv)`=Io9AJi+erjPdmfMH4wQ>^1E|PX@2S_RkT=qtfV{*;UVyS@m)zh9J3FMN905sS4wTs=fcTj?2B)Acdmv{4c2WYDi$``YWPE&*V>xis)*fuxOSI*A1Gj!fybMBBC&7l3y!18gf_ zhlmwe7KHE;J>NRA&G<+AuwUu7dvG;P%4EN4>n|*77xme1h+3i}-9%Dkcj<3L5}#+0 z31}K>1w^JDS-^x#l|tyhZHz@}95~qg_Ibe)?l@Cy)WHfGsrI=G`MFus{^Nw%&@m1n z+#w$^K&$3op!lB-?O`os7iWBK)rVW-O3@S72Dpx=1sz+Yy2WP2(ue1MkwkOBy0Mcy zRsNqs1GDcfOeC1~5Pm#d`0?OyoeJAI{ARjqAaLSmZ{~1jpT36vPQH!2GLPcjz4k7% z6XgzR<|D$+fn|0!8Eq~4l<>}4gwT{mr2CGnSO$7sbF7{JUl9j zs=NSSP$69Y z3VW!0?TI=@KAHZy&b!I>&~ukxCgpuWePL8axrm*Wa=3GuF_;8#l`;|l179f<*d`!f zeDkWJ2(_Wf9g#mSS$wWsK$1x+El|+O-p0pT2q9)peuov*3HEwldX4K@_1ovWpK^Vg z+dEgeUFebwuLMlr-;{kwJzS*_x1i#l4m&TaqYsiDrU&F+4VFeE;Ij>~y;QE%n#CzW z{{P&V=x#1S1U9&|P8T5>#I>e4>0Se^x0du33gyaL4vyl-!Zvs?Mv6nn2fK&jd}3#f zfqLK7fzTeD|3zD^)0#Srp{ZBN*o@}1lZ4yVIJ<+wv1x99>5CFn6x5x^VqCrufBYlv{Z6QrBgmS9nii1z2(`~Tg0fLNsZp{`(^lIPQOM6-mV1NWBcm(t>B z*em173r{lNBLtA4{#gWZocfUs8JmX)PhylUwUy7#F@L^sXf#`X9rTCN6&X02-uNzI zj1P(~(o`86qD04>4z-;L@!$*)&T}$pdOrJ$s3R{AFaDr)q(I))d$;->n2XFJ^6Srj zmvVh?PN;-`l#$#N+Z!*_Gr`l6rt++Jb((*W%XWADJ{q7%L^OT)5aoNEZw8%C(`FAM zr=r9*qhONZmq$lN7zURK<0AsN=1%~oNgvXlm30`LEyh{aMa-jKnWvMU4lj8}%o+#6 z9#9N9LC_ti!J=BhT>+wJNJZMASi)>(W9Y}IO*opImgzz^3?g3`T690%QMxD-`Qsbe zCADx-Mi{b6l2N6X3{Q3+c{_MRQ?(o99&AsR#*PO|39`IaCfO~lTzFc9wl`yjzZjb) zY4Z5bJK>eTM0(FQ@1DsDeccliS>K-MTn~*YC_U)2t(=Oo>GT#Wx7SHzWK^&BVJ;^} z!R2w>1J0M|UcABxiYB>AB+dxPOxP|WgaIdh?iIf$t9&-RPMtD?dx`6SF%l%0+}J|? z6iBfT3{Mr$PG?nbouS1tw9PeGxl}rI>)40RkTB}DybG~oLtlO!I*Y0abM;fhl0#fNbc8<^vcGSztD!&B-APyWpXX}>+;ApVPsBu zcuh5GNBOAueqgqAqHeI;g0^zlo|oH0W6Dg^y#4*#8k)!&^L%Apqil%GdAfXKzJ$Ty z!t_L4e6S#_%`kJ@Po6{vX9g1z4sTpuy6DY_-1L)c{CB5}y3NXN#l{hlZ0;o2wOsez z=}MyS257N{Suv7yrK!AH9)9Xp`E}zwdT}jOcFmeR|FO1}xv}t&K*8y-jm)H3`CruW zNX*&@rp$)fz^x2o#^;01@&L0RTik^!ou<1Y$mQZf&V`uL)Y%l1Hl-h#WSkqA?BDxg zq=aJ&hd*?$hf4{wG7=y87=9p%nLhbwcx-Omka9xCQEHabtLrKcJ4~QE;BSjl#W?58 z`hvgBFJctP%W?TcT(OzGJAVo;VWU~jqW7XfS>A5n!Qqf7^PNu#G~Y1&lDWHxY5}>+ z<|O|fjSjrjP=kMAHtc`-4{Uru`bp0X)~%wb9q>g(vFcb|PAC*<{ylF15+IKYo%=DV<_LZG zbG9e5he(Cs{Io$)UP=Pn&0-O!_kof%kPD2q81C6Qb=?-B6x)@on>{?wW}iY`u%h6-^y14`~s42y@^ahVnwFRM?zWS?{H8a$N|3Dzmct#Ny|}y@B0YP$Addx`^>U zhiZ?-h(1%BnSd>LP~9@k~B6>S|WLW`UaCQ&X0cb%rW~ zFRcJb)RaS~iqt|!MRQ$@$0(lrmyx5lqNGDWoe;E)xWr}Ww*w{K1Z^v@bVrjQyau}C zK@b!OBgPnhGwDMJcCQg+8{t$`d1CUw8&fgGeRd832gNF=J-AOEFB^}~Jk3Fm_NA}O z^8scYkS(c2q|0Z&qnh#d3IY?J5af4a)08IX6*vYlEBeF}^*frJKrOm`Q5_@zm_3N%@eSI})zVJ#o<2!um zda>FkPYo7OJnRQjPT+z9A!f9U-vY8nX>0H3Qjws6#m{|&o$D@PIm@2bzJu~)Db9TA zyH(qHP)UcL)_!4u^4lQTPf`}{nVopTo%zByzm%k)S zjZvf@22h$HM+cq8Jmzp}nowiNH8WQ>MHh&k>;v@NbcVNo_yZ=tT4QL}QmN9Z z`ZHB-M~#b0&*R5>VO_}IAC;k(yqmaZfeYz8T%+rB05K+@Ix zs|n$1#SgnYe#>W2Ue3dT@nU9SnP4=fZR`2azuxwpq~xY@ zf!%05J^g^qJ6!7UCrvF<10Vs{?7>Xg6uFt-PADor5bI_qqL+GNEve6@qK%Jc8DM<7 zfQJQIkAAI{iu7>eFg0FZJx}$pj-#|s4mRoyv5niFrKnK!u6HpP2G2j+Em8*hp!rBK z{yMSBRHxyKBROal+^bd<(WNi4*s1!AQeU&e0Yg^kPp=-a$}igaj9+%QB?9XYN8l(Y zPa-2t^flAPXpF5{KMj@GK}&gzSWf@`kgnoK=?41Hk$KBy6o14J6ZksUvzEUdFQa>S zw#`GWfd1j`M_G0i2rQ45W*T1(UJ`Lur>y|VgBgCPoom+{5?igm|5YF;Q22G7q2O*Z z6vJH(RXvqe?}3xx|EX2WJ!;3-%XqLDEA*-iq?=^tqupU^8%I(FVBZH}*Y4HUD!<0f z9U0NbfARoRVqi=y^{D4_NwVH5g7%nRU70gDIMh%{w<}2z&VuVRHCj}~pm(YJLoA-1x>)eg}IW7ehlnwUIz|usb z*6THv^9Zfo<=72o3pltKBkIqF-v z0&y7zfEfkT8Z$5d;}=GXwH1#DCdf2Xy_TxG%-V}TQ0tuT!IOL!L^|rgaHgwT-Q%yC zor5!BIq_R0Q%>@a&ugIU9Em+`)0kJZwF%e!>_Ef`TL_TNtLhgAa(azrv`eOldUox3 z5`D-RbP<(C#FBS30!LRPgw-KqmYk}67xb|Ojr*->mWK^LoV3~DR}f!>$9b?U3Ya2{ zVdUgZ=9nR6W0@CK(7#H4l?@fJE{=)md|n#@TQN)qaw!stUps`NS}4ZAK%H?L&#W*N zHT8&W{K>jGFA>4Jk3R=TkE+R|d6q3wO3!}ve7H9;z#FSPMSm}Z41th-tcW1Qv~B-s z&QlA&%HGw-$@0~Kz#G6~Snm{@18$eJ)~2Ttt|J$D&n z2A$pPf-?(V-DSx_3m-|Z5}Zmd1I+g$p4q8ujJ&{xGdgX(APVp zoYO_wyTmB{R0Q|5C;X+V)4ud!E4Uq-a?_e0JKEtY=9`N9DYOy0xxB9K5=w%VBLX9C zJL?1{eRRv?(lr?ucvF-&&ylBlWpeLOf;X;j+mRU_z@9SgPGJE6Z0#is)YX7)vrKxJ z4!O={V>g&}jku-R#&BO4>M2c!U(jWsCdq+EW9w-jfiCW7J)Yw3#9KSUF>ya^W2$CECnTa2A5bSSE(CpT9m1$=^BA3X`8dxV}RLnSz zCf+8|ba!C^xj9!RS-Hq8LZod(ZY&V(Nl3~(DZKCjca{k~j4z2s7nfZImj;^#>8=Mv zsYVFHc=$2v#)%?@EUkEH;-%=e-~WX7!*86Wo&ds5?&F$koV2<1)cFON#A473YyJzX zmTyiW%f;V|@%~QqZ8DM>1cxod=mRcf84qZAeP!p@3jlY7PES7dpJNAe$n8le@{Xz$Y5IcI*sKXN$@0Ua zhS$t|O%$lys*}yJ!T6Ei2p`KXgy8VW?N<%f7lX2Bhx@%5myPi{s3z zj3oXFx#H3`j zE`Iu&Fm~}YQ7+nzaaEADPyB`-?wb4IFBlPxYpdum(+lUrhuB*dKZyc(P15t{n|I24 zGDb1;H99D>-uAhSL1NqrPX!w+yuds}{{=x`t$stCfAd#GMW0tDVQ43BYDE-26|wC% zNgz_Go9^{PrpAR@!~Li*yOFQy1NDPvyUf4sqY<~Yd^&mTz=q`4Wa8=XQF)f4FB7WJ zs1eXd_Dk)Ly=Akc-w##Zo4$t@3hls)qp{$`lVo}}U(Pe7g174c&^j-<(>5uBT0DZ zw|j7hlKIihk9LwcO=<)M!BY7_x0_sjmpndWZNo3Y{L~f;=imAS`_N|5Dp&C4SM4=C!rMM@9fRkaNI7p&4M zqWm?KlVsx8Rwx}`ef0dZ?|)8MiLbK?W;hh%@M|R=AVuIn%K`aa}iIjLJNE@;jTNeX;~FC}{+0v38>4US1K;+(=$LwNZ`Q8}~7B~^R*|&9z28@5wQzTrdVsRZs)pqbg;jJjy0>U_T7?tZE}C)ICAfi zX64Zp!foQdC#;O}^UE(5wk9Ur7A~~vxI?TS^;?<9mx`A+8H3k0`4fg z1v#@0I4x#1ohnIlQuDa9V=UYGry@zW?*|xD*9uvvU?>$DzNkW39f`H zEgce*8f&LOjp{Q!{9$vy=p-*Z&==3cjk1cy{GQz7RkN;F%|7C#B1LK~;p(Gm+RlOa>@X1T#`;P%bz}IZ89mqrSRyBAU_1xPLC> zCv|i55=tromBwQL=R!kNq!6+_7XKIr>O4`$0SP%KNL&u#=_=|rG7-qDBeGhM=Q`sz_=4jYH^j(YO+T(+mC3 zw?Q=aV>um(y!Gq<{j)po6v70-KfD@^#N(9&p=J<5K#CT#J}z8&AXMRYCNF30r(T@Np!}u?u;5m5g5g0 zRvL7Pe4HnYpCB~P3@ia2Hwyl%Hpa+>0haU_Q{vQ6 z@U^7#)EV?iH}t9=?}G=3$^~{S+QqX^8aO5`##Br1Md{jLqUCM6ytH5bK{NcJ=OhKV zOO;>X*rHWUxN*5g)`@U=T~<;V)W~g6fO>n)F;=} zrbYPfIa;PrhBm}#vM($-Qo%4f`ZhsD4Y>h>Ls8u}zTj!6Hv+9327g@g&i&RSeP-RW zxLCd(Iq5H1xWxG;{ru; zh+dh{bLEfvXXq|wKz2pPVT84s!=>M-;Oj~bZpYpd-8p|XNxzrkiEf%)?8$GQnCR(#))4Rj=uLZKda)zGUKf}XH* zf=t{o6I4C!3+7BqSDZz)fw5dc45gvSZz%`u8;~#lLk1L;ztxdYFmM8ZCgq#n%dY61 zI~jeN~=)bC!>TX5PXEHU|Ieuyo+jNtM z3!d`B!v;McC#8inR?A#x(&5&YAGit#vK>nL$_24xxm8Q~IC@iivKrXZrq4C-5-tS@MK z%1i4u*b7l-vM=x~kyeI&4mKDs1Wqo~AY@h1Pv&I-d-8Z4C{lmsI^3%)?9@ojp4Ep#*iM(Qn1{*IjHCt*Ac{4ZF*VmYBr*V|3JVD2;BmPk#OL zCOEWm6%ARF{;W>Umne{DNKi1+Y_MX9boZ+1rq!{nWO@F=M^qwwHzM&wu#OXubT%wo zYD-dL3hj};p^fL*^^9*{?8Qudw@Wb@xVmT%ksd~sjgt;-pj4wh*DR?ej)pA(kB^iW z(=)Zzg&iV<&DNjJg?O4_)8YyX8l^_K-P1U&j9|`=Ob!|*61Ijb(a#i}@$wnw!&USP zJmDD9hcCo2F+d%N7xt66!rIzb)T1m;ixW3_kYI(wXB#2vYlJj--Tl+KgH)rAh%SlO zXq`*r?S8rrHfQ7x-ub~4ijb8=WZuVhS*Q%LG#lue9aal;wHqvpy^XadS!OFpqDGd>;Nd_|6EQ~;!sQwtp3!(GLQe> zLX+ap#-&=noCscNe>&m!wF%U#9ELfX-l*bgigeK>ON(Ea;;Iu+nj3c+*fz*qUxSe% z^XPHEb3&jZAxv`|q~5|MF~|lEzD<}E$8%6)vdV{6t|rax%niWsFh;mO>Oj~B{yGup zV}&ZH``139UF4$#-O|B?U!#usQYn7H*Oo-ZTBUqB-m3SL!Y1RGD~p|c zah8YzDNqyTG>e$;T@BjDmsg_6V<<&aV?-+C1z(u=-OSCtuD8kG;c=C~K+mO#!`%$Auh1`npfvq}8hK`1WbvKF z@?m>t?xeaK)FnHH=Io6(OBJ9z5C=qt>L4&bSp$*gqvvOg%K0aQ`}!smN@#cT8Rjlj zgU%GATCs9dD7ZB{8ONn?jfxB3`VXsFvAAO0no?tvr0HHc7#O&a+ag2ChaXFWX^Kpe zD5HMM;Kgdm{Mi>+)Ci4ek(;m;6aFAB4{ooDKBqN=#2URa=f7MrqLGn64^w#r3;NOg z+n$9JW-mZ2P$9{{_Pld7M$u@M=(ZVE6k{%-G~f_mB=KUPHEo0a`~CRdqRKV zKB<$Oe=F|OoZulcAEr2BM^^1{H!QjGI;RJVWwWz{X=G=SK*HJiQNp?6P~%M$8Yz1O zn7B}4`(?DigBIr85oPLiL0@#V^*=x}ArJ&3;R#saP0r5%FMA!hcOH)_)n3iUvHNIZ zIhyJgnrev=(Sogi1LnwXF8Mj6mj7&O>Iq;a+ ziOOVKdE=07=V$z~BEw6^-s#3loWT^e1Cdj=L0l_wGDD$e6yP~rbXQDi<7m>}!lYsj zNQi<63XzPICbv8>26V+FMI2D?u&&^)3U>2g8FwaF&IzPxz2tTIQnZo1z`4p_k&{+4>`q4I? z!7-uE?vWl8#D~K3lUIukuT>ph*Vqfe^iSr-5eG#PLp&KMk^c|1amhuSMRZau|z?n2^N zPV{|MTG9dugJ%?5BD*ou4cjf9>W^Msd3h1Q6x3JI7reXe@)!$TI<_P~Weh45MPpH@ zq1-YNrn2!B01t+6+d@jDIK^bMG$HVZ;B52`7@6l!aNksi8tB=q#;M$qpTR#5dRw z{HDIH*6cA|l7oc1`87;RKpJt)l{uY-NEK(@CGBs_>z1nR;zD34Oj%2w-@55 z`N?GlpCJ;~z5i=fk81$Ml{l}+YLBaFx^Ee2Urcm!H>M7SyH9MhIpj~o-A0gJcicFY zakM@R(g2PHW7lrKg6~<<>q-*xy%x?GQN(41qM*QW|E(>30H^yn<#r=GSOZwb&=Db_ zr+E_ierdsTtsx#zbzycOVvThHT8H_5C^z+;l)$p>T9;X_w345 z>+7k!-jgSsCMfa9tSyZ!E_hxz6RMH;6c_lJF-E)*Cq0qpW%73^p2ff-X+3C6sp-I} z?1MD~slRRAS)Ym}`h4vt8*wi3=O0rAV8QVU%%2EKwERfu+>22Hn0aZfBL-e<(vMRn z|M~R0|N9SLjm%7Eg(Css>AOkyD4+Kc9R_B_xmOeoWd|t90l#>J)i))TvSM z`U63*d@xhKY%iVEzI?uEAD6tBQ4-uefJz*Jvn%FTAltM*A7YWq%N+W35~_(E^-Toh zBU^z^n0K>GvgyVxn(1nYvd3-Odo31-{;;g5t>|}G0eJE#Xl(gfpmx{Fk{VehnYJk6 z<-a*icB1;YZVgrS% z`R-=CJUbj@96#2N&SKSS64ve>TbAcLjtT2soh3r|+Pm?=)T4>BA>+h>n(s3ft6N_r z$Dk>OJCpjW_j1K(@967B^vi~KKWRqS`@=@-Pyg0<#kH@lcHbxg@dY*IM=@??5vX~% z)Q=y5NI;oM(!WiD=z@m!=LDUP#JlXS3)tMUsyGuNaWbiGW{Su~=;ta^;M|tT8S&e4 z%fhW#J7W?I#7dA6)T!99hUs?l7Y~j-33}76;^kOGJ`-o1kZ_NmaqowAnVtI`LI143 zof*tg3BNY-`-Kkq2MAtTcQhbW?^@EWVj5HK&S>5wgF@AP3P_ z?XyFbbtuJ3Lmm*PAX~09{%OecIILZOHJMjFtu*SNUj1D+nk|AF2uld z?GUfcto(AU8)!Y<ParrGI&)v!ka)Bvw1UMa2BFx%RVX-LPYE{kBdkr0u@!I-d+dxmd;X$+T+F z#Y%6O9 z2Xi?8X7=G{xh7@Cj&*VBA%SguxZ2&T&e_ZPYH0+pm4c^2m|xN&nm7Q%?I$008-l zt&R*mdNoQ3dL^np8a_>W*U|136y!+=KDE=NTcLs@HeSA*iyY_t-wBp^%mKo~SRoq@fyLeZsBtYY#7b>BOl&aL{Ai-ncUq zL>RZf*&m5V^+Ar!1AoZOL|m&o=f!D|mK zhF=ZW!?&Op@H?afb%hzMbmGJEo5{+&sC}OtI(AZSJZh-t84e-w9x6mOHT&N7l!fR0 zy&y2JG_jCSV!CtjiYypDJ$$vth-7VcoKd56`+za}dbq7g8K~`3gNlLzQC@sLTpTYY z63hauO&iCsjnv>F#xZM+m0xf6|Nq?#EcA73=hE=qA{S_8XEaR?D;J!L6bzSDQFu8)fR_=PmEzm9IZ>SC+v6Pri6^V}ForqEoj!hfduI z=l@4we}Ur=L)TlcM^>vYVLPG$VEvMMg=ik~%Djt7xAR8n9XYKkvH7DvQqk*ziuE+V z_+4JjKZ7!O^M{V96uBaNRL*A;v3nWrf1Lcg|9l)TvKA*`i7A%*M?;c^g(#QHbF?m9 zcoL1PkK3Dz|4)$9BTCjfl9Q&l{7K#2#MBt7;4wnDG)hYaFc@?_#edms5jMf* ziK5s11&g#BaeN6QMx=ctYWNZJ=zmSyL9Ol^2wG9yP)HOnx1O%qS4B~Tm%g|{bX{Rf z7s#1g@INK)i2{QzU;JZRB+z@1uyq1g2o8vrZce=!2WErV3#J}H4>n(pzR*wB8Q2eY z^Y&0(*;o<7d#){F9hd|P%huI%hmgXBp)W%Gla}2&IL)Kjh7!JT)x~zuElx8mb!PB+ zU59lk9WM9ep(mAC^x3X58AprG9++KW!)e|g)W4sOSLxth@8}5U z8A1VR3RaR4!*Er!0S4+xd3<_n(hBPp_y$DX_J7LdBHiq-Zm|z=MSpf+aalt8K57GF zjW_ep=rxei(o0MZk*bA?(5o_PmQ-R1^X{)+b~18(AL%Z+;lP zoiKxk<1F2bDk#hfGFihl_$QoR$Nd?sktXTCUZMW$!*iG_WE$Sc=Ox-@XiV+NkG#9! zMTyZj>aHeBs)o{X6kQH|&Llb%O|h$mf*t%r;8t8>h-y(NN=afDSZ9Z!J9eI^o1b&` zm2hz<-9=;x0*G~5y(zAIsn$5RSFSFl59$N=NMA8aNJqkkg8$WTa3d(#&mux_?v3pK z4Jt_wNL|^ShEgzt`weCe;)T(5t8ZNug)G@}2Hp@d%FMcDPrsN@WaA!};mE3(B1S4G zopx8`Jw74lvjbm;2o!s(ZbjnXuJUoYa^hr^P_+oE5xZzgH#9bVy%5@tWZw2*rkSXt zSV--$Vo6)l(2kPLQ;#1zAZL+?)LYA=YY%_kJ}^xwAm2|M>FBTV`0S#E@}n4;^4LNv zj812by~ok|mBjfcQ+8mm-f7-DzQ_O{5~#{nDm>Lq%egcK0Dab2n+gN*8htmW_%Ppw zJLXGvsbL-2kAf+GYLJU69`6ei&&=>h$A*9v*&n*_z;42%ilDM65%}oqulHF;}5!Lk}OWHdE%zBTIFNUe|g2^(V&#u3tkzswlwxQG)&s$EFKzp z1v0VuR+7f)+7MODsnmTNrr#G;)j zQN#am`lF-ac;m>Jn?_a-?Lf_7WIAurk^Wlq@&esXboE7zd55Q2Y|&GL312R?^%vGc zHbf_mV4epkK)&X4X(CJ@P*8H$r#?Dh^F0Ho`fmCl7>HHmZsPt({lnxM06@~LrRBI* z_MvjvP%+;g4Z1#U#fNgA`c^9t+j)M4>{%Dp&{5t zjSyhyi3^`kcd;XM3R<}IjO{92e^(1o>v?_2QvycN1WrZqmZx*tJr=xoFpIb@>pRY& zi{i4{t3DOhzgcK~{BR^VJl~45-q(qN+to2UAh-s_$?~k-$>)pOUzB(3B1h+$JSROo z0I3)S-|jT#dLn3~o5^S1{rCSZ7hxD&Catvcj&FHIcE7`I3Nju6wGINQnI#zd!$d!I zz%Hu3=`$0Fot=K5A|YpvJ{ysFHT|2})b8t75O!d?Ce0#^258>=<(Lm5YsMGn7cQ`*k-`rUWMJOMra;c3<|3`8k$@ymxq{)fL{ zn3v0_h;5# zt@mld@Ric%{!8=)@awNAoD-wj9Xe7FAkpn#3(*T-%_Q!Kh4ceoDc(>u?Fed2)$xmkwCYl(^# z7Vkp`?PH2RXb0?5gT3$hCC~Spjk}Q@3g4ISm;>X;OS+&5|JMYVcraCAhj-Dz&Hi17 zUUP&3Urme&I;qKyI#SRvKp5v(`g1gESV;_wYY@KRJ!CCPB!C*(lG-{B)`DlVXs^u~%Gvw!6!~kcV za-vrGAIRp)dUJeJO~~8DBV#X)XQ>kI1X6+_40*7%et;OGXS8Pp>&QW8#j!Tk%d#<8 zZ=soahte0j^Z{YDi6GYP1WIUb6IT{Lt+Q*5qEYEZ5=qbRp*0VIkMiXwaTm9{Kf=Xz${vqz5VG-?pAT%-VK49gHEYCD^Yw-tT1<8&c^^W z0)A!4u`Em3BrVQJVdz9-T|pXHB|gKfW#9bg!vqc$$BB1sMSZI`F_!aY zX`FWPbun@l^DLYck(p2G572`T&F2Gs|CO*+K`#Nh1) zqBY-YfDUP};F74zpPMf#*cm8oa>ec{;X_@$M8+_0Vf&3k`SDA%_kF~%Sy}+7>uHv6 zqhw<0knb%4$$a&^A%?fbb2Om~8?N}`Kp-BXd=QM7{f`$2Yg)uiwwZfh9jPkJtgd@MkTO3H z@KhZPK4owz>(FRLo&P{?l0G$lm`R+ARLf7Kr# zbASAqYnJ>;EAr6m13q|HWjV&MS3inB*gajeF!Kk3LHq}G%gO@z={}%ZM=!&3!rJ05 z=a!aD0{b$lf>IX?k(|RT4Vq;Uht?)3B(%672s1~^CdtyXVI1;itx|}Li0LAl>molf zl6;k&9%Q8HktS%YYnUd4?YJ)|O&%Ynr0dN1OKj;+qzD0^FV1+1ny$EBCfEoxMq?DT zi=L8AR?)(6FU7?-KZ^r>V-ZGwZcMp-H()YIg&c5Av&LV2x}o?gCb(BXLb;IiSV$r< z-WFpO0?TFx0*3Y^ilM?biWAkuPYC9Rx!NQYN+kHy z_uoA_z2br4393gZ@S+_$!0ZLScUtYS-EMo`YmkZtJ{b-}4sO#+=1)l?+9eu|g~Wg7 zbK}$ifST}1-3CEIsq0R>V{huMC_(xgQfpZ<>I(B1q>Iz4!g3Hv#!t^}k5LH)>(_bmKOm&sGFE6jau4yipfJ^C$q+ z3eExpzV7`6)KsDRGVU3+2LgZn_h*Gr{vZR}II!_?(zau6+<_Ux^N^2MC$f$t$g<%A z4M0{g6*`^~cl+@CBlH0(o>D(MXV6Tj*&v-{9|}e+87Dzl?_3SxL>O`Sgnz>(3fnTB zwAMf<^IVadK}fZ0!#kB{FW2Hr%LG7~maiB|aqUt+md)pieTJY+qs#?lnwWn4)Pw4c14Fj4>l~Z9ug~n#)R;tRJh3V&bCC{d0k69jVlNltJ{$MV!&g08l z!a@Y(B$}EX!A+G5jH~M&w-v*q;|V|GB@)SQ`LT4x-&leL>|~@QO!Vs<*Qqwr+Qp-8=FlKk=C?IdW3|LiRB}Rw*ja@Vo?QAq%Jb% zqotN%AnU5TmgN$Zk4wp25h5JPZ%uxlx#fzIKma0xn7B*B!5&Qp5bzaodB;)LI}H2V zPBel8@*UaN^6ydG>zD=jy8<*U-?b7zJ&33ulM1Uko`vv6e`p(T3Of+jwa~e;>Y9Im z0F2<)$1&W`%AppXV>{>*f30jf9S-qWFzv_M`n$p?gUGhdsJhaUeCa%THq>bu!SpHz z`_vilQPGC#zpeO1#;4JJA&M?GTq~1Q zoQ`_JoHxuqijt4z5Qxs34XGyeBuRfYPOel==70F_=3RCvHR`5n3U*Weh zN=A(nE4=B^qV>ih)J`m96{dHE`l-8|Z+uY>a-Zfg8sGAMj3>i>9qtBS$R^1$g@AG5 zR=j-M=ak4rXe*+LH9AbM9yjQz6DH9=25gN_aMt-TPKO8LxkHiszx)~Uii5Y3mK$*) zIaX0avwRTOzqU{9>O{d$Sl>4NoA55U}C9;98D+POQux?jGly?>anR&=yfuQjbq1d*n-=~F}T z3$k3R{^H>a=$B(+P|5!>+dZyOLB{16n7?K192_ay<&Q|!S!z{J*rwj%>a|EG3U)Se ze5NBm+KQ>IQRxX(h7{`A#d-7E02g3nv(3Frg&>(aD~n~*PuPg+C@*gh^=T1IGa%%; z7VF_8ny=ErU|)PzR=9|{nYq-HG^Oi2$f`7_Tw7(W8iaH5wL7{&ZiHmFPappndQI>_ zqdk;cw?w+hMHgzEWA{npxX`)rV+EfxGJ?-c7stDJRtDEQ1fYowNoAd2i1(^eU#yp{ z)e3dtG&68;6g@wMd9WtA?&wY)$^oRd9lZqnv_qHNXs9%6){c~=gGDAk%F2;0c8E5w z25&ES7)NJ_J|1u0)e+R7-)fBJ5&sudE}Jw`{VHkYjcT1D=-HR}bp-H6{4$Kb=G`y3 z#DQ*#QJNTt`5vlO-T|6wcv4yYYJ#}Lip7TEC&mpb9AJ0)giO=7Vm&ycVAFnEi}2S@ zD(h#c1$y-oIgmuWIiKwBosnmSvZK*Wlh-f2PCJ*9pTTP)H|~%sE(RFgCKe`sK@8v= zBJRj{7RX~Y^p_WB1Zul&*Toc?o=_*C39pm*il_S`pD$e)(BD1@M#`u)%Q zh-=MVa-LT~cJZem!o(u)by#j+LO;%0+go@mn#gbG8m`GG7KL0uNf0zSiv>s{ zYJ4HdYTbm%4=KiS79Y$K2e~85i?o9y_a6;-vy|bz6uR;ST2vE%6 zPwOD}jNbH91J)T1Lom_5G$o^S=MKz+pWuoN-D|JNHK83mm^W%cL`IyoJkqRKV$3Dh zMq%tMq3RmR#1hVeC&od?KVO|Zam#Z#Jcx1k>sO~$fJqI*CW&!4!F-%?!k%p8v5ZsfuDd^>q8vBjb z)q9<5lgM+0D{82pTci1rjVgo-`%}u90=L3H07`>l)ZmUV2QTw^GiPk{hy6%TzG6A? z=!%GroSqTb;!SkPgujoxHxV&>5kdfe(}Q#6BG-KMgDu&%#2| zFg}d#Eu~lO5SEs0Jvi($H%shIO^`|vmwU2#UjxP&xEsZ+tmdkZ@hZn8? znYJW!}x-0fVMls8qT<4GL zYkIu#$c!!NHNhy3C5W$PL9>6A6#nLj;6z>_-O9vK@6YdWPSboe@hN3h`%#{Qw|KS} zXx$;jf^<=cfv7yL-)lcDuW4IUBpy{Q{-XeCY2G&q&`{J&k%na`jD^_K3m<(<+OMgM zM3PZ8bq&BOo;HkMzN}kD$~UZC{hVzt8tdI`OF@)nH69$BS?11ZR;P}R8^pR1S<}F< zKRXccqFIvYRc`d*(c%D|!hCNv5i~*jqb!5I!-H3~PsF=)-;zqU`7I z;gk3+&-i7tN2R=dmK0jvKE#JABQT-qO&eF+?QbufK(hsOd>P$zAkL9757&d1FoHEfo@H#xFbWLS zdU^D4vI(yYri_fzRue%ixPn*CYiN@sO$?i&*V6CR`_#I)^s@&fBGLH?R>3n%V{m_4 zVY>t;X4Q&|C>{jpRA0WB1^y5uY?(D*BDf3CC3-eh69X8y*@hH{5g-V$2SP<)*jp2p z;Azx=4J!%C zFh1r%fNZ2)BJv(vEBU78?b9@#IPvlz5- zByI&d0T5BexqA`YXD#i`Fx-jHb;k5TdWot~8kOz!7{lW zPy$rmg1+@c0zE{%i2Bx*D;IT8a~pGk+tGuKm2`0&DSd6F^4YQ7JlalLDk`pY`=)ze zFad8=`93*SupB?J&0MBT13XKyvuX`MmV{E*j{rzW`~W~nPTGMJ%VgT}9du$HSOwG` zel0Ac2QnT;aP`)aAc;y2`qcis(MO#oG!a9eN=i@`Cb()?TkKPnvo7t}X-puR<5gKm z2VI2Qe=hIEMH(ze@J`I+!3XEFn>YaOYE-i!^6n z`s5byJ+m(e?)!&Xh!EFaCR8h6ghLR4K}})G%RoO%sR}8>aeX5Itbg^5>gvU2mN{br#+FO^?YlHt$ISWB=Jm}rF`Foq5^3GfY8;_J zoY-QYUGWg%?6nCi|LFGz}M3;88!IJ~8fApP>}EZ4xo9&L0K7 zV$o%8e~Q!{|0#mf(p1X?4)|sj`XbVPAX!H@FXS`&8e6iEb`b1l0#p(zR~9DlMqHai z+&nqo0_dk%D#`VnlWTuEfJ99)cF|2=Cb?HU^4Ig|00!@-GB+5kZ%r^gv!pdl@48Vr zi)_k&LDt)RGRoxauTgTto8G>Ux=)J`VMcYQC9@jBcQOJCiLAKN*+{odMyZB6OYa-m zbV-A1t$%V_^{VS)J8&-_`SOz}9SJ;=&?A0uxWZ){`LjtXbsAi{VSaG_7uby}uNaRO;tlq%Wu$c)B05)mGN@25Dm{FD|o^gchCd#-jn(I^Hcpg&(MYYD5WI}-sE)?3Cac2V}88Jq{mp%@Yah3}_iEm#Dp#|aKF zMX@r*F^EWZ4q@_|^ zq%Kx*pVG`;GEVIz*Hu7Y|4rOKO&bZ?G+|oPi^*r#v=L1n9(jcUyZ+g~*)a}gfsiZFa~?CZ$(Kng$HP6QM9#40Kpvy=?o|g$i8^*# ztN!MER3?j8{{b7WL+4+y{n5*b=Dh3=~_GMc8VqJzYvXSTQ;qxrJlG1$XyuW zP#ZNf49HS^YobE{r#=qY9*q&!v558F!Id*O%BOkXU5AP!fS=GuA<1wl|Fvq|ux?4%iFOz}0}d(*MRl!Kv<4O%O<3LfF^l)0v$$xx*x;!eIJ8Ws<72eiT*PtRP4+ zm~XJ;<-;hCQ}R^O&X5DVnB;k8>A)Gb*y3$QcOII-R7h+bAOk`@z`{Q2C|`c$O=TTE ze~QlXJCkS0CEiCHcwGsIl$I|BFSA5*=fJG8JzhJbmO4$jb@wsck}3~ls1Taqd4Yu- z8|l7;GX*1zOtIjYt!S~lXS0K?d&-T4xO66;7nqASKGpxok`_#HYh-sBB-K;~qW zC68_Eq^X)qe*AO;*q){-eEJ?-cYXuG!n)<$4HP1OJ9dVc6xdro)1n3e)9m=45z1tL z!O+bY_WLGF1CahIbw9PvY8PMf`FNo?KArstsml=IPb=n$s=52FR-D>uBardMLxkB7 zT#4z{m+fAq+{q6PYDhFBh6Je$4vRclhgD=kk-uG*XB*+t33h%rO{Podcy#U^BC41x zLwgZjoAJ~C0X(tbjsZ{h>uNB+pKDSaU;iSD;GkJPfxC+px_#A-t&xXI6 zDCoDD&=AAk9)0MIJUx{D+hrmZahCAo3s|LI+G-!L$3|i)+c~GKqJ^#)m5!Bf-g|c{ zA3Mpa!pWPkRG18aYfOTT>u{VTkPD+jwaF78M&6kh%ZTLUYbD8>fF2FP+SnZlep0EBF#n zBoR_Oz_;j|CdF=x9taq~+*jIghKXQhn0Ssf-l(5)JGP0cQB-^o@biN z@|xN@Xd^8mJg7(|^aC3gVzt>I3$$;>+_l*-P^W;jJV=w@i#o$F7TYI!mR2KQr@){ zt8zqiqe`6_F?Kh{BiMLN8gk-6Va&oM4)Au|*9*WoAp>s|Z#VU6A}nf_a=M%i~- zl>VjMI)Q5Y@tGbt?YdECznBpEZb0L;KmY;LxF|hL_{m4@NCImzj}+1i%T?HRqyhlz z5_{pM9jYwNJYgr0Sb20y&U>S~#MFh1=MS7Mp90!Qw`$jNQo*dGBgGC8ZF~|#wtq-1 zFUAUsyubwmf8{8o;OdHvPc_Fs{LowAMC*Q2%+7& z)PA6g@>;Gk`MKL*9PYrek56xOIm)9uy;7mW71s!n?%)4g6aVQb5Yz75;V=^i zSC+J^3Oq3;1I)QvbYhFbYL7UC=4L#y1)5cy6_R&}o3h6w+m^) zkeDB!wp@4n45!QUOQ1wyeB)X9>LvP<qn%3Rk`?%$3%S{XoesHs?n%1S)MAEgeVs+VKed&m?oqhJikzF;vl1o;>I27OP z`O#PX!6_;m_my6Fxmla(wq=SQ+kASyyUJat_^EKHSU=L|{^sppo{Mh1+gz1n_NBzE zz3+8ulwN%Ul1uJBE9=fo%Lx&M4nnS~i#2 zoZ8vPWqOfgg|$1qMI04`!Li;wKO-pAiTHnUrw<|XJfvQrPC|)+7`{iEY z>*d>l$|))uNe(opu#oHu*`+%Kw5@P57M(VwLNlie-Yu($<g*L&;wqi& z@=K1N>a@SOITD*+=>oFm-QHHct`p{sn^X;pXgfu(%@FZpT0BTX0)Pq7(;(t^-2d#) z!pKdIr=HwFJRru~E4dyq6>G)c;~kja;yoCjRVZa#&>BFXxcXMd|_KK)@)H71#P+$EYKb9Sn$HGKsf zBvSnL4mTE}g$Yv1O0(`c`RezoIWVuLPmn)I*T}q5#`YAQp0yqJuHGF{K4^KylI~BB&E=2l24RVZfkI(D~oIB&%FTd7_WiigYR&5RXIvFn;9Sy38j)U8Gyn&-JGUv>u{`Z5!L3EsHAuG<& z=(OV86is>YZUX$RIC(?!^X@k%HvKF6&D9bbh->fCr_C&b0Q*+&&8}#+H2$%8bZ02a z$L$?<_qx}CCxP2uR6hKQFRK~o_P$dhiDS#S4(|5_X{Fuh5mB`85*h67V&Yo-$-!U; zUEkl&)sLhJ+3%J+x_dXI@%ZAK1%__8^$*C_Ru zW|g30|7!L8!<7Z4@nwryC%17uH#)4AJ3`x|9V_nbBV+3PnWSR9E=Qur_lD9R?Bv|s z#TQVwj9Cw-o1x-;htA2p76RXoRN~;9wTz@oc;hKvmKH76w0{JYM&H*loy*q2}%S6A`kQ@}yS zilt&Fjc$$3AIDmRIJ+5uGp6;k4={$VkK0Y*wpJqpg~i*6SN()kqWdsck_gor1b{C5 z{L#JhTbm6s7lbLs*dAU2zx|+_jOBg^0i|$j$vk;Q^tuFnjB%?%_I4?vpmB5hGR;+4|s#l+5v z2B>G2C!@bDiT6rgX?C#$l`jyHOh#II`jN#O@|A$nz!Qu=bo|8p*b6s_J38HuJ-E_w zlf!0O?R3Z*C1*wgRx*9&3q+L~VhYxWn5(N}0+$DzzeHB^ZZy;k(lD{rst+*t9nHZ}}CG#v^l#EUC1v4NxLT%9i*s!4vd-r8Ik17u_GgJvHs` zUyd+R!*x3uOzQ_e{+RBH=ZP+H^h{jZ_pUZ z5VSiEdRcm?m+o__kD47R_shRy$nZ}<|H(rNgN}n&OJmvc0PYuKsMI%DP(vxYxdf%883Hi}?YW!;WrY z+IrW6+3)U%>Y_ZX(kBmL;`2rP!tUV__2-)P=JX_eeF5(WjXDv9 zx&QaC@C)J8Dr){p8tj>yD?b-$5VyS11-MoIBfD^zg#QG;cH?ZpKJh?gwhANC^pCqx zk5SSBmFDV?5-=PLcF1aPy68WPZ-A>RC#0SmDT)!@#g{Ur#+(m&Q2B)MJ54j2JntI8J7KNH(gESxxSt z>iTLa7JYOl@udII|MHVC_$+%p6uFZ}V_`Xp-d93t!al3hIf2FIyE{h@CX|8!*thh(!v33{fGbdqooHR@7`*mHzO6_#kv&)*|{? z<_{ut;o~`B)eQ5>{u^F1rAW4}IKpcpW2q>Gldg>A3V(9{woX8ejK`%fp{$@F;G~mH zr7$^^!dTHKruO&>2e*GYzUO&+^{MJ#4k8|-JOfr~C$Ogv00=d|B@=3e?k4Hy)>a`G z0FY6Of#ssUKu{lz_pLW`sjYYBWoOv}$D7ciAHebBc}Jg-*%BFQAov{+{8-nt z7+i9`D5=7o8A~Al;)X7a=<~w3MaC4U3&Y7W;rxK;n8$q~3*&aFr%1Pl8Hvco)RgNg za^zVdr&ma(=^C(HbEq~w(i@YL8C0uAaGUd-OTwqdF%py_8zg0Pb9eGMhB)i_y-C$b zfT>g&gDU)&$HcN(Oi`r}=PsLTpjwpRrRha?SiJg()ZsI~sO0qL!MJmd7~=pGs6Bv| za#W4a^x1q{Qe+?$Bpnip4R!t`c3lL$`hVVw%0@3@uqef-ttHve<*i=>tM|Y=$aIZ@ z1tB8>ScNP*=6kg&U)W$^m;WtK2rZIUF!F;-y~A4*jz$?aLKWjmHdnLb9MRZWl@Lo$ z^Ig7Agl08vyB7O}?YMRhOhk%z0?;V?&!7FYw|ff1Kr_2>z^L>RM5nNv}xR`S)J?%EeD=R= z-o8}hlprRIpH2A`3EZW38R5n-l? z5eV1U zwi~X$BNXwXSg|WrE`w8dgF-Lla~VSm?MQ9h+MP>MU51GwOsDQr0P*6)aC3Qi-AWQ9Fru4 zV-DG#u8LE+Mi8%yF z{y_gcZ3}&y82j6jIdI@Cc_QVeybImMu0ge!vN=dwJtpei?6YFs6eOwtX{>YQCAT^1 zl@*RPC=b6~3?UG<27$#C_W|KgWtejJyW>#&v(l?}U>1i$4wTKK*bQB7P5bqkm|Ytn z)aWouBtQ;?`}cmSCW})hGMEjC)2=nzSAMVb(N|bQMLJ;l+Z{P0Q+d#}yA%*MGP%)D zEIL>6G%SS+Vx%;vB|N0y2wDib-;bWx5}@j+jFPyF2y?ela`*CT&lM!JC2hg1!Uuk^ zP`{fyon)6Ujy%4ni}YrjXakAwwQP8l43v^myu&7XFNoC2riyEdrlDXuP>Bqnh2U>` zSmcWqZ>hxyzlTL^oiL_$jSB~Q{RJq2nvIr)9xIwfhg;f30w0)D`zbbdNy3-Y>pMSKPaE{}#Me;fTgKh9PbE(^V5O{3Qn_Tal&K&soj^xY3jQZ`fs!7CeS`~YZ z@<(5Bdj}6i!Hpi|d{+nN2--~Aji8UgBMU|pOxO~9Rz(_#Hi(!#O~eElgV`=Lp3$}}EDK}Fs^jt)K&7gN`d<@k=19xHeLVr3=Yh`cct_T% zpa_&ZKoqG9I1~yh;A|ekG+xF0}YDfJ@cDEQ;m~DjZV2I z2%s63*X}I&`}H9ECNFV#T3tf#fp#w@0(II6c~SKcT6}cwD>ig@DKfEz|7%aTs2m#- z`m0jVJjBb53hb}!0zm-oDLE>FA_!xqBBwDaI=GO`Cm!%Nqv?Tl#K@s;=K{S2rGP5|>MGB8ntoS)dYy@&j zjL4c;p&X8AC2vNd?tBk51q%HcQLn*NjWVUDo?xiuhRqjV%=|_70)7c&{tccSTQ#=v z%676;GVO@GevLyS&ksYGHpvl9B63i*)|dUUa8Hjfo*s?CvG%2TbrT`7-i3F@E3fN< z*Kv>^&JrLg?~ffEzoFo0vbhIFq(DC2lTkZDJDDwFA0*d<<}=He-+7mSM@QRGR9haS z&Y(_qQjrtPm&cYqr|OQvag>SfOeV#Z>5fc~n0+wk5_r$tnLomtg@qSyt*{CSb~ z633X8w-d4NGozEPo1fKVq9rGn#j_D>B-xyZiW^#h8k(hft&r^0D^it^QYHHo!}e6a zv8#Hwz03=zBsnPz`PR&^JN81Sv;K}ukh}XJlHk3tz8B@UVc{W*s$V)oG+eKZu|h=S zrG9lAv16KBg!buWg;L{woc%Si6Zi$6pTfWR#f(~p9)UtnZ`OonkhXK@s0=_9!AaV5 zfVog8hjvyz{+W)2D8TGX)5ncwA9JtF8yuSJC=Hov3T%r-O4FsjDxU@V(WuJwf91@(n0M%n2BBQ1a zQtekbtzI2K4=S~z(+qb^vgRU#-?}K8J5TK^e-#*WQLv&4d;Icz`F*uKMRNG~Lt`IL zFX{AgV);n8pg@3HwXsiclkc#^z0HdPcj2x=n;n|F*8GLeL6V?ax!?bltkGUJ<_a{k z#Uyy#?7aH7+gJcDsV@3SqCSRC++9(qHCvuuCT#qBRnpz-%<1Vk)cXmdDCX}l^G!ff zU7aTDt2ayp$G*xD7lrUR3tG?AaFF9&F4u#s07`_S<`zMZ1T;mX`=dIV9?lbCEN30s zAU0-j1gp;K?t}&!c#|PA=bO6ByMZZ}C8p%8_lk z#GX|iWEZqejcaX2ywJugw6#jauf;8U4e72(rZMH&A>i+Z<3;P4heLXET8S1!wQXjIXBmxn~wIgYbX9W-OpZ8mpT9jd80J_w+M1xWs_0vhcV&nKYEL>!q^cT z2T0pA5sz#Y00bC9;~iO>IAcf>tsNu)dF4XSoHt|X=r>#gLi(}#^)JEAnCP*nQEoV+f#J_2S(8Xn3{>XFUjJAtbokFQO-1yD(oXeE z6q#!8^Ia-lK18($P06UC=d77qUuG8kQAuCvM2dk~^&9X0L4<0k&Iba;j>f*n?})8z z)XauS|Y zEs#ciXfW~?ZoBTDU=Xjf&JZ=cHN8G|;#}@o-sWh_rjmKyC+f1#ra=jiVS}NtN>7*K zEV=i78FxiVS&^rj?|XN1c4FoiV{HNh!4?6oFm#DB^o&2Ga{wSUzvPA;;AC9pi%Xbo z_}hEBiEtBbaQ}vs4uo4oaZF*k({PL`CumS&K|x`IVPS-Enij+B;N58lv2nhQ<8Sa^ z_fkIqzG4@`&T{VU)n4ZwJd3}{ZRuzNXL0?oKP&^J1>JBvx~d2Jt{z!7)6NXb;4)Zj zkbjma$}V2GCek{}1%N31x~G;3CAQcl8?*c-qHy@TJ5>h#BpM;l=EnKWKHDhgSF=W# zhUTfmiR;dfZ^x3@1IJb1C#E-pd~d)yiJX?PP?csJYVXg@5;A`&=;33OPbx@40zw2@!Z9u4xn9g4Ho%ovma5NZ}6`)YAWNAoUDE}5l6Z9&LQngrVw zjKorO^M;x){S@@zBMcLW@$kTJkIsJu5%OgMjX`szRO+vDkd`{2W~MysH2F|zR*6+n z=8^_%8P5+9XKH6rm%XcQkNU$l`n^*K=Cy@8hVzbWZ*pqzqv|A_(y^d8?r{9cqBoT4piJ05>dwcOHXTRSuN5NZU*nCY`vI9Mk>{| zV-u~Xw$bJQmMo>Sk@l8TwH#&R08F6cQWf2Hx;C`^1WU}A1`JmxhgPpn_MJO}hJ%z> zb+0@HAhqZ#K`x~hk1*K>5LP}uliy4s{(}9&(ekSc1a#~M&>@UCw?SaHH?wkXvew1p z3%*f)k>f4Mc8apmza#uyGWyNwk<)dXPCk4@Z6v`TzW6{kcH&$8$8VPGqQ7BaTzeo@ys&N&!Jc5ke;k@8{a=+-e z{rKe^+;6qyL-=N1Lxo-LAT1JqLq0%EBeaR_Tt3r*t53*_u@C_U>snl5i8_yt$=r>i zBNtH}<#Qw+8BeWiS$+Lc$p4rm7zy$ST-fQ>=)4zR{W%Y#qRwhIr5&Y1C%UvqlrUS6 zO9Ha}23~4DPGzK?5m||B1c!55`)|yRZLK6^Cc9js>r>ZnVlPkDJRn#s{k56z#*m*o zOGywqIZqtUfBQN(M%s?UdwyHh?KN=PLLSEA-Dsysc9S$8Iy0Z%&l0?&J?qGa#)Y1@ ztqf@5dfkZCn%2*@Qs|1zAdsWLE`Am89YN{ROvO8^XrcNSXXGkERv$p8#mQ0Los%07+L4>oTgFe||e^4<^To3S*hVVZQ<=C}O@HwVVee z&JPy!1VFIjB)E||I8Ku6Y|Q^#_j`yTbhCn3I06d;Z+hm12(y4?`-)FAFf+bS*sqb# z_*z_{5>yD)V|sNzlzk8F7LK{zTtAnvb&{+Id}V8U{0_a4hW+b1K3tApGoJn;(db`eOcNyD8w*dL04#!=6OSyu~2^V`;1=hDRiTi?kzj5?T(9)}cVf)B;nKpin=+{lHV?G)KSv*eWFRp(4n>bK9)myU^=* z0NCW-{OGn@ON&U9ft%7NWEM!oIcu=YzmE6I_0sdPvqUdoZI(P2!GKPWUgmdXT1nij zKe=+3XQx)WHj3fm)q~p;sI!-2a%ZhbP56GDVH9u{#?h+wduQ3{oMbsnjgoMfXFiG#pb?>L8CyL_!Vp@lhvCCLRHam zgLQzo5QSxLB)UR~k_qRSlZVt;8^oKlAW>iT%Yue;IeTM%jE(|6J!)4}U=pBMun+#@ z7n*bQ=PWUdoG+>;>5h>gU6Q3F2BE=m_x^b$#5>nrwsf2n_=W7vTA~DDc*34uSFQN1 zy(sti5gij7-jJcZ^%ubfQ4UkMJw)^?l-Tpfx{UmQd_QRWDZlh+4t=_uXzs7c9}(3H zqKkI3B1Xg-XVI*wk+iZE05>RUvJtjaB&W};9pAh>R}XehBw*rEs#G$Up;WygN5qOf z)Y%cvL7h7U>Vujs&z?eo6Q<@p>cgih_J5Nf;iZ3jkcx~T)3A4}i`d-34gOIM1ZOOF zb?^W2KL+G`$Etk03~0VzF)}g!`ehUUx}#r@{EFQ}L!AQF`uMnRly+aGgbZ5;@+CZg zOf66D9OYof1yZ(sW*tziBdQ`c&K35aB`dO&#J8KlRhaPgJItBC8`y<=k~?&Br=9z? zpFO#++`Sm^t(<>4oC2y`?R24K_zGIwihnS ztSwB8^|IbGvZyk(oWm|z@ zProFse0LnXJJOxWT;s3hT+-OiXF$|fnzitB@X1w^st_uy#CAhl$89)p&Nu`4~lcAe?|40sCS-S(0(5xk5iUFF!_peC++FK#!i}D7<>J)^G;Sd_!2=4 z-tFG|oAgwj+rrIor0TN!HInWOu7bhZ4L3acG3n<+m`G9&jP9^gXCj*Y^2}NJ9{E4? z@hap0*?V%_mBSD{m$EU~0ZtM$IPT^0&(V`PW@&P*{64EhG8I|vz8Sht9u?&$Ll_S@ zy(!Tnh_w%vAkVRAgWm1(L)4(r7jEmm|Hjvbf+Qzt7&A^D$s33@dG{=@0_h;*Y3FH|@A{x&#i7RNv!#HMVCbx_oMqyu|ahTAHE=Lsil$&d~B>1IWwxa$zht5RVlnN!!8KquZ;SuAi=}mm`I5F;3XEEk#kM z7H{|N=r{<`25#QqPC$q@QKIX`p z2O}UeaV?M^*uSy7NWddgVN_?oXf-5UAA>Uf5D~s1M%E?#uoT=Q3;~5g)U`MxKJczj zpU%8~rPS+1A4~t%OLM?Ut%3wRx3%Yq@aPT@E9)!sbdS?_leD4XSu-!*D4gA zV4v{6KYYl6YvaQ4ZZBv2cq_YI$hV)`cFxY-xqFH1pMoe+_`7)2cj#=!OOxX{>mgJL zFxc+O<$t6&vIe$+JZ*>+5Nc@r`x_>V_i)^-)X6f!LF79U*$wKFAnHkRewg!G->AjE zMe6{8>JueV(5srb`22tTe;=cbS;LhG)LLc?P0Meiy%>FamBoZi!dAdAL;|&N0~;e5 zW%jeJO{8YdGO`+boTz8diwU^g{CGQ?B4=*?E1P^}Mm=&vdk9772 znU($IN9~4sA8467c?6TFrspe>gQTa#(#@er(E+vBK zW%NAFj6Z_om)|+fYM{yBj%$Jd$BuDwVYDHDV<(eZEQ3BKT0*}Zy%7z3gs`2dP!I^O zi}BXN*WqB%+bWOKphg)Snk^t~WIi*wVO8?x#uPg~(hAkORUoLsrI9Hc{p%d`yr5 zs}&hQsQ6T;9*OeYPZ(wiv8~bEuOlpF`c-US92Ak)6Bu#8dFf7L;zj5~d`x;=L)nqJ z3S^!jG-O&c*7OG-MhzBsX??7)7b-m1FNRW!7@!RjjBo%wV^F*^1hmiN7Gy=QB(H8> zasfL?4M+wBSNuIcm3$?Q>0VI{5ngLu*t9Zg7@Tqpk9h3|C0J!N?^kM9&A6|s7*6>Z zE;rmmrcW>)HreuFrKY5E)cbh#eXadAy;ltQD4o&7!4oCTc`>4sR<(_2EQ;zKpe;9` z_9@>SPbIuAa6T)9IxbTDg?>G2m=)KyZ)ndNd6IY+yKZ=1h1IJgdWrlW@%AdCZO%yV zkIGGK7B>K143}^s+ZEmJXC#fXV5bCr(r7lsQ9;)k+pFEV$WM$rV-U;{IZvY$ZoJ@_ zuAROmj36-;(<8Z7%KU}*k~{EV!|a1BO(B?b7tC1@43Qfz2wU(5!u#L%;4B*}v)Dj1MQ8vpC79(!ugWxRYl-j~mqWG|OdQ zSa#9+WM1e(T%8U4O-e5DP$Nr-Mm8e7h!-j2S|0=S0L*P9fNZ+!`!+gP*c!;=L~uy| zVXuP7$QtcOT*VGFkh2kw)_Azn@2jdQUa6@Scj#xXSu{WAk?$wEX>#ZxkCWp=Y;0Q& z$K}%_JPD(yQ-WHA z6&LyS8`)U8f$Pt=-H=Nr+JnfW2GLpqfcYW=vm8cxy;lZ$s2jaLzE6saz}mdCU-t9q z4fivZ3GRsOOPuXCTX%g%?ABsMQYQ^@jg zHjo}!m$Noc^#1Q5P6mfpINpld_4Gv$m8Mt>Wn8Xc4 zJTkq`%~v0*&tuLz7s{?95}oEPIltT*oWO$R zJ2ixd_lSEJW}OLySD&{8YQ|M@Zd>$(i1I8tUpkX_U)_(*2b#bX7_zVVH7$GPSsw?S zi6wl?Q{yOK{eu*x3PXjHy_F|qsBT{hQt&Kw_!HhUhK#YQ7gIl9;1Hu z)z|+a^XAitdINPMVYTu0os0f{0B#8kut)h&;S_HbJ|S^Gsp(^&$a+xp&VebNL@Q(U7(GRQ}_B<8vfOvsg11UrM>sFh#X&+p}70zbg}>OQo11C{FH)hrwGo}pZ0s2y!A3EVt| zB)xF+e1@h<7Elg*?c$L7#E+y^w^43vYLUjNcsN%G6G)APu|R!&JlC&Qk9A??4H>ug zot{k4E0AxTvRmySKs{?wfe5BhzEDPsN1WJE937fXT)>R(&YW_wY#%O<3}%aOP)cCe zF8(xR)G?4EJ#dBw3WrO(>_EtB^VpHio;^il7Z=M?%z+aDdRJIo{10B-!|v+dp6TAZ z_O()RrAd2>&|Iq~c_lx;l+b66U1Blt2Ys&)oyjfhBJn(7f3$6tSwG+>mcSk84J{# zY)gG42+j8Hw0&oaCzG={BTAl^Uu2r{Le%grsQ2A#LB^soPUW0Y?C`6H>_D{S9_gM! z-A#}z-FwNat0XOjc3La->kX`1Yz~bs3!Viz6>Sv{Py(k389CDV`%n+g%IHcxiGzr9 zAoU|F+16(f?RcaMpIv|r26gvcjOAnngD0Z8eRq!$cDs$CZAQs*$E`?G7Il3|Qv8Ud z4IfW%1mrK^*$kn_jOF@ws?^xGaik~tzCeoWuSB^M2I0Mk*8I!f* z|0xEBT+K1RwL&{;pAV+d3WbEgMQpr0wv`2+4pkv?rO5K=i_i4ErymS_zZ0L`hW#Y6_<1d;3CW zSogU)Fx0%-9rHc)RlXO~DDry)pnLpmFbUr;!G}ZUmRw{hi4u9^Esg|fdtokSp_>BL zT^EPpqzL3S#JcwTfxLc^c=Nojq+)`3)gYW5Id4zdBkBR5S4t6UFIBbpn5bEftJDNd z$0oHj4zq2ID}vyh@nLflcoVI^3Ae<2Y~(T5uxPPfVY}0!4E~>aFs?yRS(k5B|D4lo z6oc1+(3z`S?_?r=q&|T$Y!ZgPen*-oVMC7Li(oY)=cPWQM#djT;EQCx2oDZ{;QHq~ z85}o}G^=JY+80A{op-FzH9R#z&uY74g=C-NP#o_M+1hyFMa3!g^I-+I4s_3)4-die zdctMm`rBSppTTA~Vo<1)el`lHRYaomyAZ0cpxLj@jm1Y0x9cF_SjJ3OoOWjx*=*ll z?E;-myMS?A4J-nriw?-|(OpGfTC%U1BPAyXb{Pv+sG(RKIuRp;LKiW|oaLL~L}Rqa z_<=}{_AOnC$Q54$AJrLc?9+=uDZcI}L7FDGNX-gVG2tk+2ZK)qji3kU9^yVGNqY~j z3RLx`gx-~bl565}H;io+4#C66%WWaeak}7l(6FG z_3fym_U&cb%Ej3+}46GOrXkcANZ7lp{AhUGK$9FEvgqHSGqO05nY zz)Ug(eLqyQYOxPf1FT`|^$Y#d1N&XR2G&b#Jhl2h9Dp@tP9W)vs^5-9bSyHi05uB6 zKEC#o|L>xOT(En}7mEP9(i|$$@e}po?Wv?$x`i9DT6Rc3KtoDgIRI8fW`rv=&r^g8 z7eV}=KlUTzY3hO(75NI2ISLpH_FGSPQZ0zeviE;LiUpcWz-T7{qmYI5<@%8lfgWvE z3SMMDtV}@!z&DQM8wdtkH1z#`fC<#$Rv**}LF6Y6M)66Ip4kdS!#O131EMlhCeUKx z;!h=y^dX2@pd-x2;QOJ)WhG_D(D}(Noug;=BeCZ96TF!UL1BEff()vUW8ucg#HpNhV~RiUc-7x zYuq(1jP#k;`l?I3)y?40Lq?1tH*7b$J|sc~e*kNG!}ngBdlu7y&TIjCc@&B46q3nH zmn{cr)S;+48C{Y3D?$=`AKd_z#BE;S64HUyhyLrv}o6#1{d{&}6qiEwLT z3&ZSfU^(+6t^F?QvgNc7b*BU&AVq7l;iqZ}QmA_C?Dj>j?qFd44K$MO3?m=kKJq8p zx=H6)Hr+Il(W7s_!mNl6n;NYf>T_30N}*#MunP5VTieR)1ucM{1}S(DLvCS;?$2&=@@^w`gXiDOZOo{+ zq{*>uRE5;A^=1Qb0Kqow5TuVUHysdb^(s=7_s50AOJ0#Ng|gQbKF7B}ubvKc7hqf9 zl^q~!R<{a0#26TCxF|RJ@9kqUO&6L^!BRy5>w%lKfFTqNquUd4-;|E`ACl?4T+h9? z5u+wP(;tk-OCuYK->pSfw}@YSx3u?J=Ib1vkb^tG9AL#2hfVD!ViCLbRQ2|fcY8)) zetNn-_E5JH57xxuDXH|jGRnXaz+V9NeQl8EKt6@%<^xP{gZdA1m!*ysv38v5nu2>EvKpw^m*n3Ke9K>_$*S={w4Zu>huK7u zl}oZUPreo<0(&6^ZQ*x@{PfxBJqVHfCT_WW3W#jSwIAVGg4jd3OkLR`b0mdi0$ zVOIF9tqyLKAsXFD6T^37XKUrtDZ)ILsD9x3G4ylZAOiIRi_86HogY`}awHe^M$arP zp`o?9DO9tVHh5EdB@ogm>5CV5!7$^R#GUJF!q4WTy9&;59?_{UTr&I@w5ToHBKo@l zL|zu&x2hJf(Dh=9ELGBCTyKVoBLge`kSfe!UP?j#j$#O?mT5Clbc%fSg?0XD^5!Z> zNU;pT5Af#+T#&pSt=eBYU$xTLaxNOx*CD!T8h>-tIn;Pa#pb5l2;OT{Gxxzb@ao!7A^X3bDhE zYbIjoyzyg1qYTnGB%CJX0H0@2h89@x1EG0j3X~fD?#1 zBFxb5S{0ief+hwA1JN)M9XE2imujQrgTjb0P>yGgW?pEzcc@XxQ#Von?4M?ahuH`h8BzLHddW}eoj5nYMn?}XsG)5 zHSHP?ySMN$4S8{HZH@~sp|691E8I7|+I*Fy6m@5Hbk8DifKe`e^&zp3)>?YrU9Xu4dZ;A~e#W-l;;Yy2J@0{zvyqhlFiQ3R~a-2*q3WNW;g;*IZL zaKwU$gJg4g^a{hcma|^y<(~I6ao!bAC@yf*gqCA~hxsI0fDdgF$hB@&j^41S*09-T zTyttz6%qk9QYsx`GdEGO=+T>mi2`>$9f`!TO_{Mqkp(&Z2bFh#3 zh3IgoZ&B32R%+q6QNbGC5*a#%NW%vV$Wf=JJ^K2c1em=*XW)|~O7v%$A!kuyb84;M zUiZun-LN8;PG`=hI9;-;gw`;>pe0_0+{F9BcEtK4HQyqqx z>)t~czgd<04U46<*I!-=fD?itTMt@ftUBsWE>ctMDC2TXv&aYHHNdm(C?CENamMHo zH~Tzuk6@x1R!Q9z!Ceea=}?6#IX_5(`_C^&a|OBWtPAY=_g75!i?0jlIK_=IpF;i# zt}~JTQ(iY<7%#eAE%LxU1uJd)-A8}r&m`d}z#-l@z7rml`b+BG8m+#Oi2_+zg|9D= zCPL*7{}O^5KgZFiNLqHBn4ZcIGkKVajmk=shb}P{2NP8E)6!13?CKA8! zgx#kQJoKk(4`aKeHQc)@381n+{sC4;;`vK9Vt0M$f2U2o1De1$q>@xoy$)mB8a2RuIwBLiL;8zoCV=wYY!q7?HyE z+y6vZE4(Z&#MxV^LxVn2#rdfFE*EOVk01$95GA_M#K@5o5|^b|xT*6pW}fgB0) zQ}yEE)+Q(7=Dc0lCGcZL^m)e2MW5&p{3|cz8oxT`C$wl(3zSFNq@{6%kQNVtd$qZC zK)rGHqd$~u=45oM!8AwcRHPu3018VbWQ_LCMzAggNE_kIiZ)`H#t!9at{~i5U;y_k|_wH>YOTbdu9u!~sOa5=Jm6LD&GKKz18BDQS(GY$O6+`b1 zo9ocVk@~TZA;z4vfi421dtbfFY4SBPi?C|y=m5o!N$oN}(T5m_|H0L=@Q8F@cF9?y zE_;15-w>iq5g34H>Omvg=7;20`#O2-_=rdW_ZWhdaoc+RG(DkuMHzI&4p|oMT)-&y zB;i^t`N^GFoR5#3`2-`}C*Z)+tf<$|T~=b?tc=tFnjxh9V(^hKuV!h%lh8pb6-l`P z24o)W?vC0I8XmWcKlQ8AZX{-n|Qri2wOD7Hm=I z3lAE_sbJ;kLcL38(bye-JWv_pPA&0pK#akjAwPN7xAP1F&?u zkEZgh1SGB@gV7*u@+}^;?8efO;Ex;;>AN1_ey47p>}Bfz;><=QP6J`(i!+7vewm41 z(tX2uI_}El{-Ar?^Zz_@r~{HbHQZkL;_G&y+{f9c@H@0tn!04bwmjdYRk_`mr#wxZ zq-`RqBXw|(VNqxXOqUF|5!^izSMg7Co2(x^+na^Q$HyV%)MVv$Z*cLbDtB8vVg&m# zmcMFn{P>hA{S=U>z7?VH2})szn%2IpLGSj|7-CU8Zio6CSy! zx*Q;dzyVl^oA6HLy3i2wWxqM4$>n4xk)px0j&k|!DyIcL!XuCA+>(C*v;;b9uc_6T z9YI`1Q;v_8BcA8gWB|{3%D`wDNRwqCSe1Lqi|$!}uCR$8Sm7lI@ZH>ecW!QsVP(xr z*mi3g1PNg4wpGjf!@FHTc*Hv;4=VP9k^pW)-Y*oxTA0Jx(A{IcSzRursnM8uQF-fO zC@qg$^vaPm6cwBf_re3frpZ9;nId_ZSE|@vwpK-dsAH)0OpKe%af{ zG=#KCiYLv*QwA-f|9ULoWBoFP^l?77S;_c-z8&h!x@3)4_{_*kq}^XrhP|zwtnKelCv=v{tha&3Pc;z08x?fIrCV%zy*y+};i>0B>gG(C~3Fz&`W`MH0%$fC=az z{JdY$2Db)uBcEc6LEc<7gRU4}KT@?<+tcs_M6!XwwZJi5^ii0g8AsXDk`)m%l=EAI z@{ZnTHYXx&yqx$t`;Q5;LP zYfUbE)zchqsU6Z3P)%(7f;6B3$JNe#`cfv&FAIkhdG+;J1ckF3!(p&~ePbzxvvAGR z7NTG*l=5KXE2^DTXO}G(X@)Bu-a2ELtg?a}V%d7+Eq(^n`vpM)(E4Be9S;P<-GZpb zs24N8yV@09uohB?++^3}@{Mn43uC%^bD0?+mdZTzzem0g=4^j}3x4~~(=>;1shxyI zA7k+sb5^Jy5MIgA@;m%9g}=wsV1Ph(rD8g#XJJ^9qWcAZ8k6Ceq(tQCp?RJcZ9zQ* zX7912@vVw{Li_DODO$+9)-x<}4xSAn7-+>CT##W}D#sqIAC0zhAwX*oS#aCyJ6^wF z$G2+hb4;il6i9jsw-U4hvs{~I6QsNI#@Is+A3MUZ+(R=R`_Bv5Q?6TZ7)%(Gk%YUr36sHk*Lv%bNqR=6x z`PX-rdn*uq#_V#!iv$cY>o>6YQ%BXTxc?#HuCtk0AjN(BNR6#9us)|n7t~27!7RDS zLOhNHY>M42Xwu;zO{~Ge>>W?BR?jJ@%!n7UH}XAe`fViq1T1fDB822=EQ)XM5gl~< zznvMu?(Ppy;OTF@kWm*s+sddcV>P){FQGW|fJ>`><{i;}=CEc|4#X27aJhA{c5Kqnf_58Pg+~H%b{1Lo| z2BCm;ck%jpHO*(icI>dfAHm`68*N)ZS9=zHS^M@XP%TgsgDrwQw5r)CF+v*$ZtBnP zo&Ptew6k=Rs|faVOYh{p*y1QO?G0(9l@)-ae6~@LctU})43h*;idnq{j6hp)_wow(dbjl({Kjv%Nk)ilygrj+T0r>;cye|IoBhLz4Bn{_OYml+;RI#Iw>~`?- zDpG(2cB$0g6m3Qn*#yRkzquOhJDO{KKc=--m_RQ+J?8rDSL%3ermx)ODv=nFP@LXw z)XaPn6s76N_X%%KT>WNliv{VyxKkcUwJ2j%rPcRS-@Lr#=fA&B>?-W5v4vx{xhcnL z846UUF?F2Ww?TnD@y$m7tIE5!-&dXvSS+Q#d*y1pzc|Ho68Qj947gg^uXi)gCBzls zR~RD>CW4lGi0O2jD>+1T_Gx1M8R>tRL)CNtyz3tOgdor&k%&E!vjYbrtoU;Ixhv%4 zAROhfw^*YJN#tKe=r-Iivu3cvuW{|^#0&2n0petLCA9prR6FXBRIg8M+l?Tx!y0*4 zSHICHXCq}6H+V8gl2H&8LLsOJY2VRQ=BLrtC16`Si&p>9Uj^z2E9lfc&+DbneEyt) z9WJ_h9wA*9W5x=B)X40|;yrybFMXF(JV#<*@JN_E2dIwA!jSZiiEM4S(cfD}!(Uwd zAzV~KxbCNU%D7?y&+*3C4^mbO|6fIEETzT%@z>w=9fMQE1Z6N4^N=*sVK8f}C!2(QGb`g&Mhq-iNy}oqs-+z>I znSD=`VfT7e|494bm9rqpv0=hOy(h}7S?nGeCqI`v+q-&@ereh9t_?zoO+Fh>$2MN)+-+6gIt4v$=$#ze_7D8=QU}nDD;2|Udh^& z)Ppz^yx)lV(`UXN)lg6Bh>TQxa=k^{K7BIL9G%RC>PuR!p5KeDGt^x_V(Rj(u17rl zq0iH7V~d8_%syMFqq+0n0)&({5y+f8s|yKu zjp#(}F0<71C-5W>F_LWR4(3JXkBTMa?S_JhT)&h|XlTn#ChoKgMy+d*- z$;@utN)V9r|C98-v2EOGo@Z65#I2&GOp&4uD(dW2ktKzSrGS!sTqkZ|s1l_VEk!FU zy%{CS;>d`0P6uk?P6tL04j2@zVk{|CP+~Mnw6S|EM~=G}lL4*v66xI+OY<^KRFcHoqn7+XlT>O?aZ~_YpkKwA9Vq@?Qum$7 z1V>?j^MfhS2Kh13IN>QiwRLE>G~pan)!>Wj@;BS4ic;e2c}FaTtf)-v4uZ30)M~!$ zcazNi+5i6Ed$J;`X*6b0GUy1OOTrBgy0zm4iN^;S+2t#k0Vp+K=h)wgZ1tB5Jxg** z@Y$?1d+{O@z<%mazy1UVhCJ?v;qR_XUtUOs!&?F$`dvlU*A`X!XH%%00aPGGxT_W^ z2ON*S;|Xs(?DMV3u)|#j83qFd--d3(e;><2k)hZn`y@@sFP@ZUD&;`_Z#Vp(@|UTJ z(hyD#y;SZ(kno^iB}sw$`FZv1$c$1vxiNS=JOxZfs&`PO+1woNoYC#Bpsg=vqm8Q2 zbC`Pe)-Nw~l^QQ6y1-%@eZB>vmD-FYE|0>^t-N)`66;;8D*xwj*`yy16W#vhkFf)P zhy!MXFJree_{KA}Ay*muV#CiwF8%hOD2tD=5oYr}q#l#EIMBa{mb0V!Upj6~r_U9x zxND87)S-rl13l&76twfI^zTpeJCks{r)>*MBU|qZ>ubxxF zT|Z80?+!9t3NI-Z`oz;0fgCCIZpYor3t`}3PY)&d=RdTu7kauv+=7*IrT43u@8z1-~628?Bv}Q&AQ63w-w=7dNhLx?Ywd>HPd$EaJP3 z#-%qtHm4Jp!f(E6RPJ=zF|M(MMdwWKt$W1u0I}f_TO-7KcjwEE{kxVfPy*mJrY5Z1 z(^U;3k`OOT6jJ;6cXqy%(=(6c_@Sb4Pa5-tMp8IJaedW}oSUEfoE-VG+xfOO>!s}3 z5QP7D>kq?6)eNEWQ2d29y^SHEG>A$!Q0o;_4sy~q7VT_|W1&W()oq%`IFAI%o-PR`PW%g#OXIS% zdg=Mq-EQ@^H{ypE;o2sBJ2!`lldK86d9}=wleR*)>7tMwA9*t5(faWN&g68aLK3l5 z<5Nq=#nzsH+0$LaPtw{M3P1>K@9VUFAsrZf z*z_ZqySFDhq?Nnz=7QRm$*r6w@t>3+WF#dd8XYM@J_34h6vQo;zjHn4p4y zQ?Ba*5dW+^GK(0Vbx%C8(;42}psVEOt#YhT6Ja8cOv1kof>98Ojk>0EH zh|z=W^Sx|Y_1}D{H3j;S&YZVV@=(#b?kwnf9}7*{E+0yo_}p(*?tB}u;vH!2 zMU%I>+i+a**r8&Abpa2qOrQD9-w>?X#ukeA5eOj`tS^qCPuLyk==~oGRX^rvF8pVO zEVM`tl+`|SN0|6#mndGbtGS>F9Hjq{_HC=a#`-S+L5-!MGiXMz8w1jixb3YK)PV`7 zAq3tzX>x=$Q-5JM_n_RzqQ$GYrRI-oF-a1Vb<0cKRZ4w9XovOV~_j4x8sb9)Zu8mb|GHAp8h4% z__;aj40%d9LA`YGmph$GF(SfdKxH1-RrF_8cswS?=c=LU2$rJ~p@r@UwJP%fhC%`u zl-KnUm#Q*k+$T9GkTn3K;|8G6d`0sm@p>lJ(M*8k=n>ii9YE|OZ!6*gs(!KmamPU_5o>(6;U}gLGGV|8ycEO@g)W2NgcbqM zeGslD1x0&wHxm5Ci|F`?9*mbtz?&*6ZiLJQZ25IyLr>;iY(e7n%o}JYQsG^pO-C!3 zuasGR_Wci@%52 zEp)Up`&$Zp(a`3%cg>!q#-4K4+8VEV*|RZi=XmMcNj8>#S{e*K@CezmTA+B6WzP{1 zy?G79vwHujkz6qyOxDdVHcJdlJ;#g&A_+qE4c_qP({P51{hq)mwk;gGQU{@FDMVIg zH_ua4^-c{E8IlTS)b4p$kGN{6W_x|eLIJ!hTATvTVh?a?RGn{|**WEJg=i9z)k^W| zw=y=l50`~TN*Q%XOyu9KsRuk8Nnwmf@CQ6;I$L0Z(TtY zp7MPTv;cJRuB-+hoi-{FX=xAi4uEsvq6$ySr~yeL2zZ~393Slag+iE zz%ZZMbQ@81K>gcg4U_WHQz&L6svOAjZrYZ@S3JBX?|!1~rDks^_l@p()IC&cc#%5U zv^{wtt{f~N@|t}nTJ#nP;sQlNI~mWzOClR10_p8#?HiQA8w=$MQh`KsORwpK6U-5& zSbDH&>2^hS9-NRGI+CiPP3euBLM0Ar!jjeDH1vNC5NY?6&D*0E>9!+bPW*5%@86y* zDRq!VbRQhsOP%`R3C5HVfk{kn%ieWg(mk^rq}IxD=?pB z=z@ma_g?~KG?%Hsm-cA>JV$g5G@k!a@WaGzuc{?1foU=56&oSq zjgb4Q?jj}&UsdI!rVdm&RHPw0omV`RAp4NussV#x0#nDZJv)4SPx35FV&{-h%@n#2 zw~ArED>yH_K)xul`f?E}p96!?wh5^u08d7w7ra!$#oRo-uf`-HD{FY*tLd40TGI;i zjJalEI&*2uC6rjtTBR2gWYY1b-^7$E3S znB)UNCln$rw87>!DndnfLnMdw{e;y>aT^N_c52Om#>@uO`pt|`ZQwR0ao<<|J40uf z@FOjF3PRQWLKE5X0|&D-txt#!uzP=j{EsT++xC~I;q=G`&&a~d`}Fcz0uEM*?`1Q& zzjtFgcM=12#OUF;7O7@kiiDdf>LL$j^%6Rzd&hl+ygjquNBARp6F+nJ+qqEkKUVojV89xX!8%#+^}sQu37! zri2j+H)#ORtxUr^`W6fvWWc^JCNNC^n)>&o=)=`UQj&3Fm?iioFD*65)bpLT@L}gmNE~wx{1H>cWvW{k{zL9;wyl4tBg@DE0I#UaFipjP_&!M*!p|R z;JIlDtF28~LU`31gl{C@P(dcgFqyrf8MHQ4YbL1-=C+TD@ZV!!^9{d5n&C`AUw~S| zY@~MRKz8FzJQ*+~B5cBpZ%`nsfV3yCkg+nnf&DuHqeU{jjmy4Tpl^Y9u>{bjVZJI0 z{EQ?ja+7W0U}|Y3X0{D$WA)K?gsoKp94fu%`w0@UB=kfZAO*j5U8Xzy`{md`iC;u> zoQC#HuAv2yh+kP20H@(C3TFwu&hq4QHE9-z>n{6K2MpGUSzX8VUh2if8XSJ=nQBc< zTYV2mpipsekYOfOoJ5Hig_CFr$nyDQC4W>Huio)1vkow%9v8y|4`D7A#+>7&TZz{B z0$jHh1QF+$NZQ5{hXo*2kBZ{QxIhSm$g>-MAAb|f2(Vl2#YAIY2{}^FWCC=4_ra`D zLlu?gNI=;Ipv7Y=b12Z-VR~uMCr22`I38MLD~x2(k_H@~l{Dhu>Dp|lB#Oiy*LKn_ zpF=m(uDP^+6Y1lQQ0pxisv#IgBv{J&4b!^1d~2!@-RS()ry!e*9dv?iV%3~R`UcTmomNoZy=*YzUngh zOX1;A9u+4~5zhzQ$lbU+?o&ePW#<2?w7h&83NgufR-_C*$R8{hU75T#ZogzzK$OK1 zmu>2PYqtm8z}2r>^>`$dGAN+Rg8O(Op=xSSlP0Lj-%+oKY2hFF=6V`cRL;3nDxwWj}OB@EgFE66kL?Lgi>!( z=gjzTPp5@aG8O*%;<5VynRGoVoqOzoL`X*oDNE95{2-vl)%3mNdn`wM>otBgmYQy} zZM?MDwas{xl1iNtB?df@>p1P-eBGo0t(P?LQadUcqs_L27P55YnY#}JP*19w%lGR3 zivjEM3_&|$y&(bBJHkM_((~L}EKQ6_O57u0m{h^Kg)I3#b3Z+_MPvT)bTpplE1qf9 z*CpyEN!^SWr8XUJsKnf0ho_DiX+C?y$|)Q`sxTiS8B}IcyX@<3fF0J{>{00NX^q7c zLi&uR43x4cR>+8Y(GCEnnO5ORSs}z6(Ji$AVN4psN@-0}|9#Q-rOn4nU8q5h;d_r_ zZOMUUbkJm78S+zgay@G8l)KpAXQ_V9d49gjyqT& z5_||;W2h>mA?mPG#bd9~1H|OcK=!m%wd03EOZTngenr7p zu3_yFv>RvPDgHD1cJpmi1@ZZ>7GRv)_}+-WPU7LF2F`8ZJQzI4!c-HYs3e8x5@VIr zR=rOFYADB4HF(;NVW=^4sM8BQ1|0 z?n157jayqx=LC4PiDCTr<}b!tGr5XP)W|YzoF2irksp7^ZcKj`lV$r4#jK#jzZk=C zQ)BAWxG!^UIz=zz+($=z_kPNdiEDL<5&|%pwx(a;Q8PRCr|ep!wTI{kN~KEBP@Eep zA3i1x)E31j3VgrCHbD|xj4FNw^!yw9^;^Cch%@>6%YI?0FENwDxpYp<;l9vNj~u7R zvk=$5%J_|R=oCjJIgmy>F7G+Y{K4$P)s3kV))=PT>Y@yAQ+(g+qR5hQHFLhdjMd*#OLxk z1VPZ8tP>c=eGQ*S6~t0{*a@9+JDJOYp#y-G70`l{dZjVT0 zFg9m@OpHgdo8K1tCfj7ME%4-unp5emiRu<^al+@HIKa4?pGR=mstTkzE@}hOKOpaavqWoynG~NI8-}oG*A+TC5QG^LX z$#m^|{#?f5LY!9+LIGAYbTq37vhmNNA&*E|+Mo~#1V}UqQdTZ2WeHoL<|^qoe|E0q z>V9@kSfNQTqaXtCMfzG3KV^x3U(miDLsV0}FcFio%nI7+r`b3qP3rE*F~Z%rROOpl zIT>lG34g*Z)r6SK$3u6ZyqaPjv3S4kD9^rhX)DIAWzV+s`!8Byty(zNQ`VFvH==J- zD>7}5=ZbBKBw2q%-zzf19uSniq~-8SsT<#&PDsk^Wf7K_u1aU19q(e)i}6cNjIJf6GQOgV@ZM z5LA(IgXS7#%UM>$J_--|VlYa@az~(Cx#g>2+_KNjj3xM02*N>0rizbD_021>LS_BaNf5xaB*@Yn3%i;x&cU9%*2l`; z$i`HGm4z3FA%}58kl(a2OvxULZ( zRoR|Y#tn1KslmYXny*Yf4XZ9vT4i_{Ul23oAcx0NuxR39k`pyCVg(po{beWcd!?VZ zNe6;V@SxEMd^}A%^;3_A2p8g|fgtEXU%IG8DohDxs861D5Y$wvJ zq_-EBkrzA4aM!ZXp*Q;Y;HV)O(zyKldUv;9>Q1r6%ft{|q0qe@TLBGZPhsNtCOD>y zA)>MV?|+F{hRszdp>)AIlA^xL)9Px(*NBO%()=;lL3y_ID@`KKNf-BiJn`u6b#Pm4 zVTm-*m{sD1`!%~KE|7!0bjD>6PdkzCD$pBY*4iqd{Wn1nzyUE~AAOu*@zS+D)IieJ zm|2*|wlB}lxWYicytl2iBS+Luyx*O+1?Ebwnt`Y}A-|k?9$N)x6n|e+KupMZ)nQqd zA{6iMn&PmejN#f4Y$22Ix{#+ldy4HnfhBxrIjMJ89DUb)A&kdX(6Ri*-)cFEUWqh^ z?X1L(=s>JuuXxSypwJSPdn{$V2K;Q;Zu7pH5-j27bD{l!CzNXI$#HyPXuVB-spT&Q zKFpAxfNuYNbu{C$ZA$Wtt09o8k8U@9oK_!guTZYK#Ogf z+4M%z;dwtW9beG`Aru;W?F75sQ^c@mw>l4X^T5JQpqaeEJF)#QvNFoK_x6HWTi6RL z{b{4WwswAB2!EaBu7b4EHBFI#Ho!*=;!*k|ep3k7a$c%U2|Z&`J5}0^liGsdn57 z&+JE)G8X#u)NM=#k~YkO754qFH?N)f|B^pseo)=Cglz>#lsC<|MCPzZ^eB!`16pwo zsYpDz3B}w~BLlq3baab%I&aK1cSTE4Kc3xO)FTW3@Z*>)RE0*LMM<@Qt!vNcw8LIA z^=Eog-|A4$-f(kUsD_80W}YM?z8RwBLL+mkytZrf)Q++N9DQCZVlOX-=S<58x}m@)klq z3fZZU__dv~uP}ou!;51!bIuZlJJLieO25y9(NSL~YzUZ-(TobEXMbi#5pf^+6ZC2W z+NUaicY4)J=H|D(YkY3{Gx{P6OJaqlDbgVKa>*z7HkJMlkLL&Apn#%TXYBNiyT6%~ z-aBJf7|=q$yE_u%Rjr6Q;hi_ShI8z7d|2G4=&QgH)@$*N@A%Rt_$PUEqQ#KKh$ArS z3V#?z{q+Z^Dz(v{N2#-E~O?WB>B-Ukg*DtN1Ezzxcg`X|yrRX48|oLK=?HA-QXdCs$u|{<05l z!tEU6`J-RyH8 zoInZSw>SJ9U21R__PM7oXW-CjIx3Za-Z!tlQh45)imS=J8Rt^0L|f9DS-Vy1bZaAT zK7VDhNUzfK=hiRGh4BGh*P?2h()PrLaN^9mG(V6;7t;44M)DI(`O-k?H&%>FwQ6xR z;ogHxXgGt{5D>hT5vH!z)~=kah)PW~8alDRDP6c$8PmSxKX33`B=_YZ#5p>B{5ezlDwai z_mbn#k@@KW%-wRGo~8;U{(~FZiDv!YyWZO3ftTxd^&!2~n9{~u<3UzL{|79&jZ{_N zdFv(^UtRmtdzWsqgS3$^)q)_T8&Q~#gLoD{BCSC9z>jHd2874jLcBEk=Ev=QJNS)W zyVx~jPt65M$s)mEWE-X1@7{tJueUoR0@5&xtv8R(3?`)olT59VBjBFPqV3E5D7;6q z?%Eo9B^5oP(h!uM-<_thZ(NG!8}-r8?`Du!-tlyJZ3q9oBAng13zpTnzw@c}+UC~G zrT=ty)bcYFDnpyHBVt9;biw%PmH@@UF_{91Xp%$E@r9I$ZTn8;9<7Z8!ur2MHuqRA ziLRy>IuOU|STj1SAV-I!057H;q?F|CHBv9{lXT9O>bSiBs4O_?c23=1GyjMJ`@g-v zXX}hOzsR0%)_0V=ioQs-dqysyBz8=fdS62(8(9h=VG8Yj(rC?oLlsAMHunW{yHP^Y zWG*e1Oo1@XV{Sv4W*jk9172_@*YPg@hv7CY9h#+x)Fut2fBcTM2ils<4WRKyAj0nz zrC+UqR6EcwsI}!~4F}obIJkca9q{g*AsPrX2{#F3S3IU(TM;}ClCvVt$R7-^dZ-FE z&-O#SIafmfWwi(qf{^;nB$559`H@n#WF2{CP}tG@0!9<&Sg1O*a{>0=dWq5oS0g@U zZPc=J@BE|s-pcxwhF#~T+x`3FQc@R%y}j=;yyT4egB;Rog4m~RKr$ol$N3N&0milz zL-<6sjswJty1|^YjrN(>OTMwu^<-J1h;A)zY0IRZ@Q=@~^;#jEk!~j8q|=cLul_O< z(oNod^|D#%RSi@|VJDWZR<3WlGH)gSUpn&99i`lr{UJJ(5!~(Ed$bIy$kgJdg)5!| z8vPUa(Q{|OmqF~#QuQ_=(FAZ-?dF4-rRzbl>h&VS?L^xn7Po==nn)684t!Z5{<=Re zfa;cd`2b=_bo`5zj>S5{Axx;k(w+5QG1MGS5f}x}CN%0l&9wHg6?lj(H=nL_LWJVzTh?TXXajV%aReaZF z{upL#pi+1td(4iVLe$<&Pxu#MuQ2TbR^Q)@grmmRNfQ)9>x&p7 zca^(1!nPr~?PL?Su@p)2`Hipc9v7f;e2t{sI$^h-AkPRygQvgxU~8&f>d~BQvuu}^ zV~(ac!47l)SzNiyx{bmaBbl8B;kd99fD$7*%~?dlR9)v<1DT^!8*(Mp8pPNql0OOmaLN&cS|QG*feJ} z-;!AUd}aR6{+TwM^L#6Bz4yZN*5!xx?N9AFIOUKKZjS&?f?0HKh?0{P8fVNOWX(Jkctz>SpOoQs%wN-)n=*P=lSV9#c>r@BD+_k}WV;HqT zmgpgOjW{A~mf6^K|I4Aa;sy6!-RzL-NV^Q1-)LwL9n%1Ia<6`i-zqSo=-)4+5cb`b zP=BPIqDWc(=C12E<`UIIGa*>Fal03_gO0qO_q$%a%Jzh0Mj#I@CH=!Bi+@kCUuOP0 za(BE3sZdkEfZP8=pO!|(1ahtL*M$yFVA(!5r)Y(X*O_HcJ?VC>@Ccop2vO#k6mAX9Q_Cl4=>P@{@kVrgy*tTh+<;U6}>3yV`{&5?`#y=)c!LnardIFUl$2YOa` z`O#g=3>v!^l=-J=hfsWK;JH(ohr~@;tEVAGm0{~Ex&K?D;*Y|6t5*g)Byb_##hv?g zd2iDKC9RCU`D8!aty_3w1+AV0Mn7xx05(elXPJA-*YH#v1!A;mFCni62OkQ0wU=;m zQH`fxKOY=#B4kN?`<6TG+cnya+wo?A;+|88IuR3vXbqJEw?O``huY6Z$nC$@9S+0~ z>eKdjKT!~~-MPndbxUZ|1=KDt_UC(CVWPeQJa}!>6xoxAxBuQt6NB3d{NB4Z>s$P1 z9+|$qjIGe5V75d?>t*#Ym5WL9W)>OXVi|YeGuwB+uTYO2VUCrr$bJ#@MEg?1!8}jX z`n+IV3P$oz`(*z$m=xb*p!WP;8%M!P`E|EhY6o|Ynq&z@uM){=lm?NeG!`rye4jV~ zw$vz90N62T%!Z{&QvPUF`-^?y+2HNYZQ)3$PwWSFFhYj?7oz&u zyy>j<_BX!^=i9cC(D&Y=&w*S5=YHS?cTGgr80NqrT64_`xAr&$Mq1c7I?Yp92@wPQ)W4fK<7<$LXK&`Xc}gRWVH!&Ycow8cO@_L>5Kh(2#?~hr)xlA? zEc3#InSC^Q@|=yo1~g!a%*;i6qK7Hw6>sOQXUNh5>WJbME;hFM)&A?}n<}rx@HR_c z8}SVAeoX04Rqrii>qfG=gLJuCbi8EruPy zhZGV!89U6O;uo9P6}+USRNTx%XcmFuFfvhhRo1sMzO6OvQ$6r|oKLttsxr9ab1zlb zzE_@OH-_p(E)3*zJP*vMmPjTw1UlDX6rO$hU;g;DV4mx#qSrEhKOJoZ@m~^zNT{Zs z<^?mRnC+KcBq6DDVcS(Q&;Gj}(IuZANc@NM}phCeeoq z(X1a1sk+2MByV`v_f|a%eH7CIRdW;84~Jqi|vU+ya!Yf%S=D)~8;n*TsBn3i1xeK&Ey|h0Ijy4PGF6#%* z1A40a514UOhLOc`##tK`6-$J{RhKF7IOOCjdDr>@9+0-Go-j=-o&s*_o)`3FFP_K3 z`~WRMcGE&z5ZkCDR7~fO-HuC*Y7#ko@W|I&Ek%s{3u=e(1UH9CVuNV{5@d;zVHz!= ztQ{jJ%MuDtX7PiUcW<#^p-dlLp{M}IeWs2xQ{*k!#qhdva%b8xyM-()2P2jpTbwVu z(2s^rHL~bzT($}SwiHduB1dj!WTf6iN5bkT$?-5BQS-mZKTgi%CLGq8SS?*`DL~COlJbKH&PuoNJ|CqU#3Y2Kwvq^T&*VdJTP2F-vxPI^Z zfEOvCGXMg*#eps-HUi9%BV-J3XF?}FIQh5Q_>7Y2+x9$1pn;&;T<|@=?e#d{DTQwY zRh*5b>*d}Oc`YNzdGqLO+$055D=~4oF*QF1D=2W2m+2Avo>a&q)@Op5lwaLikGXLA zB4Sid!F1Rb1NjN7nMzoUb4O=5ErRX9>;}^aNhRYMp!3qm7WWA@T}g#;Gyi`S^DGLenz3(zr&t6(# z6~)3v6R(N&x!kd>90%NIQ;-Jo#Ykv|Xd6dlYw*kuDK$qnV?I9Jck`DI$01d)Z*Zq( zk&Q`Xk>TUCW-^JGoc6-}@^o$vS#KuOT2}ZYL=N)oK?p5=VQ+g>njsrV^P=b}HvoR& zxh<^3H*}Fblp<(qg~H=JT;@UGX~iJCGY!j^MoiYO%_Q9W-62bub*STl^dm=sw)wPW z=b?P$x>Q*#TTOQ6XL^W0>Ur<>* z(^3XR!VjC?M94-pt>xgD0jq&Wit*n_@aUX8EJ)C!s8Zp^cu5s4(J4+yF$R1h8T_L_ znh-wl0fk1Lu6ne?L}pYMYi9QHGX)Y9K)04*rbE2rw5a)0GAIQkl$wBy7Qi8VL;J6v z-MKp9G`3OoaCtMlKwvt|J;2zxo(_BW&QqbO zooyhzaU7Y6DX>K2*aB~Bb^bMJ4C5147n~;zu##3 z%4v%-t?ZdKnK<3r=sCKXFqj^%-VxAK)$Zw@aDO%^3~WT1P|c+pYgUq^#yN%|6yUf@ z0>?`0H5ze&&xyWn!C>2S!TyGVy{g9yA)o?o+#xNNLNFvewUD3wxDfmHbTdT~KG6Z! zQhX=#^wJl{cyYGIuY*?IkD4r|-6BGCGFNTlyqKaqWqE%(Cy_^LNhOjfV` zmRBQRIH`|!NLeC1;lis%y1C$Mv)y%M9B{3Bo0nb<)ywOi;~UaIqQQk5!VgMq)H}ZE zsrLP}__&f-n7`Vj(kc_Ke$QpZch;RWx|bT9WnULqXwgxvVEYeE#f=7KtBr9<3=8xL zt&P~apPPK)Nfg@lfKl+p%EdP0In0|v?fA&Yqf&{-$tZoV-0B2)U$b@?`(dmqcScTN zxLS9)oktSa7Rto0Dl6JlI!zA@DVcMjz1C{7^(-L~rs&mUwd*ghd^r%>Qmas)?qm!Q zs0YP^J%#!;biBfnU7~Q48n#``vqm5hbhpXp^GXi|AAt&x5@7v59Vb**osI&XC&v{!Ak-c(L-e^^z0n> zSNM0Q5!PTFhfFg|ch)#*bu2sp_3M`*JLp1bLBBCWefY*YgAR)=QX{Q;ikY)9lapIO zClkC+h65@!hL;kgFf+}NPEkVF*X6tEqDd6W&4Bva)GvPiX{TQ1tp*-?0#upT7{Utx z$jGo0Lnr?D?#QxVY6KWCCIo+xO%&QJz;IS`7iRYhGAPymGan?V^hZ|c|$kPvOg*6%NPNn9D{30~I61io9BBrBIIM%pn>E+;P^5sTLd(OX2;4w;*qz8uJVj7mtxq4{gIp3e>)u z<#b>tRv|*)st#a;=-4xi2H(>@H3LzVufy|3gao;zruyyOH6}qKUX#cKhAD|aNTZ9A zsm(YT8!Ai@x3pG5k~4`ngr*m$!LXOrg4HHv>Tpz*zb2q_yd?qg3{3yPcY@E ze|bK&Vv*c?_4ul(jZ3ORuwuViGCkVbrfoX+JOo8F$wk2|s?tFJ9TpQ6nGULKcL$lX zqy@WoXqDz(w6}#=0p5_{_n?@1v>e09kaj2>qDzcA(lXgAeEi66C$Um_%gXI6dqb>v z89i-)$oC+ZsGIIuCUJjrM@fbyyjp0;hZNiv$O?ggS-#2wQnEFA!8ns4J=BuWjb*~K z?BNy>oAENYpPX}*lI%^@c9t2n(wUGj9w;+Z70H3o+jaZ^e4k%)gRy9xU;QM^%Zs&d zTqz?SIGAd_ebY;B%3-CuWRgJDFOOF(C4T54-nM(?;e^!XSF)K)mhpmuvOi(ApV|3L zZ?A?YxM>EiQm#x+D!s;_@#%~&;FlQW5BRtE;4G|ac2*g+XXyE%0RAVjB7$_g#HZ&e zy)c~sfA-ZWAmh2Qh>))wCnMfVR~ZS}6O6ooK%MV`L=J0#%BAY312+*HmQl7jg~A+E zk=^3%teTayUv*I~45)EKsCH8&x=>R4 z&EMl`$Rm#VbTU*;Ds(y2BVkJ^jwo>~I^#;dy?#ppQCQ`k4Z9Me;%*uAjbq4*h%WEm zA4YMbgm_CQqpaUdmxjiz>LkJQ+e%0jhkFmL!4fOJa_Z{a; z7QRF# zUiQ*yCFxjtzP5r@ipahJghMId3JQSgVuvjEg(6wuehjJMwqVzttF&5kK%d2177^ad1#NCfleKT{TlKKQ^-G^QU(~y{TUAf zyYdl|86R2mXl71Bex{7tb-TH6HexZ>De><4^fNHW0Q!Sz(6ztpqf^P(Ynu=f0sg{4 zD|g$(5z&DunT)-yv>!CJZ4!CV6Tn}090edR*9z`s5e zc6z%XZ+vzt`H|P(!0Jp*E?x#P=YhER^0*(x9>9fI zf!pzo0QWz{*do~O^y`M`MdyO3EGEcT!u#)sDFRt)xs}O@@*CmiSLBy-Wc)F&7*Lj?rgkS7hKrJH02sWk}i5yU~t3X zXnY+_F!wft1Gl$~WSD+yCUWdknTzMdJp{>g^+H{V=)Z-YHuzTxk)5YPfnw2(I9kBx z0=XV|bUR3=yxIhs^g;4<7aw$1dODPE3*@~*rTppNfJ)+a7v{}F6jd$Py`V`+iaB7E z3JqTYh3==an6alOnv}ZISxxKeES&;^nA&yjjt-B9DK7ZHOA`G#<155)LfZQ8)3e*J zFTu+lY~7Ikgi0jyG-Q=Jl_gKin*w)o2eAulKXp!t+|r$40y9yMAB&(AAZZi#fi#wQ zfR(|-6pVJp3drC5Rh^vEfXYCSKie7lR}f@k)kfVKg$P}HvA;>cNeO>?GoV>QwRAdI ze22M4_Mmvo0|O}dw>}^v_TPs`M=}1IiFysgk2d5(rU+9m>idkis<_S;;=N%;z0RD zI~vdIPsQ_X!1ftx6<}_PoS}Pep`)pvT?4Jbq6HbcZucl^A^y9!G7ehn6KGs0>*Je8 zoIGyPBT~P|v7S#RmWgTQ5F{pCH!t}ap{?2A6|$tR3jFJ9U9N*x7Qm@T){bzx$a|a{pu2i1mW-%TJNRSiY$?DRbCU) zIWy021#e3ux?d4Kw!biT4-)|iVs;)bDJkJ4C;)%3=Wt9|S0>{k(YM4_s_Ew5=Fd;~ zp}F!V)dGTn*Nk36`aekFS)nLGE#NovyxR3XvncLgP84ywOyNj>^Vc`+TpQ+_rNUWX z7Vv{pn1~+^AIMU6ou8HO0MUR?kP_gyjTw~tsO!x6^qbG`OwzV^!e=GHJjq`RoVBLV zMa{ySL0Z>3ZE^RdU}F}ODE|Fm1&BuokW_fAHc0LfOOiFb;?pwd9)GBzPoBV8!E7KD z$Ig)RRb#!t*>m(Z>;c-(K+^r}pNJ@dVLwB-hlrSqyyLdbCYP%+?7RO<_x`WZ|LOmE zdq%I_5{e{;oj5mOrVFoz--l{kNBVhPzz~GO6z2>u7QEN+ic%vCs7~5VBYkmPPI+~z zLr4|m(-xEav*FwvCbtnHftug(Q$_RE14ab|*tOnU;*y9;GAt-w;lqFImK~je@2F15 z6~!jRz+S|rlq#)hUnSrKID39lnAmxs3&jqDH9q+4uen5cnFh(<${lTAL4kGYnT_AB zQcaAf#d zFaAR0@X_5dy^+FQS|4nXW?_*46;3~ikt3_q*cdsp27y5&IGI(5i1laRt1W5-_cW)n z3lmu1-|^CgJ{zK2iq?y!n;)P@(heH5P>Kt8&YC zC<*gOib0|TzF_17J5PNx%&U&HqJ^GDW}m|-x?`zXDF*jyc?gKR%#<$ z?9DrkD3jG<{Et7X^ghSSlKOD9=Rh~?cIWtEJFXWcMXLnwVOq zn7M(`@>us(zW3Lk&f%78=fC&Q$p$8#n?muMibdK+?c+(g0Hy4FG zzN2K0q73RcYio)s?+Kd(FOr87wRlsaB#i^4IB;44arZrRlVDMo9?m>EjW|~9!H%*% zf}74Q-5nKELZIXh>Z~Xc{6gdQn|)Agi4TvDwTP;2Ub!o(^H1BM91=%d|KtN4=?1Pa zqOQ#6U=iYCef_fw0bE4{p#l3!6NQ@yb)gvi|8O)8L-zSa^FNjz%OkOjeeVKkG1Ae( zRhKh-O6}>FHy1};;f+^=Ngf<-tU7^OZASMS;Sk@YEiO-*zdJqtW>{KJC1h_!wkVUr zly=(xhN)aSa?SNX?ZK>Et!4Uh5jSl!=kg84pU^->^nsp$o&BP9SQb&7s-RmZ|sKpq{f0N z?(6E)xp_2JN1C*6#%gPw^i|)trAFNe?}{C{h7u1o`w+%#@kA#Da$dF8&hm6i^;2*= z9G))xhx##N_^I+$pvyblf64nMvo&@0#32Toc0?eeZ_-`{>13#ZEGb6(;fBctyqe9qupwxz5 zh9O*3g_X&em1941ic8b40|(SZh_(lc;Xft0tPWg1Vx!b+Oc8L>#?=)R`2>k*!juNJ z+sl1Vfk>CE19msIXk;QkK=|@_!2hWJ0FlDkH$2p@w&|sj=70TmL?4zy@z=U1fuB zImytQuV=}{XU*}`{lyOH!!O{o4i>n1tut$}#y8LLT~w1_f19zzXir?s9R;5|Pu9|q zI)hL$DqFtcA&^D~h9tGGRpLZIm1VD&z z_9X?CRa@{C>?KtLZnk4ihQLr@;ctkg^)nOCG0k<)$2>&n%@e|}%SBxYf{a`a!zr8yG zlcM^m^L*D?zh*O=Sme$T+Aq^?qGNAm_n3-pEcE-SXr*5>1Mmuo(||%q5h88m-VN+{ z+2Exsggs+SFLs2hkAEV6-B&E5`l^}p{oL?lE$26X{V}sFe>K_9wWO(m8brFo*ALxFOqRxE zs%A-6FZ=L6e;853VE_u6|G(yGWH%C+m8uf2qGLsop?pgBU@#G^th>_vlr+K1NeLI) zHaE8H@Som8Dim-0n?OGy{(YF7+`;D-xv%6>DB9z;F|JmN6?VlgTpS=%wL62@Ap7OZ z=cN2qEOiIayAzVFEj+KwPm7B8gNjBkuNradV^X5%wXm$eXNUxY@M||z5=rA@@SfbP-uboh!?b@P^ZS3XN zo3Dma4lkSp+DJd=a4|;eE^mG&wI)-qSLx*3pdJVu$*IQdR6xmHi%n#(`2-A1(4$#fW^uYpxkwoB)YlcB{7nR_>D9@CQau&*fL&- zW-SuND+O~9&4$(qamECKXG3!udo40-5-|-^1)Bx2`dcq^r*5Yy^CmFw2UB$N(cQ%f zK7{|Cv8|x_Sm}=Ytm3bf>fOPygpd_3_qQ+Ew_P{#0pWuZlo7t$-u$!gSr%zhGCTrS zAHCmiBtXYk1)PNycnS+8*S%Ufj@=wBIG`|+u1E;CEXj!Aw+_{3es+u}B&pMU309gv z?S2BN|ACIw)IsT`j=IH(|84MiD6EArdJ6bsg>4UI4kor1HSxghN;*cklHasDW-IX< z&xt$J0#7%!6MmbT9i)>JO@#^ykiWVERv*NQRbMT-CYNn^0fj~t73uX8&W=~}8X=LI zJjfumbbjYw$Fy+=uwE%y`VD)#2ARVXFcqg~aRdrzbBq>C$# z4^>>%W`pwVGstux_MGLBh$LQtpnxR*T^KLwLv^ni<5K~siv9s*`r`H&ulgWQiOXhIB> z&Fo)}WpQu677C?TBwd@bEKu2quBW#dV{x#UB&iv4aMJGUijNU8MGS#28w^9krK_=m z*}vm;a5>U5_PN_Q1;+OGG}L?;6$Ubi%D>{M%?;Kb6r$bE7R_3 zdUu^?LhmOuu=5Hxdr-}T&VDypiN(ycqE;-;3i6a7R98J0-c;zfhFedJDetW&-}NNg zV%DcLzG~ZY+{iP+a9HPIa0mfF%RV(G9IyejIw5hr3lm}fdcLo1{H*rqFE9FFR});vuutw zxIF$Al$L~>MJSwfh#IR-N*FNuLxGa^%@%oA`2*k}%)BckE?9=c5 z`HzT}0TYGPgZ3w9wF)O!Jc)szfz(?qX21I^BZKQpl_4#7TO@9lN&~AEUg+^f@hO_p zeQaTp`QI};nvW*S*HCXhSgqaLQ*Gjk3H5vKB}x+zl+)+l*2jkvu;SJt&b{xv`#Hiv zk!FJpVjTAFyyWsIJ<g@SvsCK-Ho(YnHu5?QrRPOmTPH>f+f z6A|v5G?CN)Zqkjgy?NI*X+%@ZG5H2EG;iaRzn)oZ*XMs9e)Fb6_$#5T!7K@a0R8cU z=s^2Epp@R8^Ak%UE+~ascRQn|+C3pEk@c+*(vfG<4|zq+;8R8=lWwWDL0)qL(Z^=S zCynxtGmN4Cz{Th9h?mz)O*ap|!v5j&b&wtsk%g$lKK)-3Y0tK{-qna?BIGPQ70Dx7 zMU#ZNnP5vU$=V&j&pU#2m~t+iTfgk`E*Z|ni&hv9te8Sz%H-#oX+iQhc2_4~aLwDD z9HyPkVb#S_$s3EB!VkSP+O^>aECMNm$!X<{bs?E}Py6oT+1P!QY9f)vha1XKJx!7w zMv5HdRvMu0faZj*UV0xMBm^-x08~^|=c#1b=?v#4!aGj|y^-pJaO!ff8w!gJIac5i zVmU3{(}nn0{|7hu(gQ~e#|{Xd72X?f@dYhbo@xe`HT^)y$nTF4SQHbA<@7KPAvyxm zkG|Y6)oX*JpP!C)l-#F+U_l11%mSjYLq+(HnO2ljnxk~&;`pz=`U!fas$jH}Vy9O5 z0Eh2Rf7~mEmD_ROFEnZUoANP3JQIT1`uy~&W*oNcVIRvsjtH9okVx*swCT zqw`)gJHX$hG#w1};+X=um?vtr=TR&GB<%tTYd=)W*_ z@RoXO5d5G~HDbk%ZNjB~ch~F?GRpi(Vy%Kl$gb*7oyVGPICmpPA*mEb_2)kEx|Y7@ z?C$r$_`@f}Rz^7*KQB+cupaqtgD93kznT%Wy>`ml>PN{|5LOFFoQPe_O=zVb3YN={ zO`bEiFqb=f^U|MZTT*<~mPY+><^JJcXYSnL>7U{%PtAp|Y<7nj%HVebG<)uwv|GR* z`;RSit74ONc=SwZaO~pE28Jq@{nZ3UyVAyB{6F8HaY&^X5#2jh-Q z)$IIS_0%oz+qZt`CG4=HEHCz%r?&6L3q9;M+Jc2%gn!3Ea0#(VX0`^!*{EkeW@Uzp zCyMQfynuIcK(0repXy6%R*QILraNhVLPTi5Nk5Hn?$v;P$G6PP8$N{1{w zNkK9%eC*4mARu6|W?(H(Pz2t?Jy8oeTJFo^mp4Ev0>vYz_b{`c%AusEfmbLZlYqtn zOs|^)2Da(ig9g^t~OeK&IxUuFJ( zj@~!8jr+{=>~1zO-4Lj4fS?XE?YnNENr4vSf+!V6wo*0C7D)pl&829UBb%ODAcXAY z4mc${K2@f!YOf(SY?1+eO_)cUv6Pc+NJ_4f6hvz<&g~lr<*>+DQFg?A0hzN^wxi3I zujJIt&5L<4HCy*-y+~!ovHlR~{{5ck`_~}LHq#3K{cy=cUS1MIu}+*5YH7r`0p&kJ zjQ-on&Z+5)i#Gso#LQPO{pVN5qtp;Im+SqV=I@E`+&*bi>d&q|8J-GNZ&kn*M!&r3L$IlD2UPc$ zdS6&<{QBQray6la>IPjaZe69UyoY7ydw=>$w> zv?mUJkaI3;O+2r!gX}c7Gbd}4`^h?7{+oaCU~rd^;I*ym#LMj4+mc6%UYDPcO$*F0 zsF|=kPxtmjAwFp81RTbiHtdWPq62-da?70tjwjc?xv@Sq8*Vqs?D^Qe`c;vWcLNOb zuuIZLxUIZ06Z`QSXQ+*Dfxb7^77&i5KX?Vv1Y%4Y{sc4ueG`#0#Bl_G6-77LZm<&7 zf8DBHCTb+D=(XE;L%RrA-gz4?WHu;5(v-(I%@CVrFxlq7}=_jymH0Okv5ngS;XiV2^w(A5%cG=FQKI$+<=0 zK%PMI2STptJAVL<%s}d5yc|sPx~l}X`yQ5$gagRv3EW;3QqBl-Rf>LzlQdCyX+1pi zSJ0+uSo-wU3pY$a&g}fVg`1DDY_j(*O^#-W;~qu83QKS|i}D|Yh2cy5lrT%cI- zL)q=k4S5@-DRK(~1+X0Bw00IIB7FQ+ga!lsyi&qGg2=&za4Yi8?f%r&rFs|Vf*MjJo3=@ZPlP|dPO&D;W;^ha7CcWJ zYQ&T(oQ5WBCYs~W$ayb z&pY^(eobbGR}Vw3eShbqy&15F;hennd3OPs=>knEO}_)9-p%@&2N3q_eT=@r%c?Jc z40$-4N!=nRrTW5Xu5VwERBu6+|JpZ0_*K$^PLVWOZ2{4sAeBT* z3fW6KELQU zqKS(;-pz!F4`a5a7wYg<#{zfHlTh-^alKxcZS>oPI9e&K*1sPU!|n7nZHn~7o!FQ| zU@wbhCP6-kP*?WDt;{gw*lCuyvl+dq7oSfq{QSbEnGix~8v;#tos69n;p&&wSbn0d zi&DZ2on!xj4E8f!F%4Vg%RauKLUk($c^vmB7;fphkqfOyvBG&=rwTwGGPGHmxTR+ zg6Y+?;X^FI1@c#8iB$Nv+`Mk zNNlYqf$N1iap{XVAONLB=VnH8`y?MwK`q5UK7Yy16mE!zb6m5F(eyVojBJmW2Kys@ zc95YJ-Bmypb1#uf;>njzxPs9fz@fW1{WGosL(IVyp|8OQ6Q1#{encUMq|%*sxRbJA zxtdzJ@Pk=nmK@21k#fvm)x`?~)m4Kb+_MWG(<97!f}Zhv?-${PG@{SMp~60OY3Uu^ z3UE=5>|jbR*3FKK%NKAwJUXF-0=)&45w+>sDw-^SnEF%Kb2NPWOvqQBFeuccx)om- zlG9axZ{|Mj(1n@Dt9*4KZ|Fq-E{t8+Trh`pG*QOfViQdP&k4G>BEIWT1PeAh_jhlf zfpQb8oz8bmb-sovEuemVL?eQX(Jxh7YYy%z3AhOo;Qai8oO{P%epY8WHgFF<=&i0| za3yLn^U+eOb?7R93ycnG#LKuKG`^pp)o{bmDmYA~;Waaq`>B7Rkk2-Cq;+UJhV1jf z3@S_Vn4-e0fxcd7KNBXF6z1Wx3?eVC>dI$!1bvQ<_rksKTq2lm#4BdGwXtg78JVrNL(1cC_}CQM4U0NK#l5rPA|}i>SEybdR2iUr z9zF0iSYWi8;tasOdX_x6u{%9g@y$(gI)t)Jyd|zWP)p1L+hisQr}|Bh7Q$6P%t<L3s>plyCK(GY~a8$wG~3#n0T`nQ6bwwVFY2#ZSj` z26yT^HPu)A`sNHAWgqHkSu#ex#4&4zop{C9d%HC&BLT)wC;2Kk? z^>d^8*WPC~hDfu_^qtbp&wJ=6kd@|+y=7L!5{r(v7;6E|>ri zdD~}Y_~qGC{WWi-Fp!Q380?FuUX%peNN@$`_CNeWj(iB3hrwGi#j}ObaC+({PSUC{ zH-?j|cIk*ILi%WAZie&4Cygx1PigM`wvEZa%5eLp>}u$%X%}_1&EK=+9@E8xSq-%T zBUx1rub>yiHu({9^s3-uC0M?_w@k2=mLc9oo$K~%zga~~KN=X6gTvj5iX{SZ6`~@Z zjIvj=lK=i$7$GGEAMr@`+?1p#l_GBI*KZtOShQmyG8v$ea4A4H2ziBQ;d-YoXueq1 zT#k%ojIxQdTA5R2aL^KYb}!Rw0}oT`PuV$~Yo->+URrAE-rm7Zgc3{0J0zcu+S%Yb z0~OvNt!E~;FQmz#+&a$gO_YJhFwW#*lt?%AWU*QpLUA%RS0glOCKJZ;D#J2O1hYV_ zy1Jw+DkhLW;b1cg@VSDRS0|TIw{mzoCiwaZiLqV2Zx?E-VgFn^#Vjc`h0XJCQjWX z)sQRaA?v=`tlsUxhEwsVQNligScp-av`E~%+SaP&^u##Dea(c4vYf;yF^OahC&-zM z0`L^6+G8`BZ3sR-=jdw#0zohU^>#)V?b6oyA3hg1ooT11J*XJC_bY3{T-kNuve239 z*$uu>epmlB-Giu)T;+{H-`3KMvS&qk&wGNGanFxC2qu0q`ktme-S}iDFw{HL8JmVig?Z14x>4zm zQrlt}eqOSL{LQpg*zIs0V8NN3Z4+T8>I_D{g5Sad`ChNMJb2VkUx3#3G6Hzh5x^bQlTfrGI&V zKh^RxQJGUn+(hmPUjfM5ulp+lZ1cGWL<2UI1AZ zd{-TPT%@W>7^=4&Ppn+=Q%x(f*RXbU0{qgElM7LCdt*K8UOu?n_)bB8S&_GOVIL{* zF-4~+fx7k`eXfZAv5UG!(YQ?LFiEvd-QcF4n{+duu!aH{?+Fn*z`ch~teX0ux7+AA zmt*YBY~9JUb3Z;(!7C&pxG*Y28q}K&(FnziUE$EwyD5ji;JA_6X08>>?ghZp$5B&r zsK2oZu(XJ=L3BG*m#`5AEHvkf$omp15RpVMT9H8ui6IXHH;f-m^Zo`kLfljJqbUyM z>QMgO0=?5=A6d1O{VM8`eBbUpMZKToK2=Xe1Gs*yHgNdv#-q_-M+H0O@5@I?IF zi%g^40G*`k5K@m{n2n^bDn;C^#1yPbW|QAC9f&a?krh^Hb( zK9%DEYJ$r+BaB>Kh~#kawEh^(`+mC)d+La^?|W1cW}DCAmDMd68km-c!=nB;T~*;> zLM4_MQT}dpD=hUUq#|jDep3Tq2-h5;!6PTT)dRC5H%0`%T$(gn%lTao3BJxRrx672 zL4Ph-xyyp0DZSB1yA76g-DIG z=bKiIoaAcg@xmo%!P^{QWXjm62;*(WcNNB)< zIu{=es0o=cSnzUJ-$RTGEkMq(Q?bpA{srI`7- zUesgCO^Va!DkdlS0>fiEKv8*B-hpm7mYMos>Gp^%0b<2>mG07>A8uJ;_ta4!61P|o zC|{FQEOj7X_{q*9D5=TtCwTp7#VxJ4$xN~@eF%w9%E(BAk!e05L?THHFxZ|>yH!Is#>G$hI6RysUC;Q zQ7;1iifH`gxM_wPx*K5Y*pJV3~nALIa56FQ$ z*iPoF^>saz>#HEEL1u*fG(!R-5`HTp(5;a3LznsJek7DUtVs2<0_$JJZj5}h$&#EF z&Y^W?W$~^={`dfu8o^h2)x9iv{OJCXfn(`-`sJGh{Vt=K7B z5lWV=5AWUkoG3-hy3sXYnm_$bV{iT!3hDB_yh}_E1O=$st5)?6k~17QG9k9S#st|n z2{a<$D^Qa4Uas@fl?XwKwdosJiX|L^W%-&mJpx7}nD@N;E*_IMo4(%2j zM#e7ReJ2_g3~N~OcNIgtl>F^vHY|B!UD~&=5lxA;aEC-F#?I;Wr6r^&v&7wNL6=-l zLnifYr$PD`tJqmo?O_JbNU-SI80W|Zz%9=Mp=S~ZS5-@4osWvTUCj(-by4q7$|#Ex zC5!7K_>V$_WZT@FWmhp&um4WX*y9_lvvVpE6rBVE5TDlu_=&WQGWRyk9OlEfFMZ;U z%&c2dnKx^Zao(_ELb<89mbA9HWAVsDe4&#tU^1UjMTTMWKwKKa8XIc{wC!r#js$g+ z;l(Rh4RRTNpRMi!bYY}Ln!+5SERQC+rnZjhrIbR3l!LM$ zg}@`pUrQqiT*qfywG>4|d!sd89zDcfZ^wJe8i^erdGbjVa8-MT16O0Ge4k?khAf-DN22_=KB1#~6|jcelg8H%${asqUJ}{lEm!j=9#j|RjtIu{a z#%PGo_~4>vK5Cu=X@3x@UU-#~-e227%P&X3W4o9w5Isx2Gt?i+cCdzy-B?@Ye?*#{ zKXoN&)XSz9wpjmYaKN!@imh;7uxC7Q&2y3OD{|l(;}^zh4ONwiYpG-OXP3YC-!C+& z9VYB0d+`#ta7Au_7YajgVnk{h(z7E@r*#S7AVR}9@!&_xSOreM9=wksjPQ5M!L3S; zmxRDxjJ6uLp5iS!tgYPcFM$E)22+PFj_+(^Lj<`^InnCQ2_nWg)bIA(tKdXZi_dgp zjboZ}46G0Vwk?be^kEP#8n4|w5fP@IAH4UHGN)vjoRkaCt;x9#1$oD*9~bKGrx}%d zmsr9Dl=}ME6It8(0nkFtYtDDrJKMI@F%B%x3Jx-6ULF^f4v5_H9w`Q!Y_$-JVrn98oO=bAT}a~`&slu`rw8CZ*o{2 zetN92kf=cE%XpW=_%t4473KRt7|s2)c8lZT&z|t%SE&P%?gUD9MVIN9)Y&_*p@m2r0_42Yq-O`vRLgwv;kN zytMz-w8&Kt986X45cZQmN35gzBb`m_v3KMsf;+jN5c4&Hq!@dpo?d(**YV2G4*G51x;h+SmY7KTcAz>guI@*#`j zgn}kWxl7`tQh$-bFfuiGpCl%LM^alaJW*>p;t$I{#c9kH4NIc#Eezk?QK~Fx5{nu- zB&~MTR3RNiHc&D535>H!Q-OoNgm?N|{NM+7GdYr3)WhElmoxhrN(dBRUqePNnz3hp z$(9RfF?>Akvpxt<_fRJsb{6t~I{aWcUgWFPnLO#=TZBN)`7tcw#+{R{$bz>pA>HK9 zZ^z8cf!>Kjl0m*d8TM2Hv;;@ZFOtpp>$?rixhh=)yH3+N##Nr$QVpERj@g&mO64$c z`^qUmagv?*9Mg>ncl8!139()b#(oWe&yf2Zi4P*o<~k0hXo@CBKM#C7;vDnQe}ZI+ z31jVd3_gLn@9w_k4~@LY{{KXqgWXmrbXih_p@JK3n~F{INVV$>vAVR*MJ|4s1Eg{I z!ipRhJZ2v%YDBI+l2x3(rL`1sjI80sj&~5`mBkSKj_f;($d87?&Im=ufUHAhJ^C#I z&b7_)9HY$}fr1@ptLOH=0j$Y;RNfjk1rNYituV)-v*Rq)%P} z;i!v$ho#Bz!&seTjWBr{r+B}1?#`UKan?a_m8%m0bZ*BvDq=7{hUY1_c#FB3?HSdQ zpbmX~B7&)bdRBm&JrcqaHBBFe*?M?FK;8n=CSC8O}skRAWl4Iq>ty(d++E~05x&0nR`hrW45-o_*sz{w~(r@sjj z=*?zN4wu%xn1Kd9)pd=k&fYnk4(8=R^v?OlF(M3A%a2eC^a-;&u@0T>k`*NP!}8w< z|2WhL`|3&G6T`T`^l-9EGA@&DgD}nh`UG#zTuA0YZ8}|Kh~c~V=TF%!hU&)zCpKbyQ=yeHou%tC5vfm4^>e*IO+K-$$wvr6@HWAB_T;brWm{|ke)8mb+?LU)xW zO}iD*CFcG;?SnEgz&uy-_U2KfB`OhV3U!ue&AB37c}}>h4fNn2FiM4YT_Hg(jNXiuO+jSJg`AAX z_mtjja9Qb5vvy1!tj94_ym_fp-~WpIaq8@KqXeOgy`Z-Acm`uNK!__rvuGS*$sq zII{jNa&pP_y8%1(Z1oC(rTe)Mj?(#?V)$C|+qXw!9dbK-&6`ffLGn!X&2r%n8-uSH zP`<1?>2R%EJ6H-a2<1b(@X{yVt>bI`&wR>oxBBUIn?USZ`02BsAJ6iMI(J{c+;Cmb zYN6q;YKrhm7>5Y1hCnGwR-{*Cpp?i+nVVkrY^6jhl`Co}0mR04?=aeB$+LbiFGQsy zQpvxzmHpsuCP`ClrFE`qUrU}XN6*|eS@UcK=e%nP^87$KoFKjtc_ex>TyJ{W)g=MXdXTYQnH-n?|$ zC_Obce`>XOlOEl~dOG=-OAyMbs#&8X52##;^3=!cG7*=k0z?98Ywv49HM%lA802?R z1;S!^q=?4NAbf~Kk{>Hv!?+IEas*yM;^eYlktF45x#yiBGcGqqg>zLZ)AmsgU!lce z+p#2S?>c`sKSXBlxZadV1;&J8XzhDNssaSAo617si2vdewWI^eU;J^r2$L7dz47Hd zfFa8ys_xEA{L1|EN`;gh*745e)zfh~fL5On`J^r8nz;VOD&-Ir=ANkJ_BhvtFz=jb zaM=fo6T-#+6Aw#uRMC4_-i9=txQU;wM+o;vWG^aiflg>13R8tiAZmkQ6a$rB+4GZE zzZveuB;>g`?TZs6`?KVSM*s=s88T*#H5i^z@-Ce_5kKS1t7rT2Tu-My9pwGbojRV- zgzc&pxui9&TT)hkHT{0>{cA$;hyVt?$dkZ0nRdVve0PJqg@aFXG##q94yE5e;)1(4+l{7hrWGDSBIiOb1*7Fw@}{!)uC9y`kP+_Ue3J& zk)viWp4NvFr=Lhnv~siK%-9cjP6@!zoQ&EAOlcJTU=H3oTn$ytCadb?U){TX`f(Wr zVMT2BIFQEFpC`|_csAJD$VR?%ex?4uZ+?4svh2EoJwFj~gtBWcD+lU6-0{|PWDMDj zyMynJFTZ z)GSO&b{H1b){#n+Af@JKjb4XcsMQcO0gE5Hb{;5Dk8?>avN91Td($i_J5c+!xAC+@PRjd1ir}L$LyGGkYko8 zFuw0!)vhjGc+N!B49^`6e1aP5)u)a7?=jkRV#EaT;_)G4RWt+(aIAS!^9Jbn)YVg{ z6*MB&&qXj1UwDF;tWdRp7HchJx(_GKaIW;-(tkKCRQWg;aq=KrFYG7D8S-Rla`ZPj zSbdgXE3)zC=*d-7S?F*lz8U6(kRIcY_0^B{3umgWP2&L}&A*)-6y)tB8sQOe<3$0A zg*f8;8)OElS@1OB@`}~&4I{Ql9#6Pr;Oe^<*NCZ+igO_8)07_ETs7^J$IrBLo*(o> z-nWGxfWl)KiK&>@`^_EwWFVGOuoCGrUJ|t zwYU^TGzAC?R_~NVnKAglJT}z*ZA~$-Wr8wY<9e6f;u<^qUtT>^B3Y+)H?+(B zxID>C6sl4sMuNgIp}z%!+uDwahmtGw7lNO$wHEegT;WuF=zeciEW>FD+2KIp$(`*C ztTyNby^6c@p53}PS^^i3&nqb?)jrBX3vX@yXn zd@900?Ys7I>Q@)UU^Yfb;cEjA4yx-M2tvnQ!+F_A~f^EO1Whd5GR9}n2Xh$%$xK~~#NuYC zbbguq&AjDY_^ay#OJyVTH3b+o+z|RYFD?uFqwaB$c<_dZhMtUZA#LpBE^n5?rZ-S;JYj$jrO4-O5-2vX4+r(3l(B8OM_ zhm?2%3KwYw_@(!Pn*wBzibte+=QD@@x4(e1&PrhX8svJFHWgfEgmn`-L=~H0w+JH4 zyrWRo!)VAj;K|z;v6;dOq*jEEYKkMd<`>*mU&zeRNQ4WFuvlixyb2NE>h|U43VqY0*LlEVGUpWW(G6T{xc3e5y`{Ui_tKfSxZ8N<6Ip$29);?73wW@m z?C%`H7aQ=+6YRBTFTb3O7mUP&p)Mr_0{h+Qa3HJ)b>(#>Ybo+M1hAdoAC;?y{VfjsEI~1tmDzNw1?#O>ulkXS zKioXK^hNRc<>E%Ps$KPN;ngh0Wmd3S*C-fS$+pp>$+Y32c~QkkWPV~MISYs*v)lXT z&CaWua~5|iI%_mgE}Nfi$ogWP&ksG#nQKb1GtHy{ACin9)i>6o8U%{ES^aP9Ud z$-S#ICsVG_5CH;!_%YF-bX>xzrE)N{{u3I7ZGQC2ca{W{_~M}bTV&pfUr9sEEyW@3 z3rQO+-TybM-z9PJm!O`CR_3hmhb7OpxmtLbC6VGtaoj$0^Vm#giH|8ZXV0J&bWn|5 zc|>%0B<^gM zWe9}ca@4WkpfIzHAOhr1{vupM}*sqpNU`3(n!v7KZcx(xZtd)gs7#vk~`yOrd? z>0v<{Yd?Kf#)hY=i)?KlE;T=#oONCIyCnsv^DBk;C?Z>G+RMoW7?&<07mAF^9Xi+s zrvdDtRDWEKg>NvvzFBo^n#%+1m#@f6%GiyB?P@1iUVY*vn~As@#ifxG#^grU!$Upp zjIL)+MXLf!0DxNmU|k(s7LYT-Sr$n~7zMsp_f6hvmox+e0d%$KnXH6##OF?}T;8a8 zL_JzxoY?2dv~{y&Z#F72aXh?6Emajg?&oj#H|>=(WmpqY_|%^+9k ztJ~WVr9^_{TQ~R-LL*5zrG?dNsH1y9;vn!eTL_oS)xK1llqvq5NZc48K0 ziR&fn-zFi?&#kH2n*+XD2wO;y7GU3ck6!5W^9R*^A(s$7V)#@lc6vMb>>AY_Z2b)y zvfd-%3$%5x>6p(P$oCl&BsNn0naTOl3b_!ca9!Yz5@qAC{c?|p>D6OG|IA8{|> zl(hdEZ=MFg05g|PUybktgaV<+KX;#-@g32F<=W(dAq$=5b>WNgDiNPWSHHv1QH)|N z7!P*D_^L=Ap|V!F@Wcd(pS>MYh4*N`;oa(gK!a7vbzzM#*p&z}Y593lWWHHn-)47; zn{Pa!qM*T0yB)yO%Ixfr6N92coFfbg_`Y&%I!^SxwG%5ZaMER37j1c}Nig9;jSlNM zi^afMtKV8%@^1Z7IscP?Q7fy2IE|OY#Z&}es>BH3$3)Vh*?{?p7gGk3cSIK@&Ynlu ze+)Bom<~5tiWfSrYI>2dxFA(H6;Nm7BxzSd)&ZuuQNM*US*;%p(VP%0FdpNs7}PmR3(F=Fx* z$Jg=Rya^ zzRXy3x&_yCG>gPw;lU%Ja4*vi55JdW304_X2b;(kpQ?%~vsZB0oa3dlmkzapX0@yv^%~#;`-H8!|-HJK|uy|NMaGxe@86D3=P?3zSCnti)a4Xm4u+6e?TVK%st2vR-Bx~xti&!$VNmqMrz!L92q zV@jy%hLR~GUmPUy(o7TuaqPFZ87la#L>qpki?1>F%y9unX8V}=x}FY0Y)Tn2f(O68{W0APnONP8J0BBTIJCPtV8~PW@37BQ6!l@T>Spsr;od3Feag+#hmJQOFlA#$P zSbTTI6obzkP&wrC%;#0(CDW(p{VNJBFHabw?Rv7RrQ=+P_J^LO)XhaI6}D+$P0(tb z7Z~Zf!;!$CAc{G9qw4nyqf1B-wnR;k#P^gw17JmYGN>=SuOyH~Hywe>4Yc?sZcSRY zrkNFiJ7GfOJ13C->lc&*7W6`-(k2y7Ovj9HL5Av21@gD)M#nhVhUNUP!jr@sQ_)Rb

ALd{4=~GwqlJy`46Mn!sO6 zBtMF|eq6f0OvO<(>VM23R5F&mok0~eO@%WgvyW@h$i~{EqsX7brQ~&zLd&2}((O50 zVZ&rH+SVe7qRql5(*jvpNj@M-sB^^s&xWTK*%Grj2C^{Z4L+}|K4{A0yt4wm1jT7$ z7~FW&=*2xT#}B`h9FAlZ>=NX*3kYeN7g;ljltmp>_~bUtff?N$53^;ADg_Yz>comO!|v*a zKp;xtRTp6lA8FIEh$+dQgTpeqsTCnH#`Gi_5Iif^_pVv)vh9e%#-?=YYktwv1WJ}_ ztvTwF720nu3-3}~!1!!f5(5bZ&bH{V3|58CMrm3X`1&S<^l(*Cy%C^LIE`cr2+!)J=K z@hC&(rAaMf^zw(fBbtG?jyAwje=o7cs6smDY3!0zMU-lS((BogbKn=5*(6+bSR%m% z%^q78!NFt$Nk`&{uGxH-JmMGVDnnYPU7L2$1Rk5!XhmpwTh9z)pA zV^6;ueqr{nNY1MFN905&!JYF+2;yn?^(e$$RRr2qL z6D#P-Mk(S(bO(ZFhKT2hslIMVS1k@so@YCPq2wj_hU_=5py))U0P^FPDB(>A++fu1hG`>b2Zj6N>>&+RWMmN5XUQ4?HGy@3e`!3kQUL(9i^Q%#^XZe=fhE>Nun%9 z$vPB8IKWIj7ajBU(EyOP=7&@u7ZMI3P$4>txqzr|t6IN>p>igcs-^^O=EjH(d%z8% z|LHIzYGcj9yCEbBsY8;<{(@2cjz5z`(hlf|(QDJv*-qo@gxI*#@RdguM2CKWNRmGf6046b0Wd=EK^h>Nb*KRMoTbNaNQ=24` z<~sD|NtWTxsr?zmMReFms{PiNeA(w@{yL@sK_io7o*B+@h%A0KMAMv0zzEe5Mrm)n z#E4J(9A=#ofk7w5Fl9@_u2k^cJvs~cLO@h|_(spB+SU6?yl^uLbkt?Wyx<290?7Zp z1>&$+lQOfQ36FUZz7&8a5-IHYMe>%;Dn+Ytr!8QRsEmB?$CsHI5^Be}^uZpKFhsnN z4*&=o5Z(2u=x}5zQEJ+{a9C%HWlV{rslP;dWbD(RuEqQw6D{MM?;vfCCu|K7u3!BX z*5@?e_vv1-1I1?AVc#`TjQ7GN<~=C${lGRu~I>pATycoEnR(d`>9|h zo86}3K{uQBcH02J5{4F0?-|~OOLee&CA-~tiG6%agx=AN!^FyT>|9j(c*#U&c;ewW zKZ&~43r24~4#CmnsA5%$)YgQ2zQfn+w738GAEh}>Yi;Yz#?j6|2z~o0Q7yNY`wex- zYo6#kE98;N4)+)9J#Sq?sI;#`IKzm2qSS@D+ZAA8snfQ#K7XLpd`J1yVRnf$qv*2; z4sV-SF3*ByrD6q-UB4?(=UiR&clKi&3!XHaD^d^Ly$c*+#lF5RW=|fQ5wI2OsXuOc z3*^EhfPBJ`UZr%M^!nPeN94fYZC<=z5q)d6uVhlKVBVO#vlMZbU@$>|-(L=)ks(~<{) zn}Mh#Sx1Mjvn#eoX&?e;rxeluduarE@^JuT5SeYRZL}^vH$hX9f`Bo@J?dw-4wyIB zY>^Z|#*{hyJ47iX(gOXh&;Dj(MUE}{BxeJ&4^zXj;oPiZp;!!n*=tkpNI#r~X=Gg) zy0HH5HNUVGsBFh&c4D0u+M(bajTvTH*gcu;E&GjY*R+3wg%3;kgTSe{%>Oy4eShigOK5)tf3T~A ziLS|dXshR~=c2hk+&+(PsV^09wMLIVs?B2-7fR({(#)piW`W$*#Yz)81%VA#kvguQ zyxIH44R)ZLM+bePT0Z$-t!u(8^UuB=7XLU5sDMz;&S_+{x$C}n@Bv7Iq0W*66N#Bb z$zG3;twJQGkh@-kzs((y68Yj67hRX-bA!%@OWo7l2n@%iJu2;o1XF7erGa791dhLXDO+1@X1+Hu+CCI_iG?1#V*KsxsFafELg8cY&s!8J z+eXR`reY*s4lBkppZ;YO0Pl@>b_r35Y~+V94$}8n;@E6uV3Ff{1irjtlfxYu&t1O9 z{_|0i;rv0sLkwbAr7jl(#*lo77K|;oStU&-yZIh7Hrly|w{P`G&6&)(&G~S@lTs>p?C1n zOWssCNRvsWi!mg!8Hf^9m5F@#FJnI=|7YZk!FeOvM#gLEw2(>(D*}J8i$twTbjCP4 zm=w~vWFmI<#*3p#?cy2ECd+UFJFgi(whlR3&IRsUAp@iS{ujK6dS2=~mEZ&_bp{L- zb)3+LL@#pEoYO8c!|qZml);8)x5;sX$=r~)7Q{@ZAkjH_z;o}OpU1@z4GdHAr3E_m zCxuAH@y=7uNap_E+_>;XC5f+N)J3hY3X3urD?wjtrseaMYvV@I9HYxeccDENNELRX ziX1t)a-ZdMap$fANTWA#G?x~7O+Nlyc77idI|}4Q81b>6ENR0WOGj*FCOj_?+Jjts zThD95oDWvDsasN^1FcM;XmVRemWgL9zANpYGxmdT{)JjNTm{k_X`u_>D6p#a+zfvk zwW|`5qG?18dMXChWOn2#^j%>cugerGapJkn_;)(l96uUB!F5KW>J}t#t&mTM0V^VT zzv)3^Legm%If_|ye?8fHS#cLKL$El3EUjV9#<8Tl@qgd$w}-de2h|d&cvN(HU^p}# z{B|K5aGR|u+7`^bqY3UhS|W4ui-BF8ZPi-<3js5lI7^48`~m3hbAGKS%1s()y?Jjs zGe04;XV95YX2pn$5!f+POGhfJq#1QVdS`PbI(+I~%#qZ%lhh7G|V|`hx9$f2GMhG#YO%(8^Z#S>3$6Pw-H(%%Os7s2W)xG$ude_!p#_tbyA^|T8^^qK(r4f>7Ec}}Rk)S$;?b+%v ze$H9>g9jPkV-ykI(Z+{&0^pQzx$r>Ie1&nRj|8Hc(3JWpdCv;9E-6}gqVoe}RE-6& zXFI;fITV7JG3vY&$mexG-#SYID%?^pm!XtE4Id+V1amalQ$%Sdi|_ga(Z1d}E?JT~ zOL!EaXD!F~WOPOT`BQk*VWyp)($V~)@GcOzfPZl=ibANdRv#fO?%-~Kj&nyea8P=M z3(wJ`W#qvk3H2PwAkLs?1J@&kx)yJcmNp)6F9pnJK0Vs`f!f=_6&oW?h*F7h$*8Z! z>tdhVd>r^c7@{=&5mnx#+r+S@u>I>%kn2Q#qHQUDGM*3`ri#VxR1bqyGW>tZ1Yql>eg$o8)Wj9 zPV-u+^$|np$l&U_F0g_=^Xc->gqTW&_10>k``U>C*auwY5Kf@rYUvih7K`i2>%>gN z=(e&V!vdnk%kYgwONh-i2SEc%BYw;#dwB7ubQ*Q)DP1(KBfFS2Uhh;xZE!`745i zLc&Q;LTZdRZXLalY5cn7SbpuEZQLK1{;ZugxRPO$3CCkkW9=pdL3T(Gr2#>*PcC?x z1exwy9Mh*EoXJBTL71Q~zCdyU;Wn^qQ=fqAnAv;sV(qJ72ct$`S(sJwFmsksy5cK` zY))g+r5c!_*XFs?9hqmGMTOj90$brzGL6$UQAA`x8uyeEBFKSfQj)hbkP9rI)6Ok1 zp^~QOryktw+2TOh>Yk|9CKtIx%n)bIEU6^lz7q`!Hy`Iw&=unIlvJYlJvV*)GVBW_ z))W8H5f(L`vMyWD)%uGD$p38Ej8IEaI>yPhRs}d7@zY&zEUboT)&i3gkQiTBLIS#w+v%cAeevcBH`;k=xLT@A7hHw7@W{9yW zA?626JC})wFGE4-odDY2Y7~JM`en8AqI*9OmHPZp6f1u0d-$-EgGhLIg?PfFg(?GfhZQ?Fzzw3LIA*JG+IY9ITqpR&z$is2Ej*>P72t$ zL;bLMgh*?gX`#ncu{-jbQA#OsAm?dfFf+Po@FD5^PB?+H+cP>UoI^nTnClZVfb4?r zg?1qGd^K4{#O_~~LN4FK*Q0!*gC7HpO$#{!E8Z;23iLskMF<32n<1eH;v%~x@CAqF zf#nGW^TA6eRFxgr)lAST9kp!YgI6@(38^nj;FILJP^Hh}^Zfk$Oi~7b&xaMD_l#=?rjuq!zqZs|_mwW_C(vhrUz5l^fujgtAL=w|JQgytTb+1{pL#l% zC7Q(t{ds7am&jRCqQLZ^of+LtxkQA%Gadf@0H2o`HBLWAtP+L~7!gYC-Js(WRo0m_XJYRUUtu@q8C8Wr0p<=ho3|1buHEhm zivehxk}O#Utf-dxhkr{Lz@Z3Ff;1auiDnX|IdkkcT(W%LB7X`#XbzF-o%un#T9Dtv zeQ1>G%dj#XNz*l!X!>}miB!nxSF?s^4ZEh?cB95(^qQB_@s;=hdw@sIh|9SHi#8&- ztA3M5C45Z)02k1tV$aPg@P43C6l9aZ1Ggy9RwUBmq|HzWAgshO3D8?0@W%QtmW{Q( z6{WQY?PE~*#QSb3?xk|RdPlSag9NwCVudkf-;YhyGyd-IIh>!oR|ff4C!@yZ>m3;7 z9 zwrzXIS4WinCw3VJPG%--8@)>2G>G29v7NCE{wa@wi%^3DxXNu3ZTKnZpqbY^LUKEa zgnw(D`9Fe4eQBu)#fl!NnX!^SBxL82{3wQN1!c`hO!MaO!;J+0u%s<{(~7(TrYmKg zCVv7BY1_)ku|YGGL6GE);A^1AJjcfgb7FRoKNii6Dv4->?aza#J3IB{|8kOpBY)~e z+|$k;v(`YI<&2l5EjTZ@Xuk>_hrZu#6BR1+J)(TN-oQk=8IKL0Y9ike$rPT84cK!y)x(+J6c_rSm6fY5BL77qyQ35a=# zJha!xcQ^>Q$=Eu{)a5hBUNHfXzmJ}DRkGSwy@z*`!;(xj6W&N{{Ks-1cvsZ8*&Mfx z%MC4q-i@e}HsO!Dk0hJoH-LKF>tf{FO48o8(~un!=q9P0KP1-qXs0wQE!Nd?m*1L7 z$p9X(DlP#8wA40{aE#c-P0iE@eM*vWjOkd%mUe$s=}Q5e^&!Z6u$_TG1BQ;xO}h0^ z#JWLguFZHqq$2_|m@0)veA>bG)GJqUnVjk*0GKzq6O(eF6#l;QKwm5i-gnA_Sl0b7 zuRbkN3zB;y>D-?1yPg5!%sd7)EVZm^RHb%@LE6xA!LJdv$8^;d`6fu*2Pk5{NgXBFN3Nn3bUgFOSprTj@8h-5qUZa{C){ z;|kmU{`QBVN_c>k!leclE^syOZ*hon83pjjRZ~+G@@4}JO-;-$>g82uQHJjiR@l@2u%jnM<8vOJcbd@N!gGTXx{K+)90GYr?wdm0jU zfiF0;;TI%l(*{8WZJ_c}|Em*Y;+#d!&H3jj6PU;|7ewJI7

!B*Ixv@1WqxU_L$y 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 _A6sSc*ztM!`8d(yK2N33}?Z&<*-9d_WYo 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

~?3x+WK91ov$W?{TK_OE{bfo|q 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 Date: Wed, 22 Apr 2026 16:02:09 +0000 Subject: [PATCH 13/61] Fix xmin horizon data vs catalog query --- .ci/test-sql-snippets.sh | 90 +++++++++++++++++++ .gitlab-ci.yml | 19 ++++ .../monitoring/how-to-monitor-xmin-horizon.md | 69 ++++++++++---- 3 files changed, 159 insertions(+), 19 deletions(-) create mode 100755 .ci/test-sql-snippets.sh diff --git a/.ci/test-sql-snippets.sh b/.ci/test-sql-snippets.sh new file mode 100755 index 00000000..efcbb32c --- /dev/null +++ b/.ci/test-sql-snippets.sh @@ -0,0 +1,90 @@ +#!/usr/bin/env bash +set -Eeuo pipefail +IFS=$'\n\t' + +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +POSTGRES_VERSIONS="${POSTGRES_VERSIONS:-12 13 14 15 16 17 18}" +DOCKER_BIN="${DOCKER_BIN:-docker}" +IFS=' ' read -r -a DOCKER_CMD <<< "${DOCKER_BIN}" +TMP_DIR="$(mktemp -d)" +CONTAINERS=() + +cleanup() { + local container + for container in "${CONTAINERS[@]:-}"; do + "${DOCKER_CMD[@]}" rm -f "${container}" >/dev/null 2>&1 || true + done + rm -rf "${TMP_DIR}" +} +trap cleanup EXIT + +extract_snippet() { + local doc_path="$1" + local snippet_name="$2" + local output_path="$3" + + awk -v snippet="${snippet_name}" ' + $0 == "" { inside=1; next } + $0 == "" { inside=0; next } + inside && $0 !~ /^```/ { print } + ' "${doc_path}" > "${output_path}" + + if ! grep -q '[^[:space:]]' "${output_path}"; then + echo "No SQL extracted for snippet ${snippet_name} from ${doc_path}" >&2 + return 1 + fi +} + +wait_for_postgres() { + local container="$1" + local attempt + for attempt in $(seq 1 60); do + if "${DOCKER_CMD[@]}" exec "${container}" pg_isready -U postgres >/dev/null 2>&1; then + return 0 + fi + sleep 1 + done + echo "Postgres did not become ready in ${container}" >&2 + "${DOCKER_CMD[@]}" logs "${container}" >&2 || true + return 1 +} + +run_snippet_on_version() { + local version="$1" + local sql_path="$2" + local container="docs-sql-snippets-pg${version}-$$" + + echo "[sql-snippets] PostgreSQL ${version}: starting" + "${DOCKER_CMD[@]}" rm -f "${container}" >/dev/null 2>&1 || true + "${DOCKER_CMD[@]}" run \ + --detach \ + --name "${container}" \ + --env POSTGRES_PASSWORD=postgres \ + "postgres:${version}" \ + >/dev/null + CONTAINERS+=("${container}") + wait_for_postgres "${container}" + + echo "[sql-snippets] PostgreSQL ${version}: running xmin horizon snippet" + "${DOCKER_CMD[@]}" exec -i "${container}" \ + psql -U postgres -d postgres -v ON_ERROR_STOP=1 \ + < "${sql_path}" \ + >/dev/null + echo "[sql-snippets] PostgreSQL ${version}: ok" +} + +main() { + local doc_path="${ROOT_DIR}/docs/postgres-howtos/performance-optimization/monitoring/how-to-monitor-xmin-horizon.md" + local sql_path="${TMP_DIR}/xmin-horizon.sql" + + extract_snippet "${doc_path}" "xmin-horizon" "${sql_path}" + + local versions=() + local version + IFS=' ' read -r -a versions <<< "${POSTGRES_VERSIONS}" + for version in "${versions[@]}"; do + run_snippet_on_version "${version}" "${sql_path}" + done +} + +main "$@" diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index e47da321..a863bb58 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -58,6 +58,25 @@ validate_feeds: only: - branches +docs_sql_snippets: + stage: validate + image: docker:27 + services: + - docker:27-dind + variables: + DOCKER_HOST: tcp://docker:2375 + DOCKER_TLS_CERTDIR: "" + POSTGRES_VERSIONS: "12 13 14 15 16 17 18" + rules: + - if: $CI_PIPELINE_SOURCE == "merge_request_event" + changes: + - .ci/test-sql-snippets.sh + - docs/postgres-howtos/performance-optimization/monitoring/how-to-monitor-xmin-horizon.md + - if: $CI_COMMIT_BRANCH == "master" + script: + - apk add --no-cache bash + - bash .ci/test-sql-snippets.sh + # Stages templates. .job_template: &build_and_push_definition stage: prepare_image diff --git a/docs/postgres-howtos/performance-optimization/monitoring/how-to-monitor-xmin-horizon.md b/docs/postgres-howtos/performance-optimization/monitoring/how-to-monitor-xmin-horizon.md index 9f8beb18..3f243e11 100644 --- a/docs/postgres-howtos/performance-optimization/monitoring/how-to-monitor-xmin-horizon.md +++ b/docs/postgres-howtos/performance-optimization/monitoring/how-to-monitor-xmin-horizon.md @@ -131,49 +131,80 @@ past. To understand what it is, we need to check several system views. An example query: + ```sql with bits as ( select + txid_snapshot_xmin(txid_current_snapshot()) as snapshot_xmin, + -- Primary client backend snapshots can hold back cleanup of user table tuples. ( select backend_xmin from pg_stat_activity - order by age(backend_xmin) desc nulls last + where backend_xmin is not null + order by age(backend_xmin) desc limit 1 - ) as xmin_pg_stat_activity, + ) as data_xmin_pg_stat_activity, + -- Replication slot xmin can hold back cleanup of user table tuples. ( select xmin from pg_replication_slots - order by age(xmin) desc nulls last + where xmin is not null + order by age(xmin) desc limit 1 - ) as xmin_pg_replication_slots, + ) as data_xmin_pg_replication_slots, + -- Logical replication slot catalog_xmin can hold back cleanup of system catalog tuples. + ( + select catalog_xmin + from pg_replication_slots + where catalog_xmin is not null + order by age(catalog_xmin) desc + limit 1 + ) as catalog_xmin_pg_replication_slots, + -- Standby feedback can propagate standby snapshots to the primary. ( select backend_xmin from pg_stat_replication - order by age(backend_xmin) desc nulls last + where backend_xmin is not null + order by age(backend_xmin) desc limit 1 - ) as xmin_pg_stat_replication, + ) as data_xmin_pg_stat_replication, + -- Prepared transactions keep their transaction ID until COMMIT/ROLLBACK PREPARED. ( select transaction from pg_prepared_xacts - order by age(transaction) desc nulls last + order by age(transaction) desc limit 1 - ) as xmin_pg_prepared_xacts + ) as data_xmin_pg_prepared_xacts ) select *, - age(xmin_pg_stat_activity) as xmin_pgsa_age, - age(xmin_pg_replication_slots) as xmin_pgrs_age, - age(xmin_pg_stat_replication) as xmin_pgsr_age, - age(xmin_pg_prepared_xacts) as xmin_pgpx_age, + age(data_xmin_pg_stat_activity) as data_xmin_pg_stat_activity_age, + age(data_xmin_pg_replication_slots) as data_xmin_pg_replication_slots_age, + age(catalog_xmin_pg_replication_slots) as catalog_xmin_pg_replication_slots_age, + age(data_xmin_pg_stat_replication) as data_xmin_pg_stat_replication_age, + age(data_xmin_pg_prepared_xacts) as data_xmin_pg_prepared_xacts_age, greatest( - age(xmin_pg_stat_activity), - age(xmin_pg_replication_slots), - age(xmin_pg_stat_replication), - age(xmin_pg_prepared_xacts) - ) as xmin_horizon_age + age(data_xmin_pg_stat_activity), + age(data_xmin_pg_replication_slots), + age(data_xmin_pg_stat_replication), + age(data_xmin_pg_prepared_xacts) + ) as data_horizon_age, + greatest( + age(data_xmin_pg_stat_activity), + age(data_xmin_pg_replication_slots), + age(data_xmin_pg_stat_replication), + age(data_xmin_pg_prepared_xacts), + age(catalog_xmin_pg_replication_slots) + ) as catalog_horizon_age from bits; ``` + Note that the `min(...)` function cannot be applied to XID values directly, because of their nature (32-bit -and `rotation`) – casting XID to `int` doesn't exist for good reason. But the` age(XID)` function is helpful here. So -instead of considering `xmin_horizon` values, we need to deal with `xmin_horizon_age` instead. +and `rotation`) – casting XID to `int` doesn't exist for good reason. But the `age(XID)` function is helpful here. So +instead of considering raw `xmin` values alone, we need to deal with horizon ages. + +The query separates `data_horizon_age` from `catalog_horizon_age`. `pg_replication_slots.xmin` can hold back cleanup of +user table tuples, while `pg_replication_slots.catalog_xmin` can hold back cleanup of system catalog tuples for logical +replication. Keeping these as separate metrics avoids conflating different failure modes and remediation steps. The raw +`snapshot_xmin` column is included as a cross-version anchor for checking what a fresh transaction can currently see. From 118a3c1b1a44251781840519cbd700db41721dac Mon Sep 17 00:00:00 2001 From: Maya P Date: Fri, 24 Apr 2026 08:05:50 +0000 Subject: [PATCH 14/61] fix: bump DBLab docs references to 4.1.1 --- .../ci-observer-postgres-log-masking.md | 2 +- .../dblab-howtos/administration/data/custom.md | 4 ++-- docs/dblab-howtos/administration/data/dump.md | 4 ++-- .../administration/data/pg_basebackup.md | 4 ++-- .../administration/data/pgbackrest.md | 4 ++-- docs/dblab-howtos/administration/data/rds.md | 8 ++++---- docs/dblab-howtos/administration/data/rsync.md | 4 ++-- docs/dblab-howtos/administration/data/wal-g.md | 4 ++-- .../administration/engine-manage.md | 6 +++--- .../administration/install-dle-manually.md | 18 +++++++++--------- ...abase-lab-engine-configuration-reference.md | 2 +- docs/tutorials/database-lab-tutorial.md | 2 +- 12 files changed, 31 insertions(+), 31 deletions(-) diff --git a/docs/dblab-howtos/administration/ci-observer-postgres-log-masking.md b/docs/dblab-howtos/administration/ci-observer-postgres-log-masking.md index a29d7d72..6c3b0dfe 100644 --- a/docs/dblab-howtos/administration/ci-observer-postgres-log-masking.md +++ b/docs/dblab-howtos/administration/ci-observer-postgres-log-masking.md @@ -14,7 +14,7 @@ keywords: ## Configure masking for PostgreSQL log When Database Lab's CI Observer is used for automated testing of database migrations, it stores PostgreSQL log in DBLab Platform's centralized storage. You can optionally configure masking rules for sensitive data in the PostgreSQL log. Such rules will be continuously applied before sending any PostgreSQL log entries to the Platform's storage. -You can define masking rules in the form of regular expressions. To do it, open the DBLab Engine configuration file (usually, `~/.dblab/engine/configs/server.yml`; see config file examples [here](https://gitlab.com/postgres-ai/database-lab/-/tree/v4.1.0/engine/configs)) and define subsection `replacementRules` in the section `replacementRules`. A basic example: +You can define masking rules in the form of regular expressions. To do it, open the DBLab Engine configuration file (usually, `~/.dblab/engine/configs/server.yml`; see config file examples [here](https://gitlab.com/postgres-ai/database-lab/-/tree/v4.1.1/engine/configs)) and define subsection `replacementRules` in the section `replacementRules`. A basic example: ```yaml observer: replacementRules: diff --git a/docs/dblab-howtos/administration/data/custom.md b/docs/dblab-howtos/administration/data/custom.md index 1b098073..0886fa25 100644 --- a/docs/dblab-howtos/administration/data/custom.md +++ b/docs/dblab-howtos/administration/data/custom.md @@ -16,7 +16,7 @@ To set up it you need to use following jobs: - [physicalSnapshot](/docs/reference-guides/database-lab-engine-configuration-reference#job-physicalsnapshot) ### Options -Copy the example configuration file [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.0/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`. For demo purposes we've used `pg_basebackup` tool, but you can use any tool suitable for the task. Check and update the following options: +Copy the example configuration file [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.1/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`. For demo purposes we've used `pg_basebackup` tool, but you can use any tool suitable for the task. Check and update the following options: - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine - Set connection options in `physicalRestore:options:envs`, based on your tool - Set PostgreSQL commands in `physicalRestore:options:customTool`: @@ -43,7 +43,7 @@ sudo docker run \ --env DOCKER_API_VERSION=1.39 \ --detach \ --restart on-failure \ - postgresai/dblab-server:4.1.0 + postgresai/dblab-server:4.1.1 ``` :::info diff --git a/docs/dblab-howtos/administration/data/dump.md b/docs/dblab-howtos/administration/data/dump.md index 46bb29c6..172427bc 100644 --- a/docs/dblab-howtos/administration/data/dump.md +++ b/docs/dblab-howtos/administration/data/dump.md @@ -15,7 +15,7 @@ In order to set up DBLab Engine to automatically get the data from database usin - [logicalSnapshot](/docs/reference-guides/database-lab-engine-configuration-reference#job-logicalsnapshot) ### Options -Copy the contents of configuration example [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.0/engine/configs/config.example.logical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options: +Copy the contents of configuration example [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.1/engine/configs/config.example.logical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options: - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine - Set connection options in `retrieval:spec:logicalDump:options:source:connection`: - `dbname`: database name to connect to @@ -44,7 +44,7 @@ sudo docker run \ --env DOCKER_API_VERSION=1.39 \ --detach \ --restart on-failure \ - postgresai/dblab-server:4.1.0 + postgresai/dblab-server:4.1.1 ``` You can use PGPASSWORD env to set the password. diff --git a/docs/dblab-howtos/administration/data/pg_basebackup.md b/docs/dblab-howtos/administration/data/pg_basebackup.md index a3d0d23e..bbc39ffb 100644 --- a/docs/dblab-howtos/administration/data/pg_basebackup.md +++ b/docs/dblab-howtos/administration/data/pg_basebackup.md @@ -14,7 +14,7 @@ In order to set up DBLab Engine to automatically get the data from database usin - [physicalSnapshot](/docs/reference-guides/database-lab-engine-configuration-reference#job-physicalsnapshot) ### Options -Copy the contents of configuration example [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.0/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options: +Copy the contents of configuration example [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.1/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options: - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine - Set connection options in `physicalRestore:options:envs`: - `PGUSER`: database user name @@ -44,7 +44,7 @@ sudo docker run \ --env DOCKER_API_VERSION=1.39 \ --detach \ --restart on-failure \ - postgresai/dblab-server:4.1.0 + postgresai/dblab-server:4.1.1 ``` :::info diff --git a/docs/dblab-howtos/administration/data/pgbackrest.md b/docs/dblab-howtos/administration/data/pgbackrest.md index f88a5d21..7199f070 100644 --- a/docs/dblab-howtos/administration/data/pgbackrest.md +++ b/docs/dblab-howtos/administration/data/pgbackrest.md @@ -16,7 +16,7 @@ In order to configure DLE to automatically restore the database using the [pgBac - [physicalSnapshot](/docs/reference-guides/database-lab-engine-configuration-reference#job-physicalsnapshot) ### Options -Copy the example configuration file [`config.example.physical_pgbackrest.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.0/engine/configs/config.example.physical_pgbackrest.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options: +Copy the example configuration file [`config.example.physical_pgbackrest.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.1/engine/configs/config.example.physical_pgbackrest.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options: - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine - Set repository options in `physicalRestore:options:envs`: - pgBackRest allows using environment variables instead of command-line options (see [pgBackRest docs](https://pgbackrest.org/command.html#introduction)): @@ -70,7 +70,7 @@ sudo docker run \ --env DOCKER_API_VERSION=1.39 \ --detach \ --restart on-failure \ - postgresai/dblab-server:4.1.0 + postgresai/dblab-server:4.1.1 ``` :::info diff --git a/docs/dblab-howtos/administration/data/rds.md b/docs/dblab-howtos/administration/data/rds.md index 250b13f1..22c8c0d7 100644 --- a/docs/dblab-howtos/administration/data/rds.md +++ b/docs/dblab-howtos/administration/data/rds.md @@ -25,7 +25,7 @@ If you want to use **IAM database authentication**, read how to enable it [here] You need to know the **master password**. If you lost the password it can be reset. Read how to reset it [here](https://aws.amazon.com/premiumsupport/knowledge-center/reset-master-user-password-rds/). ::: -Copy the contents of configuration example [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.0/engine/configs/config.example.logical_generic.yml) from the DBLab Engine repository to `~/.dblab/engine/configs/server.yml` and update the following options: +Copy the contents of configuration example [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.1/engine/configs/config.example.logical_generic.yml) from the DBLab Engine repository to `~/.dblab/engine/configs/server.yml` and update the following options: - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine - Set connection options in `retrieval:spec:logicalDump:options:source:connection`: - `dbname`: database name to connect to @@ -54,7 +54,7 @@ sudo docker run \ --env DOCKER_API_VERSION=1.39 \ --detach \ --restart on-failure \ - postgresai/dblab-server:4.1.0 + postgresai/dblab-server:4.1.1 ``` :::info @@ -80,7 +80,7 @@ Alternatively, you can add `AmazonRDSFullAccess`, `IAMFullAccess` policies to an ::: ### Set up and run DBLab Engine -Copy the contents of configuration example [`config.example.logical_rds_iam.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.0/engine/configs/config.example.logical_rds_iam.yml) from the DBLab Engine repository to `~/.dblab/engine/configs/server.yml` and update the following options: +Copy the contents of configuration example [`config.example.logical_rds_iam.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.1/engine/configs/config.example.logical_rds_iam.yml) from the DBLab Engine repository to `~/.dblab/engine/configs/server.yml` and update the following options: - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine - Set connection options `retrieval:spec:logicalDump:options:source:connection`: - `dbname`: database name to connect to @@ -120,7 +120,7 @@ sudo docker run \ --env DOCKER_API_VERSION=1.39 \ --detach \ --restart on-failure \ - postgresai/dblab-server:4.1.0 + postgresai/dblab-server:4.1.1 ``` :::info diff --git a/docs/dblab-howtos/administration/data/rsync.md b/docs/dblab-howtos/administration/data/rsync.md index 19755155..c3e2dfcf 100644 --- a/docs/dblab-howtos/administration/data/rsync.md +++ b/docs/dblab-howtos/administration/data/rsync.md @@ -14,7 +14,7 @@ In order to set up DBLab Engine to automatically get the data from database usin - [physicalSnapshot](/docs/reference-guides/database-lab-engine-configuration-reference#job-physicalsnapshot) ### Options -Copy the example configuration file [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.0/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options: +Copy the example configuration file [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.1/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options: - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine - Set connection options in `physicalRestore:options:envs`: - `PGUSER`: database user name @@ -54,7 +54,7 @@ sudo docker run \ --env DOCKER_API_VERSION=1.39 \ --detach \ --restart on-failure \ - postgresai/dblab-server:4.1.0 + postgresai/dblab-server:4.1.1 ``` :::info diff --git a/docs/dblab-howtos/administration/data/wal-g.md b/docs/dblab-howtos/administration/data/wal-g.md index e94f3a60..d1c80c60 100644 --- a/docs/dblab-howtos/administration/data/wal-g.md +++ b/docs/dblab-howtos/administration/data/wal-g.md @@ -14,7 +14,7 @@ In order to set up DBLab Engine to automatically get the data from database usin - [physicalSnapshot](/docs/reference-guides/database-lab-engine-configuration-reference#job-physicalsnapshot) ### Options -Copy the example configuration file [`config.example.physical_walg.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.0/engine/configs/config.example.physical_walg.yml) from the DBLab Engine repository to `~/.dblab/engine/configs/server.yml` and update the following options: +Copy the example configuration file [`config.example.physical_walg.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.1/engine/configs/config.example.physical_walg.yml) from the DBLab Engine repository to `~/.dblab/engine/configs/server.yml` and update the following options: - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine - Set connection options in `physicalRestore:options:envs`: - Use WAL-G environment variables to configure the job, see the [WAL-G configuration reference](https://github.com/wal-g/wal-g#configuration) @@ -50,7 +50,7 @@ sudo docker run \ --env DOCKER_API_VERSION=1.39 \ --detach \ --restart on-failure \ - postgresai/dblab-server:4.1.0 + postgresai/dblab-server:4.1.1 ``` :::info diff --git a/docs/dblab-howtos/administration/engine-manage.md b/docs/dblab-howtos/administration/engine-manage.md index 21d5dfd2..1c46d658 100644 --- a/docs/dblab-howtos/administration/engine-manage.md +++ b/docs/dblab-howtos/administration/engine-manage.md @@ -16,7 +16,7 @@ All YAML features can be used, including anchors and aliases, to help you conven For instance, you can define a binding with `&` and then refer to it using an alias denoted by `*`. -See config examples [here](https://gitlab.com/postgres-ai/database-lab/-/tree/v4.1.0/engine/configs) +See config examples [here](https://gitlab.com/postgres-ai/database-lab/-/tree/v4.1.1/engine/configs) ::: After configuring DBLab Engine, run the following command: @@ -37,7 +37,7 @@ sudo docker run \ --volume /lib/modules:/lib/modules:ro \ --volume /proc:/host_proc:ro \ --env DOCKER_API_VERSION=1.41 \ - postgresai/dblab-server:4.1.0 + postgresai/dblab-server:4.1.1 ``` :::info @@ -105,7 +105,7 @@ If you need to save the logs in a file: sudo docker logs dblab_server 2>&1 | gzip > dblab_server.log.gz ``` -If you want to see more details, enable debug mode setting option `debug` to `true` (see [example](https://gitlab.com/postgres-ai/database-lab/-/tree/v4.1.0/engine/configs)). Next, follow [the reconfiguration guidelines](#reconfigure-dblab-engine) to apply the change. +If you want to see more details, enable debug mode setting option `debug` to `true` (see [example](https://gitlab.com/postgres-ai/database-lab/-/tree/v4.1.1/engine/configs)). Next, follow [the reconfiguration guidelines](#reconfigure-dblab-engine) to apply the change. :::caution When debug mode is turned on, logs may contain sensitive data such as API secret keys for the backup system. diff --git a/docs/dblab-howtos/administration/install-dle-manually.md b/docs/dblab-howtos/administration/install-dle-manually.md index d0a0d0b4..9874aaa3 100644 --- a/docs/dblab-howtos/administration/install-dle-manually.md +++ b/docs/dblab-howtos/administration/install-dle-manually.md @@ -242,11 +242,11 @@ sudo docker stop dblab_pg_initdb sudo docker rm dblab_pg_initdb ``` -Now, we need to take care of DBLab Engine configuration. Copy the contents of configuration example [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.0/engine/configs/config.example.logical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`: +Now, we need to take care of DBLab Engine configuration. Copy the contents of configuration example [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.1/engine/configs/config.example.logical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`: ```bash mkdir -p ~/.dblab/engine/configs -curl -fsSL https://gitlab.com/postgres-ai/database-lab/-/raw/v4.1.0/engine/configs/config.example.logical_generic.yml \ +curl -fsSL https://gitlab.com/postgres-ai/database-lab/-/raw/v4.1.1/engine/configs/config.example.logical_generic.yml \ --output ~/.dblab/engine/configs/server.yml ``` @@ -263,11 +263,11 @@ Open `~/.dblab/engine/configs/server.yml` and edit the following options: If you want to try Database Lab for an existing database, you need to copy the data to PostgreSQL data directory on the Database Lab server, to the directory `/var/lib/dblab/dblab_pool/data`. This step is called "thick cloning". It only needs to be completed once. There are several options to physically copy the data directory. Here we will use the standard PostgreSQL tool, `pg_basebackup`. However, we are not going to use it directly (although, it is possible) – we will specify its options in the DBLab Engine configuration file. -First, copy the example configuration file [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.0/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`: +First, copy the example configuration file [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.1/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`: ```bash mkdir -p ~/.dblab/engine/configs -curl -fsSL https://gitlab.com/postgres-ai/database-lab/-/raw/v4.1.0/engine/configs/config.example.physical_generic.yml \ +curl -fsSL https://gitlab.com/postgres-ai/database-lab/-/raw/v4.1.1/engine/configs/config.example.physical_generic.yml \ --output ~/.dblab/engine/configs/server.yml ``` @@ -288,11 +288,11 @@ If you want to try Database Lab for an existing database, you need to copy the d Here we will configure DBLab Engine to use a "logical" method of thick cloning, dump/restore. -First, copy the example configuration file [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.0/engine/configs/config.example.logical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`: +First, copy the example configuration file [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.1/engine/configs/config.example.logical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`: ```bash mkdir -p ~/.dblab/engine/configs -curl -fsSL https://gitlab.com/postgres-ai/database-lab/-/raw/v4.1.0/engine/configs/config.example.logical_generic.yml \ +curl -fsSL https://gitlab.com/postgres-ai/database-lab/-/raw/v4.1.1/engine/configs/config.example.logical_generic.yml \ --output ~/.dblab/engine/configs/server.yml ``` @@ -340,7 +340,7 @@ sudo docker run \ --env DOCKER_API_VERSION=1.39 \ --detach \ --restart on-failure \ - postgresai/dblab-server:4.1.0 + postgresai/dblab-server:4.1.1 ``` @@ -363,7 +363,7 @@ sudo docker run \ --env DOCKER_API_VERSION=1.39 \ --detach \ --restart on-failure \ - postgresai/dblab-server:4.1.0 + postgresai/dblab-server:4.1.1 ``` @@ -386,7 +386,7 @@ sudo docker run \ --env DOCKER_API_VERSION=1.39 \ --detach \ --restart on-failure \ - postgresai/dblab-server:4.1.0 + postgresai/dblab-server:4.1.1 ``` diff --git a/docs/reference-guides/database-lab-engine-configuration-reference.md b/docs/reference-guides/database-lab-engine-configuration-reference.md index b02e81da..627446b0 100644 --- a/docs/reference-guides/database-lab-engine-configuration-reference.md +++ b/docs/reference-guides/database-lab-engine-configuration-reference.md @@ -10,7 +10,7 @@ DBLab Engine behavior can be controlled using the main configuration file that h DBLab Engine supports [YAML 1.2](https://yaml.org/spec/1.2/spec.html) including anchors, aliases, tags, map merging. ::: -Example config files can be found here: https://gitlab.com/postgres-ai/database-lab/-/tree/v4.1.0/engine/configs. +Example config files can be found here: https://gitlab.com/postgres-ai/database-lab/-/tree/v4.1.1/engine/configs. You may store configuration files in any suitable location. The recommended location of configuration files for DBLab Engine is `~/.dblab/engine/configs`. diff --git a/docs/tutorials/database-lab-tutorial.md b/docs/tutorials/database-lab-tutorial.md index bb676ad9..d9741f8a 100644 --- a/docs/tutorials/database-lab-tutorial.md +++ b/docs/tutorials/database-lab-tutorial.md @@ -144,7 +144,7 @@ ok: [root@5.161.212.233] => { "", "5) DBLab CLI:", " - CLI ('dblab') setup:", - " export DBLAB_CLI_VERSION=4.1.0", + " export DBLAB_CLI_VERSION=4.1.1", " curl -sSL dblab.sh | bash", " dblab init --environment-id=dblab-demo --token=edlhYHOgBPkr4ix1qP3YvQMytfK2JSxH --url=http://127.0.0.1:2346/api", " - CLI docs: https://cli-docs.dblab.dev/", From c500c1472dd58336cd86524d0f4f1174023813ea Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov Date: Wed, 6 May 2026 13:17:47 -0700 Subject: [PATCH 15/61] =?UTF-8?q?ops:=20sunset=20old=20v2=20staging=20?= =?UTF-8?q?=E2=80=94=20gate=20CI=20deploy=20jobs,=20REPLICAS=3D0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitlab-ci.yml | 15 +++++++++++---- deploy/configs/staging.sh | 15 ++++++++++++++- 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a863bb58..ddcf333e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -160,11 +160,19 @@ build_and_push_production: only: - master +# DEPRECATED — old v2 staging (k8s ns `staging`, v2.postgres.ai docs path) +# is being sunset. The `build_and_push_staging` and `deploy_staging` jobs +# below are gated off with `when: never` and kept for git history; full +# deletion is Phase 2. +# New staging is preview-based, deployed from `master` — see +# `build_and_push_main_staging` / `deploy_main_staging` +# (https://docs-main.pgai.green). +# Tracking: https://gitlab.com/postgres-ai/infra/-/work_items/50 build_and_push_staging: <<: *build_and_push_definition <<: *env_staging rules: - - if: $CI_COMMIT_BRANCH == "master" + - when: never deploy_production: <<: *deploy_definition @@ -175,9 +183,8 @@ deploy_production: deploy_staging: <<: *deploy_definition <<: *env_staging - when: manual - except: - - master + rules: + - when: never # --- Green: Preview environments (per-MR) --- diff --git a/deploy/configs/staging.sh b/deploy/configs/staging.sh index f1d22a6c..94b39b00 100644 --- a/deploy/configs/staging.sh +++ b/deploy/configs/staging.sh @@ -1,4 +1,17 @@ -export REPLICAS=1 +# DEPRECATED — old v2 staging environment (k8s ns `staging`, +# served at v2.postgres.ai docs path) is being sunset. +# CI jobs that source this file (build_and_push_staging, deploy_staging) +# are gated off in .gitlab-ci.yml. +# REPLICAS=0 is defensive: any accidental deploy scales the workload to +# zero instead of bringing the env back up. +# +# New staging is preview-based, deployed from `master`: +# - Static docs site: https://docs-main.pgai.green +# (jobs: build_and_push_main_staging, deploy_main_staging) +# +# Tracking: https://gitlab.com/postgres-ai/infra/-/work_items/50 + +export REPLICAS=0 export URL="https://v2.postgres.ai" export BASE_URL="/" export SIGN_IN_URL="https://console-v2.postgres.ai/signin" From c0405854dbd124afbdf09b5ed2fd5938c4788578 Mon Sep 17 00:00:00 2001 From: Ralph1 Date: Fri, 24 Apr 2026 02:19:55 +0000 Subject: [PATCH 16/61] fix: repair moved performance optimization doc links --- .../maintenance/how-to-deal-with-bloat.md | 2 +- .../how-to-deal-with-long-running-transactions-oltp.md | 2 +- .../monitoring/how-to-monitor-xmin-horizon.md | 2 +- docusaurus.config.js | 9 +++++++++ 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/docs/postgres-howtos/database-administration/maintenance/how-to-deal-with-bloat.md b/docs/postgres-howtos/database-administration/maintenance/how-to-deal-with-bloat.md index 1669432a..958fabca 100644 --- a/docs/postgres-howtos/database-administration/maintenance/how-to-deal-with-bloat.md +++ b/docs/postgres-howtos/database-administration/maintenance/how-to-deal-with-bloat.md @@ -97,7 +97,7 @@ only when high table bloat is detected. * Tune `autovacuum`. * Monitor the `xmin` horizon and don't allow it to be too far in the past -- - [Day 45: How to monitor xmin horizon to prevent XID/MultiXID wraparound and high bloat](/docs/postgres-howtos/performance-optimization/statistics/how-to-monitor-xmin-horizon). + [Day 45: How to monitor xmin horizon to prevent XID/MultiXID wraparound and high bloat](/docs/postgres-howtos/performance-optimization/monitoring/how-to-monitor-xmin-horizon). * Do not allow unnecessary long-running transactions (e.g., > 1h), neither on the primary, nor on standbys with `hot_standby_feedback` turned on. * If on Postgres 13 or older, consider upgrading to 14+ to benefit from btree index optimizations. diff --git a/docs/postgres-howtos/database-administration/maintenance/how-to-deal-with-long-running-transactions-oltp.md b/docs/postgres-howtos/database-administration/maintenance/how-to-deal-with-long-running-transactions-oltp.md index 01eb10c7..946018f2 100644 --- a/docs/postgres-howtos/database-administration/maintenance/how-to-deal-with-long-running-transactions-oltp.md +++ b/docs/postgres-howtos/database-administration/maintenance/how-to-deal-with-long-running-transactions-oltp.md @@ -126,7 +126,7 @@ long-running transaction, to understand what queries it consists of. Without suc of data (queries are fast, they are usually below `log_min_duration_statement`), so we don't see them in logs. In this case, we can apply the method described in #PostgresMarathon -[Ad-hoc monitoring](/docs/postgres-howtos/performance-optimization/statistics/ad-hoc-monitoring) and sample long (> 1min) transactions every 1 +[Ad-hoc monitoring](/docs/postgres-howtos/performance-optimization/monitoring/ad-hoc-monitoring) and sample long (> 1min) transactions every 1 second (might be worth increasing the frequency here): ```sql diff --git a/docs/postgres-howtos/performance-optimization/monitoring/how-to-monitor-xmin-horizon.md b/docs/postgres-howtos/performance-optimization/monitoring/how-to-monitor-xmin-horizon.md index 3f243e11..3fe8f6dc 100644 --- a/docs/postgres-howtos/performance-optimization/monitoring/how-to-monitor-xmin-horizon.md +++ b/docs/postgres-howtos/performance-optimization/monitoring/how-to-monitor-xmin-horizon.md @@ -26,7 +26,7 @@ estimated_time: 6 min Previously, we discussed -[how to implement monitoring for the risks of XID (transaction ID) and MultiXID wraparound](/docs/postgres-howtos/performance-optimization/statistics/how-to-monitor-transaction-id-wraparound-risks). +[how to implement monitoring for the risks of XID (transaction ID) and MultiXID wraparound](/docs/postgres-howtos/performance-optimization/monitoring/how-to-monitor-transaction-id-wraparound-risks). That type of check is critical and a must-have in any monitoring. However, while it helps you understand the risk level, it doesn't reveal the root cause – something that you'll diff --git a/docusaurus.config.js b/docusaurus.config.js index 1fcbc939..1af35fec 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -430,6 +430,15 @@ module.exports = { { from: '/docs/platform/how-to-install-mcp', to: '/docs/postgresai-howtos/how-to-install-mcp' }, { from: '/docs/platform/how-to-work-with-issues', to: '/docs/postgresai-howtos/how-to-work-with-issues' }, + // Performance optimization redirects (moved from statistics to monitoring / other categories) + { from: '/docs/postgres-howtos/performance-optimization/statistics', to: '/docs/postgres-howtos/performance-optimization/monitoring' }, + { from: '/docs/postgres-howtos/performance-optimization/statistics/index', to: '/docs/postgres-howtos/performance-optimization/monitoring' }, + { from: '/docs/postgres-howtos/performance-optimization/statistics/ad-hoc-monitoring', to: '/docs/postgres-howtos/performance-optimization/monitoring/ad-hoc-monitoring' }, + { from: '/docs/postgres-howtos/performance-optimization/statistics/how-to-monitor-transaction-id-wraparound-risks', to: '/docs/postgres-howtos/performance-optimization/monitoring/how-to-monitor-transaction-id-wraparound-risks' }, + { from: '/docs/postgres-howtos/performance-optimization/statistics/how-to-monitor-xmin-horizon', to: '/docs/postgres-howtos/performance-optimization/monitoring/how-to-monitor-xmin-horizon' }, + { from: '/docs/postgres-howtos/performance-optimization/statistics/how-to-troubleshoot-streaming-replication-lag', to: '/docs/postgres-howtos/advanced-topics/replication/how-to-troubleshoot-streaming-replication-lag' }, + { from: '/docs/postgres-howtos/performance-optimization/statistics/how-to-run-analyze', to: '/docs/postgres-howtos/database-administration/maintenance/how-to-run-analyze' }, + // DBLab how-tos redirects (moved from /docs/how-to-guides to /docs/dblab-howtos) { from: '/docs/how-to-guides', to: '/docs/dblab-howtos' }, From 746180a39cfbfa008c0b67c1f03d2e518821c552 Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov Date: Thu, 7 May 2026 11:43:18 -0700 Subject: [PATCH 17/61] docs(cli): align CLI reference with current implementation --- .../postgresai-cli-reference.md | 768 +++++++++++++----- 1 file changed, 545 insertions(+), 223 deletions(-) diff --git a/docs/reference-guides/postgresai-cli-reference.md b/docs/reference-guides/postgresai-cli-reference.md index 4982a36d..71c967b8 100644 --- a/docs/reference-guides/postgresai-cli-reference.md +++ b/docs/reference-guides/postgresai-cli-reference.md @@ -3,10 +3,13 @@ title: PostgresAI CLI reference sidebar_label: PostgresAI CLI keywords: - "postgresai cli" + - "pgai cli" - "postgres_ai cli" - "postgres_ai monitoring cli" - "mcp" - "issues" + - "checkup" + - "prepare-db" --- import Tabs from '@theme/Tabs'; @@ -14,11 +17,20 @@ import TabItem from '@theme/TabItem'; ## Description -PostgresAI Command Line Interface (`postgresai`) is a tool for working with postgres_ai monitoring, including authentication, MCP integration, and issue management. +PostgresAI Command Line Interface is a tool for working with PostgresAI: +preparing databases for monitoring, running local monitoring stacks, +generating health-check reports, browsing and managing issues in the +PostgresAI Console, and exposing PostgresAI tools to AI coding clients +over MCP. + +The CLI is published as the `postgresai` npm package and ships two +equivalent binaries: `postgresai` (canonical) and `pgai` (short alias). +Both names accept exactly the same commands and options; this page uses +`postgresai` throughout. ## Getting started -To install and authenticate, see [PostgresAI CLI](/docs/postgresai-howtos/postgresai-cli). +To install and authenticate, see the [PostgresAI CLI how-to](/docs/postgresai-howtos/postgresai-cli). ## Synopsis @@ -27,6 +39,8 @@ To install and authenticate, see [PostgresAI CLI](/docs/postgresai-howtos/postgr ```bash postgresai [global options] [command options] [arguments...] +# or, equivalently: +pgai [global options] [command options] [arguments...] ``` @@ -46,25 +60,43 @@ bunx postgresai [global options] [command options] [arguments...] -Run `postgresai --help` to list available commands and global options. For command-specific help, run `postgresai --help`. +Run `postgresai --help` to list available commands and global options. +For command-specific help, run `postgresai --help` (works for +nested subcommands too, e.g. `postgresai mon targets --help`). + +## Global options + +These options apply to every command and override the corresponding +environment variables and configuration file values: + +- `--api-key ` — API key (overrides `PGAI_API_KEY`). +- `--api-base-url ` — API base URL for backend RPC (overrides `PGAI_API_BASE_URL`; default `https://postgres.ai/api/general/`). +- `--ui-base-url ` — UI base URL for browser routes (overrides `PGAI_UI_BASE_URL`; default `https://console.postgres.ai`). +- `--storage-base-url ` — Storage base URL for file uploads (overrides `PGAI_STORAGE_BASE_URL`). + +Configuration is stored in `~/.config/postgresai/config.json`. ## Command overview ``` COMMANDS: - auth authenticate via browser and store API key locally - init create a monitoring role, required view(s), and grant permissions - mon manage monitoring services - issues manage issue reports in PostgresAI Console - mcp MCP server integration for AI coding tools - add-key store API key locally - show-key show the current API key (masked) - remove-key remove the stored API key + prepare-db prepare a database for monitoring (idempotent) + unprepare-db remove monitoring setup from a database + checkup generate health-check reports directly from PostgreSQL + mon manage the local monitoring stack + auth authenticate and manage the local API key + issues manage issues, comments, and action items in PostgresAI Console + reports list and download checkup reports stored in PostgresAI Console + mcp MCP server integration for AI coding tools + set-default-project store the default project for checkup uploads + set-storage-url store the storage base URL for file uploads + help show help ``` -## Command: `auth` +## Command: `prepare-db` -Authenticate via browser and store the API key locally. +Prepare a database for monitoring: create the monitoring user, the +required view(s), and grant permissions. The command is idempotent. **Usage** @@ -72,405 +104,695 @@ Authenticate via browser and store the API key locally. ```bash -postgresai auth +postgresai prepare-db [conn] [options] ``` ```bash -npx postgresai auth +npx postgresai prepare-db [conn] [options] ``` ```bash -bunx postgresai auth +bunx postgresai prepare-db [conn] [options] ``` -**Notes** +`[conn]` is an optional positional admin connection string. Both URL +form (`postgresql://admin@host:5432/dbname`) and libpq key/value form +(`"dbname=dbname host=host user=admin"`) are accepted; psql-like +options (`-h`, `-p`, `-U`, `-d`) are also supported. -- Configuration is stored in `~/.config/postgresai/config.json`. +**Examples** -## Command: `init` +```bash +postgresai prepare-db postgresql://admin@host:5432/dbname +postgresai prepare-db "dbname=dbname host=host user=admin" +postgresai prepare-db -h host -p 5432 -U admin -d dbname -Create or update the monitoring role, required view(s), and grant required permissions (idempotent). +# Verify only (no changes) +postgresai prepare-db postgresql://admin@host:5432/dbname --verify -**Usage** +# Dry run: print SQL plan +postgresai prepare-db postgresql://admin@host:5432/dbname --print-sql - - +# Reset only the monitoring role password +postgresai prepare-db postgresql://admin@host:5432/dbname \ + --reset-password --password 'new_password' -```bash -postgresai init +# Supabase mode (uses Management API instead of direct connection) +SUPABASE_ACCESS_TOKEN=... SUPABASE_PROJECT_REF=... \ + postgresai prepare-db --supabase ``` - - +**Connection options** -```bash -npx postgresai init -``` +- `-h, --host ` — PostgreSQL host (psql-like). +- `-p, --port ` — PostgreSQL port (psql-like). +- `-U, --username ` — PostgreSQL admin user (psql-like). +- `-d, --dbname ` — PostgreSQL database name (psql-like). +- `--admin-password ` — admin password (otherwise uses `PGPASSWORD` if set). +- `--db-url ` — admin connection URL (deprecated; pass it as the positional `[conn]` argument). - - +**Monitoring role options** -```bash -bunx postgresai init -``` +- `--monitoring-user ` — monitoring role name to create or update (default: `postgres_ai_monitoring`). +- `--password ` — monitoring role password (overrides `PGAI_MON_PASSWORD`). If neither is provided, a strong password is generated. +- `--print-password` — print the generated monitoring password (dangerous in CI logs). +- `--skip-optional-permissions` — skip optional permissions (RDS / self-managed extras). +- `--provider ` — database provider (e.g. `supabase`); affects which steps run. - - +**Modes** -**Examples** +- `--verify` — verify that the monitoring role and permissions are in place; make no changes. +- `--reset-password` — reset only the monitoring role password. +- `--print-sql` — print the SQL plan and exit; apply no changes. +- `--json` — output the result as machine-readable JSON. - - +**Supabase mode** -```bash -postgresai init postgresql://admin@host:5432/dbname -postgresai init "dbname=dbname host=host user=admin" -postgresai init -h host -p 5432 -U admin -d dbname -``` +- `--supabase` — use the Supabase Management API instead of a direct PostgreSQL connection. +- `--supabase-access-token ` — Supabase Management API token (or `SUPABASE_ACCESS_TOKEN` env var). Tokens can be created on the [Supabase access tokens page](https://supabase.com/dashboard/account/tokens). +- `--supabase-project-ref ` — Supabase project reference (or `SUPABASE_PROJECT_REF` env var). Auto-detected from a Supabase database URL when one is supplied as `[conn]`. - - +## Command: `unprepare-db` + +Reverse `prepare-db`: drop the monitoring user, views, schema, and +revoke permissions. + +**Usage** ```bash -npx postgresai init postgresql://admin@host:5432/dbname -npx postgresai init "dbname=dbname host=host user=admin" -npx postgresai init -h host -p 5432 -U admin -d dbname +postgresai unprepare-db [conn] [options] ``` - - +**Options** + +- `-h, --host`, `-p, --port`, `-U, --username`, `-d, --dbname`, + `--admin-password`, `--db-url ` (deprecated) — admin connection + parameters, same as `prepare-db`. +- `--monitoring-user ` — monitoring role to remove (default: `postgres_ai_monitoring`). +- `--keep-role` — keep the monitoring role; only revoke permissions and drop objects. +- `--provider ` — database provider (affects which steps run). +- `--print-sql` — print the SQL plan and exit; apply no changes. +- `--force` — skip the confirmation prompt. +- `--json` — output the result as machine-readable JSON. + +## Command: `checkup` + +Generate health-check reports directly from PostgreSQL ("express mode") +and optionally upload them to the PostgresAI Console. + +**Usage** ```bash -bunx postgresai init postgresql://admin@host:5432/dbname -bunx postgresai init "dbname=dbname host=host user=admin" -bunx postgresai init -h host -p 5432 -U admin -d dbname +# Run all checks +postgresai checkup + +# Run a specific check (CHECK_ID matches /^[A-Z]\d{3}$/, e.g. H002) +postgresai checkup ``` - - +`` accepts the same URL / libpq / psql-like forms as +`prepare-db`. -**Common options** +**Options** -- `--verify`: verify that monitoring role/permissions are in place (no changes). -- `--reset-password`: reset monitoring role password only. -- `--print-sql`: print SQL plan and exit (no changes applied). -- `--skip-optional-permissions`: skip optional permissions (managed and self-managed extras). +- `--check-id ` — specific check to run (or `ALL`). Equivalent to passing the check ID as the first positional argument. +- `--node-name ` — node name embedded in reports (default: `node-01`). +- `--output ` — write JSON results to this directory. +- `--upload` / `--no-upload` — upload JSON results to PostgresAI Console (requires API key). Default depends on whether an API key is configured. +- `--project ` — project name or ID for the upload (used with `--upload`). Defaults to the value stored by [`set-default-project`](#command-set-default-project); a project is auto-generated on first run if needed. +- `--json` — print JSON to stdout. +- `--markdown` — print Markdown to stdout. + +Run `postgresai checkup --help` to see the list of available check IDs +and titles bundled with your CLI version. ## Command: `mon` -Manage monitoring services. +Manage the local monitoring stack (Docker Compose-based: collectors, +VictoriaMetrics, Grafana, …). **Usage** - - - ```bash postgresai mon [options] ``` - - +**Subcommands** -```bash -npx postgresai mon [options] -``` +- `local-install` — install the local monitoring stack: generate `.env`, configure services, and start them. +- `start` — start monitoring services. +- `stop` — stop monitoring services. +- `restart [service]` — restart all services or a specific one. +- `status` — show services status. +- `health` — check that services are up and healthy. +- `logs [service]` — show logs for all services or a specific one. +- `config` — show monitoring configuration. +- `update-config` — apply configuration changes (regenerate datasources, …). +- `update` — update the monitoring stack. +- `reset [service]` — reset all services or a specific one (removes data). +- `clean` — clean up monitoring artifacts (stops services and removes volumes). +- `check` — system readiness check. +- `shell ` — open an interactive shell in a monitoring service container. +- `targets` — manage databases to monitor (see below). +- `generate-grafana-password` — generate a new Grafana password. +- `show-grafana-credentials` — show Grafana credentials. - - +### Subcommand: `mon local-install` + +Install (or re-install) the local monitoring stack. Replaces the older +`mon quickstart` name. ```bash -bunx postgresai mon [options] +postgresai mon local-install [options] ``` - - - -**Subcommands** +**Options** -- `quickstart`: complete setup (generate config and start services). -- `start`: start monitoring services. -- `stop`: stop monitoring services. -- `restart [service]`: restart all services or a specific service. -- `status`: show services status. -- `health`: check that services are up and healthy. -- `targets`: manage databases to monitor. -- `logs [service]`: show logs for all or a specific service. -- `config`: show monitoring configuration. -- `update-config`: apply configuration changes (generate sources). -- `update`: update monitoring stack. -- `reset [service]`: reset all or a specific service data. -- `clean`: cleanup artifacts. -- `check`: system readiness check. -- `shell `: open a shell in a monitoring service container. -- `generate-grafana-password`: generate a new Grafana password. -- `show-grafana-credentials`: show Grafana credentials. - -### Subcommand: `quickstart` - -Complete setup (generate config and start monitoring services). +- `--demo` — demo mode with a sample database (for testing; cannot be combined with `--api-key`). +- `--api-key ` — PostgresAI API key for automated report uploads. +- `--db-url ` — PostgreSQL connection URL to monitor (form: `postgresql://user:pass@host:port/db`). +- `--tag ` — Docker image tag to use (e.g. `0.14.0`, `0.14.0-dev.33`). +- `--project ` — Docker Compose project name (default: `postgres_ai`). +- `-y, --yes` — accept all defaults and skip interactive prompts. -**Usage** +`local-install` writes `.env` in the monitoring directory, preserving +existing `REPLICATOR_PASSWORD` and `VM_AUTH_*` values or generating new +random ones when missing. `VM_AUTH_USERNAME` defaults to `vmauth` when +absent. The replication password is used by the demo PostgreSQL standby, +and the VM auth credentials are required before Docker Compose can +provision Grafana datasources. To rotate VM auth credentials manually, +run `VM_AUTH_PASSWORD="$(openssl rand -base64 18)" ./scripts/rotate-vm-auth.sh` +from the monitoring directory. - - +### Subcommand: `mon health` ```bash -postgresai mon quickstart [--demo] [--api-key ] [--db-url ] [-y] +postgresai mon health [--wait ] ``` - - +- `--wait ` — wait up to `` for services to become healthy (default: `0`, i.e. check once and return). + +### Subcommand: `mon logs` ```bash -npx postgresai mon quickstart [--demo] [--api-key ] [--db-url ] [-y] +postgresai mon logs [service] [options] ``` - - +- `-f, --follow` — follow logs. +- `--tail ` — number of trailing lines (default: `all`). + +### Subcommand: `mon clean` ```bash -bunx postgresai mon quickstart [--demo] [--api-key ] [--db-url ] [-y] +postgresai mon clean [--keep-volumes] ``` - - - -### Subcommand group: `targets` +- `--keep-volumes` — keep data volumes (only stop and remove containers). -Manage databases to monitor. +### Subcommand group: `mon targets` -**Usage** - - - +Manage databases monitored by the local stack. ```bash postgresai mon targets [args] ``` - - +**Subcommands** + +- `list` — list configured monitoring targets. +- `add [conn-string] [name]` — add a Postgres instance to monitor. Both arguments are optional; missing values are prompted for interactively. +- `remove ` — remove a monitoring target. +- `test ` — test connectivity to a configured target. + +## Command: `auth` + +Authentication and API-key management. `auth` is a command group; the +default subcommand is `login`, so plain `postgresai auth` triggers an +OAuth flow. + +**Usage** ```bash -npx postgresai mon targets [args] +postgresai auth [subcommand] [options] ``` - - +**Subcommands** + +- `login` (default) — authenticate via browser (OAuth) or store an API key directly. +- `show-key` — show the current API key, masked. +- `remove-key` — remove the stored API key. + +### Subcommand: `auth login` ```bash -bunx postgresai mon targets [args] +postgresai auth # OAuth via browser +postgresai auth --set-key # store an API key directly +postgresai auth login --port 7777 --debug # explicit form ``` - - +**Options** -**Subcommands** +- `--set-key ` — store an API key directly without going through the OAuth flow. +- `--port ` — local callback server port (default: random). +- `--debug` — enable debug output. -- `list`: list configured monitoring targets. -- `add [name]`: add a Postgres instance to monitor. -- `remove `: remove a monitoring target. -- `test `: test connectivity to a configured target. +The browser flow opens your default browser, prompts for organization +selection, and writes the resulting API key to +`~/.config/postgresai/config.json`. ## Command: `issues` -Manage issue reports in PostgresAI Console. +Manage issues, comments, and action items in the PostgresAI Console. **Usage** - - - ```bash postgresai issues [options] ``` - - +All `issues` subcommands accept `--debug` (enable debug output) and +`--json` (force raw JSON output instead of the default human-friendly +YAML). When stdout is not a TTY (e.g. piped or redirected), JSON is +selected automatically. + +**Subcommands** + +- `list` — list issues. +- `view ` — view issue details and comments. +- `create [options]` — create a new issue. +- `update [options]` — update an existing issue. +- `post-comment [options]` — post a comment. +- `update-comment [options]` — update an existing comment. +- `files upload ` — upload a file to storage and print a markdown link. +- `files download [-o ]` — download a file from storage. +- `action-items ` — list action items for an issue. +- `view-action-item [ ...]` — view one or more action items in detail. +- `create-action-item [options]` — create an action item. +- `update-action-item <actionItemId> [options]` — update an action item. + +### `issues list` ```bash -npx postgresai issues <subcommand> [options] +postgresai issues list [--status <status>] [--limit <n>] [--offset <n>] ``` -</TabItem> -<TabItem value="bunx" label="bunx"> +- `--status <status>` — filter by status: `open`, `closed`, or `all` (default: `all`). +- `--limit <n>` — maximum number of issues to return (default: `20`). +- `--offset <n>` — number of issues to skip (default: `0`). + +### `issues view` ```bash -bunx postgresai issues <subcommand> [options] +postgresai issues view <issueId> ``` -</TabItem> -</Tabs> +### `issues create` -**Subcommands** +```bash +postgresai issues create <title> [options] +``` -- `list`: list issues. -- `view <issue_id>`: view issue details (and comments). -- `post_comment <issue_id> <content>`: post a comment to an issue. +- `--org-id <id>` — organization ID (defaults to the configured `orgId`). +- `--project-id <id>` — project ID. +- `--description <text>` — issue description (use `\n` for newlines). +- `--label <label>` — issue label; repeat to add multiple. +- `--attach <path>` — attach a local file (uploads to storage and appends a markdown link to the description); repeatable. -**Examples** +### `issues update` -<Tabs groupId="cli-runner" queryString> -<TabItem value="cli" label="Installed CLI" default> +```bash +postgresai issues update <issueId> [options] +``` + +- `--title <text>` — new title (use `\n` for newlines). +- `--description <text>` — new description (use `\n` for newlines). +- `--status <value>` — `open`, `closed`, `0`, or `1`. +- `--label <label>` — set labels; repeatable. If provided, replaces existing labels. +- `--clear-labels` — set labels to an empty list. +- `--attach <path>` — attach a file; appends a markdown link to `--description`. If `--description` is omitted, the existing description is fetched and the link appended to it. + +### `issues post-comment` ```bash -postgresai issues list -postgresai issues view <issue_id> -postgresai issues post_comment <issue_id> "comment" +postgresai issues post-comment <issueId> <content> [options] ``` -</TabItem> -<TabItem value="npx" label="npx"> +- `--parent <uuid>` — parent comment ID (for threaded replies). +- `--attach <path>` — attach a file; appends a markdown link to the comment body. Repeatable. + +### `issues update-comment` ```bash -npx postgresai issues list -npx postgresai issues view <issue_id> -npx postgresai issues post_comment <issue_id> "comment" +postgresai issues update-comment <commentId> <content> [options] ``` -</TabItem> -<TabItem value="bunx" label="bunx"> +- `--attach <path>` — attach a file; appends a markdown link to `<content>`. Repeatable. + +### `issues files` ```bash -bunx postgresai issues list -bunx postgresai issues view <issue_id> -bunx postgresai issues post_comment <issue_id> "comment" +# Upload a local file; prints the storage URL and a ready-to-paste markdown link. +postgresai issues files upload <path> + +# Download a file from storage; without -o, derives the filename from the URL. +postgresai issues files download <url> [-o <output_path>] ``` -</TabItem> -</Tabs> +#### Attaching files to issues and comments (`--attach`) -## Command: `mcp` +`create`, `update`, `post-comment`, and `update-comment` accept a +repeatable `--attach <path>` flag. Each file is uploaded to PostgresAI +storage and a markdown link is appended to the comment body or issue +description. Image extensions (`.png`, `.jpg`, `.jpeg`, `.gif`, +`.webp`, `.svg`, `.bmp`, `.ico`) render inline as `![](url)`; other +files render as `[](url)`. Multiple `--attach` flags preserve order; +each link goes on its own line. -MCP server integration for AI coding tools. +```bash +# Attach a screenshot to a new comment +postgresai issues post-comment <issueId> "Saw this in prod" --attach screenshot.png -**Usage** +# Attach multiple files to a new issue +postgresai issues create "Slow query" --org-id 4 \ + --description "Plan attached" --attach plan.txt --attach flame.svg -<Tabs groupId="cli-runner" queryString> -<TabItem value="cli" label="Installed CLI" default> +# Attach a file to an existing issue without changing the description +postgresai issues update <issueId> --attach trace.log +``` + +### `issues action-items` ```bash -postgresai mcp <subcommand> [options] +postgresai issues action-items <issueId> +postgresai issues view-action-item <actionItemId> [<actionItemId> ...] ``` -</TabItem> -<TabItem value="npx" label="npx"> +### `issues create-action-item` ```bash -npx postgresai mcp <subcommand> [options] +postgresai issues create-action-item <issueId> <title> [options] ``` -</TabItem> -<TabItem value="bunx" label="bunx"> +- `--description <text>` — detailed description (use `\n` for newlines). +- `--sql-action <sql>` — SQL command to execute. +- `--config <json>` — config change as JSON, e.g. `'{"parameter":"work_mem","value":"64MB"}'`. Repeatable. + +### `issues update-action-item` ```bash -bunx postgresai mcp <subcommand> [options] +postgresai issues update-action-item <actionItemId> [options] ``` -</TabItem> -</Tabs> +- `--title <text>`, `--description <text>` — update title or description. +- `--done` / `--not-done` — mark as done or not done. +- `--status <value>` — `waiting_for_approval`, `approved`, or `rejected`. +- `--status-reason <text>` — reason for the status change. +- `--sql-action <sql>` — update the SQL command (use `""` to clear). +- `--config <json>` — replace config changes; repeatable. +- `--clear-configs` — remove all config changes. -**Subcommands** +### Output format for `issues` commands + +By default, `issues` commands print human-friendly YAML to a terminal. +For scripting: + +- Pass `--json` to force JSON output: -- `start`: start the MCP server in stdio mode. -- `install [client]`: install MCP client configuration for a supported tool. + ```bash + postgresai issues list --json | jq '.[] | {id, title}' + ``` -## Command: `add-key` +- Or rely on auto-detection: when stdout is not a TTY, output is JSON + automatically: -Store an API key locally. + ```bash + postgresai issues view <issueId> > issue.json + ``` + +## Command: `reports` + +List and download checkup reports stored in the PostgresAI Console. **Usage** -<Tabs groupId="cli-runner" queryString> -<TabItem value="cli" label="Installed CLI" default> +```bash +postgresai reports <subcommand> [options] +``` + +**Subcommands** + +- `list [options]` — list checkup reports. +- `files [reportId] [options]` — list files (metadata only) of a checkup report. +- `data [reportId] [options]` — fetch report file contents (markdown / JSON). + +### `reports list` ```bash -postgresai add-key <key> +postgresai reports list [options] ``` -</TabItem> -<TabItem value="npx" label="npx"> +- `--project-id <id>` — filter by project ID. +- `--limit <n>` — maximum number of reports to return (default: `20`, max: `100`). +- `--before <date>` — show reports created before this date (`YYYY-MM-DD`, `DD.MM.YYYY`, etc.). +- `--all` — fetch all reports (paginated automatically). Mutually exclusive with `--before`. +- `--json` — output raw JSON. + +### `reports files` ```bash -npx postgresai add-key <key> +postgresai reports files [reportId] [options] ``` -</TabItem> -<TabItem value="bunx" label="bunx"> +Either `reportId` or `--check-id` is required. + +- `--type <type>` — filter by file type: `json` or `md`. +- `--check-id <id>` — filter by check ID (e.g. `H002`). +- `--json` — output raw JSON. + +### `reports data` ```bash -bunx postgresai add-key <key> +postgresai reports data [reportId] [options] ``` -</TabItem> -</Tabs> +- `--type <type>` — filter by file type: `json` or `md`. +- `--check-id <id>` — filter by check ID (e.g. `H002`). +- `--formatted` — render markdown with ANSI styling (experimental). +- `-o, --output <dir>` — save files to a directory (using their original filenames). +- `--json` — output raw JSON. -## Command: `show-key` +## Command: `mcp` -Show the currently configured API key (masked). +MCP (Model Context Protocol) server integration for AI coding tools. **Usage** -<Tabs groupId="cli-runner" queryString> -<TabItem value="cli" label="Installed CLI" default> - ```bash -postgresai show-key +postgresai mcp <subcommand> [options] ``` -</TabItem> -<TabItem value="npx" label="npx"> +**Subcommands** + +- `start` — start the MCP stdio server, exposing PostgresAI tools. +- `install [client]` — install MCP client configuration for a supported AI coding tool. + +### `mcp start` ```bash -npx postgresai show-key +postgresai mcp start [--debug] ``` -</TabItem> -<TabItem value="bunx" label="bunx"> +Starts an MCP server over stdio. Intended to be launched by an MCP +client (e.g. Cursor, Claude Code) rather than invoked directly. + +### `mcp install` ```bash -bunx postgresai show-key +postgresai mcp install [client] ``` -</TabItem> -</Tabs> +Installs an `mcpServers.postgresai` entry pointing at the current +`postgresai` binary, with `mcp start` as its arguments. -## Command: `remove-key` +`client` may be one of: -Remove the stored API key. +- `cursor` — writes to `~/.cursor/mcp.json`. +- `claude-code` — runs `claude mcp add -s user postgresai <pgai> mcp start`. +- `windsurf` — writes to `~/.windsurf/mcp.json`. +- `codex` — writes to `~/.codex/mcp.json`. -**Usage** +If `client` is omitted, you are prompted to choose interactively +(1=Cursor, 2=Claude Code, 3=Windsurf, 4=Codex). -<Tabs groupId="cli-runner" queryString> -<TabItem value="cli" label="Installed CLI" default> +A typical Cursor entry looks like: + +```json +{ + "mcpServers": { + "postgresai": { + "command": "postgresai", + "args": ["mcp", "start"], + "env": { + "PGAI_API_BASE_URL": "https://postgres.ai/api/general/" + } + } + } +} +``` + +**MCP tools exposed** + +- `list_issues` — same JSON as `postgresai issues list`. +- `view_issue` — view a single issue with its comments. +- `create_issue` — create a new issue. +- `update_issue` — update title / description / status / labels. +- `post_issue_comment` — post a comment. +- `update_issue_comment` — update an existing comment. +- `upload_file` — upload a local file and return the storage URL plus a ready-to-paste markdown link. +- `download_file` — download a file from storage. + +The issue / comment tools accept an optional `attachments: string[]` of +local file paths. Each file is uploaded to PostgresAI storage and the +resulting markdown link is appended to the comment body or issue +description, using the same image-extension rules as the `--attach` +CLI flag. + +For `post_issue_comment` and `update_issue_comment`, either `content` or +`attachments` must be non-empty (attachments alone are allowed). For +`update_issue` with `attachments` but no `description`, the existing +description is fetched first and the new links are appended to it. + +#### MCP threat model + +The MCP server runs in your local user account with your PostgresAI API +key. It treats the connected MCP client (the LLM agent) as **trusted** — +the same way the CLI treats you when you type a command. In particular: + +- `upload_file` and the `attachments: string[]` parameter on the issue / + comment tools read **any local file the CLI process can read**, + including secrets like `~/.ssh/id_rsa`, `~/.aws/credentials`, or + `~/.config/postgresai/config.json` (which contains your own API + key). The file's bytes are uploaded to PostgresAI storage and the + resulting URL becomes visible to anyone with read access to the + issue or comment it ends up in. +- `download_file` writes to **any path the CLI process can write to** + when `output_path` is supplied (`~/.ssh/authorized_keys`, + `~/.bashrc`, etc. are all fair game). When `output_path` is omitted, + downloads are restricted to the current working directory. + +This is fine when the agent and the upstream context the agent is +reading are trusted. It is **not** safe to run this MCP server against +an agent that is processing untrusted text (issue bodies, comments, web +pages, third-party docs) without additional sandboxing — a +prompt-injection in any input the agent reads could be used to +exfiltrate local secrets or write arbitrary files. If you need to +expose this MCP server to such an agent, run the agent (and this +server) in a container or restricted user account that has no access +to anything sensitive. + +## Command: `set-default-project` + +Store the default project used for `checkup` uploads and other +project-scoped operations. ```bash -postgresai remove-key +postgresai set-default-project <project> ``` -</TabItem> -<TabItem value="npx" label="npx"> +## Command: `set-storage-url` + +Store the storage base URL used for file uploads. Equivalent to setting +`PGAI_STORAGE_BASE_URL` permanently in the configuration file. ```bash -npx postgresai remove-key +postgresai set-storage-url <url> ``` -</TabItem> -<TabItem value="bunx" label="bunx"> +## Configuration + +The CLI stores configuration in `~/.config/postgresai/config.json`, +including: + +- API key +- API / UI / storage base URLs +- Organization ID +- Default project + +### Configuration priority + +API key resolution order: + +1. Command-line option (`--api-key`). +2. Environment variable (`PGAI_API_KEY`). +3. User config file (`~/.config/postgresai/config.json`). +4. Legacy project config (`.pgwatch-config`). + +Base URL resolution order: + +- API base URL (`apiBaseUrl`): + 1. Command-line option (`--api-base-url`). + 2. Environment variable (`PGAI_API_BASE_URL`). + 3. User config file (`baseUrl` in `~/.config/postgresai/config.json`). + 4. Default: `https://postgres.ai/api/general/`. +- UI base URL (`uiBaseUrl`): + 1. Command-line option (`--ui-base-url`). + 2. Environment variable (`PGAI_UI_BASE_URL`). + 3. Default: `https://console.postgres.ai`. +- Storage base URL (`storageBaseUrl`): + 1. Command-line option (`--storage-base-url`). + 2. Environment variable (`PGAI_STORAGE_BASE_URL`). + 3. Value stored by `postgresai set-storage-url`. + +A single trailing `/` is stripped from URL values to ensure consistent +path joining. + +### Environment variables + +- `PGAI_API_KEY` — API key for PostgresAI services. +- `PGAI_API_BASE_URL` — API endpoint for backend RPC (default: `https://postgres.ai/api/general/`). +- `PGAI_UI_BASE_URL` — UI endpoint for browser routes (default: `https://console.postgres.ai`). +- `PGAI_STORAGE_BASE_URL` — storage endpoint for file uploads. +- `PGAI_MON_PASSWORD` — default password for the monitoring role created by `prepare-db`. +- `PGPASSWORD` — admin password used by `prepare-db` / `unprepare-db` when `--admin-password` is not given. +- `SUPABASE_ACCESS_TOKEN`, `SUPABASE_PROJECT_REF` — credentials for `prepare-db --supabase`. + +### Examples + +For production (uses default URLs): ```bash -bunx postgresai remove-key +postgresai auth --debug ``` -</TabItem> -</Tabs> +For staging / development environments: + +```bash +# Linux / macOS (bash, zsh) +export PGAI_API_BASE_URL=https://v2.postgres.ai/api/general/ +export PGAI_UI_BASE_URL=https://console-dev.postgres.ai +postgresai auth --debug +``` + +```powershell +# Windows PowerShell +$env:PGAI_API_BASE_URL = "https://v2.postgres.ai/api/general/" +$env:PGAI_UI_BASE_URL = "https://console-dev.postgres.ai" +postgresai auth --debug +``` + +Via CLI options (overrides environment variables): + +```bash +postgresai auth --debug \ + --api-base-url https://v2.postgres.ai/api/general/ \ + --ui-base-url https://console-dev.postgres.ai +``` From 5485c21a454f2f9f30f23129c45026ae04b6df59 Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov <nik@postgres.ai> Date: Mon, 11 May 2026 16:58:01 -0700 Subject: [PATCH 18/61] Add lockmanager tag to PostgresMarathon LWLock:LockManager posts --- blog/20251005-postgres-marathon-2-001.md | 2 +- blog/20251005-postgres-marathon-2-002.md | 2 +- blog/20251007-postgres-marathon-2-003.md | 4 ++-- blog/20251008-postgres-marathon-2-004.md | 4 ++-- blog/20251009-postgres-marathon-2-005.md | 4 ++-- blog/20251010-postgres-marathon-2-006.md | 2 +- blog/20251013-postgres-marathon-2-007.md | 2 +- blog/20251014-postgres-marathon-2-008.md | 2 +- blog/20251028-postgres-marathon-2-009.md | 2 +- blog/20251029-postgres-marathon-2-010.md | 2 +- blog/20251030-postgres-marathon-2-011.md | 2 +- 11 files changed, 14 insertions(+), 14 deletions(-) diff --git a/blog/20251005-postgres-marathon-2-001.md b/blog/20251005-postgres-marathon-2-001.md index 659450b3..325f9e62 100644 --- a/blog/20251005-postgres-marathon-2-001.md +++ b/blog/20251005-postgres-marathon-2-001.md @@ -2,7 +2,7 @@ title: "#PostgresMarathon 2-001: Lightweight and heavyweight locks" date: 2025-10-05 authors: nik -tags: [Postgres insights, PostgresMarathon, internals, locks] +tags: [Postgres insights, PostgresMarathon, internals, locks, lockmanager] --- To warm up, let's talk about lightweight and heavyweight locks (or "regular locks" or just "locks"). diff --git a/blog/20251005-postgres-marathon-2-002.md b/blog/20251005-postgres-marathon-2-002.md index 0d29c871..bed07b4f 100644 --- a/blog/20251005-postgres-marathon-2-002.md +++ b/blog/20251005-postgres-marathon-2-002.md @@ -2,7 +2,7 @@ title: "#PostgresMarathon 2-002: Relation-level locks" date: 2025-10-06 authors: nik -tags: [Postgres insights, PostgresMarathon, internals, locks] +tags: [Postgres insights, PostgresMarathon, internals, locks, lockmanager] --- Let's talk about relation-level locks and various confusions, surprises and what is worth to remember in practice. diff --git a/blog/20251007-postgres-marathon-2-003.md b/blog/20251007-postgres-marathon-2-003.md index 01840ae2..e7a07038 100644 --- a/blog/20251007-postgres-marathon-2-003.md +++ b/blog/20251007-postgres-marathon-2-003.md @@ -2,7 +2,7 @@ title: "#PostgresMarathon 2-003: The roots of LWLock:LockManager" date: 2025-10-07 authors: nik -tags: [Postgres insights, PostgresMarathon, internals, locks] +tags: [Postgres insights, PostgresMarathon, internals, locks, lockmanager] image: /assets/blog/20251007-postgres-marathon-2-003.png --- @@ -33,7 +33,7 @@ Because of this, fast, high-frequency queries (e.g. PK lookups) on multi-core sy In 2011, Robert Haas implemented an additional optimization called fast-path locking, specifically designed for such cases ([commit](https://github.com/postgres/postgres/commit/3cba8999b343648c4c528432ab3d51400194e93b), it was released in 9.2 (2012). Fast-path locks are stored separately, individually for each backend, and protected by per-backend LWLocks, so contention doesn't happen. Before Postgres 18, no more than 16 ([`FP_LOCK_SLOTS_PER_BACKEND`](https://github.com/postgres/postgres/blob/1c4671f7b7c378cc26d1953785a3aa249152958b/src/include/storage/proc.h#L80-L86)) locks could be stored in this way. This mechanism can be applied only for AccessShareLock, RowShareLock, and RowExclusiveLock. The locks that are processed in this way can be observed in `pg_locks` (`fastpath=true`). -This helped a lot to improve performance of SELECTs that deal with no more than 16 relations (e.g., a PK lookup on a table with no more than 15 indexes), but in recent years, especially because of partitioning, it was once again not enough, so in Postgres 18 (2025) one more optimization was implemented. +This helped a lot to improve performance of SELECTs that deal with no more than 16 relations (e.g., a PK lookup on a table with no more than 15 indexes), but in recent years, especially because of partitioning, it was once again not enough, so in Postgres 18 (2025) one more optimization was implemented ([commit `c4d5cb71d`](https://github.com/postgres/postgres/commit/c4d5cb71d)). // to be continued: we'll discuss PG18 and then entertaining benchmarks diff --git a/blog/20251008-postgres-marathon-2-004.md b/blog/20251008-postgres-marathon-2-004.md index e7dcd519..3d51e386 100644 --- a/blog/20251008-postgres-marathon-2-004.md +++ b/blog/20251008-postgres-marathon-2-004.md @@ -2,7 +2,7 @@ title: "#PostgresMarathon 2-004: Fast-path locking explained" date: 2025-10-08 authors: nik -tags: [Postgres insights, PostgresMarathon, internals, locks] +tags: [Postgres insights, PostgresMarathon, internals, locks, lockmanager] image: /assets/blog/20251008-postgres-marathon-2-004-cover.png --- @@ -34,7 +34,7 @@ With partitioning becoming popular, 16 slots often isn't enough. A query touchin This became a real problem for multiple PostgresAI clients in 2023 - they were experiencing severe LWLock:LockManager contention. We had some tests where we changed `FP_LOCK_SLOTS_PER_BACKEND` and confirmed that it mitigates LWLock:LockManager contention in certain cases, so [I proposed to make this hard-coded value configurable](https://www.postgresql.org/message-id/flat/CAM527d-uDn5osa6QPKxHAC6srOfBH3M8iXUM%3DewqHV6n%3Dw1u8Q%40mail.gmail.com). [Tomas Vondra](https://www.linkedin.com/in/tomasvondra/) was the first to respond, and it was clear he had also been studying similar cases. -In Postgres 18, the storage for fast-path locks has changed, now fast-path locks are stored in variable-sized arrays in separate shared memory (referenced via pointers from PGPROC). This allows variable sizing, so allowed number of fast-path locks for a backend scales with `max_locks_per_transaction` (default 64 slots). This is one of the trickiest parameters to understand fully, so we'll talk about it separately. Changing it requires Postgres restart. +In Postgres 18 ([commit `c4d5cb71d`](https://github.com/postgres/postgres/commit/c4d5cb71d)), the storage for fast-path locks has changed, now fast-path locks are stored in variable-sized arrays in separate shared memory (referenced via pointers from PGPROC). This allows variable sizing, so allowed number of fast-path locks for a backend scales with `max_locks_per_transaction` (default 64 slots). This is one of the trickiest parameters to understand fully, so we'll talk about it separately. Changing it requires Postgres restart. To wrap a today, let's look at some benchmarks. These benchmarks were conducted by [Denis Morozov](https://www.linkedin.com/in/denis-morozov-5b92691/) from the PostgresAI team by request from GitLab – see [this GitLab issue](https://gitlab.com/gitlab-com/gl-infra/data-access/dbo/dbo-issue-tracker/-/issues/594#note_2786838563) (kudos to GitLab for keeping a lot of work publicly available, for wide open source community benefits – including Postgres community!) diff --git a/blog/20251009-postgres-marathon-2-005.md b/blog/20251009-postgres-marathon-2-005.md index b2ec51c1..092451c7 100644 --- a/blog/20251009-postgres-marathon-2-005.md +++ b/blog/20251009-postgres-marathon-2-005.md @@ -2,7 +2,7 @@ title: "#PostgresMarathon 2-005: More LWLock:LockManager benchmarks for Postgres 18" date: 2025-10-09 authors: nik -tags: [Postgres insights, PostgresMarathon, internals, locks] +tags: [Postgres insights, PostgresMarathon, internals, locks, lockmanager] image: /assets/blog/20251009-postgres-marathon-2-005-cover.jpeg --- @@ -10,7 +10,7 @@ In 2023-2024, after incidents that multiple customers of PostgresAI experienced, At that time, we managed to reproduce the issue only on large machines – ~100 or more vCPUs. -With PG18 release, this question started to bother me again: can we experience LWLock:LockManager on smaller machines? +With PG18 release (and its fast-path locking improvement, [commit `c4d5cb71d`](https://github.com/postgres/postgres/commit/c4d5cb71d)), this question started to bother me again: can we experience LWLock:LockManager on smaller machines? [Denis Morozov](https://www.linkedin.com/in/denis-morozov-5b92691/) just published [results of benchmarks that successfully reproduce LWLock:LockManager contention in PG18 on 16-vCPU VMs](https://gitlab.com/postgres-ai/postgresql-consulting/tests-and-benchmarks/-/issues/69). diff --git a/blog/20251010-postgres-marathon-2-006.md b/blog/20251010-postgres-marathon-2-006.md index 505e8da2..6b8852cc 100644 --- a/blog/20251010-postgres-marathon-2-006.md +++ b/blog/20251010-postgres-marathon-2-006.md @@ -2,7 +2,7 @@ title: "#PostgresMarathon 2-006: Mysterious max_locks_per_transaction" date: 2025-10-10 authors: nik -tags: [Postgres insights, PostgresMarathon, internals, locks] +tags: [Postgres insights, PostgresMarathon, internals, locks, lockmanager] image: /assets/blog/20251010-postgres-marathon-2-006-cover.png --- diff --git a/blog/20251013-postgres-marathon-2-007.md b/blog/20251013-postgres-marathon-2-007.md index ffa98b9d..094f52ad 100644 --- a/blog/20251013-postgres-marathon-2-007.md +++ b/blog/20251013-postgres-marathon-2-007.md @@ -2,7 +2,7 @@ title: "#PostgresMarathon 2-007: Should we worry about pg_blocking_pids()'s observer effect?" date: 2025-10-13 authors: nik -tags: [Postgres insights, PostgresMarathon, internals, locks, monitoring] +tags: [Postgres insights, PostgresMarathon, internals, locks, lockmanager, monitoring] image: /assets/blog/20251013-postgres-marathon-2-007-cover.jpg --- diff --git a/blog/20251014-postgres-marathon-2-008.md b/blog/20251014-postgres-marathon-2-008.md index e6283bcd..a77f2eea 100644 --- a/blog/20251014-postgres-marathon-2-008.md +++ b/blog/20251014-postgres-marathon-2-008.md @@ -2,7 +2,7 @@ title: "#PostgresMarathon 2-008: LWLock:LockManager and prepared statements" date: 2025-10-14 23:59:59 authors: nik -tags: [Postgres insights, PostgresMarathon, internals, locks, prepared statements] +tags: [Postgres insights, PostgresMarathon, internals, locks, lockmanager, prepared statements] image: /assets/blog/20251014-postgres-marathon-2-008-cover.jpg --- diff --git a/blog/20251028-postgres-marathon-2-009.md b/blog/20251028-postgres-marathon-2-009.md index b2c1b38a..2df0ab7a 100644 --- a/blog/20251028-postgres-marathon-2-009.md +++ b/blog/20251028-postgres-marathon-2-009.md @@ -2,7 +2,7 @@ title: "#PostgresMarathon 2-009: Prepared statements and partitioned table lock explosion, part 1" date: 2025-10-28 12:00:00 authors: nik -tags: [Postgres insights, PostgresMarathon, internals, locks, prepared statements, partitioning] +tags: [Postgres insights, PostgresMarathon, internals, locks, lockmanager, prepared statements, partitioning] --- In [#PostgresMarathon 2-008](https://postgres.ai/blog/20251014-postgres-marathon-2-008), we discovered that prepared statements can dramatically reduce `LWLock:LockManager` contention by switching from planner locks (which lock everything) to executor locks (which lock only what's actually used). Starting with execution 7, we saw locks drop from 6 (table + 5 indexes) to just 1 (table only). diff --git a/blog/20251029-postgres-marathon-2-010.md b/blog/20251029-postgres-marathon-2-010.md index e18960ab..85bf39d7 100644 --- a/blog/20251029-postgres-marathon-2-010.md +++ b/blog/20251029-postgres-marathon-2-010.md @@ -2,7 +2,7 @@ title: "#PostgresMarathon 2-010: Prepared statements and partitioned table lock explosion, part 2" date: 2025-10-29 23:59:59 authors: nik -tags: [Postgres insights, PostgresMarathon, internals, locks, prepared statements, partitioning] +tags: [Postgres insights, PostgresMarathon, internals, locks, lockmanager, prepared statements, partitioning] --- In [#PostgresMarathon 2-009](https://postgres.ai/blog/20251028-postgres-marathon-2-009), we focused on Lock Manager's behavior when dealing with prepared statements and partitioned tables. diff --git a/blog/20251030-postgres-marathon-2-011.md b/blog/20251030-postgres-marathon-2-011.md index 805f8d49..7a1b705f 100644 --- a/blog/20251030-postgres-marathon-2-011.md +++ b/blog/20251030-postgres-marathon-2-011.md @@ -2,7 +2,7 @@ title: "#PostgresMarathon 2-011: Prepared statements and partitioned tables — the paradox, part 3" date: 2025-10-30 23:59:59 authors: nik -tags: [Postgres insights, PostgresMarathon, internals, locks, prepared statements, partitioning] +tags: [Postgres insights, PostgresMarathon, internals, locks, lockmanager, prepared statements, partitioning] --- In [#PostgresMarathon 2-009](https://postgres.ai/blog/20251028-postgres-marathon-2-009) and [#PostgresMarathon 2-010](https://postgres.ai/blog/20251029-postgres-marathon-2-010), we explored why execution 6 causes a lock explosion when building a generic plan for partitioned tables — the planner must lock all 52 relations because it can't prune without parameter values. From 13371d826132f0762b98a6e89080f97c3c2e34b7 Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov <nik@postgres.ai> Date: Wed, 13 May 2026 04:15:43 -0700 Subject: [PATCH 19/61] docs+ci: TldrTabs on DBLab 4.1 post, CLAUDE.md mirror model, restore preview-widget fix --- .gitlab-ci.yml | 8 ++- CLAUDE.md | 14 +++++ blog/20260408-dblab-engine-4-1-released.md | 61 ++++++++++++++++++++++ 3 files changed, 82 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ddcf333e..f2a76021 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -206,6 +206,11 @@ deploy_staging: - echo "$PREVIEW_SSH_KEY" | base64 -d | ssh-add - - mkdir -p ~/.ssh && echo "${PREVIEW_VM_HOST} ${PREVIEW_VM_HOST_KEY}" >> ~/.ssh/known_hosts +# No `environment:` here — build jobs don't deploy, and setting environment +# creates phantom deployment records that suppress the MR's "Deployed to ..." +# widget (GitLab keys it off the latest deployment for the env). Pull just the +# variables (ENV, BRANCH_SLUG) the build script needs from review.sh, not the +# environment template. Same pattern as platform-all. build_and_push_review: stage: prepare_image image: docker:27 @@ -213,7 +218,8 @@ build_and_push_review: - docker:27-dind variables: DOCKER_BUILDKIT: "1" - <<: *env_review + ENV: review + BRANCH_SLUG: $CI_COMMIT_REF_SLUG rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" script: diff --git a/CLAUDE.md b/CLAUDE.md index 5692478a..41e91800 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -3,3 +3,17 @@ Read and follow all rules in `.cursor/rules/` directory. @.cursor/rules + +## GitLab is the source of truth; GitHub is a mirror + +- `master` flows **GitLab → GitHub** — GitLab is authoritative; never push `master` to GitHub. +- Dev branches flow **GitHub → GitLab** — branches created/pushed via the GitHub Claude Code integration mirror into GitLab, where MRs are opened, reviewed, and merged. +- Use `glab` for repo operations (not `gh`). PRs live in GitLab as MRs. +- If a branch was started from a stale GitHub mirror of `master`, its `.gitlab-ci.yml` may be out of date (e.g., still deploying previews via the old k8s path). Rebase onto current `master` before debugging CI. + +## Preview environments + +- Per-MR previews deploy automatically on `merge_request_event` to `https://docs-{CI_COMMIT_REF_SLUG}.pgai.green`. +- Infra: Hetzner VM (`PREVIEW_VM_HOST`) running Docker + Traefik with Let's Encrypt DNS-01 via Cloudflare. **Not Kubernetes.** +- Permanent staging from `master`: `https://docs-main.pgai.green`. +- Canonical spec: `postgres-ai/infra` → `green/SPEC.md` (MR !12). Original CI: docs MR !880. diff --git a/blog/20260408-dblab-engine-4-1-released.md b/blog/20260408-dblab-engine-4-1-released.md index 707fb48c..f1944619 100644 --- a/blog/20260408-dblab-engine-4-1-released.md +++ b/blog/20260408-dblab-engine-4-1-released.md @@ -14,11 +14,72 @@ tags: import { BlogFooter } from '@site/src/components/BlogFooter' import { denis } from '@site/src/config/authors' +import { TldrTabs } from '@site/src/components/TldrTabs' DBLab 4.0 introduced [instant database branching with O(1) economics](/blog/20250721-dblab-engine-4-0-released). With 4.1, we're making it safe to hand off to a platform team: automatic resource governance, enterprise access control, production-safe data refresh, and native observability. <!--truncate--> +<TldrTabs + founders={{ + title: "DBLab 4.1 makes database branching safe to hand to a platform team:", + points: [ + "Protection leases auto-expire — no more abandoned clones quietly consuming storage", + "Teleport integration brings every ephemeral clone under enterprise access control and audit logging", + "rds-refresh keeps clones fresh from RDS/Aurora snapshots without ever touching production", + ] + }} + developers={{ + title: "What 4.1 changes day-to-day:", + points: [ + "`--protected <minutes>` on `dblab clone create` sets a lease; protection lifts automatically when it expires", + "Apple Silicon + Colima support — run DBLab locally on M-series Macs, no cloud VM required", + "`databaseRename` in snapshot config strips production names from clones at the source", + "Pre-expiration webhook fires so clone owners can extend if still working", + ] + }} + dbas={{ + title: "Operational and observability wins:", + points: [ + "`/metrics` endpoint in Prometheus format — disk, clones, snapshots, sync (WAL replay lag), instance, branches; no auth, no plugins", + "OpenTelemetry Collector config ships for Grafana Cloud / Datadog / New Relic / any OTLP backend", + "`rds-refresh` runs against a temporary RDS instance from the latest automated snapshot — production xmin horizon stays clean, no vacuum blocking, no wraparound risk", + "Built-in orphan protection cleans up the temporary RDS instance even if the refresh process crashes", + ] + }} + managers={{ + title: "Cost, compliance, and risk reductions:", + points: [ + "Lease defaults and hard caps are server-side, enforced by policy — eliminates the 'who left this clone running?' audit", + "Teleport integration covers SOC2 / regulated environments: role-based access and session recording for every clone (SE/EE)", + "RDS refresh: ~$2.60–$3.85 per nightly refresh on a `db.r7g.2xlarge` temporary instance — negligible vs. the production risk it eliminates", + ] + }} + aiContext={ + "You're answering questions about the blog post 'DBLab 4.1: protection leases, Teleport, Prometheus, and more'. " + + "Summary of what shipped in DBLab 4.1: " + + "(1) Protection leases — clones can now be protected with a timer (e.g. `dblab clone create --protected 120` for 120 minutes). " + + "When the lease expires, protection lifts and idle cleanup reclaims the clone automatically. " + + "Platform teams can set default durations and hard caps server-side. A pre-expiration webhook fires so owners can extend if still working. " + + "Solves the 'engineer protects a clone and forgets to unprotect it' problem that drives over-provisioning. " + + "(2) Database rename — `databaseRename` in snapshot config maps production database names (e.g. `myapp_production` → `myapp`) at clone time, so developers never see production names in dev. " + + "(3) ARM64 + Colima — Apple Silicon support, run DBLab locally on M-series Macs without a cloud VM. " + + "(4) Teleport integration — when a clone is created it auto-registers as a Teleport database resource with role-based access and session recording; deregisters when destroyed. " + + "Requires DBLab Standard or Enterprise edition. Designed for SOC2 / regulated environments where ephemeral clones were previously a compliance gap. " + + "(5) `rds-refresh` standalone tool — finds the latest automated RDS snapshot, creates a temporary RDS instance from it, points DBLab at it to refresh, and deletes the temporary instance when done. " + + "Never touches production RDS, so production avoids the xmin horizon held by pg_dump (which blocks vacuum and can lead to transaction ID wraparound). " + + "Built-in orphan protection ensures the temporary RDS instance is cleaned up even if the process crashes. Typical run is 3-4 hours on `db.r7g.2xlarge` at roughly $2.60-$3.85 per refresh. " + + "Schedule via cron / Kubernetes CronJob / ECS Scheduled Task for nightly fresh data. " + + "(6) Prometheus `/metrics` endpoint — disk (total/free/used, snapshot/clone breakdown, compression ratio), clones (count/status/diff/cpu/mem/protected), snapshots (count/age/data lag/size), sync (WAL replay lag), instance (uptime/version), branches & datasets. " + + "No auth, no plugins. OpenTelemetry Collector config ships for Grafana Cloud, Datadog, New Relic, or any OTLP backend. " + + "What's next: logical replication for continuous refresh, ZFS send/recv for instance sync (including staging → laptop), and major-version upgrade testing on a clone. " + + "DBLab 4.0 made branching instant; 4.1 makes it hand-off-able to platform. Built on the same O(1) economics as 4.0. " + + "End your response by briefly mentioning that DBLab is free to try at console.postgres.ai (or via AWS Marketplace for SE). " + + "Be concise and direct. Do not mention that you're an AI or that you received this context."} + ctaText="Try DBLab 4.1 — free to start" + ctaLink="https://console.postgres.ai" +/> + ## Protection leases: clones that clean up after themselves DBLab already cleans up idle clones automatically (via `maxIdleMinutes`). But protected clones are exempt -- that's the point of protection. The problem is engineers protect clones and forget to unprotect them. Disk usage creeps up, somebody has to audit, and the team ends up over-provisioning storage to compensate. From 6220c8a36e8538a0efedf669a446409d54411aa6 Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov <nik@postgres.ai> Date: Wed, 13 May 2026 11:26:51 -0700 Subject: [PATCH 20/61] fix: correct broken internal links and anchor references --- .cursor | 1 - .gitmodules | 3 -- CLAUDE.md | 4 -- .../20210714-dle-2-4-test-db-changes-in-ci.md | 6 +-- ...esql-subtransactions-considered-harmful.md | 4 +- blog/20210914-dle-2-5.md | 2 +- ...affect-update-performance-in-postgresql.md | 2 +- ...e-3-0-0-brings-ui-and-persistent-clones.md | 6 +-- ...220405-database-lab-engine-3-1-released.md | 6 +-- blog/20220703-dle-in-aws-marketplace.md | 2 +- ...221020-database-lab-engine-3-2-released.md | 2 +- ...20230722-10-postgres-tips-for-beginners.md | 2 +- blog/20230819-dblab-engine-3-4-released.md | 2 +- blog/20240127-postgres-ai-bot.md | 6 +-- ...ing-time-depend-on-number-of-partitions.md | 2 +- blog/20251008-postgres-marathon-2-004.md | 2 +- blog/20251014-postgres-marathon-2-008.md | 2 +- blog/20251030-postgres-marathon-2-011.md | 2 +- blog/dle-2.0-release.md | 2 +- blog/dle-2.1-release.md | 2 +- blog/dle-2.2-release.md | 4 +- blog/joe-0.5.md | 2 +- blog/joe-0.6.md | 2 +- blog/joe-0.7.md | 2 +- docs/all-features.md | 2 +- docs/database-lab/index.md | 10 ++-- docs/database-lab/masking.md | 4 +- docs/database-lab/supported-databases.md | 4 +- docs/database-lab/timing-estimator.md | 2 +- .../dblab-howtos/administration/data/index.md | 4 +- docs/dblab-howtos/administration/data/rds.md | 2 +- .../dblab-howtos/administration/joe-manage.md | 2 +- .../administration/run-database-lab-on-mac.md | 2 +- docs/dblab-howtos/cli/cli-install-init.md | 2 +- docs/dblab-howtos/cloning/clone-upgrade.md | 1 - docs/dblab-howtos/index.md | 2 +- .../joe-bot/query-activity-and-termination.md | 2 +- .../joe-bot/sql-optimization-history.md | 2 +- .../joe-bot/visualize-query-plan.md | 2 +- docs/dblab-howtos/platform/onboarding.md | 2 +- docs/joe-bot/index.md | 6 +-- docs/monitoring/advanced/architecture.md | 2 +- docs/monitoring/getting-started/index.md | 2 +- docs/platform/index.md | 6 +-- docs/platform/security.md | 4 +- docs/postgres-howtos/advanced-topics/index.md | 2 +- .../misc/how-to-help-others.md | 2 +- ...-to-install-postgres-16-with-plpython3u.md | 2 +- .../advanced-topics/misc/index.md | 21 +++++---- ...-troubleshoot-streaming-replication-lag.md | 4 +- .../zero-downtime-major-upgrade.md | 2 +- .../how-to-speed-up-pg-dump.md | 4 +- .../backup-recovery/how-to-use-pg-restore.md | 4 +- ...tune-linux-parameters-for-oltp-postgres.md | 6 +-- .../configuration/how-to-tune-work-mem.md | 2 +- .../rough-oltp-configuration-tuning.md | 2 +- .../database-administration/index.md | 2 +- .../autovacuum-queue-and-progress.md | 2 +- .../maintenance/how-to-deal-with-bloat.md | 2 +- ...eal-with-long-running-transactions-oltp.md | 2 +- .../how-to-troubleshoot-long-startup.md | 2 +- .../development-tools/index.md | 6 +-- .../how-to-generate-fake-data.md | 2 +- docs/postgres-howtos/index.md | 4 +- ...to-trouble-using-some-postgres-features.md | 2 +- .../monitoring-troubleshooting/index.md | 6 +-- .../how-to-not-get-screwed-as-a-dba.md | 2 +- .../benchmarks/how-to-benchmark.md | 2 +- ...and-post-steps-for-benchmark-iterations.md | 2 +- .../performance-optimization/index.md | 4 +- .../monitoring/ad-hoc-monitoring.md | 6 +-- .../monitoring/how-to-monitor-xmin-horizon.md | 4 +- .../how-to-reduce-wal-generation-rates.md | 2 +- ...k-data-type-and-storage-size-of-a-value.md | 2 +- docs/postgres-howtos/schema-design/index.md | 6 +-- docs/questions-and-answers.md | 2 +- .../database-lab-engine-api-reference.md | 2 +- ...base-lab-engine-configuration-reference.md | 46 +++++++++---------- .../dblab-client-cli-reference.md | 4 +- .../joe-bot-configuration-reference.md | 2 +- docs/roadmap.md | 2 +- .../database-lab-tutorial-amazon-rds.md | 2 +- docs/tutorials/joe-setup.md | 4 +- src/config/authors.ts | 2 +- src/data/authors.ts | 2 +- src/pages/careers/frontend.md | 2 +- src/pages/careers/fullstack.md | 2 +- src/pages/careers/godeveloper.md | 2 +- src/pages/consulting.mdx | 2 +- src/pages/contact/index.tsx | 2 +- src/pages/customer-advisory-group.md | 2 +- src/pages/privacy.md | 2 +- src/pages/products/data-masking.md | 2 +- src/pages/products/how-it-works.md | 2 +- src/pages/products/postgres-ai-zdu.md | 2 +- .../products/realistic-test-environments.md | 2 +- src/pages/rules/index.md | 2 +- 97 files changed, 165 insertions(+), 173 deletions(-) delete mode 160000 .cursor diff --git a/.cursor b/.cursor deleted file mode 160000 index e58b6940..00000000 --- a/.cursor +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e58b6940c32d8790118eea4ef82267c247b5a91d diff --git a/.gitmodules b/.gitmodules index bec6ee81..e69de29b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +0,0 @@ -[submodule ".cursor"] - path = .cursor - url = https://gitlab.com/postgres-ai/rules.git diff --git a/CLAUDE.md b/CLAUDE.md index 41e91800..4b475414 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,9 +1,5 @@ # Claude Code Instructions -Read and follow all rules in `.cursor/rules/` directory. - -@.cursor/rules - ## GitLab is the source of truth; GitHub is a mirror - `master` flows **GitLab → GitHub** — GitLab is authoritative; never push `master` to GitHub. diff --git a/blog/20210714-dle-2-4-test-db-changes-in-ci.md b/blog/20210714-dle-2-4-test-db-changes-in-ci.md index c34cf7d0..758c529e 100644 --- a/blog/20210714-dle-2-4-test-db-changes-in-ci.md +++ b/blog/20210714-dle-2-4-test-db-changes-in-ci.md @@ -68,7 +68,7 @@ Let's open this job and see the details: --- -What happened here? Behind the schenes, a pre-installed DLE server (in AWS) quickly provisioned a thin clone of the Demo database. <!--The size of that database is ~37 GiB and cloning took just TODO: add details and sreenshot here -->Next, the DB change was applied in this clone, and DB Migration Checker collected telemetry, and it becomes clear that such change is going to hold an `AccessExclusiveLockё` blocking other queries for a significant time (according to the settings, longer than for 10 seconds). Therefore, this change marked as failed in CI/CD. This is exactly what we need to be protected to avoid deploying such changes to production. +What happened here? Behind the scenes, a pre-installed DLE server (in AWS) quickly provisioned a thin clone of the Demo database. <!--The size of that database is ~37 GiB and cloning took just TODO: add details and screenshot here -->Next, the DB change was applied in this clone, and DB Migration Checker collected telemetry, and it becomes clear that such change is going to hold an `AccessExclusiveLock` blocking other queries for a significant time (according to the settings, longer than for 10 seconds). Therefore, this change is marked as failed in CI/CD. This is exactly what we need to be protected to avoid deploying such changes to production. Of course, if we get the word `CONCURRENTLY` back (as I did in [commit 6059bf4](https://github.com/postgres-ai/green-zone/commit/6059bf4b80a1930bcb531ecd5ae607d623f2a64d)), we'll have our "green light": @@ -100,7 +100,7 @@ Currently, full automation is supported for the DB migrations tracked in GitHub - [Ruby on Rails: Active Record Migrations](https://guides.rubyonrails.org/active_record_migrations.html) (using [`rake db:migrate`](https://ruby.github.io/rake/)) - [Django migrations](https://docs.djangoproject.com/en/3.2/topics/migrations/) -It is also supposed that the automated testing is done using [GitHub Actions](https://github.com/marketplace/actions/database-lab-realistic-db-testing-in-ci). However, the list of supported Git platforms, CI/CD tools, and DB migration version control systems is quite easy to extend – you can do it (please publish an MR if you do!) or open an issue to ask about it in the [DLE & DB Migration Checker issue tracker](https://gitlab.com/postgres-ai/database-lab/-/issues). +It is also supposed that the automated testing is done using [GitHub Actions](https://github.com/marketplace/actions/database-lab-realistic-db-testing-in-ci). However, the list of supported Git platforms, CI/CD tools, and DB migration version control systems is quite easy to extend – you can do it (please publish an MR if you do!) or open an issue to ask about it in the [DLE & DB Migration Checker issue tracker](https://github.com/postgres-ai/database-lab-engine/issues). ## :large_blue_diamond: Terraform module to deploy DLE and its components in AWS @@ -128,7 +128,7 @@ Feedback and contributions are very welcome. Feedback and contributions would be greatly appreciated: - Database Lab Community Slack: https://slack.postgres.ai/ -- DLE & DB Migration Checker issue tracker: https://gitlab.com/postgres-ai/database-lab/-/issues +- DLE & DB Migration Checker issue tracker: https://github.com/postgres-ai/database-lab-engine/issues - Issue tracker of the Terraform module for Database Lab: https://gitlab.com/postgres-ai/database-lab-infrastructure/-/issues <BlogFooter author={nik} /> diff --git a/blog/20210831-postgresql-subtransactions-considered-harmful.md b/blog/20210831-postgresql-subtransactions-considered-harmful.md index 6ad528d4..23ebe856 100644 --- a/blog/20210831-postgresql-subtransactions-considered-harmful.md +++ b/blog/20210831-postgresql-subtransactions-considered-harmful.md @@ -131,7 +131,7 @@ Besides SAVEPOINTs, there are other ways to create subtransactions: - `BEGIN / EXCEPTION WHEN .. / END` blocks in PL/pgSQL code (the official documentation does not describe it well; explored, for example, in this article: ["PL/PgSQL Exception and XIDs"](https://fluca1978.github.io/2020/02/05/PLPGSQLExceptions.html)) - [`plpy.subtransaction()`](https://www.postgresql.org/docs/current/plpython-subtransaction.html) in PL/Python code -One may assume that many applications that use PL/pgSQL or PL/Python functions use subtransactions. Systems that run API built on [PostgREST](https://postgrest.org/en/latest/search.html?q=plpgsql), [Supabase](https://github.com/supabase/postgres/issues/26), [Hasura](https://hasura.io/docs/latest/graphql/core/databases/postgres/schema/default-values/sql-functions.html#step-2-create-a-trigger) might have PL/pgSQL functions (including trigger functions) that involve `BEGIN / EXCEPTION WHEN .. / END` blocks; in such cases, those systems use subtransactions. +One may assume that many applications that use PL/pgSQL or PL/Python functions use subtransactions. Systems that run API built on [PostgREST](https://postgrest.org/en/latest/search.html?q=plpgsql), [Supabase](https://github.com/supabase/postgres/issues/26), [Hasura](https://hasura.io/docs/latest/schema/postgres/default-values/sql-functions/#step-2-create-a-trigger) might have PL/pgSQL functions (including trigger functions) that involve `BEGIN / EXCEPTION WHEN .. / END` blocks; in such cases, those systems use subtransactions. ## Problem 1: XID growth @@ -187,7 +187,7 @@ In this example, the main transaction had `XID = 1549100656`, and additional XID This example clearly shows two facts that may be not intuitive: 1. XIDs assigned to subtransactions are used in tuple headers, hence participating in MVCC tuple visibility checks – although results of subtransactions are never visible to other transactions until the main transaction is committed (in PostgreSQL, "minimal" isolation level supported is `READ COMMITTED`). -1. Subtransactions contribute to the growth of global XID value (32 bit, requiring special automated maintenance usually done by autovacuum). Therefore it implicitly increases risks associated with XID wraparound: if the mentioned maintenance is lagging for some reason and this issue is not resolved, the system may reach a point when the mechanism of transaction ID wraparound protection puts the cluster to the single-user mode causing long-lasting downtime (see examples of how popular SaaS systems were down because of that: [Sentry](https://blog.sentry.io/2015/07/23/transaction-id-wraparound-in-postgres), [Mailchimp](https://mailchimp.com/what-we-learned-from-the-recent-mandrill-outage/)). One may have, say, 1000 writing transactions per second, but if they all use 10 subtransactions, then XID is incremented by 10000 per second. This might not be expected by users – poor autovacuum needs to run in the "transaction ID wraparound prevention" mode more often than it would be if subtransactions had "local" IDs inside each transaction, not "wasting" global XIDs. +1. Subtransactions contribute to the growth of global XID value (32 bit, requiring special automated maintenance usually done by autovacuum). Therefore it implicitly increases risks associated with XID wraparound: if the mentioned maintenance is lagging for some reason and this issue is not resolved, the system may reach a point when the mechanism of transaction ID wraparound protection puts the cluster to the single-user mode causing long-lasting downtime (see examples of how popular SaaS systems were down because of that: [Sentry](https://blog.sentry.io/transaction-id-wraparound-in-postgres/), [Mailchimp](https://mailchimp.com/what-we-learned-from-the-recent-mandrill-outage/)). One may have, say, 1000 writing transactions per second, but if they all use 10 subtransactions, then XID is incremented by 10000 per second. This might not be expected by users – poor autovacuum needs to run in the "transaction ID wraparound prevention" mode more often than it would be if subtransactions had "local" IDs inside each transaction, not "wasting" global XIDs. Bottom line: there is a trade-off between active use of subtransactions and the XID growth. Understanding this "price" of using subtransactions is essential to avoid issues in heavily-loaded systems. diff --git a/blog/20210914-dle-2-5.md b/blog/20210914-dle-2-5.md index d2cb5427..0cfff3a8 100644 --- a/blog/20210914-dle-2-5.md +++ b/blog/20210914-dle-2-5.md @@ -126,7 +126,7 @@ If you have problems or questions, please contact our communities for help: http Feedback and contributions would be greatly appreciated: - Database Lab Community Slack: https://slack.postgres.ai/ -- DLE & DB Migration Checker issue tracker: https://gitlab.com/postgres-ai/database-lab/-/issues +- DLE & DB Migration Checker issue tracker: https://github.com/postgres-ai/database-lab-engine/issues - Issue tracker of the Terraform module for Database Lab: https://gitlab.com/postgres-ai/database-lab-infrastructure/-/issues <BlogFooter author={nik} /> diff --git a/blog/20211029-how-partial-and-covering-indexes-affect-update-performance-in-postgresql.md b/blog/20211029-how-partial-and-covering-indexes-affect-update-performance-in-postgresql.md index 493caa4d..22f5e285 100644 --- a/blog/20211029-how-partial-and-covering-indexes-affect-update-performance-in-postgresql.md +++ b/blog/20211029-how-partial-and-covering-indexes-affect-update-performance-in-postgresql.md @@ -90,7 +90,7 @@ include(col2); If our SELECT involves only those columns which values are present in the index, we can rely on Index-only Scans – the may be a much faster alternative to Index scans, because dealing with the heap is not needed anymore. In this scenario, all we need is to tune autovacuum to keep our tables in a "good shape", to have as few interactions with the heap (table data) as possible. Franck Pachot explores it very well in his article ["Boosts Secondary Index Queries with Index Only Scan"](https://dev.to/yugabyte/boosts-secondary-index-queries-with-index-only-scan-5e7j). -I had always an impression that covering indexes are mostly useful in the case of UNIQUE index and unique constraint enforcement – if we have a unique index and want to add a column to it, we cannot just extend the list of columns because it would change the uniqueness constraint. Instead, we add it to `INCLUDE`. However, Franck showed to me another benefit of covering indexes compared to multicolumn ones – changing values of the "extra" column in a covering index is lighter (hence, faster) than the same change in the case when the column is a part of the column list in a multicolumn index (here is [a simple demo from Franck](https://dbfiddle.uk/?rdbms=postgres_13&fiddle=4fc59c7e6a05b14f1dd03b3d2f8859e1)). +I had always an impression that covering indexes are mostly useful in the case of UNIQUE index and unique constraint enforcement – if we have a unique index and want to add a column to it, we cannot just extend the list of columns because it would change the uniqueness constraint. Instead, we add it to `INCLUDE`. However, Franck showed to me another benefit of covering indexes compared to multicolumn ones – changing values of the "extra" column in a covering index is lighter (hence, faster) than the same change in the case when the column is a part of the column list in a multicolumn index (here is [a simple demo from Franck](https://web.archive.org/web/20211201000000/https://dbfiddle.uk/?rdbms=postgres_13&fiddle=4fc59c7e6a05b14f1dd03b3d2f8859e1)). ## Experiments diff --git a/blog/20211221-dle-3-0-0-brings-ui-and-persistent-clones.md b/blog/20211221-dle-3-0-0-brings-ui-and-persistent-clones.md index f0d18941..4148b15d 100644 --- a/blog/20211221-dle-3-0-0-brings-ui-and-persistent-clones.md +++ b/blog/20211221-dle-3-0-0-brings-ui-and-persistent-clones.md @@ -68,7 +68,7 @@ Some users have told us that with UI in hands, it becomes much easier to explain ## Persistent clones: keep working with your cloned Postgres databases during maintenance Another feature added to DLE 3.0 is also something that DLE users have asked a lot about. Before 3.0, any restart of DLE meant the loss of all clones created – so DLE upgrades, VM restarts, and even simple reconfiguration of DLE always needed a maintenance window, interrupting work. -A partial solution to this problem was the ability to [reconfigure DLE without restarts](/docs/how-to-guides/administration/engine-manage#reconfigure-database-lab-engine) introduced in DLE 2.0. However, this wasn't helpful in the cases of DLE upgrades or VM restarts. Now with DLE 3.0, this problem is fully solved: +A partial solution to this problem was the ability to [reconfigure DLE without restarts](/docs/dblab-howtos/administration/engine-manage#reconfigure-dblab-engine) introduced in DLE 2.0. However, this wasn't helpful in the cases of DLE upgrades or VM restarts. Now with DLE 3.0, this problem is fully solved: - If you are running DLE 2.5 or older, plan one more maintenance window – and this will be the last one for upgrades. All subsequent upgrades will keep clones alive. - If you experience a VM failure – not uncommon in cloud environments – once it's back, clones will be re-created, keeping the database state. @@ -93,7 +93,7 @@ We are planning to discuss the aspects of running multiple DLEs on a single mach - [Database Lab documentation](/docs) - [Tutorial for any database](/docs/tutorials/database-lab-tutorial) - [Tutorial for Amazon RDS](/docs/tutorials/database-lab-tutorial-amazon-rds) -- [Interactive tutorial (Katacoda)](https://www.katacoda.com/postgres-ai/scenarios/database-lab-tutorial) +- [Interactive tutorial (Katacoda, archived)](https://web.archive.org/web/2022/https://www.katacoda.com/postgres-ai/scenarios/database-lab-tutorial) :::tip To get help, reach out to the Postgres.ai team and the growing community of Database Lab users and contributors: https://postgres.ai/contact. @@ -102,7 +102,7 @@ To get help, reach out to the Postgres.ai team and the growing community of Data ## Request for feedback and contributions Feedback and contributions would be greatly appreciated: - [Database Lab Community Slack](https://slack.postgres.ai/) -- [DLE & DB Migration Checker issue tracker](https://gitlab.com/postgres-ai/database-lab/-/issues) +- [DLE & DB Migration Checker issue tracker](https://github.com/postgres-ai/database-lab-engine/issues) - [Issue tracker of the Terraform module for Database Lab](https://gitlab.com/postgres-ai/database-lab-infrastructure/-/issues) Like Database Lab? Give us a GitHub star: https://github.com/postgres-ai/database-lab. diff --git a/blog/20220405-database-lab-engine-3-1-released.md b/blog/20220405-database-lab-engine-3-1-released.md index a8cdccec..ef0b4577 100644 --- a/blog/20220405-database-lab-engine-3-1-released.md +++ b/blog/20220405-database-lab-engine-3-1-released.md @@ -37,7 +37,7 @@ Community news: - 🌠 DLE repository on GitHub now has 1,100+ stars; many thanks to everyone who supports the project in any way - 💥 Pieter Vincken has published a blog post describing their experience of using DLE: [\"Testing with production data made easy\"](https://ordina-jworks.github.io/cloud/2022/02/14/postgres-ai.html) - 📈 The Twitter account has reached 400 followers – please follow [@Database_Lab](https://twitter.com/Database_Lab) -- 🎉 DLE now has 15 contributors. More contributions are welcome! See [\"good first issues\"](https://gitlab.com/postgres-ai/database-lab/-/issues?sort=created_date&state=opened&label_name%5B%5D=good+first+issue) +- 🎉 DLE now has 15 contributors. More contributions are welcome! See [\"good first issues\"](https://github.com/postgres-ai/database-lab-engine/issues?q=is%3Aopen+label%3A%22good+first+issue%22) - 🥇 Please consider various ways to contribute – read [CONTRIBUTING.md](https://github.com/postgres-ai/database-lab-engine/blob/master/CONTRIBUTING.md) ## What's new @@ -69,8 +69,8 @@ If you are running DLE 3.0 or older, please read the full [Migration notes](http ## Get started To get started with Database Lab Engine 3.1: -1. Check out the [installation guide](https://postgres.ai/docs/database-lab/getting-started) -2. Join our [community Slack](https://postgres.ai/community) +1. Check out the [installation guide](https://postgres.ai/docs/tutorials/database-lab-tutorial) +2. Join our [community Slack](https://slack.postgres.ai/) 3. Follow [@Database_Lab](https://twitter.com/Database_Lab) on Twitter for updates <BlogFooter author={nik} /> \ No newline at end of file diff --git a/blog/20220703-dle-in-aws-marketplace.md b/blog/20220703-dle-in-aws-marketplace.md index 352b4223..dae9d061 100644 --- a/blog/20220703-dle-in-aws-marketplace.md +++ b/blog/20220703-dle-in-aws-marketplace.md @@ -39,6 +39,6 @@ Achieving the lowest entry barrier for the new DLE users remains to be one of ou 1. Physical mode (for those who manage Postgres themselves) 2. Many advanced DLE configuration options are not available in AWS Marketplace / CloudFormation interface; however, they can still be adjusted once the instance is created -To start, please read the documentation: ["How to install DLE from the AWS Marketplace"](/docs/how-to-guides/administration/install-dle-from-aws-marketplace). +To start, please read the documentation: ["How to install DLE from the AWS Marketplace"](/docs/dblab-howtos/administration/install-dle-from-aws-marketplace). <BlogFooter author={nik} /> diff --git a/blog/20221020-database-lab-engine-3-2-released.md b/blog/20221020-database-lab-engine-3-2-released.md index c8e8c581..6b32e26c 100644 --- a/blog/20221020-database-lab-engine-3-2-released.md +++ b/blog/20221020-database-lab-engine-3-2-released.md @@ -31,7 +31,7 @@ In DLE 3.2: Community news: - 🌠 DLE repository on GitHub reached 1,4k stars; many thanks to everyone who supports the project in any way - 📈 The Twitter account has reached 800 followers – please follow [@Database_Lab](https://twitter.com/Database_Lab) -- 🎉 DLE now has 19 contributors. More contributions are welcome! See ["good first issues"](https://gitlab.com/postgres-ai/database-lab/-/issues?sort=created_date&state=opened&label_name%5B%5D=good+first+issue) +- 🎉 DLE now has 19 contributors. More contributions are welcome! See ["good first issues"](https://github.com/postgres-ai/database-lab-engine/issues?q=is%3Aopen+label%3A%22good+first+issue%22) - 🥇 Please consider various ways to contribute – read [CONTRIBUTING.md](https://github.com/postgres-ai/database-lab-engine/blob/master/CONTRIBUTING.md) <BlogFooter author={nik} /> diff --git a/blog/20230722-10-postgres-tips-for-beginners.md b/blog/20230722-10-postgres-tips-for-beginners.md index f95754a2..b9d49526 100644 --- a/blog/20230722-10-postgres-tips-for-beginners.md +++ b/blog/20230722-10-postgres-tips-for-beginners.md @@ -87,7 +87,7 @@ For more info, check out our podcast episode: As with many systems, in Postgres, the logs are a treasure trove of information, giving you detailed insights into the system's operations and potential issues. By enabling comprehensive logging, you can stay ahead of problems, optimize performance, and ensure the overall health of your database. - **Choosing what to log**: The key to effective logging is knowing what to log without overwhelming your system. By setting parameters like `log_checkpoints = 0`, `log_autovacuum_min_duration = 0`, `log_temp_files = 0`, and `log_lock_waits = on`, you gain visibility into checkpoints, autovacuum operations, temporary file creations, and lock waits. These are some of the most common areas where issues can arise, making them crucial for monitoring. -- **Balance between insight and overhead**: It's important to note that while extensive logging can provide valuable insights, it can also introduce overhead. This is especially true if you set the `log_min_duration_statement` to a very low value. For instance, setting it to `200ms` would log every statement taking longer than that, which can be both informative and potentially performance-degrading. Always be cautious and aware of the ["observer effect"](https://en.wikipedia.org/wiki/Observer_effect_(information_technology)) – the impact of the monitoring process on the system being observed. +- **Balance between insight and overhead**: It's important to note that while extensive logging can provide valuable insights, it can also introduce overhead. This is especially true if you set the `log_min_duration_statement` to a very low value. For instance, setting it to `200ms` would log every statement taking longer than that, which can be both informative and potentially performance-degrading. Always be cautious and aware of the ["observer effect"](https://en.wikipedia.org/wiki/Observer_effect_%28information_technology%29) – the impact of the monitoring process on the system being observed. But without the granular insights from the logs, diagnosing the problem would have been much more challenging. In essence, while logging is an immensely powerful tool in your Postgres arsenal, it requires careful configuration and periodic review to ensure it remains a help, not a hindrance. diff --git a/blog/20230819-dblab-engine-3-4-released.md b/blog/20230819-dblab-engine-3-4-released.md index 374824bb..9db7db45 100644 --- a/blog/20230819-dblab-engine-3-4-released.md +++ b/blog/20230819-dblab-engine-3-4-released.md @@ -114,6 +114,6 @@ Interested in giving back to the project? Here's how you can make an impact: - Give a star to our [GitHub repository](https://github.com/postgres-ai/database-lab-engine) - Help us reach more enthusiasts. Share about Database Lab on Twitter (don't forget to tag [@Database_Lab](https://twitter.com/Database_Lab)) or any other platform you fancy - Multilingual? Consider [translating our README.md](https://gitlab.com/postgres-ai/database-lab/-/blob/master/CONTRIBUTING.md#translation) to share the knowledge in your language -- Are you a developer? Dive in and enhance the Database Lab Engine (DLE) experience; check out our [CONTRIBUTING guidelines](https://gitlab.com/postgres-ai/database-lab/-/blob/master/CONTRIBUTING.md) and explore [the "good first issues" list](https://gitlab.com/postgres-ai/database-lab/-/issues?sort=created_date&state=opened&label_name[]=good+first+issue) on GitLab +- Are you a developer? Dive in and enhance the Database Lab Engine (DLE) experience; check out our [CONTRIBUTING guidelines](https://gitlab.com/postgres-ai/database-lab/-/blob/master/CONTRIBUTING.md) and explore [the "good first issues" list](https://github.com/postgres-ai/database-lab-engine/issues?q=is%3Aopen+label%3A%22good+first+issue%22) on GitHub <BlogFooter author={nik} /> diff --git a/blog/20240127-postgres-ai-bot.md b/blog/20240127-postgres-ai-bot.md index decbe235..50e826a5 100644 --- a/blog/20240127-postgres-ai-bot.md +++ b/blog/20240127-postgres-ai-bot.md @@ -65,7 +65,7 @@ It has always been important to validate my own ideas, which often led to refine Although experiments are enriching, they usually require significant effort. This challenge is addressed through automation. Our new Postgres.AI bot elevates experimenting with Postgres to a new level, saving considerable time and resources. ### IVO – immediately validatable output -Another principle is one of the first lessons we have learned at Google AI Startup school, from [Zack Akil](https://www.linkedin.com/in/zackakil/): if the system you're building has IVO – immediately validatable output – then you're on a right path. It means that the generative AI (GenAI) output should be possible to quickly and easily validate. This idea is close to [the Shift-left testing concept](https://en.wikipedia.org/wiki/Shift-left_testing), and it is fully aligned with the 2nd consulting principle above. +Another principle is one of the first lessons we have learned at Google AI Startup school, from [Zack Akil](https://www.zackakil.com/): if the system you're building has IVO – immediately validatable output – then you're on a right path. It means that the generative AI (GenAI) output should be possible to quickly and easily validate. This idea is close to [the Shift-left testing concept](https://en.wikipedia.org/wiki/Shift-left_testing), and it is fully aligned with the 2nd consulting principle above. This principle leads to two important conclusions for our case: 1. Users who understand the risks of false positives in LLM answers (called "hallucinations" in the field of GenAI) and are ready to iterate achieve much better results. Therefore, our goal is to explain this to our users and offer them paths to iterate conveniently. @@ -144,9 +144,9 @@ To implement the second consulting principle, Verification, we decided to build To check SQL or planner behavior, when one or two database connections are enough, it is ideal to conduct the experiment in a shared environment using thin clones provided by [Postgres.AI DBLab Engine](https://postgres.ai/docs/database-lab). We have 5 DBLab Engines set up for each Postgres major version currently supported (from 12 to 16), and the bot can request a new clone at any time, which takes ~1s to provide, benefiting from [copy-on-write](https://en.wikipedia.org/wiki/Copy-on-write) for data. ### Dedicated-environment experiments -To study Postgres as a whole, to analyze the behavior of all its components such as the buffer pool, lock manager, we need experiments on separate VMs in GCP. Machine provisioning and software installation are managed by [postgresql_cluster](https://github.com/vitabaks/postgresql_cluster/); it installs the needed version of Postgres, [Patroni](https://github.com/zalando/patroni), various extensions, including those used for observability. Experiments are conducted using `pgbench` or `psql`, depending on the needs. Optionally, the bot can request installation of arbitrary software, compile a patched version from source code, tune Postgres, and much more. Although postgresql_cluster can provision a Patroni cluster consisting of multiple nodes, experiments are currently limited to only one node, the primary. An experiment can consist of multiple iterations. Before each iteration, caches (both page cache and Postgres buffer pool) are automatically flushed and cumulative statistic system is reset. After each iteration, artifacts are automatically collected and stored in the Postgres.AI database, for further analysis. +To study Postgres as a whole, to analyze the behavior of all its components such as the buffer pool, lock manager, we need experiments on separate VMs in GCP. Machine provisioning and software installation are managed by [Autobase](https://github.com/vitabaks/autobase) (formerly postgresql_cluster); it installs the needed version of Postgres, [Patroni](https://github.com/zalando/patroni), various extensions, including those used for observability. Experiments are conducted using `pgbench` or `psql`, depending on the needs. Optionally, the bot can request installation of arbitrary software, compile a patched version from source code, tune Postgres, and much more. Although postgresql_cluster can provision a Patroni cluster consisting of multiple nodes, experiments are currently limited to only one node, the primary. An experiment can consist of multiple iterations. Before each iteration, caches (both page cache and Postgres buffer pool) are automatically flushed and cumulative statistic system is reset. After each iteration, artifacts are automatically collected and stored in the PostgresAI database, for further analysis. -All automation is done via GitLab pipelines. For each experimentation step, we collect 70+ artifacts such as information about machine, Postgres version, all settings, content of all `pg_stat_***` views. You can find an example in [this GitLab pipeline's data](https://gitlab.com/postgres-ai/postgresql-consulting/tests-and-benchmarks/-/jobs/5969127912/artifacts/browse/ARTIFACTS/). +All automation is done via GitLab pipelines. For each experimentation step, we collect 70+ artifacts such as information about machine, Postgres version, all settings, content of all `pg_stat_***` views. You can find an example in [this GitLab pipeline's data](https://gitlab.com/postgres-ai/postgresql-consulting/tests-and-benchmarks/-/jobs/5969127912) (artifacts have since expired; the job page is still available). ## Google Cloud AI Startup Program Recently, Postgres.AI was accepted to [Google Cloud's AI startup program](https://cloud.google.com/startup/ai?hl=en), receiving $350k in cloud credits, as well as access to other benefits. This is a great help for us, allowing us to move faster in bot development, research, and knowledge base growth. diff --git a/blog/20241003-how-does-planning-time-depend-on-number-of-partitions.md b/blog/20241003-how-does-planning-time-depend-on-number-of-partitions.md index d2b65be5..a052757f 100644 --- a/blog/20241003-how-does-planning-time-depend-on-number-of-partitions.md +++ b/blog/20241003-how-does-planning-time-depend-on-number-of-partitions.md @@ -127,7 +127,7 @@ You can explore these results further and even modify the experiment using the P <p align="center"> <AssistantWidget - aiContext={"Fetch https://postgres.ai/chats/01924928-4727-78a4-a01a-c42e764f5466 and https://postgres.ai/blog/20241003-how-does-planning-time-depend-on-number-of-partitions.\n" + + aiContext={"Fetch https://postgres.ai/chats/01924928-4727-78a4-a01a-c42e764f5466 and https://postgres.ai/blog/20241003-how-does-planning-time-depend-on-number-of-partitions\n" + "Be prepared to replicate experiment in DBLab:\n" + "- display the results in the following format: number of partitions: execution plan\n" + "- generate 2-3 data points and show intermediate results to user, before continuing\n\n" + diff --git a/blog/20251008-postgres-marathon-2-004.md b/blog/20251008-postgres-marathon-2-004.md index 3d51e386..8cdc3c72 100644 --- a/blog/20251008-postgres-marathon-2-004.md +++ b/blog/20251008-postgres-marathon-2-004.md @@ -32,7 +32,7 @@ Therefore, other backends don't normally need to check fast-path locks - they on With partitioning becoming popular, 16 slots often isn't enough. A query touching a partitioned table with multiple indexes per partition quickly exhausts the fast-path limit. When you overflow those 16 slots, you're back to the main lock table and LWLock:LockManager contention. -This became a real problem for multiple PostgresAI clients in 2023 - they were experiencing severe LWLock:LockManager contention. We had some tests where we changed `FP_LOCK_SLOTS_PER_BACKEND` and confirmed that it mitigates LWLock:LockManager contention in certain cases, so [I proposed to make this hard-coded value configurable](https://www.postgresql.org/message-id/flat/CAM527d-uDn5osa6QPKxHAC6srOfBH3M8iXUM%3DewqHV6n%3Dw1u8Q%40mail.gmail.com). [Tomas Vondra](https://www.linkedin.com/in/tomasvondra/) was the first to respond, and it was clear he had also been studying similar cases. +This became a real problem for multiple PostgresAI clients in 2023 - they were experiencing severe LWLock:LockManager contention. We had some tests where we changed `FP_LOCK_SLOTS_PER_BACKEND` and confirmed that it mitigates LWLock:LockManager contention in certain cases, so [I proposed to make this hard-coded value configurable](https://www.postgresql.org/message-id/flat/CAM527d-uDn5osa6QPKxHAC6srOfBH3M8iXUM%3DewqHV6n%3Dw1u8Q%40mail.gmail.com). [Tomas Vondra](https://postgresql.life/post/tomas_vondra/) was the first to respond, and it was clear he had also been studying similar cases. In Postgres 18 ([commit `c4d5cb71d`](https://github.com/postgres/postgres/commit/c4d5cb71d)), the storage for fast-path locks has changed, now fast-path locks are stored in variable-sized arrays in separate shared memory (referenced via pointers from PGPROC). This allows variable sizing, so allowed number of fast-path locks for a backend scales with `max_locks_per_transaction` (default 64 slots). This is one of the trickiest parameters to understand fully, so we'll talk about it separately. Changing it requires Postgres restart. diff --git a/blog/20251014-postgres-marathon-2-008.md b/blog/20251014-postgres-marathon-2-008.md index a77f2eea..bb028167 100644 --- a/blog/20251014-postgres-marathon-2-008.md +++ b/blog/20251014-postgres-marathon-2-008.md @@ -219,7 +219,7 @@ Starting with execution 7 and further, we use cached generic plan, and executor plan = plansource->gplan; // Use cached plan } ``` -4. Inside [`CheckCachedPlan`](CheckCachedPlan) executor locks are acquired: +4. Inside `CheckCachedPlan` executor locks are acquired: ```c AcquireExecutorLocks(plan->stmt_list, true); ``` diff --git a/blog/20251030-postgres-marathon-2-011.md b/blog/20251030-postgres-marathon-2-011.md index 7a1b705f..1a821f5d 100644 --- a/blog/20251030-postgres-marathon-2-011.md +++ b/blog/20251030-postgres-marathon-2-011.md @@ -172,7 +172,7 @@ The obvious question arises: doesn't re-planning on every execution have overhea Is planning overhead worse than locking overhead? With partitioned tables, planning involves partition pruning logic. With 12 partitions, planning is fast. In some cases, planning may be expensive. The O(n) locking overhead typically dominates the planning cost, especially with many partitions. -Amit Langote has been working on this problem, with preparatory work in early 2025. The main optimization to move runtime pruning before `AcquireExecutorLocks()` is still work in progress, discussed in the [pgsql-hackers thread](https://www.postgresql.org/message-id/flat/CA+HiwqGKid5q1KnOg3ih7pJ+tpxUKmWS=KpoiBLoRfMCcHig0g@mail.gmail.com). When this lands, executor lock acquisition will only lock the partitions that survive runtime pruning, so generic plan execution 2+ would acquire only 8 locks (parent + 1 partition + indexes), making generic plans viable again for partitioned tables. +Amit Langote has been working on this problem, with preparatory work in early 2025. The main optimization to move runtime pruning before `AcquireExecutorLocks()` is still work in progress, tracked in the related [CommitFest entry](https://commitfest.postgresql.org/38/3478/). When this lands, executor lock acquisition will only lock the partitions that survive runtime pruning, so generic plan execution 2+ would acquire only 8 locks (parent + 1 partition + indexes), making generic plans viable again for partitioned tables. There's still a catch: the planner's cost estimation still sees generic plans as expensive, so even with the optimization, `auto` mode may keep choosing custom plans. As Amit notes in [his 2022 blog post](https://amitlan.com/2022/05/16/param-query-partition-woes.html), "Till that's also fixed, users will need to use `plan_cache_mode = force_generic_plan` to have plan caching for partitions." This recommendation applies to future Postgres versions with his locking optimization — for current versions without it, the situation is different. diff --git a/blog/dle-2.0-release.md b/blog/dle-2.0-release.md index 46526db9..f5e79530 100644 --- a/blog/dle-2.0-release.md +++ b/blog/dle-2.0-release.md @@ -26,7 +26,7 @@ The Postgres.ai team is proud to announce version 2.0 of Database Lab Engine (DL This release continues our strategy to automate all routine tasks such as initialization of the PostgreSQL data directory, data transformation, and snapshot management. In DLE 2.0, all these tasks can be flexibly configured in a single configuration file. As a result, building dev&test environments for projects with many databases (such as those that adopted microservice architecture) becomes much easier. -The previous versions of the Database Lab introduced the core technology: thin clone provisioning, based on either [ZFS](https://en.wikipedia.org/wiki/ZFS) (default) or [LVM](<https://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux)>). It was already possible to provision full-sized multi-terabyte database clones in just a few seconds and use them for a broad spectrum of tasks such as database schema changes verification, SQL query analysis, or general application testing. +The previous versions of the Database Lab introduced the core technology: thin clone provisioning, based on either [ZFS](https://en.wikipedia.org/wiki/ZFS) (default) or [LVM](<https://en.wikipedia.org/wiki/Logical_Volume_Manager_%28Linux%29>). It was already possible to provision full-sized multi-terabyte database clones in just a few seconds and use them for a broad spectrum of tasks such as database schema changes verification, SQL query analysis, or general application testing. Version 2.0 speeds up and empowers the initialization of DLE itself. Instead of using custom scripts for initial and continuous data retrieval, it is now possible to configure everything in a declarative manner to get the data and be up and running. diff --git a/blog/dle-2.1-release.md b/blog/dle-2.1-release.md index a1f3ada1..ba19556e 100644 --- a/blog/dle-2.1-release.md +++ b/blog/dle-2.1-release.md @@ -55,7 +55,7 @@ Please send us any feedback you have – it is hard to overestimate its meaning - Follow us on Twitter: [@Database_Lab](https://twitter.com/Database_Lab) - [Community Slack (English)](https://slack.postgres.ai/), and [Telegram group (Russian)](https://t.me/databaselabru) -- [Database Lab Engine repository](https://gitlab.com/postgres-ai/database-lab), with the [issue tracker](https://gitlab.com/postgres-ai/database-lab/-/issues) +- [Database Lab Engine repository](https://gitlab.com/postgres-ai/database-lab), with the [issue tracker](https://github.com/postgres-ai/database-lab-engine/issues) --- diff --git a/blog/dle-2.2-release.md b/blog/dle-2.2-release.md index b1e24b7f..bb34450e 100644 --- a/blog/dle-2.2-release.md +++ b/blog/dle-2.2-release.md @@ -97,7 +97,7 @@ Your feedback is highly appreciated! - Twitter: [@Database_Lab](https://twitter.com/Database_Lab) - [Community Slack with Joe Bot live demo](https://slack.postgres.ai) (English), and [Telegram group](https://t.me/databaselabru) (Russian) -- [Database Lab Engine repository](https://gitlab.com/postgres-ai/database-lab), with the [issue tracker](https://gitlab.com/postgres-ai/database-lab/-/issues) -- [SQL Optimization Chatbot repository](https://gitlab.com/postgres-ai/joe), with the [issue tracker](https://gitlab.com/postgres-ai/joe/-/issues) +- [Database Lab Engine repository](https://gitlab.com/postgres-ai/database-lab), with the [issue tracker](https://github.com/postgres-ai/database-lab-engine/issues) +- [SQL Optimization Chatbot repository](https://gitlab.com/postgres-ai/joe), with the [issue tracker](https://github.com/postgres-ai/joe/issues) <BlogFooter author={nik} /> diff --git a/blog/joe-0.5.md b/blog/joe-0.5.md index bcdd3e9f..878428cb 100644 --- a/blog/joe-0.5.md +++ b/blog/joe-0.5.md @@ -59,7 +59,7 @@ Version 0.5.0 adds support of Slack API signed secrets, automated notifications - Tutorial: https://postgres.ai/docs/tutorials/joe-setup - Open-source repository: https://gitlab.com/postgres-ai/joe/ - Changelog: https://gitlab.com/postgres-ai/joe/-/releases -- Bug reports, ideas, and merge requests are welcome: https://gitlab.com/postgres-ai/joe/issues/ +- Bug reports, ideas, and pull/merge requests are welcome: https://github.com/postgres-ai/joe/issues - Community Slack (English): https://slack.postgres.ai/. After joining, the live demo of Joe is available in the #joe-bot-demo channel: https://database-lab-team.slack.com/archives/CTL5BB30R <!--truncate--> diff --git a/blog/joe-0.6.md b/blog/joe-0.6.md index 4c050266..6c64e949 100644 --- a/blog/joe-0.6.md +++ b/blog/joe-0.6.md @@ -169,7 +169,7 @@ See the full list of Joe's commands in the docs: https://postgres.ai/docs/refere ### Links: - Open-source repository and issue tracker: https://gitlab.com/postgres-ai/joe/ -- Full command list: https://postgres.ai/docs/joe-bot/usage +- Full command list: https://postgres.ai/docs/joe-bot/ - Extended images with PostgreSQL: https://hub.docker.com/r/postgresai/extended-postgres Includes HypoPG, pg_hint_plan, more - Proposals to add more extensions are welcome in the Custom Images repo: https://gitlab.com/postgres-ai/custom-images - Community Slack (English): https://slack.postgres.ai/. After joining, the live demo is available in the #joe-bot-demo channel: https://database-lab-team.slack.com/archives/CTL5BB30R diff --git a/blog/joe-0.7.md b/blog/joe-0.7.md index f847fad8..037f1690 100644 --- a/blog/joe-0.7.md +++ b/blog/joe-0.7.md @@ -44,7 +44,7 @@ Originally, only the Slack version of Joe Bot was publicly available. Today, we The good news is that you can use both of them in parallel. -Thanks to recent refactoring of Joe codebase, and the fact that this codebase is open-source, you can develop and add support for any messenger. Feel free to open issues to discuss the implementation and merge requests to include the code into the main Joe Bot repository. See also: [communication channels issues](https://gitlab.com/postgres-ai/joe/-/issues?label_name%5B%5D=Communication+channel), and discussions in our [Community Slack](https://slack.postgres.ai/). +Thanks to recent refactoring of Joe codebase, and the fact that this codebase is open-source, you can develop and add support for any messenger. Feel free to open issues to discuss the implementation and merge requests to include the code into the main Joe Bot repository. See also: [the Joe Bot issue tracker](https://github.com/postgres-ai/joe/issues), and discussions in our [Community Slack](https://slack.postgres.ai/). Check [Platform Overview](https://postgres.ai/docs/platform) to discover all advantages of using Web UI working on Postgres.ai Platform. diff --git a/docs/all-features.md b/docs/all-features.md index ab6086d4..cf674422 100644 --- a/docs/all-features.md +++ b/docs/all-features.md @@ -72,4 +72,4 @@ keywords: |Standard support|❌|✅|✅| |Premium support (24/7, 1 hour), trainings|❌|✅|✅| -See also: [Development roadmap](/docs/dblab-roadmap). +See also: [Development roadmap](/docs/roadmap). diff --git a/docs/database-lab/index.md b/docs/database-lab/index.md index 44bf8bf1..c5902fce 100644 --- a/docs/database-lab/index.md +++ b/docs/database-lab/index.md @@ -25,7 +25,7 @@ import useBaseUrl from '@docusaurus/useBaseUrl'; - [Client CLI reference (`dblab`)](/docs/reference-guides/dblab-client-cli-reference) - [DBLab Engine configuration reference](/docs/reference-guides/database-lab-engine-configuration-reference) -## User Guides +## User guides - [How to create DBLab clones](/docs/dblab-howtos/cloning/create-clone) - [How to connect to DBLab clones](/docs/dblab-howtos/cloning/connect-clone) - [How to reset DBLab clone](/docs/dblab-howtos/cloning/reset-clone) @@ -58,7 +58,7 @@ DBLab Engine includes the server with API with basic single-user authentication, As an example, cloning of 10 TiB PostgreSQL database takes less than 2 seconds when a single user is using the DBLab Engine instance, and up to 30 seconds when 15 users are working with it at the same time. Moreover, such cloning (called "thin cloning") does not increase budgets: on a single mid-size machine with a single physical copy of the database, it is possible to run dozens of thin clones simultaneously. -Thin cloning is possible thanks to [copy-on-write](https://en.wikipedia.org/wiki/Copy-on-write) capabilities provided by either [ZFS filesystem](https://en.wikipedia.org/wiki/ZFS) or [LVM2](https://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux)) (other options such as hardware-based support of thin cloning, can be developed thanks to the modular and open architecture of DBLab Engine). +Thin cloning is possible thanks to [copy-on-write](https://en.wikipedia.org/wiki/Copy-on-write) capabilities provided by either [ZFS filesystem](https://en.wikipedia.org/wiki/ZFS) or [LVM2](https://en.wikipedia.org/wiki/Logical_Volume_Manager_%28Linux%29) (other options such as hardware-based support of thin cloning, can be developed thanks to the modular and open architecture of DBLab Engine). Some problems that can be solved by using DBLab: @@ -67,8 +67,8 @@ Some problems that can be solved by using DBLab: - help verify database migrations (DB schema changes) and massive data operations. ### Features -- Works well both on-premise and in clouds. -- Thin provisioning in seconds thanks to copy-on-write (CoW) provided by [ZFS](https://en.wikipedia.org/wiki/ZFS) and a special methodology for preparing PostgreSQL database snapshots. There is also an option to use [LVM](https://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux)) instead of ZFS. +- Works well both on-premises and in clouds. +- Thin provisioning in seconds thanks to copy-on-write (CoW) provided by [ZFS](https://en.wikipedia.org/wiki/ZFS) and a special methodology for preparing PostgreSQL database snapshots. There is also an option to use [LVM](https://en.wikipedia.org/wiki/Logical_Volume_Manager_%28Linux%29) instead of ZFS. - Unlimited size of databases (Postgres database size [is unlimited](https://www.postgresql.org/docs/current/limits.html), ZFS volume can be up to 21^28 bytes, or [256 trillion yobibytes](https://en.wikipedia.org/wiki/ZFS)). - Supports PostgreSQL from version 10 up to the most recently released version. - Thin cloning takes only a few seconds, regardless of the database size. @@ -97,5 +97,5 @@ For DBLab EE inquiries, reach out to the PostgresAI team: **<a href="mailto:cont ### More - [Repository](https://gitlab.com/postgres-ai/database-lab) -- [Issue tracker](https://gitlab.com/postgres-ai/database-lab/issues) (for bugs reports, feature proposals) +- [Issue tracker](https://github.com/postgres-ai/database-lab-engine/issues) (for bug reports, feature proposals) - [Slack](https://slack.postgres.ai/) diff --git a/docs/database-lab/masking.md b/docs/database-lab/masking.md index 9a67fa6c..07fef07b 100644 --- a/docs/database-lab/masking.md +++ b/docs/database-lab/masking.md @@ -62,7 +62,7 @@ DBLab Engine is deployed only on production infrastructure, and it physically st - High requirements for security administration - More difficult to configure and maintain access (developers need to deal with the production environment; automation scripts need to reach the DBLab Engine, which may cause complications) -### Post-masking, option 2b: DBLab Engine in Test/Dev/Staging +### Post-masking, option 2b: DBLab Engine in test/dev/staging DBLab Engine is deployed only on test/dev/staging infrastructure, and it physically stores PII. Developers work with masked data. ![Post-masking / Option 2b. DBLab Engine in Test/Dev/Staging](/assets/masking-2b-staging.png) @@ -84,7 +84,7 @@ DBLab Engine supports obfuscation of any type via injecting an SQL transformatio Options: - Use custom obfuscation script (define it using `preprocessingScript` option of [`logicalSnapshot`](/docs/reference-guides/database-lab-engine-configuration-reference#job-logicalsnapshot) or [`physicalSnapshot`](/docs/reference-guides/database-lab-engine-configuration-reference#job-physicalsnapshot) jobs) -- Use PostgreSQL Anonymizer: [Permanently remove sensitive data](https://postgresql-anonymizer.readthedocs.io/en/stable/static_masking.html) +- Use PostgreSQL Anonymizer: [Permanently remove sensitive data](https://postgresql-anonymizer.readthedocs.io/en/stable/static_masking/) #### Pros - PII data anonymization not affecting production servers diff --git a/docs/database-lab/supported-databases.md b/docs/database-lab/supported-databases.md index 4cb63d78..c5077672 100644 --- a/docs/database-lab/supported-databases.md +++ b/docs/database-lab/supported-databases.md @@ -30,7 +30,7 @@ All these extended images include the following extensions: - [bg_mon](https://github.com/CyberDem0n/bg_mon) - [pg_auth_mon](https://github.com/RafiaSabih/pg_auth_mon) - [PoWA](https://github.com/powa-team/powa) -- [pg_hint_plan](https://pghintplan.osdn.jp/pg_hint_plan.html) +- [pg_hint_plan](https://github.com/ossc-db/pg_hint_plan) - [Timescale](https://github.com/timescale/timescaledb) (only for Postgres 12+) - [Citus](https://github.com/citusdata/citus) (only for Postgres 11+) - [HypoPG](https://github.com/HypoPG/hypopg) @@ -44,7 +44,7 @@ All these extended images include the following extensions: - [pgextwlist](https://github.com/dimitri/pgextwlist) - [hll](https://github.com/citusdata/postgresql-hll) - [topn](https://github.com/citusdata/postgresql-topn) (only for Postgres 10+) -- [postgresql_anonymizer](https://github.com/webysther/postgresql_anonymizer) +- [postgresql_anonymizer](https://gitlab.com/dalibo/postgresql_anonymizer) - [pgaudit](https://github.com/pgaudit/pgaudit) - [set_user](https://github.com/pgaudit/set_user) (only for Postgres 10+) diff --git a/docs/database-lab/timing-estimator.md b/docs/database-lab/timing-estimator.md index 76aa7c19..2ea8dc17 100644 --- a/docs/database-lab/timing-estimator.md +++ b/docs/database-lab/timing-estimator.md @@ -15,7 +15,7 @@ The Query Estimator is an experimental feature of [DBLab Engine](https://gitlab. This feature has been removed in DLE 3.4.0. Future versions might include a different implementation of this feature. ::: -Database Lab clones are almost exact copies of the production database yet some limitations should be kept in mind. Under the hood, Database Lab clones use copy-on-write technology (currently supported: [ZFS](https://en.wikipedia.org/wiki/ZFS) and [LVM 2](https://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux)). This technology allows reducing cloning time and amount of the extra disk space needed for it almost to zero. On the other side, it has different IO performance in comparison to file systems most commonly used on production environments (such as [ext4](https://en.wikipedia.org/wiki/Ext4)). This difference affects the database operations *timing*, it may be noticeably bigger on the clones. Other factors may affect query *timing* too. That is why it is recommended to focus on the plan structure and data volumes (buffer numbers in the case of "physical" provisioning mode, and row numbers in the case of "logical" provisioning mode) when dealing with EXPLAIN plans. Timing numbers in such plans obtained on thing clones should not be directly compared to the corresponding numbers obtained on production. +Database Lab clones are almost exact copies of the production database yet some limitations should be kept in mind. Under the hood, Database Lab clones use copy-on-write technology (currently supported: [ZFS](https://en.wikipedia.org/wiki/ZFS) and [LVM 2](https://en.wikipedia.org/wiki/Logical_Volume_Manager_%28Linux%29). This technology allows reducing cloning time and amount of the extra disk space needed for it almost to zero. On the other side, it has different IO performance in comparison to file systems most commonly used on production environments (such as [ext4](https://en.wikipedia.org/wiki/Ext4)). This difference affects the database operations *timing*, it may be noticeably bigger on the clones. Other factors may affect query *timing* too. That is why it is recommended to focus on the plan structure and data volumes (buffer numbers in the case of "physical" provisioning mode, and row numbers in the case of "logical" provisioning mode) when dealing with EXPLAIN plans. Timing numbers in such plans obtained on thing clones should not be directly compared to the corresponding numbers obtained on production. :::note When [configured properly](https://postgres.ai/docs/dblab-howtos/administration/postgresql-configuration#postgresql-configuration-in-clones), Database Lab clones execute SQL queries very similarly to production: diff --git a/docs/dblab-howtos/administration/data/index.md b/docs/dblab-howtos/administration/data/index.md index 1cdb8f79..be180c1d 100644 --- a/docs/dblab-howtos/administration/data/index.md +++ b/docs/dblab-howtos/administration/data/index.md @@ -27,11 +27,11 @@ Read how you can protect personal data: [Data masking](/docs/database-lab/maskin ### Logical Use [dump/restore](https://www.postgresql.org/docs/current/app-pgdump.html) processes, obtaining a logical copy of the initial database (as a set of SQL commands), and then loading it to the target Database Lab data directory. This is the only option for managed cloud PostgreSQL services such as Amazon RDS. -Physically, the copy of the database created using this method differs from the original one (data blocks are stored differently). However, row counts are the same, as well as internal database statistics, allowing to do various kinds of development and testing, including running EXPLAIN command to optimize SQL queries. +Physically, the copy of the database created using this method differs from the original one (data blocks are stored differently). However, row counts are the same, as well as internal database statistics, allowing you to do various kinds of development and testing, including running EXPLAIN command to optimize SQL queries. ### Physical Physically copy the data directory from the source (or from the archive if a physical backup tool such as WAL-G, pgBackRest or Barman is used). -This approach allows to have a copy of the original database which is physically identical, including the existing bloat, data blocks location. Not supported for managed cloud Postgres services such as Amazon RDS. +This approach allows you to have a copy of the original database which is physically identical, including the existing bloat, data blocks location. Not supported for managed cloud Postgres services such as Amazon RDS. [↵ Back to Guides](/docs/dblab-howtos/) diff --git a/docs/dblab-howtos/administration/data/rds.md b/docs/dblab-howtos/administration/data/rds.md index 22c8c0d7..aabf5646 100644 --- a/docs/dblab-howtos/administration/data/rds.md +++ b/docs/dblab-howtos/administration/data/rds.md @@ -8,7 +8,7 @@ As the first step, you need to set up a machine for DBLab Engine instance. See t ::: :::tip See also -To get started using DBLab Engine for Amazon RDS databses, see the [Database Lab tutorial for Amazon RDS](/docs/tutorials/database-lab-tutorial-amazon-rds). +To get started using DBLab Engine for Amazon RDS databases, see the [Database Lab tutorial for Amazon RDS](/docs/tutorials/database-lab-tutorial-amazon-rds). ::: We have two options to connect to the RDS database, you need to consider the **Database authentication** method that is assigned to your RDS database. diff --git a/docs/dblab-howtos/administration/joe-manage.md b/docs/dblab-howtos/administration/joe-manage.md index e12dd60c..36433091 100644 --- a/docs/dblab-howtos/administration/joe-manage.md +++ b/docs/dblab-howtos/administration/joe-manage.md @@ -35,7 +35,7 @@ After upgrading, all user sessions are restored and should keep working (but Pos ## Observe Joe Bot logs To enable the debugging mode you can use one of the following approaches: -- Set the option `app: debug` to `true` in the [configuration file](/docs/reference-guides/joe-bot-configuration-reference#joe-bot-configuration-file). [Reconfigure the container](#reconfigure-the-joe-bot-container) if the option has been changed. +- Set the option `app: debug` to `true` in the [configuration file](/docs/reference-guides/joe-bot-configuration-reference#joe-bot-configuration-file). [Reconfigure the container](#reconfigure-joe-bot-container) if the option has been changed. - Alternatively, use the environment variable [`JOE_DEBUG`](/docs/reference-guides/joe-bot-configuration-reference#joe_debug) when starting the container (`docker run ... --env JOE_DEBUG=true ...`). To observe the container logs, run: diff --git a/docs/dblab-howtos/administration/run-database-lab-on-mac.md b/docs/dblab-howtos/administration/run-database-lab-on-mac.md index b21cb72e..d348312e 100644 --- a/docs/dblab-howtos/administration/run-database-lab-on-mac.md +++ b/docs/dblab-howtos/administration/run-database-lab-on-mac.md @@ -195,7 +195,7 @@ In your browser, open [http://127.0.0.1:2346](http://127.0.0.1:2346). You'll see a **"refreshing"** state while the engine initializes. This may take some time; please wait until the refresh is complete. Once it's done, you will be able to create snapshots, branches, and clones. -To learn how to work with DBLab UI, see [DBLab Guides](/docs/how-to-guides). +To learn how to work with DBLab UI, see [DBLab how-to guides](/docs/dblab-howtos). ### Install and configure DBLab CLI ```bash diff --git a/docs/dblab-howtos/cli/cli-install-init.md b/docs/dblab-howtos/cli/cli-install-init.md index 14e9ea43..dec59f46 100644 --- a/docs/dblab-howtos/cli/cli-install-init.md +++ b/docs/dblab-howtos/cli/cli-install-init.md @@ -35,7 +35,7 @@ dblab init --environment-id=ENV_ID --url=URL --token=TOKEN - `--url` - URL of Database Lab instance's API - `--token` - verification token of the Database Lab instance to send API requests -> You can also run [`dblab config`](#command-config) at any time to change your settings or create a new configuration. +> You can also run [`dblab config`](/docs/reference-guides/dblab-client-cli-reference#command-config) at any time to change your settings or create a new configuration. 4. Test your configuration with instance status request `dblab instance status`: ```json diff --git a/docs/dblab-howtos/cloning/clone-upgrade.md b/docs/dblab-howtos/cloning/clone-upgrade.md index 0da7abec..08665988 100644 --- a/docs/dblab-howtos/cloning/clone-upgrade.md +++ b/docs/dblab-howtos/cloning/clone-upgrade.md @@ -19,7 +19,6 @@ Create a clone [as usual](/docs/dblab-howtos/cloning/create-clone). It is recommended to mark the clone [protected](/docs/dblab-howtos/cloning/clone-protection), so that DBLab Engine does not delete it during database maintenance. Once the clone is created, remember its port. -::: ## 2. Connect to DBLab server using SSH and perform Postgres major upgrade Perform the following steps to upgrade PostgreSQL inside your clone. diff --git a/docs/dblab-howtos/index.md b/docs/dblab-howtos/index.md index a0e965af..9450cf2c 100644 --- a/docs/dblab-howtos/index.md +++ b/docs/dblab-howtos/index.md @@ -54,7 +54,7 @@ slug: /dblab-howtos ### Physical retrieval - [pg_basebackup](/docs/dblab-howtos/administration/data/pg_basebackup) - [WAL-G](/docs/dblab-howtos/administration/data/wal-g) -- [pgBackRest](/docs/dblab-howtos/administration/data/pgBackRest) +- [pgBackRest](/docs/dblab-howtos/administration/data/pgbackrest) - [Custom](/docs/dblab-howtos/administration/data/custom) ## DBLab (PostgresAI) Platform diff --git a/docs/dblab-howtos/joe-bot/query-activity-and-termination.md b/docs/dblab-howtos/joe-bot/query-activity-and-termination.md index 989006f4..4433bd41 100644 --- a/docs/dblab-howtos/joe-bot/query-activity-and-termination.md +++ b/docs/dblab-howtos/joe-bot/query-activity-and-termination.md @@ -50,7 +50,7 @@ import TabItem from '@theme/TabItem'; </TabItem> </Tabs> -3. If you want to stop the execution of a long-running query, run the [`terminate`](/docs/reference-guides/joe-bot-commands-reference#terminate) command with query's `PID` from the [`activity`](/docs/reference-guides/joe-bot-commands-reference#activity) list. +3. If you want to stop the execution of a long-running query, run the [`terminate`](/docs/reference-guides/joe-bot-commands-reference#terminate-pid) command with query's `PID` from the [`activity`](/docs/reference-guides/joe-bot-commands-reference#activity) list. <Tabs groupId="joe-mode" diff --git a/docs/dblab-howtos/joe-bot/sql-optimization-history.md b/docs/dblab-howtos/joe-bot/sql-optimization-history.md index fd3cc95c..6308eed2 100644 --- a/docs/dblab-howtos/joe-bot/sql-optimization-history.md +++ b/docs/dblab-howtos/joe-bot/sql-optimization-history.md @@ -4,7 +4,7 @@ sidebar_label: Work with SQL optimization history --- :::tip -Enable History functionality with [HISTORY_ENABLED](/docs/reference-guides/joe-bot-configuration-reference#history_enabled) and [PLATFORM_URL](/docs/reference-guides/joe-bot-configuration-reference#platform_url) configuration options. +Enable History functionality with [HISTORY_ENABLED](/docs/reference-guides/joe-bot-configuration-reference#joe_platform_history_enabled) and [PLATFORM_URL](/docs/reference-guides/joe-bot-configuration-reference#joe_platform_url) configuration options. ::: ## Open the Command page from the Joe chat diff --git a/docs/dblab-howtos/joe-bot/visualize-query-plan.md b/docs/dblab-howtos/joe-bot/visualize-query-plan.md index a108d3b7..24497d30 100644 --- a/docs/dblab-howtos/joe-bot/visualize-query-plan.md +++ b/docs/dblab-howtos/joe-bot/visualize-query-plan.md @@ -6,7 +6,7 @@ sidebar_label: Visualize a query plan ## SQL optimization history :::info -Enable the "History" feature using the configuration options [`HISTORY_ENABLED`](/docs/reference-guides/joe-bot-configuration-reference#history_enabled) and [`PLATFORM_URL`](/docs/reference-guides/joe-bot-configuration-reference#platform_url). +Enable the "History" feature using the configuration options [`HISTORY_ENABLED`](/docs/reference-guides/joe-bot-configuration-reference#joe_platform_history_enabled) and [`PLATFORM_URL`](/docs/reference-guides/joe-bot-configuration-reference#joe_platform_url). ::: - Execute any [`explain`](/docs/reference-guides/joe-bot-commands-reference#explain) query and click the **Permalink** at the end of the response diff --git a/docs/dblab-howtos/platform/onboarding.md b/docs/dblab-howtos/platform/onboarding.md index ab4d4611..5751b8c4 100644 --- a/docs/dblab-howtos/platform/onboarding.md +++ b/docs/dblab-howtos/platform/onboarding.md @@ -71,7 +71,7 @@ dblab init --environment-id ENV_ID --url URL --token YOUR_PERSONAL_TOKEN ```bash dblab clone create --username USERNAME --password PASSWORD ``` -- [ ] Create an SSH tunnel to the machine, allowing to work with remote Postgres clone using -h localhost -p 6XXX – pay attention to the port: +- [ ] Create an SSH tunnel to the machine, allowing you to work with remote Postgres clone using -h localhost -p 6XXX – pay attention to the port: ```bash ssh -L localhost:6XXX:URL:6XXX URL ``` diff --git a/docs/joe-bot/index.md b/docs/joe-bot/index.md index 14ba4011..1e4f60db 100644 --- a/docs/joe-bot/index.md +++ b/docs/joe-bot/index.md @@ -9,7 +9,7 @@ import useBaseUrl from '@docusaurus/useBaseUrl'; ## Summary <img src={useBaseUrl('assets/joe/joe.png')} width="128" align="right" vspace="20" hspace="20" /> -Joe is a Postgres query optimization assistant. Joe allows to boost the development process: +Joe is a Postgres query optimization assistant. Joe allows you to boost the development process: - eliminating annoying waiting time needed to provision copies of large databases for development and testing purposes - helping engineers understand details of SQL query performance @@ -37,12 +37,12 @@ This process is fully automated and takes only a few seconds, even for multi-ter - Developers can reset sessions using the `reset` command, starting from scratch at any time, which allows quick iterations. - Database Lab supports various kinds of Docker images for Postgres, which means that it is possible to use various extensions. - Using the `exec` command one can set or reset any PostgreSQL variables such as `enable_seqscan` or `random_page_cost` (e.g., `exec set random_page_cost to 1;`), controlling planner parameters. -- Each session will be destroyed after the specified amount of minutes of inactivity (configurable on the Database Lab). The corresponding thin clone will be deleted. +- Each session will be destroyed after the specified number of minutes of inactivity (configurable on the Database Lab). The corresponding thin clone will be deleted. - Joe can work with a Database Lab instance, which is constantly updated (being a replica of some Postgres server or consuming WALs from WAL archive). Sophisticated snapshot strategies can be used. In this case, Joe will always use the latest snapshot, reporting its timestamp (`Snapshot data state at`) to users. - Integration with PostgresAI Platform to allow history viewing, plan visualization, and sharing. - SQL optimization knowledge base – a history of Joe sessions, including details of `EXPLAIN` plans, recommendations, various visualization of query plans, and additional meta-data, to support "team memory" and collaboration within particular engineering teams and between various teams/departments in an organization (e.g., between DBA and Development teams). ## Resources - Open-source repository: https://gitlab.com/postgres-ai/joe/ -- Bug reports, ideas, and merge requests are welcome: https://gitlab.com/postgres-ai/joe/issues/ +- Bug reports, ideas, and pull/merge requests are welcome: https://github.com/postgres-ai/joe/issues - To discuss and try Joe Bot, join the Database Lab Community Slack: https://slack.postgres.ai/; after joining, try a live demo of Joe in the `#joe-bot-demo` channel: https://database-lab-team.slack.com/archives/CTL5BB30R diff --git a/docs/monitoring/advanced/architecture.md b/docs/monitoring/advanced/architecture.md index d69beb33..f2185c8f 100644 --- a/docs/monitoring/advanced/architecture.md +++ b/docs/monitoring/advanced/architecture.md @@ -68,7 +68,7 @@ Deep-dive into PostgresAI monitoring system components and data flow. | pg_stat_database | Database-level stats | | pg_stat_bgwriter | Checkpoint behavior | -### VictoriaMetrics — Time-series database +### VictoriaMetrics — time-series database **Purpose:** Store and query metrics diff --git a/docs/monitoring/getting-started/index.md b/docs/monitoring/getting-started/index.md index 5c52aa58..1a58c546 100644 --- a/docs/monitoring/getting-started/index.md +++ b/docs/monitoring/getting-started/index.md @@ -63,7 +63,7 @@ For other PostgreSQL databases (RDS, CloudSQL, self-hosted): 4. Deploy the monitoring stack :::tip Database preparation -For automatic setup, provide superuser credentials (used once, never stored). For manual setup, follow the [database preparation guide](/docs/monitoring/getting-started/requirements#database-preparation). +For automatic setup, provide superuser credentials (used once, never stored). For manual setup, follow the [database preparation guide](/docs/monitoring/getting-started/requirements#permissions). ::: ## Step 4: Access your dashboards diff --git a/docs/platform/index.md b/docs/platform/index.md index 9b861c76..e1d03517 100644 --- a/docs/platform/index.md +++ b/docs/platform/index.md @@ -7,7 +7,7 @@ slug: /platform ## Summary DBLab Platform is a unified solution that helps developers, DBAs, SREs, and QA engineers boost their work with PostgreSQL databases. They all can get their work done much faster thanks to the thin cloning of databases and the high level of automation of various tasks that the Platform offers. -## Open Source Components +## Open-source components The Platform uses the following open-source (AGPL v3) components: - [postgres-checkup](/docs/checkup/) – automated health checks of PostgreSQL databases - [Database Lab](/docs/database-lab/) – ultra-fast provisioning of full-size databases for development, testing, and analytics (thin provisioning, thin cloning) @@ -15,7 +15,7 @@ The Platform uses the following open-source (AGPL v3) components: All these components are optional. You may use the Platform to work, say, with postgres-checkup reports only. Or you may use it to enable fast development iterations using thin clones provided by Database Lab, not using postgres-checkup component at all. There is only one dependency: Joe Bot requires Database Lab configured. And such a configuration may or may not be visible in the Platform GUI, depending on your needs. -## Why Integrate with PostgresAI Platform +## Why integrate with PostgresAI Platform The open-source components described above may be installed and operate without the Platform. Although, when integrated with the Platform, they get you the following benefits: 1. Centralized storage for data: - health-check reports generated by postgres-checkup are collected with all the details, including raw JSON reports (available for download) @@ -30,7 +30,7 @@ The open-source components described above may be installed and operate without 1. GUI and CLI to work with Database Lab instances 1. Web UI for Joe Bot -## Installation Options +## Installation options DBLab Platform is available in the form of SaaS ([https://postgres.ai](https://postgres.ai)) and Self-managed setup. To start using SaaS, you need to enter to the system using one of the following accounts: diff --git a/docs/platform/security.md b/docs/platform/security.md index cb7d0b10..3a92d006 100644 --- a/docs/platform/security.md +++ b/docs/platform/security.md @@ -35,7 +35,7 @@ Any severe incident with any risk to affect customer data triggers a customer al ## Architecture and data availability ## Customer data management ### Self-managed installations -In the case of a Self-managed setup, all the components are installed and operate inside your infrastructure, in clouds, or on-premise. It is strongly recommended to treat Database Lab instances that work with production clones as production-like machines, therefore protecting them correspondingly, using firewalls, secure connections. +In the case of a Self-managed setup, all the components are installed and operate inside your infrastructure, in clouds, or on-premises. It is strongly recommended to treat Database Lab instances that work with production clones as production-like machines, therefore protecting them correspondingly, using firewalls, secure connections. ### Key security principles of communication between Postgres.ai SaaS and your infrastructure In [Postgres.ai SaaS](https://postgres.ai/console), all the components that can communicate directly to database clones are installed inside your infrastructure. The Platform works "outside". This means that both Postgres.ai components and Postgres.ai engineers cannot reach your infrastructure: @@ -60,7 +60,7 @@ Please contact Postgres.ai support to obtain your registration key and detailed Further, we discuss all Postgres.ai components that are to be installed in your infrastructure and what kind of information can be transferred to Postgres.ai. #### Database Lab -When integrated, the Database Lab component may receive only control signals such as "create clone", "destroy clone", "refresh clone", "list snapshots". The full list of capabilities you may find in [Database Lab CLI Reference](/docs/database-lab/cli-reference). By no means is data from your databases available to the Platform. +When integrated, the Database Lab component may receive only control signals such as "create clone", "destroy clone", "refresh clone", "list snapshots". The full list of capabilities you may find in [DBLab CLI Reference](/docs/reference-guides/dblab-client-cli-reference). By no means is data from your databases available to the Platform. To be able to connect to a clone, users need to work inside your infrastructure, where connections to Database Lab clones (by default, ports 6000..6100) are possible, using the username and the password defined at clone creation time. Postgres.ai never stores passwords for clones, and it is the users' responsibility to remember them. diff --git a/docs/postgres-howtos/advanced-topics/index.md b/docs/postgres-howtos/advanced-topics/index.md index ebafd122..7182f57d 100644 --- a/docs/postgres-howtos/advanced-topics/index.md +++ b/docs/postgres-howtos/advanced-topics/index.md @@ -8,7 +8,7 @@ description: Deep dives into PostgreSQL internals, extensions, and advanced feat Deep dives into PostgreSQL internals, extensions, and advanced features. -## Guides by Category +## Guides by category ### Misc diff --git a/docs/postgres-howtos/advanced-topics/misc/how-to-help-others.md b/docs/postgres-howtos/advanced-topics/misc/how-to-help-others.md index b654dac7..d52c945d 100644 --- a/docs/postgres-howtos/advanced-topics/misc/how-to-help-others.md +++ b/docs/postgres-howtos/advanced-topics/misc/how-to-help-others.md @@ -71,7 +71,7 @@ Two types of database experiments: those that aim to study macro-level query analysis: `pgss`, wait event analysis (aka active session history or performance/query insights), `auto_explain`, `pgBadger`, etc. - More about this type of experiments: [Day 13: How to benchmark](/docs/postgres-howtos/performance-optimization/indexing/how-to-benchmark). + More about this type of experiments: [Day 13: How to benchmark](/docs/postgres-howtos/performance-optimization/benchmarks/how-to-benchmark). 2. Single-session experiments – testing one or a sequence of SQL queries using a single session (sometimes, two), to check query syntax, study individual query behavior, optimize particular query, etc. diff --git a/docs/postgres-howtos/advanced-topics/misc/how-to-install-postgres-16-with-plpython3u.md b/docs/postgres-howtos/advanced-topics/misc/how-to-install-postgres-16-with-plpython3u.md index 30d35144..d7c86ed1 100644 --- a/docs/postgres-howtos/advanced-topics/misc/how-to-install-postgres-16-with-plpython3u.md +++ b/docs/postgres-howtos/advanced-topics/misc/how-to-install-postgres-16-with-plpython3u.md @@ -38,7 +38,7 @@ Python, a widely-used, high-level, and versatile programming language. file I/O, network communication, and other actions that could potentially affect the server's behavior or security. We used `plpython3u` in -[How to use OpenAI APIs right from Postgres to implement semantic search and GPT chat](/docs/postgres-howtos/advanced-topics/extensions/how-to-use-openai-apis-in-postgres), +[How to use OpenAI APIs right from Postgres to implement semantic search and GPT chat](/docs/postgres-howtos/advanced-topics/misc/how-to-use-openai-apis-in-postgres), let's now discuss how to install it. And something tells me that we'll be using it more in the future, for various tasks. diff --git a/docs/postgres-howtos/advanced-topics/misc/index.md b/docs/postgres-howtos/advanced-topics/misc/index.md index f879e5cb..fe30829d 100644 --- a/docs/postgres-howtos/advanced-topics/misc/index.md +++ b/docs/postgres-howtos/advanced-topics/misc/index.md @@ -10,15 +10,16 @@ Various advanced PostgreSQL topics including internals, extensions, and other sp ## Topics in this section -### PostgreSQL Internals -- [Understanding how sparsely tuples are stored in a table](/docs/postgres-howtos/advanced-topics/misc/0004-tuple-sparsity) - 5 min *(intermediate)* -- [How to understand LSN values and WAL filenames](/docs/postgres-howtos/advanced-topics/misc/0009-lsn-values-and-wal-filenames) - 5 min *(intermediate)* -- [How many tuples can be inserted in a page](/docs/postgres-howtos/advanced-topics/misc/0066-how-many-tuples-can-be-inserted-in-a-page) - 5 min *(intermediate)* -- [How to estimate the YoY growth of a very large table using row creation timestamps and the planner statistics](/docs/postgres-howtos/advanced-topics/misc/0078-estimate-yoy-table-growth) - 7 min *(advanced)* -- [How to find the best order of columns to save on storage ("Column Tetris")](/docs/postgres-howtos/advanced-topics/misc/0084-how-to-find-the-best-order-of-columns-to-save-on-storage) - 5 min *(intermediate)* - -### Extensions and External Integrations -- [How to use OpenAI APIs right from Postgres to implement semantic search and GPT chat](/docs/postgres-howtos/advanced-topics/misc/0023-how-to-use-openai-apis-in-postgres) - 9 min *(intermediate)* +### Postgres internals +- [Understanding how sparsely tuples are stored in a table](/docs/postgres-howtos/advanced-topics/misc/tuple-sparsity) - 5 min *(intermediate)* +- [How to understand LSN values and WAL filenames](/docs/postgres-howtos/advanced-topics/misc/lsn-values-and-wal-filenames) - 5 min *(intermediate)* +- [How many tuples can be inserted in a page](/docs/postgres-howtos/advanced-topics/misc/how-many-tuples-can-be-inserted-in-a-page) - 5 min *(intermediate)* +- [How to estimate the YoY growth of a very large table using row creation timestamps and the planner statistics](/docs/postgres-howtos/advanced-topics/misc/estimate-yoy-table-growth) - 7 min *(advanced)* +- [How to find the best order of columns to save on storage ("Column Tetris")](/docs/postgres-howtos/advanced-topics/misc/how-to-find-the-best-order-of-columns-to-save-on-storage) - 5 min *(intermediate)* + +### Extensions and external integrations +- [How to use OpenAI APIs right from Postgres to implement semantic search and GPT chat](/docs/postgres-howtos/advanced-topics/misc/how-to-use-openai-apis-in-postgres) - 9 min *(intermediate)* + ### [How to help others](/docs/postgres-howtos/advanced-topics/misc/how-to-help-others) *Difficulty: beginner • Time: 5 min* @@ -31,4 +32,4 @@ Various advanced PostgreSQL topics including internals, extensions, and other sp *Difficulty: beginner • Time: 5 min* -- [How to install Postgres 16 with plpython3u: Recipes for macOS, Ubuntu, Debian, CentOS, Docker](/docs/postgres-howtos/advanced-topics/misc/0047-how-to-install-postgres-16-with-plpython3u) - 5 min *(beginner)* \ No newline at end of file +- [How to install Postgres 16 with plpython3u: Recipes for macOS, Ubuntu, Debian, CentOS, Docker](/docs/postgres-howtos/advanced-topics/misc/how-to-install-postgres-16-with-plpython3u) - 5 min *(beginner)* diff --git a/docs/postgres-howtos/advanced-topics/replication/how-to-troubleshoot-streaming-replication-lag.md b/docs/postgres-howtos/advanced-topics/replication/how-to-troubleshoot-streaming-replication-lag.md index b2083338..ade18f52 100644 --- a/docs/postgres-howtos/advanced-topics/replication/how-to-troubleshoot-streaming-replication-lag.md +++ b/docs/postgres-howtos/advanced-topics/replication/how-to-troubleshoot-streaming-replication-lag.md @@ -24,8 +24,8 @@ Streaming replication in Postgres allows for continuous data replication from a ## Identifying the lag To start investigation we need to understand where we actually have lag, on which stage of replication: - sending WAL stream to replica via network by `walsender` -- receiving WAL stream on replica from network by `walreciever` -- writing WAL on disk on replica by `walreciever` +- receiving WAL stream on replica from network by `walreceiver` +- writing WAL on disk on replica by `walreceiver` - applying (replaying) WAL as a recovery process Thus, streaming replication lag can be categorized into three types: diff --git a/docs/postgres-howtos/advanced-topics/replication/zero-downtime-major-upgrade.md b/docs/postgres-howtos/advanced-topics/replication/zero-downtime-major-upgrade.md index de0b33df..4bfcd186 100644 --- a/docs/postgres-howtos/advanced-topics/replication/zero-downtime-major-upgrade.md +++ b/docs/postgres-howtos/advanced-topics/replication/zero-downtime-major-upgrade.md @@ -105,7 +105,7 @@ First, it makes sense to switch over the read-only (RO) traffic. If the applicat redirect only part of the RO traffic to new replicas. This would require an advanced replication lag detection in the load balancing code (see: -[How to determine the replication lag - Hybrid case: logical & physical](/docs/postgres-howtos/monitoring-troubleshooting/system-monitoring/how-to-determine-the-replication-lag#hybrid-case-logical-physical). +[How to determine the replication lag - Hybrid case: logical & physical](/docs/postgres-howtos/monitoring-troubleshooting/system-monitoring/how-to-determine-the-replication-lag#hybrid-case-logical--physical). When it is time to redirect the RW traffic, to achieve zero downtime, one can use PgBouncer's PAUSE/RESUME. If there are multiple PgBouncer nodes (running on separate hosts/ports, or involving `SO_REUSEPORT`), it is important to implement a diff --git a/docs/postgres-howtos/database-administration/backup-recovery/how-to-speed-up-pg-dump.md b/docs/postgres-howtos/database-administration/backup-recovery/how-to-speed-up-pg-dump.md index 64b8a2c2..92e06a7f 100644 --- a/docs/postgres-howtos/database-administration/backup-recovery/how-to-speed-up-pg-dump.md +++ b/docs/postgres-howtos/database-administration/backup-recovery/how-to-speed-up-pg-dump.md @@ -33,7 +33,7 @@ Speeding up options discussed here: 3. Parallelized `pg_dump` 4. Advanced custom parallelization -## Monitoring Dump Progress +## Monitoring dump progress - **Verbose Output**: Use `pg_dump --verbose` to get detailed information during the dump process. - **Progress Estimation**: While `pg_dump` doesn't provide a progress bar, you can estimate progress by monitoring the size of the output file or, in the case of plain-format dumps, using tools like `pv`. - **System Monitoring**: Monitor system resources (CPU, I/O) to infer activity levels during the dump. @@ -44,7 +44,7 @@ In the cases of weak disks or network, it makes sense to apply compression. Note - **Custom (`-Fc`) and Directory (`-Fd`) Formats:** These formats apply compression by default. The default method is gzip at level 6, unless specified otherwise. - **Plain Format:** No compression is applied by default. To compress, pipe the output through a compression utility, e.g., `pg_dump ... | gzip`. -### Choosing Compression Methods and Levels +### Choosing compression methods and levels PostgreSQL supports multiple compression methods: - `zstd`: Offers the best balance between speed and compression ratio. Levels 1–5 are optimal for most datasets. - `lz4`: Fastest compression, but results in larger dump sizes. diff --git a/docs/postgres-howtos/database-administration/backup-recovery/how-to-use-pg-restore.md b/docs/postgres-howtos/database-administration/backup-recovery/how-to-use-pg-restore.md index 5cd7aaf4..cd2dc9b1 100644 --- a/docs/postgres-howtos/database-administration/backup-recovery/how-to-use-pg-restore.md +++ b/docs/postgres-howtos/database-administration/backup-recovery/how-to-use-pg-restore.md @@ -42,7 +42,7 @@ dealing with Postgres. And this also might lead to situations when database rest unnoticed. To switch to the `strict` mode, use `-e` (`--exit-on-error`). It can be also helpful to wrap the restoration process into a single transaction, using option `-1` (`--single-transaction`). -## Tracking Restore Progress +## Tracking restore progress - **Verbose Mode**: Use `pg_restore --verbose` to see detailed progress messages. - **TOC List**: Generate a Table of Contents (TOC) with `pg_restore -l backup.dump > toc.list` to view the sequence of objects. @@ -146,7 +146,7 @@ filler | character(84) | | | Partition of: pgbench_accounts FOR VALUES FROM (MINVALUE) TO (625001) ``` -## Handling Errors During Restore +## Handling errors during restore - **Exit on Error**: If `--exit-on-error` is set, the restore stops upon encountering an error. You'll then need to manually restore all subsequent objects using a customized TOC list (`pg_restore -l` and `-L`). diff --git a/docs/postgres-howtos/database-administration/configuration/how-to-tune-linux-parameters-for-oltp-postgres.md b/docs/postgres-howtos/database-administration/configuration/how-to-tune-linux-parameters-for-oltp-postgres.md index fa3e7de3..1793a05b 100644 --- a/docs/postgres-howtos/database-administration/configuration/how-to-tune-linux-parameters-for-oltp-postgres.md +++ b/docs/postgres-howtos/database-administration/configuration/how-to-tune-linux-parameters-for-oltp-postgres.md @@ -23,7 +23,7 @@ estimated_time: 5 min Here are general recommendations for basic tuning of Linux to run Postgres under heavy OLTP (web/mobile apps) workloads. -Most of them are default settings used in [postgresql_cluster](https://github.com/vitabaks/postgresql_cluster). +Most of them are default settings used in [Autobase](https://github.com/vitabaks/autobase) (formerly postgresql_cluster). Consider the parameters below as entry points for further study, and values provided as just rough tuning that is worth reviewing for a particular situation. @@ -88,7 +88,7 @@ echo 1 | sudo tee /proc/sys/vm/swappiness also: [PgCookbook - a PostgreSQL documentation project](https://github.com/grayhemp/pgcookbook/blob/master/database_server_configuration.md) by [@grayhemp](https://twitter.com/grayhemp). -## Network Configuration +## Network configuration > 📝 note that below ipv4 settings are provided; > 🎯 **TODO:** ipv6 options @@ -127,7 +127,7 @@ echo 1 | sudo tee /proc/sys/vm/swappiness Improves process scheduling latency for Postgres. -## Filesystem and File Handling +## Filesystem and file handling 15) `fs.file-max = 262144` diff --git a/docs/postgres-howtos/database-administration/configuration/how-to-tune-work-mem.md b/docs/postgres-howtos/database-administration/configuration/how-to-tune-work-mem.md index c1c941d3..ac40d10f 100644 --- a/docs/postgres-howtos/database-administration/configuration/how-to-tune-work-mem.md +++ b/docs/postgres-howtos/database-administration/configuration/how-to-tune-work-mem.md @@ -30,7 +30,7 @@ One of the possible approaches is explained here. ## Rough tuning and "safe" values of work_mem First, apply rough optimization as described in -[Rough configuration tuning (80/20 rule; OLTP)](/docs/postgres-howtos/performance-optimization/query-tuning/rough-oltp-configuration-tuning). +[Rough configuration tuning (80/20 rule; OLTP)](/docs/postgres-howtos/database-administration/configuration/rough-oltp-configuration-tuning). A query can "spend" `work_mem` multiple times (for multiple operations). But it is not allocated fully for each operation – an operation can need a lower amount of memory. diff --git a/docs/postgres-howtos/database-administration/configuration/rough-oltp-configuration-tuning.md b/docs/postgres-howtos/database-administration/configuration/rough-oltp-configuration-tuning.md index c036e462..606d2b6c 100644 --- a/docs/postgres-howtos/database-administration/configuration/rough-oltp-configuration-tuning.md +++ b/docs/postgres-howtos/database-administration/configuration/rough-oltp-configuration-tuning.md @@ -41,7 +41,7 @@ Good resources: - [PGTune](https://pgtune.leopard.in.ua) - [postgresql.conf configurations](https://postgresqlco.nf) -- [postgresql_cluster's defaults](https://github.com/vitabaks/postgresql_cluster/blob/master/vars/main.yml) +- [Autobase defaults](https://github.com/vitabaks/autobase/blob/master/automation/roles/common/defaults/main.yml) (formerly postgresql_cluster) 1) `max_connections = 200` diff --git a/docs/postgres-howtos/database-administration/index.md b/docs/postgres-howtos/database-administration/index.md index d6eeeadb..b6add3a9 100644 --- a/docs/postgres-howtos/database-administration/index.md +++ b/docs/postgres-howtos/database-administration/index.md @@ -8,7 +8,7 @@ description: Essential guides for PostgreSQL database administrators covering ma Essential guides for PostgreSQL database administrators covering maintenance, backups, and configuration. -## Guides by Category +## Guides by category ### Backups, data export/import diff --git a/docs/postgres-howtos/database-administration/maintenance/autovacuum-queue-and-progress.md b/docs/postgres-howtos/database-administration/maintenance/autovacuum-queue-and-progress.md index 1b2afd3b..24093801 100644 --- a/docs/postgres-howtos/database-administration/maintenance/autovacuum-queue-and-progress.md +++ b/docs/postgres-howtos/database-administration/maintenance/autovacuum-queue-and-progress.md @@ -48,7 +48,7 @@ move faster – via [adjusting quotas](https://www.postgresql.org/docs/current/r However, we might have a question: how many tables are currently in the "queue" to be processed by `autovacuum`? The analysis of this "queue" can give an idea how much work the workers need to do and if the current settings are "enough". -The size of the queue compared to the number workers, potentially, can give a metric similar to "load average" for CPU +The size of the queue compared to the number of workers, potentially, can give a metric similar to "load average" for CPU load. Below is the report ([source](https://gitlab.com/-/snippets/1889668)) that answers it, by looking at: diff --git a/docs/postgres-howtos/database-administration/maintenance/how-to-deal-with-bloat.md b/docs/postgres-howtos/database-administration/maintenance/how-to-deal-with-bloat.md index 1669432a..958fabca 100644 --- a/docs/postgres-howtos/database-administration/maintenance/how-to-deal-with-bloat.md +++ b/docs/postgres-howtos/database-administration/maintenance/how-to-deal-with-bloat.md @@ -97,7 +97,7 @@ only when high table bloat is detected. * Tune `autovacuum`. * Monitor the `xmin` horizon and don't allow it to be too far in the past -- - [Day 45: How to monitor xmin horizon to prevent XID/MultiXID wraparound and high bloat](/docs/postgres-howtos/performance-optimization/statistics/how-to-monitor-xmin-horizon). + [Day 45: How to monitor xmin horizon to prevent XID/MultiXID wraparound and high bloat](/docs/postgres-howtos/performance-optimization/monitoring/how-to-monitor-xmin-horizon). * Do not allow unnecessary long-running transactions (e.g., > 1h), neither on the primary, nor on standbys with `hot_standby_feedback` turned on. * If on Postgres 13 or older, consider upgrading to 14+ to benefit from btree index optimizations. diff --git a/docs/postgres-howtos/database-administration/maintenance/how-to-deal-with-long-running-transactions-oltp.md b/docs/postgres-howtos/database-administration/maintenance/how-to-deal-with-long-running-transactions-oltp.md index 01eb10c7..946018f2 100644 --- a/docs/postgres-howtos/database-administration/maintenance/how-to-deal-with-long-running-transactions-oltp.md +++ b/docs/postgres-howtos/database-administration/maintenance/how-to-deal-with-long-running-transactions-oltp.md @@ -126,7 +126,7 @@ long-running transaction, to understand what queries it consists of. Without suc of data (queries are fast, they are usually below `log_min_duration_statement`), so we don't see them in logs. In this case, we can apply the method described in #PostgresMarathon -[Ad-hoc monitoring](/docs/postgres-howtos/performance-optimization/statistics/ad-hoc-monitoring) and sample long (> 1min) transactions every 1 +[Ad-hoc monitoring](/docs/postgres-howtos/performance-optimization/monitoring/ad-hoc-monitoring) and sample long (> 1min) transactions every 1 second (might be worth increasing the frequency here): ```sql diff --git a/docs/postgres-howtos/database-administration/maintenance/how-to-troubleshoot-long-startup.md b/docs/postgres-howtos/database-administration/maintenance/how-to-troubleshoot-long-startup.md index 8c6417eb..20b0c0a0 100644 --- a/docs/postgres-howtos/database-administration/maintenance/how-to-troubleshoot-long-startup.md +++ b/docs/postgres-howtos/database-administration/maintenance/how-to-troubleshoot-long-startup.md @@ -21,7 +21,7 @@ estimated_time: 8 min <img src="/img/postgres-howtos/0003_cover.png" width="600" /> -#PostgresMarathon day 3. In [the previous how-to](/docs/postgres-howtos/database-administration/configuration/how-to-troubleshoot-and-speedup-postgres-restarts), we discussed how to quickly stop or restart PostgreSQL. Now it's time to discuss what to do if you are trying to start your server but see this: +#PostgresMarathon day 3. In [the previous how-to](/docs/postgres-howtos/database-administration/maintenance/how-to-troubleshoot-and-speedup-postgres-restarts), we discussed how to quickly stop or restart PostgreSQL. Now it's time to discuss what to do if you are trying to start your server but see this: ``` FATAL: the database system is not yet accepting connections DETAIL: Consistent recovery state has not been yet reached. diff --git a/docs/postgres-howtos/development-tools/index.md b/docs/postgres-howtos/development-tools/index.md index 6a5668c5..3f24d9e1 100644 --- a/docs/postgres-howtos/development-tools/index.md +++ b/docs/postgres-howtos/development-tools/index.md @@ -8,7 +8,7 @@ description: Essential tools and techniques for PostgreSQL developers. Essential tools and techniques for PostgreSQL developers. -## Guides by Category +## Guides by category ### psql @@ -22,7 +22,7 @@ Master the PostgreSQL command-line interface. - [How to make "\\e" work in psql on a new machine](/docs/postgres-howtos/development-tools/psql/how-to-make-e-work-in-psql) - 5 min *(beginner)* - [How to format text output in psql scripts](/docs/postgres-howtos/development-tools/psql/how-to-format-text-output-in-psql-scripts) - 5 min *(beginner)* -### SQL Techniques +### SQL techniques Advanced SQL patterns and best practices. @@ -32,7 +32,7 @@ Advanced SQL patterns and best practices. - [How to generate fake data](/docs/postgres-howtos/development-tools/sql-techniques/how-to-generate-fake-data) - 5 min *(beginner)* - [How to use lib_pgquery in shell to normalize and match queries from various sources](/docs/postgres-howtos/development-tools/sql-techniques/how-to-use-lib-pgquery-in-shell) - 5 min *(beginner)* -### Client Tools +### Client tools Work effectively with PostgreSQL client applications. diff --git a/docs/postgres-howtos/development-tools/sql-techniques/how-to-generate-fake-data.md b/docs/postgres-howtos/development-tools/sql-techniques/how-to-generate-fake-data.md index 0133733e..c7b3b62a 100644 --- a/docs/postgres-howtos/development-tools/sql-techniques/how-to-generate-fake-data.md +++ b/docs/postgres-howtos/development-tools/sql-techniques/how-to-generate-fake-data.md @@ -236,7 +236,7 @@ There are several options to use Faker for Python: - PL/Python functions. Here, we'll demonstrate the use of the latter approach, with the "untrusted" version of PL/Python, -([Day 47: How to install Postgres 16 with plpython3u](/docs/postgres-howtos/advanced-topics/extensions/how-to-install-postgres-16-with-plpython3u); N/A for +([Day 47: How to install Postgres 16 with plpython3u](/docs/postgres-howtos/advanced-topics/misc/how-to-install-postgres-16-with-plpython3u); N/A for managed Postgres services such as RDS; note that in this case, the "trusted" version should suit too). ```sql diff --git a/docs/postgres-howtos/index.md b/docs/postgres-howtos/index.md index 1b7f4990..1b5bcf31 100644 --- a/docs/postgres-howtos/index.md +++ b/docs/postgres-howtos/index.md @@ -15,7 +15,7 @@ A comprehensive collection of practical PostgreSQL how-to guides covering databa Each how-to page includes "Copy for LLM" and "View raw" buttons for easy copying. -## 📚 Guide Categories +## 📚 Guide categories ### [Performance & query optimization](/docs/postgres-howtos/performance-optimization) Master query optimization, indexing strategies, and performance tuning techniques to make your PostgreSQL database blazing fast. @@ -67,7 +67,7 @@ The source files are available at: https://gitlab.com/postgres-ai/docs/-/tree/ma Feel free to submit merge requests! -## Related Resources +## Related resources - [DBLab how-to guides](/docs/dblab-howtos) - Guides for using DBLab Engine - [Reference guides](/docs/reference-guides) - Technical reference documentation diff --git a/docs/postgres-howtos/miscellaneous/how-to-get-into-trouble-using-some-postgres-features.md b/docs/postgres-howtos/miscellaneous/how-to-get-into-trouble-using-some-postgres-features.md index 49eecddf..f354d6c8 100644 --- a/docs/postgres-howtos/miscellaneous/how-to-get-into-trouble-using-some-postgres-features.md +++ b/docs/postgres-howtos/miscellaneous/how-to-get-into-trouble-using-some-postgres-features.md @@ -127,5 +127,5 @@ Read [common db schema change mistakes](https://postgres.ai/blog/20220525-common ## Other "Don't do" articles - [Depesz: Don’t do these things in PostgreSQL](https://depesz.com/2020/01/28/dont-do-these-things-in-postgresql/) -- [PostgreSQL Wiki: Don't Do This](https://wiki.postgresql.org/wiki/Don't_Do_This) +- [PostgreSQL Wiki: Don't Do This](https://wiki.postgresql.org/wiki/Don%27t_Do_This) - [JOOQ: Don't do this](https://jooq.org/doc/latest/manual/reference/dont-do-this/) diff --git a/docs/postgres-howtos/monitoring-troubleshooting/index.md b/docs/postgres-howtos/monitoring-troubleshooting/index.md index 9a0650b4..4ef21989 100644 --- a/docs/postgres-howtos/monitoring-troubleshooting/index.md +++ b/docs/postgres-howtos/monitoring-troubleshooting/index.md @@ -8,16 +8,16 @@ description: Tools and techniques for monitoring PostgreSQL and solving common p Tools and techniques for monitoring PostgreSQL and solving common problems. -## Guides by Category +## Guides by category -### System Monitoring +### System monitoring Track database health, performance metrics, and resource usage. - [How to troubleshoot Postgres performance using FlameGraphs and eBPF (or perf)](/docs/postgres-howtos/monitoring-troubleshooting/system-monitoring/flamegraphs-for-postgres) - 6 min *(beginner)* - [How to determine the replication lag](/docs/postgres-howtos/monitoring-troubleshooting/system-monitoring/how-to-determine-the-replication-lag) - 5 min *(intermediate)* -### Lock Analysis +### Lock analysis Understand and resolve locking issues and deadlocks. diff --git a/docs/postgres-howtos/monitoring-troubleshooting/troubleshooting/how-to-not-get-screwed-as-a-dba.md b/docs/postgres-howtos/monitoring-troubleshooting/troubleshooting/how-to-not-get-screwed-as-a-dba.md index af8d4dd2..0092c081 100644 --- a/docs/postgres-howtos/monitoring-troubleshooting/troubleshooting/how-to-not-get-screwed-as-a-dba.md +++ b/docs/postgres-howtos/monitoring-troubleshooting/troubleshooting/how-to-not-get-screwed-as-a-dba.md @@ -50,7 +50,7 @@ organizations. But again: don't trust blindly - study all the details, and test ## 2) Corruption control -1. Enable [data checksums](/docs/postgres-howtos/database-administration/backup-recovery/how-to-enable-data-checksums-without-downtime) +1. Enable [data checksums](/docs/postgres-howtos/database-administration/maintenance/how-to-enable-data-checksums-without-downtime) 2. Be careful with OS / `glibc` upgrades – avoid index corruption. diff --git a/docs/postgres-howtos/performance-optimization/benchmarks/how-to-benchmark.md b/docs/postgres-howtos/performance-optimization/benchmarks/how-to-benchmark.md index 1d2f36e1..782bbec5 100644 --- a/docs/postgres-howtos/performance-optimization/benchmarks/how-to-benchmark.md +++ b/docs/postgres-howtos/performance-optimization/benchmarks/how-to-benchmark.md @@ -64,7 +64,7 @@ recommendations that can help you avoid mistakes and improve the general quality Of course, some of the things can be omitted, if needed. But in general case, it is recommended to automate documentation and artifact collection for all experiments, so it would be easy to study the details later. You can -find [here](https://gitlab.com/postgres-ai/postgresql-consulting/tests-and-benchmarks/-/issues) +find [here](https://gitlab.com/postgres-ai/postgresql-consulting/tests-and-benchmarks) some good examples of benchmarks performed for specific purposes (e.g., to study pathological subtransaction behavior or to measure the benefits of enabling `wal_compression`). diff --git a/docs/postgres-howtos/performance-optimization/benchmarks/pre-and-post-steps-for-benchmark-iterations.md b/docs/postgres-howtos/performance-optimization/benchmarks/pre-and-post-steps-for-benchmark-iterations.md index 9a704c7c..02de2898 100644 --- a/docs/postgres-howtos/performance-optimization/benchmarks/pre-and-post-steps-for-benchmark-iterations.md +++ b/docs/postgres-howtos/performance-optimization/benchmarks/pre-and-post-steps-for-benchmark-iterations.md @@ -21,7 +21,7 @@ estimated_time: 5 min --- -When conducting a Postgres benchmark (see [How to benchmark](/docs/postgres-howtos/performance-optimization/indexing/how-to-benchmark)), quite often we need to +When conducting a Postgres benchmark (see [How to benchmark](/docs/postgres-howtos/performance-optimization/benchmarks/how-to-benchmark)), quite often we need to run multiple benchmark iterations on the same setup. It may be reasonable to perform the same series of unified steps before and after each iteration: diff --git a/docs/postgres-howtos/performance-optimization/index.md b/docs/postgres-howtos/performance-optimization/index.md index 968c14aa..21c8cc07 100644 --- a/docs/postgres-howtos/performance-optimization/index.md +++ b/docs/postgres-howtos/performance-optimization/index.md @@ -8,9 +8,9 @@ description: Master PostgreSQL performance optimization with practical guides co Master PostgreSQL performance optimization with practical guides covering query tuning, indexing strategies, and system optimization. -## Guides by Category +## Guides by category -### Query Tuning +### Query tuning Learn how to analyze and optimize slow queries using EXPLAIN, pg_stat_statements, and other powerful tools. diff --git a/docs/postgres-howtos/performance-optimization/monitoring/ad-hoc-monitoring.md b/docs/postgres-howtos/performance-optimization/monitoring/ad-hoc-monitoring.md index 58fd4844..e56bb697 100644 --- a/docs/postgres-howtos/performance-optimization/monitoring/ad-hoc-monitoring.md +++ b/docs/postgres-howtos/performance-optimization/monitoring/ad-hoc-monitoring.md @@ -110,9 +110,9 @@ Or just redirect everything to a single file: command &>>everything.log ``` -If you want to both see everything and log it, use `tee` – or, with append mode, `tee -a` (here, `2>&1` redirects `STDERR` to `STDOUT` first, an then `tee` gets everything from `STDOUT`): +If you want to both see everything and log it, use `tee` – or, with append mode, `tee -a` (here, `2>&1` redirects `STDERR` to `STDOUT` first, and then `tee` gets everything from `STDOUT`): ```shell -commend 2>&1 | tee -a everything.log +command 2>&1 | tee -a everything.log ``` If the output you have lacks timestamps (not the case with the psql snippet we used above though), then use `ts` to prepend each line with a timestamp: @@ -126,7 +126,7 @@ Finally, it is usually wise to name the file with result with some details and c ```shell command 2>&1 \ | ts \ - | tee -a observing_our_comand_$(date +%Y%m%d).log + | tee -a observing_our_command_$(date +%Y%m%d).log ``` One downside of using `tee` is that, in some cases, you might accidentally stop it (e.g., pressing `Ctrl-C` in a wrong `tmux` window/pane). Due to this, some people prefer using `nohup ... &` to run observability actions in background and observing the result using `tail -f`. diff --git a/docs/postgres-howtos/performance-optimization/monitoring/how-to-monitor-xmin-horizon.md b/docs/postgres-howtos/performance-optimization/monitoring/how-to-monitor-xmin-horizon.md index 3f243e11..aaf5919a 100644 --- a/docs/postgres-howtos/performance-optimization/monitoring/how-to-monitor-xmin-horizon.md +++ b/docs/postgres-howtos/performance-optimization/monitoring/how-to-monitor-xmin-horizon.md @@ -26,12 +26,12 @@ estimated_time: 6 min Previously, we discussed -[how to implement monitoring for the risks of XID (transaction ID) and MultiXID wraparound](/docs/postgres-howtos/performance-optimization/statistics/how-to-monitor-transaction-id-wraparound-risks). +[how to implement monitoring for the risks of XID (transaction ID) and MultiXID wraparound](/docs/postgres-howtos/performance-optimization/monitoring/how-to-monitor-transaction-id-wraparound-risks). That type of check is critical and a must-have in any monitoring. However, while it helps you understand the risk level, it doesn't reveal the root cause – something that you'll definitely need for your XID wraparound postmortem, when applying the "Five Whys" method (just kidding, we're going to -improve our monitoring and have autovacuum behavior control, so none of us will ever experience a XID wraparound in +improve our monitoring and have autovacuum behavior control, so none of us will ever experience an XID wraparound in production). This problem can be solved with the `xmin` horizon monitoring. And this very check is also helpful in understanding diff --git a/docs/postgres-howtos/performance-optimization/monitoring/how-to-reduce-wal-generation-rates.md b/docs/postgres-howtos/performance-optimization/monitoring/how-to-reduce-wal-generation-rates.md index ec3d2a45..250230a7 100644 --- a/docs/postgres-howtos/performance-optimization/monitoring/how-to-reduce-wal-generation-rates.md +++ b/docs/postgres-howtos/performance-optimization/monitoring/how-to-reduce-wal-generation-rates.md @@ -61,7 +61,7 @@ If your monitoring doesn't have it, you can understand how much of WAL data was Both methods should help you to get two LSN values corresponding to two distant points of time. For further details, -see [How to understand the LSN values and WAL file name](/docs/postgres-howtos/advanced-topics/internals/lsn-values-and-wal-filenames). +see [How to understand the LSN values and WAL file name](/docs/postgres-howtos/advanced-topics/misc/lsn-values-and-wal-filenames). ## WAL metrics in query analysis diff --git a/docs/postgres-howtos/schema-design/data-types/how-to-quickly-check-data-type-and-storage-size-of-a-value.md b/docs/postgres-howtos/schema-design/data-types/how-to-quickly-check-data-type-and-storage-size-of-a-value.md index 97e0e402..5b5f2e7b 100644 --- a/docs/postgres-howtos/schema-design/data-types/how-to-quickly-check-data-type-and-storage-size-of-a-value.md +++ b/docs/postgres-howtos/schema-design/data-types/how-to-quickly-check-data-type-and-storage-size-of-a-value.md @@ -89,7 +89,7 @@ nik=# select pg_column_size(true), pg_column_size(false); (1 row) ``` -Remembering the previous howto, [Column Tetris](/docs/postgres-howtos/advanced-topics/internals/how-to-find-the-best-order-of-columns-to-save-on-storage), here we +Remembering the previous howto, [Column Tetris](/docs/postgres-howtos/advanced-topics/misc/how-to-find-the-best-order-of-columns-to-save-on-storage), here we can conclude that not only we need 1 byte to store a bit (8x space), it becomes 8 bytes if we create a table (`c1 boolean`, `c2 int8`), due to alignment padding – meaning that it's already 64 bits! So, in such "unfortunate" case, those who store 'true' as text, don't lose anything at all: diff --git a/docs/postgres-howtos/schema-design/index.md b/docs/postgres-howtos/schema-design/index.md index 6819645c..9dbf089c 100644 --- a/docs/postgres-howtos/schema-design/index.md +++ b/docs/postgres-howtos/schema-design/index.md @@ -8,9 +8,9 @@ description: Best practices for designing efficient PostgreSQL schemas and manag Best practices for designing efficient PostgreSQL schemas and managing database objects. -## Guides by Category +## Guides by category -### DDL Operations +### DDL operations Safely perform schema changes with minimal downtime. @@ -19,7 +19,7 @@ Safely perform schema changes with minimal downtime. - [How to add a column](/docs/postgres-howtos/schema-design/ddl-operations/how-to-add-a-column) - 5 min *(advanced)* - [How to add a CHECK constraint without downtime](/docs/postgres-howtos/schema-design/ddl-operations/how-to-add-a-check-constraint-without-downtime) - 5 min *(intermediate)* -### Data Types +### Data types Choose the right data types and understand their performance implications. diff --git a/docs/questions-and-answers.md b/docs/questions-and-answers.md index 5adeaf81..785b6f6d 100644 --- a/docs/questions-and-answers.md +++ b/docs/questions-and-answers.md @@ -121,5 +121,5 @@ Yes. PostgresAI works with: ## Where can I learn more? - [Vision & roadmap](/docs/roadmap) — The Self-Driving Postgres journey -- [Monitoring areas](/docs/howtos/monitoring-areas) — What PostgresAI monitors +- [postgres_ai monitoring](/docs/monitoring) — Observability and monitoring - [Postgres how-tos](/docs/postgres-howtos) — 100+ practical guides diff --git a/docs/reference-guides/database-lab-engine-api-reference.md b/docs/reference-guides/database-lab-engine-api-reference.md index d692e3f0..468560d7 100644 --- a/docs/reference-guides/database-lab-engine-api-reference.md +++ b/docs/reference-guides/database-lab-engine-api-reference.md @@ -16,7 +16,7 @@ DBLab API (DLE API) is a REST API. It can be used in multiple ways: - indirectly, in browser: [DBLab UI](https://postgres.ai/docs/database-lab/user-interface), being a React application, speaks to the DLE API as well DBLab API reference documentation is available at the following locations: -- [DBLab 4.1.x API Reference](https://dblab.readme.io/v4.1.0/) +- [DBLab API Reference (latest)](https://dblab.readme.io/) - [DBLab 4.0.x API Reference](https://dblab.readme.io/v4.0.0/) - [DLE 3.5.x API Reference](https://dblab.readme.io/v3.5.0/) diff --git a/docs/reference-guides/database-lab-engine-configuration-reference.md b/docs/reference-guides/database-lab-engine-configuration-reference.md index 627446b0..39626e22 100644 --- a/docs/reference-guides/database-lab-engine-configuration-reference.md +++ b/docs/reference-guides/database-lab-engine-configuration-reference.md @@ -34,18 +34,18 @@ docker logs --since 1m dblab_server ``` ::: -## YAML Anchors and Configuration Patterns +## YAML anchors and configuration patterns DBLab Engine configuration extensively uses YAML anchors and aliases to reduce repetition and maintain consistency across different configuration sections. This approach allows you to define common configuration patterns once and reuse them throughout the configuration file. -### Basic YAML Anchors Syntax +### Basic YAML anchors syntax - `&anchor_name` - defines an anchor (creates a reusable reference) - `*anchor_name` - uses an anchor (references the defined anchor) - `<<: *anchor_name` - merges an anchor into the current mapping (inheritance) -### Common Configuration Patterns +### Common configuration patterns -#### Database Container Configuration (`databaseContainer`) +#### Database container configuration (`databaseContainer`) This pattern defines common Docker container settings used across multiple jobs: ```yaml @@ -70,7 +70,7 @@ retrieval: dumpLocation: "/var/lib/dblab/dblab_pool/dump" ``` -#### Database Configuration Parameters (`databaseConfigs`) +#### Database configuration parameters (`databaseConfigs`) This pattern defines PostgreSQL configuration parameters that should be consistent across jobs: ```yaml @@ -96,14 +96,14 @@ retrieval: preprocessingScript: "" ``` -### Best Practices for YAML Anchors +### Best practices for YAML anchors 1. **Define anchors at the top level** of your configuration file for better readability 2. **Use descriptive names** that clearly indicate the purpose (e.g., `&db_container`, `&db_configs`) 3. **Combine anchors when needed** - you can use multiple `<<:` merge operators in the same section 4. **Override specific values** - anchor merging allows you to override individual values while keeping the rest -### Example: Combining Multiple Anchors +### Example: combining multiple anchors ```yaml # Define multiple anchors databaseContainer: &db_container @@ -377,12 +377,12 @@ CI Observer helps verify database schema changes (database migrations) automatic - `replacementRules` (key-value, optional) - set up rules based on regular expressions (a pair of values `"regexp":"replace"`; to check syntax, use [this document](https://github.com/google/re2/wiki/Syntax )) for Postgres logs that will be sent to the Platform when running Observed Sessions; this helps ensure that sensitive data is masked properly and it doesn't leave the origin -### Log Fields Affected +### Log fields affected Replacement rules apply to the following PostgreSQL log fields: `message`, `detail`, `hint`, `internal_query`, `query` -### Common Replacement Patterns +### Common replacement patterns -#### Masking Numeric Values +#### Masking numeric values ```yaml observer: replacementRules: @@ -391,7 +391,7 @@ observer: "\\b\\d{3,}\\b": "***" # Numbers with 3+ digits ``` -#### Masking Email Addresses +#### Masking email addresses ```yaml observer: replacementRules: @@ -401,7 +401,7 @@ observer: "[a-z0-9._%+\\-]+@[a-z0-9.\\-]+\\.[a-z]{2,4}": "user@example.com" ``` -#### Masking SQL Values +#### Masking SQL values ```yaml observer: replacementRules: @@ -413,7 +413,7 @@ observer: "\\b(?:\\d{1,3}\\.){3}\\d{1,3}\\b": "XXX.XXX.XXX.XXX" ``` -#### Complete Example +#### Complete example ```yaml observer: replacementRules: @@ -429,7 +429,7 @@ observer: "\\b\\d{3}[.-]?\\d{3}[.-]?\\d{4}\\b": "XXX-XXX-XXXX" ``` -### Security Considerations +### Security considerations - **Test regex patterns** carefully to ensure they match the intended data - **Use capture groups** (like `$1`) to preserve necessary parts of matched text - **Order matters** - more specific patterns should come before general ones @@ -486,46 +486,46 @@ The section has been removed in DBLab Engine 3.4.0 - `profilingInterval` (string, optional, default: 10ms) - time interval of samples taken by the profiler - `sampleThreshold` - (integer, optional, default: 20) - the minimum number of samples sufficient to display the estimation results -## Environment Variables +## Environment variables DBLab Engine supports several environment variables that can override configuration file settings or provide sensitive data like passwords. Environment variables have higher priority than configuration file values. -### Supported Environment Variables +### Supported environment variables -#### Database Connection +#### Database connection - `PGPASSWORD` - PostgreSQL password for source database connections. Overrides `password` in job configurations - `PGUSER` - PostgreSQL username. Can override `username` in job configurations - `PGHOST` - PostgreSQL hostname. Can override `host` in job configurations - `PGPORT` - PostgreSQL port. Can override `port` in job configurations - `PGDATABASE` - PostgreSQL database name. Can override `dbname` in job configurations -#### AWS/Cloud Integration +#### AWS/cloud integration - `AWS_ACCESS_KEY_ID` - AWS access key for S3/RDS access - `AWS_SECRET_ACCESS_KEY` - AWS secret key - `AWS_SESSION_TOKEN` - AWS session token (for temporary credentials) - `AWS_REGION` - AWS region (can override `awsRegion` in RDS IAM configuration) -#### WAL-G Configuration +#### WAL-G configuration - `WALG_S3_PREFIX` - S3 prefix for WAL-G backups - `WALG_COMPRESSION_METHOD` - compression method for WAL-G - `WALG_S3_STORAGE_CLASS` - S3 storage class -#### Platform Integration +#### Platform integration - `DLE_PLATFORM_ACCESS_TOKEN` - Platform access token (overrides `platform.accessToken`) - `DLE_VERIFICATION_TOKEN` - API verification token (overrides `server.verificationToken`) -### Priority Order +### Priority order When the same parameter is defined in multiple places, DBLab Engine uses this priority order: 1. **Environment variables** (highest priority) 2. **Configuration file values** 3. **Default values** (lowest priority) -### Security Best Practices +### Security best practices - **Use environment variables for sensitive data** like passwords and tokens - **Avoid putting credentials in configuration files** in production - **Use Docker secrets or Kubernetes secrets** to manage environment variables securely - **Rotate credentials regularly** and update environment variables accordingly -### Example Usage +### Example usage ```yaml # Configuration file - no sensitive data retrieval: diff --git a/docs/reference-guides/dblab-client-cli-reference.md b/docs/reference-guides/dblab-client-cli-reference.md index aa7b948f..59921804 100644 --- a/docs/reference-guides/dblab-client-cli-reference.md +++ b/docs/reference-guides/dblab-client-cli-reference.md @@ -81,7 +81,7 @@ DBLAB_INSTANCE_URL="http://127.0.0.1:2345" DBLAB_VERIFICATION_TOKEN="SECRET_TOKE If you register a Database Lab instance on the Postgres.ai Platform through the Platform server tunnel, it means that to use Database Lab API and CLI, your users need to be able to reach your infrastructure somehow. Consider use of VPN or custom SSH [port forwarding](https://en.wikipedia.org/wiki/Port_forwarding). ::: -## Command Overview +## Command overview ``` COMMANDS: init initialize Database Lab CLI @@ -396,7 +396,7 @@ dblab clone destroy TestCloneID ### Subcommand `start-observation` :::note 🚧 Experimental -This is an experimental feature (its working title: "CI Observer"). If you have questions, suggestions, or bug reports, please open an issue in the [DBLab Engine issue tracker](https://gitlab.com/postgres-ai/database-lab/-/issues) and/or raise a discussion in one of [the Database Lab Community channels](https://postgres.ai/docs/database-lab#more). +This is an experimental feature (its working title: "CI Observer"). If you have questions, suggestions, or bug reports, please open an issue in the [DBLab Engine issue tracker](https://github.com/postgres-ai/database-lab-engine/issues) and/or raise a discussion in one of [the Database Lab Community channels](https://postgres.ai/docs/database-lab#more). ::: Start clone state monitoring. diff --git a/docs/reference-guides/joe-bot-configuration-reference.md b/docs/reference-guides/joe-bot-configuration-reference.md index 69dcf474..c1e8ab94 100644 --- a/docs/reference-guides/joe-bot-configuration-reference.md +++ b/docs/reference-guides/joe-bot-configuration-reference.md @@ -207,7 +207,7 @@ channelMapping: # Enterprise Edition options – only to use with active Postgres.ai Platform EE # subscription. Changing these options you confirm that you have active # subscription to Postgres.ai Platform Enterprise Edition. -# See more: https://postgres.ai/docs/platform/postgres-ai-platform-overview +# See more: https://postgres.ai/docs/platform/ enterprise: quota: # Limit request rates. Works in pair with "interval" value. Default: 10. diff --git a/docs/roadmap.md b/docs/roadmap.md index 6756167d..2a00d9de 100644 --- a/docs/roadmap.md +++ b/docs/roadmap.md @@ -347,7 +347,7 @@ Logical provisioning: native support of DB provisioning for managed Postgres dat - [x] Basic support for masking and obfuscation - [x] custom scripts - [x] parallel execution of custom scripts - - [x] [postgres_anonymizer](https://postgresql-anonymizer.readthedocs.io/en/stable/masking_functions.html) + - [x] [postgres_anonymizer](https://postgresql-anonymizer.readthedocs.io/en/stable/masking_functions/) - [x] [kitchen-sync](https://github.com/willbryant/kitchen_sync) - [ ] [pgsync](https://github.com/ankane/pgsync) - [ ] Hybrid setup: raw and obfuscated/masked clones on the same DBLab instance diff --git a/docs/tutorials/database-lab-tutorial-amazon-rds.md b/docs/tutorials/database-lab-tutorial-amazon-rds.md index 44022eb1..c650dd66 100644 --- a/docs/tutorials/database-lab-tutorial-amazon-rds.md +++ b/docs/tutorials/database-lab-tutorial-amazon-rds.md @@ -19,7 +19,7 @@ Currently, the AWS Marketplace version of DLE focuses on the "logical" data prov Compared to traditional RDS clones, Database Lab clones are instant. RDS cloning takes several minutes, and, depending on the database size, additional dozens of minutes or even hours may be needed to "warm up" the database (see ["Lazy load"](https://docs.amazonaws.cn/en_us/AWSEC2/latest/WindowsGuide/ebs-creating-volume.html#ebs-create-volume-from-snapshot)). Obtaining a new DLE clone takes as low as a few seconds, and it does not increase storage and instance bill at all. -A single DLE instance can be used by dozens of engineers or CI/CD pipelines – all of them can work with dozens of thin clones located on a single instance and single storage volume. [RDS Aurora clones](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Clone.html) are also "thin" by nature, which could be great for development and testing. However, each Aurora clone requires a provisioned instance, increasing the "compute" part of the bill; IO-related charges can be significant as well. This makes Aurora clones less attractive for the use in non-production environments. The use of DLE clones doesn't affect the bill anyhow – both "compute" and "storage" costs remain constant regardles of the number clones provisioned at any time. +A single DLE instance can be used by dozens of engineers or CI/CD pipelines – all of them can work with dozens of thin clones located on a single instance and single storage volume. [RDS Aurora clones](https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/Aurora.Managing.Clone.html) are also "thin" by nature, which could be great for development and testing. However, each Aurora clone requires a provisioned instance, increasing the "compute" part of the bill; IO-related charges can be significant as well. This makes Aurora clones less attractive for the use in non-production environments. The use of DLE clones doesn't affect the bill anyhow – both "compute" and "storage" costs remain constant regardless of the number of clones provisioned at any time. ## Typical "pilot" setup Timeline: diff --git a/docs/tutorials/joe-setup.md b/docs/tutorials/joe-setup.md index 0ef5583e..ab40a47c 100644 --- a/docs/tutorials/joe-setup.md +++ b/docs/tutorials/joe-setup.md @@ -14,7 +14,7 @@ keywords: description: Learn how to use Joe bot to build a swift workflow of PostgreSQL query optimization running EXPLAIN commands on ultra-fast thin clones. --- -[↵ Back to Guides](/docs/guides/) +[↵ Back to DBLab how-to guides](/docs/dblab-howtos) ## Step 1. Requirements - Set up [DBLab Engine](/docs/tutorials/database-lab-tutorial) (e.g., running on address https://dblab.domain.com) before configuring Joe Bot @@ -28,7 +28,7 @@ There are two available types of communication with Joe: - Web UI powered by [PostgresAI Console](https://postgres.ai/console/) - Slack -You can use both of them in parallel. If you can develop in Go language, feel free to implement more types of communication: see [communication channels issues](https://gitlab.com/postgres-ai/joe/-/issues?label_name%5B%5D=Communication+channel). +You can use both of them in parallel. If you can develop in Go language, feel free to implement more types of communication: see the [Joe Bot issue tracker](https://github.com/postgres-ai/joe/issues). We need to define where to store the configuration file. We will use `~/.dblab/joe/configs/joe.yml`. diff --git a/src/config/authors.ts b/src/config/authors.ts index 4f218775..f95889cf 100644 --- a/src/config/authors.ts +++ b/src/config/authors.ts @@ -22,7 +22,7 @@ export const anatoly = { avatarUrl: '/assets/author/anatoly.jpg', name: 'Anatoly Stansler', gitlabUrl: 'https://gitlab.com/anatolystansler', - githubUrl: 'https://github.com/anatolystansler', + githubUrl: 'https://github.com/astansler', linkedinUrl: 'https://www.linkedin.com/in/anatoly-stansler-37265514a', } diff --git a/src/data/authors.ts b/src/data/authors.ts index aec87fc4..6c7bbdf2 100644 --- a/src/data/authors.ts +++ b/src/data/authors.ts @@ -32,7 +32,7 @@ const authors: { [key: string]: Author } = { avatarUrl: '/assets/author/anatoly.jpg', name: 'Anatoly Stansler', gitlabUrl: 'https://gitlab.com/anatolystansler', - githubUrl: 'https://github.com/anatolystansler', + githubUrl: 'https://github.com/astansler', linkedinUrl: 'https://www.linkedin.com/in/anatoly-stansler-37265514a', }, artyom: { diff --git a/src/pages/careers/frontend.md b/src/pages/careers/frontend.md index b88621c6..cf80e340 100644 --- a/src/pages/careers/frontend.md +++ b/src/pages/careers/frontend.md @@ -10,7 +10,7 @@ requirements: As a Senior Frontend Developer, you will be building components of the [PostgresAI Platform](https://postgres.ai/docs). -## Job Details +## Job details - Employment type: full-time/ part-time remote - Company: PostgresAI, headquartered in California diff --git a/src/pages/careers/fullstack.md b/src/pages/careers/fullstack.md index 1bcbbdb6..989d6f05 100644 --- a/src/pages/careers/fullstack.md +++ b/src/pages/careers/fullstack.md @@ -10,7 +10,7 @@ requirements: As a Senior Full Stack Developer, you will be building components of the [PostgresAI Platform](https://postgres.ai/docs). -## Job Details +## Job details - Employment type: full-time, remote - Company: PostgresAI, headquartered in California diff --git a/src/pages/careers/godeveloper.md b/src/pages/careers/godeveloper.md index a6944f01..42a7235e 100644 --- a/src/pages/careers/godeveloper.md +++ b/src/pages/careers/godeveloper.md @@ -11,7 +11,7 @@ requirements: As a Senior Go Developer, you will be building components of the [PostgresAI Platform](https://postgres.ai/docs/). -## Job Details +## Job details - Employment type: full-time, remote. - Company: PostgresAI, headquartered in the San Francisco Bay Area. diff --git a/src/pages/consulting.mdx b/src/pages/consulting.mdx index 6cbd966b..8674361c 100644 --- a/src/pages/consulting.mdx +++ b/src/pages/consulting.mdx @@ -18,7 +18,7 @@ You need us if you're a fast-growing startup on PostgreSQL (whether it's managed ## Our approach -We break down complex database problems into clear, actionable steps. Through practical experimentation and early testing, your team learns to solve performance and scalability challenges quickly. No guesswork—just proven solutions based on real-world experience. +We break down complex database problems into clear, actionable steps. Through practical experimentation and early testing, your team learns to solve performance and scalability challenges quickly. No guesswork — just proven solutions based on real-world experience. --- diff --git a/src/pages/contact/index.tsx b/src/pages/contact/index.tsx index 941bc02a..e280bf97 100644 --- a/src/pages/contact/index.tsx +++ b/src/pages/contact/index.tsx @@ -87,7 +87,7 @@ const ContactPage: React.FC = () => { </a> {' '}or{' '} <a - href="https://gitlab.com/postgres-ai/database-lab/-/issues" + href="https://github.com/postgres-ai/database-lab-engine/issues" target="_blank" className={styles.link} > diff --git a/src/pages/customer-advisory-group.md b/src/pages/customer-advisory-group.md index 10a27a56..3b787761 100644 --- a/src/pages/customer-advisory-group.md +++ b/src/pages/customer-advisory-group.md @@ -30,7 +30,7 @@ Companies who are accepted into the Customer Advisory Group will make the follow Free for 6 months. * Shape our product roadmap to the needs of your organization. * _Added Bonus:_ We will run a free PostgreSQL Query Optimization Training course for your whole team based - on the #1 voted talk from this year's [PGConf.Online](https://pgconf.ru/en/2021). + on the #1 voted talk from this year's [PGConf.Online](https://pgconf.ru/2021/en). ## Who is qualified? diff --git a/src/pages/privacy.md b/src/pages/privacy.md index 2436143b..8cfd1e79 100644 --- a/src/pages/privacy.md +++ b/src/pages/privacy.md @@ -24,7 +24,7 @@ This Policy applies to our customers and users who have visited our website and - **Your personal details** – name, address, phone number, email address when you submit web forms on our website, including opportunities to sign up for and agree to receive email communications from us. We also may ask you to submit such personal information if you choose to use interactive features of our website, including participation in surveys, contests, promotions, sweepstakes, requesting customer support, registration for attendance at an event sponsored by PostgresAI or otherwise communicating with us. - **Log Files** – certain information including but is not limited to Internet Protocol (IP) addresses, system configuration information, URLs of referring pages, and locale and language preferences when you visit and interact with most websites and services delivered via the Internet, when you visit our website and interactive areas offered by it. - **Cookies and Other Tracking Technologies** – we may use cookies to provide you with a user-friendly interface, features and general access to our website. You can control how our website use cookies by configuring your browser's privacy settings (please refer to your browser's help function to learn more about cookie controls). Note that if you disable cookies entirely, our website may not function properly. The purpose of the use of cookies on our website is site improvement, as well as the analysis of our customer-provider relationships and marketing intentions. We do not use third-party marketing or analytics services (such as Google Analytics or Facebook Pixel). Our analytics are self-hosted, and any tracking cookies we use (such as for marketing attribution) remain first-party and are not shared with external advertising platforms. Because we use only strictly necessary first-party cookies and do not employ third-party tracking, no cookie consent banner is required under current EU guidance. If our cookie practices change, we will update this section and implement appropriate consent mechanisms. For more information about the cookies PostgresAI uses, please see our Cookie Policy. -- **Interactive Areas** – publicly accessible blogs, chats, community forums, comments sections, discussion forums, or other interactive features (“Interactive Areas”). If you choose to participate in any of these Interactive Areas, please be aware that that any information that you post in an Interactive Area might be read, collected, and used by others who access it. If you wish to remove your personal information from any of our Interactive Areas, please contact us at: privacy@postgres.ai. +- **Interactive Areas** – publicly accessible blogs, chats, community forums, comments sections, discussion forums, or other interactive features (“Interactive Areas”). If you choose to participate in any of these Interactive Areas, please be aware that any information that you post in an Interactive Area might be read, collected, and used by others who access it. If you wish to remove your personal information from any of our Interactive Areas, please contact us at: privacy@postgres.ai. ## HOW WE USE INFORMATION WE COLLECT PostgresAI only processes personal information in a way that is compatible with and relevant for the purpose for which it was collected or authorized. As a general matter, for all categories of data we collect, we may use the information we collect to: diff --git a/src/pages/products/data-masking.md b/src/pages/products/data-masking.md index 49ef1e5d..ccb3163b 100644 --- a/src/pages/products/data-masking.md +++ b/src/pages/products/data-masking.md @@ -39,7 +39,7 @@ Learn more about masking techniques with our recommended tool: ## Clear and auditable rules DBLab Engine recommends a declarative approach to data masking using -[PostgreSQL Anonymizer](https://postgresql-anonymizer.readthedocs.io/en/stable/declare_masking_rules.html). +[PostgreSQL Anonymizer](https://postgresql-anonymizer.readthedocs.io/en/stable/declare_masking_rules/). Masking rules are declared as security labels within the schema itself. diff --git a/src/pages/products/how-it-works.md b/src/pages/products/how-it-works.md index 514f44b2..6ec769c3 100644 --- a/src/pages/products/how-it-works.md +++ b/src/pages/products/how-it-works.md @@ -48,7 +48,7 @@ If you run your infrastructure on AWS, you can follow our [Getting Started Guide for RDS](/docs/tutorials/database-lab-tutorial-amazon-rds). Here's what you can expect when setting up the DBLab Engine: -* Experienced engineers can setup the DBLab Engine in less than 1 hour +* Experienced engineers can set up the DBLab Engine in less than 1 hour * The DBLab Engine host instance should have a disk 30% larger than the production DB * [Sensitive data masking](/products/data-masking) can be achieved with a set of declarative rules diff --git a/src/pages/products/postgres-ai-zdu.md b/src/pages/products/postgres-ai-zdu.md index 27a449eb..dfdaded4 100644 --- a/src/pages/products/postgres-ai-zdu.md +++ b/src/pages/products/postgres-ai-zdu.md @@ -25,7 +25,7 @@ Traditional Postgres major version upgrades require: - **Hard to test and verify** procedures for various issues like incompatibilities - **Risks of plan flips** and performance regressions after upgrade -## Our solution: Four-component approach +## Our solution: four-component approach A complete system: diff --git a/src/pages/products/realistic-test-environments.md b/src/pages/products/realistic-test-environments.md index 36578bfd..9aac4aee 100644 --- a/src/pages/products/realistic-test-environments.md +++ b/src/pages/products/realistic-test-environments.md @@ -7,7 +7,7 @@ description: Give your developers and QA team realistic environments A single instance of the DBLab Engine can generate many fully isolated database clones. These clones can replace the need -to setup, maintain, and pay for standalone development and staging databases. +to set up, maintain, and pay for standalone development and staging databases. [Learn how the DBLab Engine works](/products/how-it-works). ## Your staging server doesn't give you the full picture diff --git a/src/pages/rules/index.md b/src/pages/rules/index.md index fc957f2d..a3164b2d 100644 --- a/src/pages/rules/index.md +++ b/src/pages/rules/index.md @@ -15,7 +15,7 @@ These rules are designed to be used as instructions for AI coding assistants: 1. **Cursor**: use slash commands to create rules ([docs](https://docs.cursor.com/context/rules)) 2. **Claude Code**: use `CLAUDE.md` ([docs](https://docs.anthropic.com/en/docs/claude-code/memory)) -3. **GitHub Copilot**: configure coding guidelines ([docs](https://docs.github.com/en/copilot/how-tos/agents/copilot-code-review/configuring-coding-guidelines)) +3. **GitHub Copilot**: configure coding guidelines ([docs](https://docs.github.com/en/copilot/concepts/code-review/coding-guidelines)) 4. **Other AI tools**: see your tool docs, looking for "rules", "guidelines", "memory" or similar instructions. Each rule page includes "Copy for LLM" and "View raw" buttons for easy copying. \ No newline at end of file From 6631a320aa5b2a9bb8c79963c4fd3902e90bf4b1 Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov <nik@postgres.ai> Date: Wed, 13 May 2026 15:19:57 -0700 Subject: [PATCH 21/61] docs: fill documentation gaps for DBLab Engine 4.1 - gap review rounds 2&3 --- docs/database-lab/prometheus-monitoring.md | 26 + docs/database-lab/supported-databases.md | 2 +- .../administration/data/database-rename.md | 63 +++ .../dblab-howtos/administration/data/index.md | 4 + .../administration/data/rds-refresh.md | 20 +- docs/dblab-howtos/administration/data/rds.md | 4 + .../administration/engine-secure.md | 4 + .../administration/logical-full-refresh.md | 24 +- .../administration/run-database-lab-on-mac.md | 15 +- .../administration/teleport-integration.md | 534 ++++-------------- docs/dblab-howtos/branching/create-branch.md | 2 +- docs/dblab-howtos/branching/index.md | 3 +- docs/dblab-howtos/cloning/clone-protection.md | 2 +- docs/dblab-howtos/cloning/create-clone.md | 32 +- docs/dblab-howtos/cloning/destroy-clone.md | 9 +- docs/dblab-howtos/cloning/reset-clone.md | 5 + .../dblab-howtos/snapshots/create-snapshot.md | 15 +- .../dblab-howtos/snapshots/delete-snapshot.md | 4 + docs/joe-bot/index.md | 2 +- docs/questions-and-answers.md | 2 +- .../database-lab-engine-components.md | 2 + ...base-lab-engine-configuration-reference.md | 60 +- .../dblab-client-cli-reference.md | 22 +- sidebars.js | 2 +- 24 files changed, 399 insertions(+), 459 deletions(-) create mode 100644 docs/dblab-howtos/administration/data/database-rename.md diff --git a/docs/database-lab/prometheus-monitoring.md b/docs/database-lab/prometheus-monitoring.md index 5561f036..c8c2b3e8 100644 --- a/docs/database-lab/prometheus-monitoring.md +++ b/docs/database-lab/prometheus-monitoring.md @@ -202,6 +202,32 @@ dblab_sync_wal_lag_seconds description: "DBLab sync instance WAL replay is {{ $value | humanizeDuration }} behind" ``` +### Metrics collection stale alert + +```yaml +- alert: DBLabMetricsStale + expr: time() - dblab_scrape_success_timestamp > 300 + for: 5m + labels: + severity: warning + annotations: + summary: "DBLab metrics collection is stale" + description: "DBLab metrics have not been updated for more than 5 minutes" +``` + +### Sync instance down alert (physical mode) + +```yaml +- alert: DBLabSyncDown + expr: dblab_sync_status{status="Down"} == 1 or dblab_sync_status{status="Error"} == 1 + for: 5m + labels: + severity: critical + annotations: + summary: "DBLab sync instance is down" + description: "DBLab sync instance is not healthy" +``` + ## OpenTelemetry integration DBLab metrics can be exported to OpenTelemetry-compatible backends using the OpenTelemetry Collector. This allows you to send metrics to Grafana Cloud, Datadog, New Relic, and other observability platforms. diff --git a/docs/database-lab/supported-databases.md b/docs/database-lab/supported-databases.md index c5077672..e0780c65 100644 --- a/docs/database-lab/supported-databases.md +++ b/docs/database-lab/supported-databases.md @@ -14,7 +14,7 @@ Currently, DBLab Engine fully supports the following [PostgreSQL major versions] - 17 (released: 2024-09-26; EOL: 2029-11-08) - 18 (released: 2025-09-25; EOL: 2030-11-13) -By default, version 17 is used: `postgresai/extended-postgres:17`. +By default, version 18 is used in the example configurations: `postgresai/extended-postgres:18`. The images are published in [Docker Hub](https://hub.docker.com/r/postgresai/extended-postgres). diff --git a/docs/dblab-howtos/administration/data/database-rename.md b/docs/dblab-howtos/administration/data/database-rename.md new file mode 100644 index 00000000..363c7bde --- /dev/null +++ b/docs/dblab-howtos/administration/data/database-rename.md @@ -0,0 +1,63 @@ +--- +title: Rename databases during snapshot creation +sidebar_label: Rename databases +--- + +Use the `databaseRename` option when you want DBLab clones to expose different database names than the source system. This is useful when production database names include environment-specific suffixes such as `_prod`, but your development and CI tooling expects names like `_dev` or `_test`. + +:::note +`databaseRename` is supported in DBLab Engine 4.1 and later. +::: + +## When to use it + +Typical cases: + +- production uses `app_prod`, but clones should expose `app_dev` +- you want to normalize database names across environments before tests run +- you need clone database names to match application defaults without changing production + +The rename happens during snapshot preparation on the DBLab side. It does not rename databases in the source system. + +## Logical snapshots + +For dump/restore workflows, add `databaseRename` under `retrieval.spec.logicalSnapshot.options`: + +```yaml +retrieval: + spec: + logicalSnapshot: + options: + databaseRename: + app_prod: app_dev + analytics_prod: analytics_ci +``` + +DBLab will restore data from the original names and then rename those databases before the snapshot is finalized. + +## Physical snapshots + +For physical workflows, add `databaseRename` under `retrieval.spec.physicalSnapshot.options`: + +```yaml +retrieval: + spec: + physicalSnapshot: + options: + databaseRename: + app_prod: app_dev + analytics_prod: analytics_ci +``` + +This runs after `preprocessingScript`, which is useful if your rename logic depends on earlier prep steps. + +## Things to keep in mind + +- Keys are original source database names; values are the names that clones will expose. +- Update connection settings in your application or test suite to use the renamed database names. +- If you already use `preprocessingScript`, remember that `databaseRename` runs after it. + +## Related + +- Reference: [DBLab Engine configuration reference](/docs/reference-guides/database-lab-engine-configuration-reference) +- Guide: [How to create a DBLab clone](/docs/dblab-howtos/cloning/create-clone) diff --git a/docs/dblab-howtos/administration/data/index.md b/docs/dblab-howtos/administration/data/index.md index be180c1d..88c179a6 100644 --- a/docs/dblab-howtos/administration/data/index.md +++ b/docs/dblab-howtos/administration/data/index.md @@ -8,8 +8,12 @@ slug: /dblab-howtos/administration/data ### Logical - [Dump](/docs/dblab-howtos/administration/data/dump) - [RDS](/docs/dblab-howtos/administration/data/rds) +- [RDS/Aurora refresh](/docs/dblab-howtos/administration/data/rds-refresh) — refreshes from temporary RDS clone instead of production - [Full refresh](/docs/dblab-howtos/administration/logical-full-refresh) +### Shared +- [Rename databases during snapshot creation](/docs/dblab-howtos/administration/data/database-rename) + ### Physical - [WAL-G](/docs/dblab-howtos/administration/data/wal-g) - [pgBackRest](/docs/dblab-howtos/administration/data/pgbackrest) diff --git a/docs/dblab-howtos/administration/data/rds-refresh.md b/docs/dblab-howtos/administration/data/rds-refresh.md index e882228a..11c1defb 100644 --- a/docs/dblab-howtos/administration/data/rds-refresh.md +++ b/docs/dblab-howtos/administration/data/rds-refresh.md @@ -76,12 +76,24 @@ docker run --rm \ | `source.dbName` | Yes | Database name | | `source.username` | Yes | Database user | | `source.password` | Yes | Password (supports `${ENV_VAR}` syntax) | +| `source.snapshotIdentifier` | No | Specific snapshot ID to use; if empty, uses latest automated snapshot | | `clone.instanceClass` | Yes | RDS clone instance type (e.g., `db.t3.medium`) | | `clone.securityGroups` | No | Security groups allowing DBLab access | | `clone.subnetGroup` | No | DB subnet group | +| `clone.parameterGroup` | No | RDS parameter group name | +| `clone.optionGroup` | No | RDS option group name (RDS instances only) | +| `clone.clusterParameterGroup` | No | Cluster parameter group (Aurora only) | +| `clone.publiclyAccessible` | No | Make clone publicly accessible (default: `false`) | +| `clone.enableIAMAuth` | No | Enable IAM database authentication (default: `false`) | +| `clone.storageType` | No | Storage type: `gp2`, `gp3`, `io1`, `io2` | +| `clone.deletionProtection` | No | Enable deletion protection on clone (default: `false`) | +| `clone.port` | No | Custom port for the clone (default: RDS default) | +| `clone.tags` | No | Additional tags (key-value map) for the RDS clone | | `clone.maxAge` | No | Max age before clone is considered stale (default: `48h`) | | `dblab.apiEndpoint` | Yes | DBLab API URL | | `dblab.token` | Yes | DBLab verification token | +| `dblab.insecure` | No | Skip TLS certificate verification (default: `false`) | +| `dblab.pollInterval` | No | Status polling interval (default: `30s`) | | `dblab.timeout` | No | Max refresh wait (default: `4h`) | | `aws.region` | Yes | AWS region | @@ -213,10 +225,14 @@ The tool has multiple layers of protection against orphaned RDS clones: ```bash # Dry run — see what would be deleted -rds-refresh cleanup -config config.yaml -dry-run +docker run --rm -v /etc/dblab/config.yaml:/config.yaml \ + --env-file /etc/dblab/env postgresai/rds-refresh \ + cleanup -config /config.yaml -dry-run # Delete stale clones older than 24 hours -rds-refresh cleanup -config config.yaml -max-age 24h +docker run --rm -v /etc/dblab/config.yaml:/config.yaml \ + --env-file /etc/dblab/env postgresai/rds-refresh \ + cleanup -config /config.yaml -max-age 24h ``` ## Networking diff --git a/docs/dblab-howtos/administration/data/rds.md b/docs/dblab-howtos/administration/data/rds.md index aabf5646..2dc605ea 100644 --- a/docs/dblab-howtos/administration/data/rds.md +++ b/docs/dblab-howtos/administration/data/rds.md @@ -143,3 +143,7 @@ sudo rm -rf /var/lib/dblab/dblab_pool/data/* sudo umount /var/lib/dblab/dblab_pool/dump sudo rm -rf /var/lib/dblab/dblab_pool/dump ``` + +## Alternative: RDS/Aurora refresh tool + +For large production databases, running `pg_dump` directly against production can hold xmin horizon for hours and create significant load. The [RDS/Aurora refresh tool](/docs/dblab-howtos/administration/data/rds-refresh) provides an alternative approach that dumps from a temporary RDS clone instead, leaving production untouched. diff --git a/docs/dblab-howtos/administration/engine-secure.md b/docs/dblab-howtos/administration/engine-secure.md index 42e3bd15..a0d66804 100644 --- a/docs/dblab-howtos/administration/engine-secure.md +++ b/docs/dblab-howtos/administration/engine-secure.md @@ -49,3 +49,7 @@ PGPASSWORD=secret_password psql \ ``` Adjust the port numbers accordingly for other clones, following the pattern `original_port+3000` (e.g., `6001->9001`, `6002->9002`, etc.). + +## Alternative: Teleport integration + +For zero-trust access control with audit logging, certificate-based authentication, and role-based access, consider using [Teleport integration](/docs/dblab-howtos/administration/teleport-integration) (DBLab Engine 4.1+). diff --git a/docs/dblab-howtos/administration/logical-full-refresh.md b/docs/dblab-howtos/administration/logical-full-refresh.md index 08bf5eb5..f13d92d8 100644 --- a/docs/dblab-howtos/administration/logical-full-refresh.md +++ b/docs/dblab-howtos/administration/logical-full-refresh.md @@ -11,7 +11,29 @@ Note, that the process described here requires a maintenance window (brief perio If you are using the "physical" provisioning mode, read [how to configure the "sync" instance](/docs/dblab-howtos/administration/postgresql-configuration#the-sync-instance) instead. -## Refresh data from source +## Triggering a full refresh via CLI or API (DBLab Engine 4.0+) + +If you have multiple pools (disks) configured, you can trigger a full refresh without downtime using the CLI or API. DBLab Engine will refresh data on an inactive pool while clones continue to run on the active pool. + +**CLI:** +```bash +dblab instance full-refresh +``` + +**API:** +```bash +curl -X POST -H "Verification-Token: YOUR_TOKEN" http://localhost:2345/full-refresh +``` + +:::tip +A scheduled full refresh can also be configured using the `retrieval.refresh.timetable` option in `server.yml` (crontab format). +::: + +## Manual refresh (single disk) + +The process described below requires a maintenance window and deletes existing clones. + +### Refresh data from source ### 1. Cleanup Stop and remove the existing containers, then clean up the data directory and destroy the pool: ```bash diff --git a/docs/dblab-howtos/administration/run-database-lab-on-mac.md b/docs/dblab-howtos/administration/run-database-lab-on-mac.md index d348312e..bfb25730 100644 --- a/docs/dblab-howtos/administration/run-database-lab-on-mac.md +++ b/docs/dblab-howtos/administration/run-database-lab-on-mac.md @@ -12,6 +12,10 @@ All ZFS operations happen **inside the Colima VM**, so you don't need to install This guide provides an experimental way to run DBLab Engine on macOS. ::: +:::info +This guide applies to both Intel and Apple Silicon Macs. DBLab Engine 4.1 includes the ARM64 / Colima compatibility work needed for this setup, so use DLE 4.1+ and a current Colima release. +::: + ## Prerequisites: Docker, Colima, Go First, install Homebrew, if you don't have it yet: ```bash @@ -48,6 +52,8 @@ colima start --cpu 4 --memory 6 --disk 20 --mount $HOME:w The `--mount $HOME:w` flag makes your home directory accessible inside Colima at `/mnt/host/Users/yourname/...`. +On Apple Silicon, Colima typically uses an ARM64 Linux VM by default. On Intel Macs, it uses AMD64. + ## 3. Initialize ZFS in Colima VM You can either use the provided setup script or run all steps manually if you prefer better control. @@ -136,7 +142,14 @@ exit </Tabs> ## 4. Build engine -Compile DBLab for Linux: +Compile DBLab for Linux using the same architecture as your Colima VM: + +Apple Silicon / ARM64: +```bash +GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -o bin/dblab-server ./cmd/database-lab/main.go +``` + +Intel / AMD64: ```bash GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o bin/dblab-server ./cmd/database-lab/main.go ``` diff --git a/docs/dblab-howtos/administration/teleport-integration.md b/docs/dblab-howtos/administration/teleport-integration.md index cc6c7017..126f8125 100644 --- a/docs/dblab-howtos/administration/teleport-integration.md +++ b/docs/dblab-howtos/administration/teleport-integration.md @@ -1,76 +1,38 @@ --- -title: Teleport Integration -sidebar_label: Teleport Integration +title: Teleport integration +sidebar_label: Teleport integration --- -Integrate DBLab Engine with [Gravitational Teleport](https://goteleport.com) to provide secure, audited access to database clones. When a clone is created or destroyed, the DBLab Teleport sidecar automatically registers or deregisters it in your Teleport cluster — no manual resource management required. +DBLab Engine 4.1 includes built-in integration with [Teleport](https://goteleport.com/), enabling secure, audited access to database clones through Teleport's access control. The integration works as a sidecar process that automatically registers and deregisters DBLab clones as Teleport database resources. -:::note -Teleport integration is available in **Standard** and **Enterprise** editions of DBLab Engine only. -::: - -## Overview - -The `dblab teleport serve` sidecar runs alongside DBLab Engine and performs two functions: - -1. **Webhook handler** — Listens for clone lifecycle events (`clone_create`, `clone_delete`) from DBLab Engine and creates/removes corresponding Teleport database resources via `tctl`. -2. **Reconciliation loop** — Periodically (every 5 minutes) queries DBLab Engine for active clones and ensures Teleport resources are in sync, catching any missed webhook events. - -The sidecar also registers the DBLab Engine API itself as a Teleport App resource, giving administrators access to the DBLab UI through Teleport. - -The sidecar does **not** proxy database connections. A separate Teleport agent with `db_service` enabled handles the actual proxying. - -## Prerequisites - -Before setting up the integration, ensure: - -- **DBLab Engine** (Standard or Enterprise edition) is installed and running -- **Teleport cluster** (v14+) with the database service enabled -- **Teleport Database Agent** running on the DBLab host with `db_service` enabled (see [Step 1](#step-1-configure-the-teleport-database-agent)) -- **`dblab` CLI** — required to run the Teleport sidecar (`dblab teleport serve`). See [Install and initialize Database Lab CLI](/docs/dblab-howtos/cli/cli-install-init). -- **`tctl` binary** available on the DBLab Engine host -- **Teleport identity file** — a bot identity file with permissions to create/delete `db`, `db_server`, `app`, and `app_server` resources (see [Step 2](#step-2-create-the-bot-role-and-generate-a-teleport-identity-file)) -- **PostgreSQL SSL** enabled on clones — Teleport's database service requires SSL even with `tls: mode: insecure` (it skips certificate *verification*, not TLS itself) (see [Step 3](#step-3-enable-ssl-on-postgresql-clones)) - -## Step 1: Configure the Teleport Database Agent - -The sidecar only registers DB resources via `tctl` — it does **not** proxy connections. A Teleport agent must run on the DBLab host with `db_service` enabled and dynamic resource matching. - -If you don't have a Teleport agent running on the DBLab host yet, follow the [Teleport Database Access guide](https://goteleport.com/docs/enroll-resources/database-access/getting-started/) to install and join the agent to your cluster. +## Architecture -Once the agent is joined, add the following `db_service` section to your existing `/etc/teleport.yaml` (do not replace the entire file — keep the `proxy_server` and other settings generated during agent setup): - -```yaml -db_service: - enabled: true - resources: - - labels: - dblab: "true" ``` - -This tells the agent to proxy connections for any DB resource with the `dblab: "true"` label (which the sidecar sets automatically). - -:::note -For **Teleport Cloud**, ensure `auth_service` and `proxy_service` are disabled in your `/etc/teleport.yaml`, since these are provided by the cloud cluster: - -```yaml -auth_service: - enabled: false - -proxy_service: - enabled: false ++--------------+ webhooks +------------------+ tctl +------------------+ +| DBLab Engine |-------------->| dblab teleport |---------->| Teleport Auth | +| (Docker) | | serve (sidecar) | | Server | ++--------------+ +------------------+ +------------------+ + | | + | clone containers | + v v ++--------------+ +------------------+ +------------------+ +| Clone PG |<--------------| Teleport DB Agent|<----------| tsh proxy db | +| (port 6000) | proxied | (db_service) | tunnel | (end user) | ++--------------+ +------------------+ +------------------+ ``` -::: -Restart the agent after changing the config (`systemctl restart teleport`). +The sidecar: +- Receives `clone_create` / `clone_delete` webhooks from DBLab Engine +- Calls `tctl create` / `tctl rm` to register/deregister Teleport DB resources +- Runs startup reconciliation to catch missed events -## Step 2: Create the bot role and generate a Teleport identity file +The sidecar does **not** proxy database connections. A separate Teleport agent with `db_service` enabled handles the actual proxying. -The bot role must be created **before** generating the bot identity, because the identity captures the role's permissions at generation time. +## Prerequisites -### Create the bot role +### 1. Teleport bot role -Save the following as `dblab-bot-role.yaml`: +Create a bot role with permissions to manage database resources: ```yaml kind: role @@ -90,141 +52,85 @@ spec: verbs: [list, create, read, update, delete] ``` -If you're using Teleport Cloud or running `tctl` from a machine without a local auth service, log in first with `tsh login --proxy=yourcluster.teleport.sh:443`. - Apply with `tctl create -f dblab-bot-role.yaml`. -### Generate the identity +### 2. Teleport bot identity -:::caution -The role from the previous step must already exist before generating the identity. If the role is created or updated after the identity is generated, regenerate the identity to pick up the new permissions. -::: +Create a bot and generate the identity file. The role from step 1 must already exist before this step. **Self-hosted Teleport:** - ```bash tctl bots add dblab-sidecar --roles=dblab-bot -tctl auth sign --format=tls --user=bot-dblab-sidecar -o /etc/dblab/teleport-identity-dir/identity +tctl auth sign --format=tls --user=bot-dblab-sidecar -o /etc/teleport/dblab-identity ``` -**Teleport Cloud** (`tctl auth sign` is not available): - +**Teleport Cloud:** ```bash tctl bots add dblab-sidecar --roles=dblab-bot -``` - -`<TOKEN>` in the commands below is the join token printed by `tctl bots add`. If you no longer have it, generate a new one with `tctl bots instances add dblab-sidecar`. - -**For testing only** — generate a one-time identity (expires in ~1 hour): - -```bash # Use the token from the output above tbot start --oneshot \ --token=<TOKEN> \ --proxy-server=yourcluster.teleport.sh:443 \ --join-method=token \ --data-dir=/etc/teleport/bot-data \ - --destination-dir=/etc/dblab/teleport-identity-dir -# The identity file is at /etc/dblab/teleport-identity-dir/identity + --destination-dir=/etc/teleport/bot-dest +# The identity file is at /etc/teleport/bot-dest/identity ``` -:::caution -`tbot --oneshot` generates credentials valid for approximately 1 hour. After expiry, the sidecar silently fails (returns HTTP 500 to webhooks) and can no longer register or deregister clones. For production, run `tbot` as a persistent service — see below. -::: +### 3. Teleport database agent -**For production** — run `tbot` as a systemd service so it continuously renews credentials: - -Create `/etc/tbot.yaml`: +A Teleport agent must run on the DBLab host with `db_service` enabled: ```yaml -version: v2 -proxy_server: yourcluster.teleport.sh:443 -onboarding: - join_method: token - token: <TOKEN> -storage: - type: directory - path: /var/lib/tbot -outputs: - - type: identity - destination: - type: directory - path: /etc/dblab/teleport-identity-dir +# /etc/teleport.yaml (on the DBLab host) +db_service: + enabled: true + resources: + - labels: + dblab: "true" ``` -Then start `tbot` as a service. If `tbot` was installed via the Teleport install script or `teleport-update`, the systemd unit is created automatically. Otherwise, create one manually. In daemon mode, `tbot` renews the identity before it expires — the sidecar always reads fresh credentials from the output directory. - -See the [Teleport Machine ID deployment guide](https://goteleport.com/docs/machine-workload-identity/deployment/linux/) for detailed instructions. +### 4. User role for database access -The identity file for the sidecar is at `/etc/dblab/teleport-identity-dir/identity`. +Teleport users who need to connect to DBLab clones need a role granting database access: -## Step 3: Enable SSL on PostgreSQL clones +```yaml +kind: role +version: v7 +metadata: + name: dblab-user +spec: + allow: + db_labels: + dblab: "true" + db_names: ['*'] + db_users: ['*'] +``` -DBLab clones must have SSL enabled for Teleport to connect. +### 5. SSL/TLS for Postgres clones -### Generate self-signed certificates +Teleport always initiates TLS to backend databases. DBLab clones must have SSL enabled. +**Generate self-signed certs:** ```bash -mkdir -p /etc/dblab/certs openssl req -new -x509 -days 3650 -nodes \ -out /etc/dblab/certs/server.crt \ -keyout /etc/dblab/certs/server.key \ -subj "/CN=dblab-clone" -# Certs must be owned by postgres user (uid 999 inside the container) chown 999:999 /etc/dblab/certs/server.crt /etc/dblab/certs/server.key chmod 600 /etc/dblab/certs/server.key -# Directory must be traversable by the postgres user -chmod 755 /etc/dblab/certs ``` -### Export the Teleport DB CA certificate - -PostgreSQL needs the Teleport CA certificate to verify client certificates presented by the Teleport DB agent. Without `ssl_ca_file`, the `cert` auth method in `pg_hba.conf` fails with "root certificate store not available". - +**Export the Teleport DB CA certificate:** ```bash tctl auth export --type=db-client > /etc/dblab/certs/teleport-ca.crt chown 999:999 /etc/dblab/certs/teleport-ca.crt ``` -### Add SSL settings to server.yml - -```yaml -databaseConfigs: &db_configs - configs: - ssl: "on" - ssl_cert_file: "/var/lib/postgresql/cert/server.crt" - ssl_key_file: "/var/lib/postgresql/cert/server.key" - ssl_ca_file: "/var/lib/postgresql/cert/teleport-ca.crt" -``` - -:::note -These settings are applied during snapshot creation (with promotion enabled) and baked into `postgresql.dblab.snapshot.conf`. Existing snapshots are not affected — a new snapshot must be created after changing `databaseConfigs`. -::: - -:::caution -The `promotion` section in your `retrieval` config must have `enabled: true` for `databaseConfigs` to take effect. With promotion disabled, snapshots are taken without starting PostgreSQL, so `databaseConfigs` (including SSL settings) are never applied. -::: +### 6. pg_hba.conf — certificate authentication -### Mount certificates into clone containers - -Clone containers only inherit DLE container volumes whose source is under `poolManager.mountDir`. For SSL certs stored outside the pool, use `containerConfig`: - -```yaml -databaseContainer: &db_container - dockerImage: "postgresai/extended-postgres:16" - containerConfig: - "shm-size": 1gb - volume: "/etc/dblab/certs:/var/lib/postgresql/cert:ro" -``` - -:::caution -Cert files on the host must have uid 999 ownership *before* DLE starts, because the postgres user inside the container runs as uid 999. -::: - -### pg_hba.conf — Certificate Authentication - -Starting with DLE 4.1.0, the default `pg_hba.conf` includes a `hostssl ... cert` rule that enables Teleport certificate authentication out of the box: +Starting with DBLab Engine 4.1, the default `pg_hba.conf` includes a `hostssl ... cert` rule that enables Teleport certificate authentication out of the box: ``` local all all trust @@ -234,247 +140,34 @@ host all all 0.0.0.0/0 md5 No custom `pg_hba.conf` or volume mount is required for Teleport. -**How rule evaluation works:** -- PostgreSQL evaluates `pg_hba.conf` top to bottom and uses the first matching rule. -- `hostssl ... cert` matches SSL connections and requires a client certificate. Teleport always connects over SSL with a client certificate, so this rule handles Teleport connections. -- `host ... md5` matches both SSL and non-SSL connections. Non-SSL password connections (e.g., `sslmode=disable`) skip the `hostssl` rule and match here. - -:::note -SSL connections *without* a client certificate (e.g., `sslmode=require` with password auth only) will be matched by the `hostssl ... cert` rule and rejected. Clients that do not use Teleport should connect with `sslmode=disable` or `sslmode=prefer` (which falls back to non-SSL when cert auth fails). -::: - -## Step 4: Start the Teleport sidecar - -Run the sidecar using the `dblab` CLI: - -```bash -dblab teleport serve \ - --environment-id prod \ - --teleport-proxy teleport.example.com:443 \ - --teleport-identity /etc/dblab/teleport-identity-dir/identity \ - --dblab-url http://localhost:2345 \ - --dblab-token "$DBLAB_TOKEN" \ - --webhook-secret "$WEBHOOK_SECRET" \ - --listen-addr 0.0.0.0:9876 -``` - -### Configuration flags +### 7. Volume mounting for certs -| Flag | Required | Default | Description | -|------|----------|---------|-------------| -| `--environment-id` | Yes | — | Identifier for this DBLab environment (used in Teleport resource names) | -| `--teleport-proxy` | Yes | — | Teleport proxy address (e.g., `teleport.example.com:443`) | -| `--teleport-identity` | Yes | — | Path to the `tctl` identity file | -| `--dblab-url` | No | `http://localhost:2345` | DBLab Engine API URL | -| `--dblab-token` | Yes | — | DBLab Engine verification token (env: `DBLAB_TOKEN`) | -| `--tctl-path` | No | `tctl` | Path to the `tctl` binary | -| `--webhook-secret` | Yes | — | Shared secret that DBLab Engine sends in the `DBLab-Webhook-Token` header (env: `WEBHOOK_SECRET`) | -| `--listen-addr` | No | `localhost:9876` | HTTP listen address for webhook endpoint | - -### Running as a systemd service - -For production deployments, create a systemd unit. - -First, create the environment file with secrets: - -```bash -sudo mkdir -p /etc/dblab-teleport -cat <<EOF | sudo tee /etc/dblab-teleport/env -DBLAB_TOKEN=your-dblab-verification-token -WEBHOOK_SECRET=your-webhook-secret -EOF -sudo chmod 600 /etc/dblab-teleport/env -``` - -:::caution -Never put secrets directly in `ExecStart` arguments — they are visible to all users via `/proc` and `ps aux`. Use `EnvironmentFile=` as shown below. -::: - -Then save the following as `/etc/systemd/system/dblab-teleport-sidecar.service`: - -```ini -[Unit] -Description=DBLab Teleport Sidecar -After=network.target dblab.service - -[Service] -Type=simple -EnvironmentFile=/etc/dblab-teleport/env -ExecStart=/usr/local/bin/dblab teleport serve \ - --environment-id prod \ - --teleport-proxy teleport.example.com:443 \ - --teleport-identity /etc/dblab/teleport-identity-dir/identity \ - --dblab-url http://localhost:2345 \ - --dblab-token ${DBLAB_TOKEN} \ - --webhook-secret ${WEBHOOK_SECRET} \ - --listen-addr 0.0.0.0:9876 -Restart=on-failure -RestartSec=5 - -[Install] -WantedBy=multi-user.target -``` - -```bash -sudo systemctl daemon-reload -sudo systemctl enable --now dblab-teleport-sidecar -``` - -## Step 5: Configure DBLab Engine webhooks - -Configure DBLab Engine to send webhook notifications to the sidecar for real-time clone sync. Add to your `server.yml`: +Clone containers only inherit DBLab Engine container volumes whose source is under `poolManager.mountDir`. For SSL certs stored outside the pool, use `containerConfig`: ```yaml -webhooks: - hooks: - - url: "http://172.17.0.1:9876/teleport-sync" - secret: "YOUR_WEBHOOK_SECRET" - trigger: - - clone_create - - clone_delete -``` - -:::note -DBLab Engine runs inside Docker, so `localhost:9876` from within the Engine container resolves to the container itself, not the host. Use the Docker bridge gateway IP (`172.17.0.1` by default) or `host.docker.internal:9876`. Note that `host.docker.internal` only resolves automatically on Docker Desktop (macOS/Windows); on Linux, you must either use the bridge IP or launch the DLE container with `--add-host=host.docker.internal:host-gateway`. The sidecar should listen on `0.0.0.0:9876` (not `localhost:9876`) if containers need to reach it. -::: - -Without webhooks, the sidecar still works — it will pick up new/deleted clones during the next reconciliation cycle (within 5 minutes). - -## Step 6: Verify the setup - -### Create a test clone - -```bash -dblab clone create \ - --username testuser \ - --dbname postgres \ - --id test-clone -``` - -### Check Teleport resources - -After the clone is created (immediately with webhooks, or within 5 minutes via reconciliation): - -```bash -tctl get db --format=text -``` - -You should see a database resource named `dblab-clone-<environment-id>-<clone-id>-<port>`. - -### Check the DBLab API app - -The sidecar also registers the DBLab Engine API as a Teleport application: - -```bash -tctl get app --format=text -``` - -You should see an app named `dblab-api-<environment-id>`. - -## User guide: Connecting to clones via Teleport - -Give this section to your users so they can connect to DBLab clones through Teleport. - -### Prerequisites for users - -- [Teleport client (`tsh`)](https://goteleport.com/docs/installation/) installed -- Teleport credentials (login to your cluster) -- Database access permissions in Teleport RBAC - -### 1. Log in to Teleport - -```bash -tsh login --proxy=teleport.example.com:443 -``` - -### 2. List available DBLab clones - -```bash -tsh db ls -``` - -Example output: - -``` -Name Description Labels ---------------------------------------- ----------- --------------------------------- -dblab-clone-prod-my-clone-6000 clone_id=my-clone, dblab=true -dblab-clone-prod-test-clone-6001 clone_id=test-clone, dblab=true -``` - -### 3. Connect to a clone - -```bash -# Connect directly -tsh db connect dblab-clone-prod-my-clone-6000 --db-user postgres --db-name postgres - -# Or use a local tunnel (works with any psql client) -tsh proxy db --tunnel dblab-clone-prod-my-clone-6000 -# Then connect to the tunnel endpoint shown in the output -``` - -:::caution -Use `127.0.0.1` instead of `localhost` in connection strings. Using `localhost` may resolve to IPv6 (`::1`), which can cause connection failures. -::: - -### 4. Clean up - -When done, destroy the clone through the DBLab API or CLI: - -```bash -dblab clone destroy --id my-clone +databaseContainer: &db_container + dockerImage: "postgresai/extended-postgres:16" + containerConfig: + "shm-size": 1gb + volume: "/etc/dblab/certs:/var/lib/postgresql/cert:ro" ``` -The sidecar will automatically deregister the Teleport database resource. - -## Teleport resource labels - -Each registered clone includes the following Teleport labels for RBAC and filtering: - -| Label | Description | -|-------|-------------| -| `dblab` | Always `"true"` — use for Teleport role matching | -| `environment` | The `--environment-id` value | -| `clone_id` | The DBLab clone ID | -| `dblab_user` | The database user configured for the clone | - -### Create a Teleport role for DBLab users - -Users need a Teleport role that grants access to DBLab clone databases. Create a file `dblab-user-role.yaml`: - -```yaml -kind: role -version: v7 -metadata: - name: dblab-user -spec: - allow: - db_labels: - dblab: "true" - db_names: ["*"] - db_users: ["*"] - app_labels: - dblab: "true" -``` +Cert files on the host must have uid 999 ownership before DBLab Engine starts, because the postgres user inside the container runs as uid 999. -Apply the role and assign it to users: +### 8. Webhook URL — Docker networking -```bash -tctl create -f dblab-user-role.yaml +DBLab Engine runs inside Docker, so `localhost:9876` from within the Engine container resolves to the container itself, not the host. -# Assign to users who need clone access: -tctl users update alice@example.com --set-roles=access,dblab-user -``` +Options: +- Use `host.docker.internal:9876` (Docker Desktop / Docker 20.10+) +- Use the Docker bridge IP (typically `172.17.0.1:9876`) +- Run the sidecar in the same Docker network as DBLab Engine -:::note -Users must log out and back in (`tsh logout && tsh login`) to pick up newly assigned roles. -::: +## Configuration -## Full server.yml example (Teleport-relevant sections) +### DBLab Engine server.yml -:::caution -SSL settings must be part of the **same** `databaseConfigs` and `databaseContainer` anchor definitions used by `retrieval` and `provision`. If you define these anchors twice (e.g., once without SSL at the top and once with SSL at the bottom), YAML resolves `<<: *db_configs` to the first definition — the SSL settings are silently ignored. -::: +Add SSL configuration and webhook settings: ```yaml databaseContainer: &db_container @@ -492,60 +185,59 @@ databaseConfigs: &db_configs webhooks: hooks: - - url: "http://172.17.0.1:9876/teleport-sync" + - url: "http://host.docker.internal:9876/teleport-sync" secret: "your-webhook-secret" trigger: - clone_create - clone_delete ``` -## Troubleshooting - -### Sidecar refuses to start with "requires Standard or Enterprise edition" - -The Teleport integration is only available for Standard and Enterprise editions. If you are running Community edition, you need to register your instance with the [PostgresAI platform](https://console.postgres.ai). - -### Clones not appearing in Teleport - -1. Check sidecar logs for errors (e.g., `tctl create failed`) -2. Verify the identity file has correct permissions: `tctl get db` should work manually -3. Confirm the DBLab API is reachable: `curl http://localhost:2345/status` -4. Wait up to 5 minutes for reconciliation if webhooks are not configured - -### Connection refused when using `tsh proxy db` - -- Ensure PostgreSQL SSL is enabled on clones (see Step 3) -- Use `127.0.0.1` instead of `localhost` in connection strings -- Check that the Teleport database service agent can reach the clone port on `localhost` - -### TLS handshake failure - -Clone doesn't have SSL enabled. Add `ssl: "on"` + cert paths to `databaseConfigs.configs` (see Step 3). - -### "no pg_hba.conf entry" - -Missing `hostssl ... cert` entry. Upgrade to DLE 4.1.0+ which includes this rule by default (see Step 3). - -### "root certificate store not available" +:::tip +After adding or changing `databaseConfigs`, a data refresh is required. These settings are applied during snapshot creation. Existing snapshots are not affected. +::: -Missing `ssl_ca_file`. Export the Teleport DB CA with `tctl auth export --type=db-client` and set `ssl_ca_file` in `databaseConfigs` (see Step 3). +## Running the sidecar -### SSL settings not applied to new clones +```bash +dblab teleport serve \ + --environment-id production \ + --teleport-proxy teleport.example.com:3025 \ + --teleport-identity /etc/teleport/dblab-identity \ + --listen-addr 0.0.0.0:9876 \ + --dblab-url http://localhost:2345 \ + --dblab-token "$DBLAB_TOKEN" \ + --webhook-secret "$WEBHOOK_SECRET" +``` -Snapshot was created before SSL config was added. Trigger a data refresh to create a new snapshot with the updated `databaseConfigs`. +See the [CLI reference](/docs/reference-guides/dblab-client-cli-reference#command-teleport) for all available options. -### Webhook not received by sidecar +## Connecting to a clone -Docker networking issue. DBLab Engine runs inside Docker, so use `host.docker.internal` or the Docker bridge IP for the webhook URL instead of `localhost` (see Step 5). +Once everything is running, users connect through Teleport: -### "access to app denied" from sidecar +```bash +# Login to Teleport +tsh login --proxy=teleport.example.com -Bot identity was generated before the role was created or updated. Regenerate the bot identity after ensuring the role exists (see Step 2). +# List available databases (clones appear automatically) +tsh db ls -### Permission denied on cert files +# Connect to a clone +tsh db connect dblab-clone-production-<clone-id>-6000 \ + --db-user postgres --db-name postgres -Wrong file ownership or directory permissions. Run `chown 999:999` on cert files **and** `chmod 755` on the cert directory so the postgres user inside the container can traverse the directory and read the files. +# Or use a local tunnel (works with any psql client) +tsh proxy db --tunnel dblab-clone-production-<clone-id>-6000 +``` -### Sidecar returns HTTP 500 / "credentials have expired" +## Troubleshooting -The bot identity file has expired (~1 hour with `tbot --oneshot`). Regenerate the identity by running `tbot` again, or switch to running `tbot` as a persistent service for automatic renewal (see Step 2). +| Symptom | Cause | Fix | +|---------|-------|-----| +| Clone registered but can't connect | No Teleport DB agent running | Start `teleport` with `db_service.enabled: true` | +| TLS handshake failure | Clone doesn't have SSL enabled | Add `ssl: "on"` + cert paths to `databaseConfigs.configs` | +| "no pg_hba.conf entry" | Missing `hostssl ... cert` entry | Upgrade to DBLab Engine 4.1+ which includes this rule by default | +| "root certificate store not available" | Missing `ssl_ca_file` | Export Teleport DB CA with `tctl auth export --type=db-client` | +| SSL settings not applied to new clones | Snapshot created before SSL config | Trigger a data refresh to create a new snapshot | +| Webhook not received | Docker networking issue | Use `host.docker.internal` or bridge IP for webhook URL | +| Permission denied on cert files | Wrong file ownership | `chown 999:999` on cert files | diff --git a/docs/dblab-howtos/branching/create-branch.md b/docs/dblab-howtos/branching/create-branch.md index a7ef33a8..61863dd8 100644 --- a/docs/dblab-howtos/branching/create-branch.md +++ b/docs/dblab-howtos/branching/create-branch.md @@ -33,7 +33,7 @@ $ dblab branch test ``` ### Create a database branch with a different parent -By default, the created branch will be a child of the current branch. You can specify a different parent branch using `--parent-branch`: +By default, the created branch will be a child of the current branch. If no current branch is set in the local CLI context, DBLab uses `main` as the base branch. You can specify a different parent branch using `--parent-branch`: ```bash $ dblab branch --parent-branch dev test ``` diff --git a/docs/dblab-howtos/branching/index.md b/docs/dblab-howtos/branching/index.md index a65be5a3..d0bdb9a8 100644 --- a/docs/dblab-howtos/branching/index.md +++ b/docs/dblab-howtos/branching/index.md @@ -7,4 +7,5 @@ slug: /dblab-howtos/branching ## Guides - [How to create a database branch](/docs/dblab-howtos/branching/create-branch) -- [How to delete a database branch](/docs/dblab-howtos/branching/delete-branch) \ No newline at end of file +- [How to delete a database branch](/docs/dblab-howtos/branching/delete-branch) +- [Preview environments with DBLab and Coolify](/docs/dblab-howtos/branching/preview-environments-with-dblab-and-coolify) \ No newline at end of file diff --git a/docs/dblab-howtos/cloning/clone-protection.md b/docs/dblab-howtos/cloning/clone-protection.md index 28fae330..5b315023 100644 --- a/docs/dblab-howtos/cloning/clone-protection.md +++ b/docs/dblab-howtos/cloning/clone-protection.md @@ -113,7 +113,7 @@ The response includes `protectedTill` showing when protection expires: { "id": "my-clone", "protected": true, - "protectedTill": "2026-04-11T14:00:00Z", + "protectedTill": "2027-01-15T14:00:00Z", "metadata": { "protectionLeaseDurationMinutes": 1440, "protectionMaxDurationMinutes": 10080 diff --git a/docs/dblab-howtos/cloning/create-clone.md b/docs/dblab-howtos/cloning/create-clone.md index de6c9dc1..4cb383ea 100644 --- a/docs/dblab-howtos/cloning/create-clone.md +++ b/docs/dblab-howtos/cloning/create-clone.md @@ -26,6 +26,8 @@ Before you run any commands, install DBLab CLI and initialize configuration. For ### Basic clone creation Create a clone using `dblab clone create` command. You need to specify the username and password that will be used to connect to the clone. Remember the password, it will not be available later, but you will need to use it to connect to the clone. +Starting with DBLab Engine 4.1, if you do not specify `--branch`, the clone is created from the default branch `main`. + ```bash $ dblab clone create --username USERNAME --password PASSWORD --id CLONE_ID ``` @@ -94,16 +96,36 @@ $ dblab clone create --username USERNAME --password PASSWORD --id CLONE_ID --sna } ``` +### Create a clone from a branch +:::note +Requires DBLab 4.0 or higher +::: + +DBLab uses `main` as the default branch. Specify `--branch` only when you want a different branch. + +Create a clone from a specific branch: +```bash +$ dblab clone create --username USERNAME --password PASSWORD --id CLONE_ID --branch main +``` + ### Protected status -You can make clone protected during the creation or later (if needed). Please be careful: abandoned protected clones may cause out-of-disk-space events. Read the details [here](/docs/dblab-howtos/cloning/clone-protection). +You can make a clone protected during creation or later. Please be careful: abandoned protected clones may cause out-of-disk-space events. Read the details [here](/docs/dblab-howtos/cloning/clone-protection). + +Protect with default lease duration: ```bash -$ dblab clone create --username USERNAME --password PASSWORD --id CLONE_ID --protected +$ dblab clone create --username USERNAME --password PASSWORD --id CLONE_ID --protected true +``` + +Protect for a specific duration (e.g., 8 hours = 480 minutes): +```bash +$ dblab clone create --username USERNAME --password PASSWORD --id CLONE_ID --protected 480 ``` ```json { "id": "democlone", "protected": true, + "protectedTill": "2027-01-15T06:00:00Z", "status": { "code": "OK", "message": "Clone is ready to accept Postgres connections." @@ -112,6 +134,12 @@ $ dblab clone create --username USERNAME --password PASSWORD --id CLONE_ID --pro } ``` +### Extra PostgreSQL configuration +You can set additional PostgreSQL configuration parameters for a clone: +```bash +$ dblab clone create --username USERNAME --password PASSWORD --id CLONE_ID --extra-config statement_timeout='30s' +``` + ## Related - Guide: [Connect to a clone](/docs/dblab-howtos/cloning/connect-clone) - Guide: [Destroy a clone](/docs/dblab-howtos/cloning/destroy-clone) diff --git a/docs/dblab-howtos/cloning/destroy-clone.md b/docs/dblab-howtos/cloning/destroy-clone.md index 72daaa8f..eca151d2 100644 --- a/docs/dblab-howtos/cloning/destroy-clone.md +++ b/docs/dblab-howtos/cloning/destroy-clone.md @@ -8,12 +8,11 @@ DBLab Engine automatically deletes idle unprotected clones after the idle interv ::: :::info -The protected clone could not be deleted automatically or manually. In order to delete the clone, you would need to [unprotect it](/docs/dblab-howtos/cloning/clone-protection). +A protected clone cannot be deleted automatically or manually. To delete it, first [remove protection](/docs/dblab-howtos/cloning/clone-protection). With protection leases (DBLab Engine 4.1+), protection expires automatically after the configured duration. ::: ## GUI 1. On the **Database Lab clone** page click the **Destroy** button. - ![DBLab Engine page / Create clone](/assets/guides/create-clone-1.png) 1. Accept confirmation dialog and wait for it. You will be redirected to the **Database Lab instance** page. ## CLI @@ -31,6 +30,12 @@ dblab clone destroy CLONE_ID The clone has been successfully destroyed: CLONE_ID ``` +### Destroy a clone asynchronously +For long-running operations, use the `--async` flag: +```bash +dblab clone destroy --async CLONE_ID +``` + ## Related - Guide: [Clone protection from manual and automatic deletion](/docs/dblab-howtos/cloning/clone-protection) - Guide: [Resetting a clone state](/docs/dblab-howtos/cloning/reset-clone) diff --git a/docs/dblab-howtos/cloning/reset-clone.md b/docs/dblab-howtos/cloning/reset-clone.md index c8e0ce60..b62759b3 100644 --- a/docs/dblab-howtos/cloning/reset-clone.md +++ b/docs/dblab-howtos/cloning/reset-clone.md @@ -44,5 +44,10 @@ dblab clone reset --snapshot-id SNAPSHOT_ID CLONE_ID The parameters `--latest` and `--snapshot-id` must not be specified at the same time. ::: +For long-running operations, use the `--async` flag: +```bash +dblab clone reset --async --latest CLONE_ID +``` + ## Related - Guide: [Destroy a clone](/docs/dblab-howtos/cloning/destroy-clone) diff --git a/docs/dblab-howtos/snapshots/create-snapshot.md b/docs/dblab-howtos/snapshots/create-snapshot.md index eab2a86f..ea42e63b 100644 --- a/docs/dblab-howtos/snapshots/create-snapshot.md +++ b/docs/dblab-howtos/snapshots/create-snapshot.md @@ -27,12 +27,23 @@ Before you run any commands, install Database Lab CLI and initialize configurati - Command [`dblab snapshot`](/docs/reference-guides/dblab-client-cli-reference#command-snapshot) - Command [`dblab commit`](/docs/reference-guides/dblab-client-cli-reference#command-commit) -### Create a snapshot -Create a snapshot using the `dblab commit` command and specify the clone ID and message (optional): +### Create a snapshot from a clone +Create a snapshot from an existing clone using the `dblab commit` command: ```bash $ dblab commit --clone-id CLONE_ID --message "Snapshot message" ``` +### Create a snapshot from the current pool state +You can also create a snapshot directly from the current state of a pool (without an existing clone): +```bash +$ dblab snapshot create +``` + +To specify a particular pool: +```bash +$ dblab snapshot create --pool POOL_NAME +``` + Command `dblab snapshot list` shows all snapshots, including the one just created: ```bash $ dblab snapshot list diff --git a/docs/dblab-howtos/snapshots/delete-snapshot.md b/docs/dblab-howtos/snapshots/delete-snapshot.md index 09f55da8..2b674c5b 100644 --- a/docs/dblab-howtos/snapshots/delete-snapshot.md +++ b/docs/dblab-howtos/snapshots/delete-snapshot.md @@ -33,5 +33,9 @@ Delete a snapshot with `dblab snapshot` command, using subcommand `delete`. $ dblab snapshot delete SNAPSHOT_ID ``` +:::tip +If the snapshot has dependent clones, you can force-delete it via the GUI (see screenshots above) or via the API (`DELETE /snapshot/{id}?force=true`). +::: + ## Related - Guide: [Create a snapshot](/docs/dblab-howtos/snapshots/create-snapshot) diff --git a/docs/joe-bot/index.md b/docs/joe-bot/index.md index 1e4f60db..17f26fb4 100644 --- a/docs/joe-bot/index.md +++ b/docs/joe-bot/index.md @@ -23,7 +23,7 @@ This process is fully automated and takes only a few seconds, even for multi-ter ## Features - "Serverless EXPLAIN": engineers do not need to worry about the provisioning of independent database clones. The process is fully automated, so all the work looks like requests to analyze some query execution plan or modify database schema – and Joe takes care of it, ensuring that delivered results are identical to production. -- PostgreSQL versions 9.6, 10, 11, and 12 are currently supported. +- PostgreSQL versions 10 through 18 are supported. - Currently, Joe is provided in the form of Slack chatbot. - The provisioning of a new clone takes only a few seconds, regardless of the database size. - Each database clone is fully independent, so developers do not interfere with each other and do not need to wait. diff --git a/docs/questions-and-answers.md b/docs/questions-and-answers.md index 785b6f6d..3147c359 100644 --- a/docs/questions-and-answers.md +++ b/docs/questions-and-answers.md @@ -98,7 +98,7 @@ Yes. Monitoring can run in PostgresAI Cloud or in your own infrastructure. We se ## What Postgres versions are supported? -postgres_ai monitoring supports Postgres 14+. DBLab Engine supports Postgres 9.6+. +postgres_ai monitoring supports Postgres 14+. DBLab Engine supports Postgres 10+. ## Does it work with managed Postgres? diff --git a/docs/reference-guides/database-lab-engine-components.md b/docs/reference-guides/database-lab-engine-components.md index 2baff039..550d0a11 100644 --- a/docs/reference-guides/database-lab-engine-components.md +++ b/docs/reference-guides/database-lab-engine-components.md @@ -14,10 +14,12 @@ User-defined. - Manages all other containers - Handles data retrieval and snapshot creation - Offers an HTTP API to manage snapshots and clones +- Exposes operational endpoints such as `/healthz` and `/metrics` - Generates an internal DLE RuntimeID on each start to mark related components #### How to manage Operates as a Docker container. See the [guide](/docs/dblab-howtos/administration/engine-manage) for administering DLE. +For API and metrics details, see [DBLab API reference](/docs/reference-guides/database-lab-engine-api-reference) and [Prometheus monitoring](/docs/database-lab/prometheus-monitoring). --- diff --git a/docs/reference-guides/database-lab-engine-configuration-reference.md b/docs/reference-guides/database-lab-engine-configuration-reference.md index 39626e22..8bb8f96f 100644 --- a/docs/reference-guides/database-lab-engine-configuration-reference.md +++ b/docs/reference-guides/database-lab-engine-configuration-reference.md @@ -230,7 +230,7 @@ Options: - `password` (string, optional, default: "") - defines username password to connect to the database; the environment variable PGPASSWORD can be used instead of this option; the environment variable has a higher priority - `rdsIam` (key-value, optional) - contains options specific for RDS IAM source type - `awsRegion` (string, required) - AWS Region where RDS is located - - `dbInstanceIdentifier` (string, required) - RDS instance Identifier + - `dbInstanceIdentifier` (string, required) - RDS instance Identifier. This value is also exposed through the `/admin/config` projection as `RDSIAMDBInstance`. - `sslRootCert` (string, required) - path on the host machine to the SSL root certificate. You can download it from https://s3.amazonaws.com/rds-downloads/rds-combined-ca-bundle.pem - `parallelJobs` (integer, optional, default: 1) - defines the number of concurrent jobs using the `pg_dump` option `jobs`. This option can dramatically reduce the time to dump a large database - `databases` (key-value, optional) - defines options for specifying the database list that must be copied. By default, DBLab Engine dumps and restores all available databases. Do not specify the databases section to take all databases. Available options for each database: `tables` @@ -279,7 +279,7 @@ Options: Prepares a snapshot for logical restored PostgreSQL database. Options: -- `databaseRename` (key-value, optional) - rename databases before finalizing the snapshot. Runs after `preprocessingScript`. Each entry maps the original database name to the new name. This is useful when you want clones to use different database names than production (e.g., renaming `mydb_prod` to `mydb_dev`). Supported since DBLab Engine 4.1. +- `databaseRename` (key-value, optional) - rename databases before finalizing the snapshot. Runs after `preprocessingScript`. Each entry maps the original database name to the new name. This is useful when you want clones to use different database names than production (e.g., renaming `mydb_prod` to `mydb_dev`). Supported since DBLab Engine 4.1. See [Rename databases during snapshot creation](/docs/dblab-howtos/administration/data/database-rename). ```yaml databaseRename: mydb_prod: mydb_dev @@ -342,7 +342,7 @@ Options: - `configs` (key-value, optional) - applies PostgreSQL configuration parameters to the promotion instance - `sysctls` (key-value, optional) - allows configuring namespaced kernel parameters (sysctls) of Docker container for a promotion stage of taking a snapshot. See supported parameters: https://docs.docker.com/reference/cli/docker/container/run/#sysctl - `preprocessingScript` (string, optional) - path on the host machine to a pre-processing script -- `databaseRename` (key-value, optional) - rename databases before finalizing the snapshot. Runs after `preprocessingScript`. Each entry maps the original database name to the new name. Supported since DBLab Engine 4.1. +- `databaseRename` (key-value, optional) - rename databases before finalizing the snapshot. Runs after `preprocessingScript`. Each entry maps the original database name to the new name. Supported since DBLab Engine 4.1. See [Rename databases during snapshot creation](/docs/dblab-howtos/administration/data/database-rename). ```yaml databaseRename: example_production: example_dblab @@ -447,13 +447,57 @@ Webhooks provide a way to notify external systems about clone lifecycle events. - `clone_delete` - triggered when a clone is deleted. Supported since DBLab Engine 4.1. - `clone_protection_expiring` - triggered when a clone's protection lease is about to expire (based on `protectionExpiryWarningMinutes`). Supported since DBLab Engine 4.1. - `clone_protection_expired` - triggered when a clone's protection lease has expired and protection has been automatically removed. Supported since DBLab Engine 4.1. + - `snapshot_create` - triggered when a new snapshot is created. Supported since DBLab Engine 4.1. + - `snapshot_delete` - triggered when a snapshot is deleted. Supported since DBLab Engine 4.1. + - `branch_create` - triggered when a new branch is created. Supported since DBLab Engine 4.1. + - `branch_delete` - triggered when a branch is deleted. Supported since DBLab Engine 4.1. ### Webhook payload format -Webhook requests are sent as HTTP POST with JSON payload containing: -- Event type (matching the trigger) -- Clone information (ID, port, connection details) -- Timestamp of the event -- Instance information +Webhook requests are sent as HTTP `POST` with a JSON body. If `secret` is configured, DBLab Engine also sends the `DBLab-Webhook-Token` HTTP header. + +Payload shape depends on the event type: +- Basic events (`snapshot_create`, `snapshot_delete`, `branch_create`, `branch_delete`) include: + - `event_type` + - `entity_id` +- Clone lifecycle events (`clone_create`, `clone_reset`, `clone_delete`) include: + - `event_type` + - `entity_id` + - `host` + - `port` + - `username` + - `dbname` + - `container_name` +- Clone protection events (`clone_protection_expiring`, `clone_protection_expired`) include all clone lifecycle fields plus: + - `protected_till` + - `expires_in_hours` + +### Example payload: `clone_create` +```json +{ + "event_type": "clone_create", + "entity_id": "clone-1", + "host": "localhost", + "port": 5432, + "username": "user1", + "dbname": "postgres", + "container_name": "dblab_clone_5432" +} +``` + +### Example payload: `clone_protection_expiring` +```json +{ + "event_type": "clone_protection_expiring", + "entity_id": "clone-1", + "host": "localhost", + "port": 5432, + "username": "user1", + "dbname": "postgres", + "container_name": "dblab_clone_5432", + "protected_till": "2027-01-15T14:00:00Z", + "expires_in_hours": 24 +} +``` ### Example configuration ```yaml diff --git a/docs/reference-guides/dblab-client-cli-reference.md b/docs/reference-guides/dblab-client-cli-reference.md index 59921804..6a5c9c4d 100644 --- a/docs/reference-guides/dblab-client-cli-reference.md +++ b/docs/reference-guides/dblab-client-cli-reference.md @@ -111,12 +111,12 @@ dblab init [command options] [arguments...] **Options** - `--environment-id` (string, required) - an arbitrary environment ID of Database Lab instance's API - `--url` (string, required) - URL of Database Lab instance's API - - `--token` (string, required) - verification token of Database Lab instance + - `--token` (string, optional) - verification token of Database Lab instance - `--insecure` (boolean, optional, default: false) - allow insecure server connections when using SSL - `--request-timeout` (string, optional, default: "") - change requests timeout - `--forwarding-server-url` (string, optional) - forwarding server URL of Database Lab instance. For example: `ssh://user@remote.host:22` - `--forwarding-local-port` (string, optional) - local port for forwarding to the Database Lab instance - - `--identity-file` (string, optional) - select a file from which the identity (private key) for public key authentication is read" + - `--identity-file` (string, optional) - select a file from which the identity (private key) for public key authentication is read **Example** ```bash @@ -303,7 +303,7 @@ dblab clone create [command options] - `--db-name` (string, optional) - database available to the user with restricted permissions - `--id` (string, optional) - clone ID - `--snapshot-id` (string, optional; DLE 4.0+) - snapshot ID -- `--branch` (string, optional; DLE 4.0+) - branch name +- `--branch` (string, optional; DLE 4.0+) - branch name. If omitted, DBLab uses the default branch `main`. - `--protected` , `-p` (string, optional) - enable deletion protection. Accepts: `true` for default lease duration, a number of minutes for custom duration, or `0` for infinite protection (no expiry). When omitted, clone is not protected. DLE 4.1+ supports time-limited protection leases — see [Protection leases](/docs/dblab-howtos/cloning/clone-protection). - `--async` , `-a` (boolean, default: false) - run the command asynchronously - `--extra-config` (string, optional) set an extra database configuration for the clone. An example: statement_timeout='1s' @@ -647,19 +647,15 @@ Delete a snapshot. dblab snapshot delete [command options] SNAPSHOT_ID ``` -**Options** -- `--force` (boolean, default: false) - force deletion even if dependent clones or datasets exist - **Example** ```bash dblab snapshot delete "dblab_pool/dataset_1@snapshot_20241028174127" ``` -Force delete a snapshot with dependent clones: -```bash -dblab snapshot delete --force "dblab_pool/dataset_1@snapshot_20241028174127" -``` +:::tip +Force deletion of snapshots with dependent clones is available through the API (`DELETE /snapshot/{id}?force=true`) or the UI, but is not currently supported via the CLI. +::: --- ### Subcommand `help` , `h` @@ -700,10 +696,10 @@ dblab teleport serve [command options] - `--environment-id` (string, required) - environment identifier used in Teleport resource names - `--teleport-proxy` (string, required) - Teleport Auth Server or Proxy address (e.g., `teleport.example.com:3025`) - `--teleport-identity` (string, required) - path to the Teleport bot identity file for authentication -- `--listen-addr` (string, optional, default: "0.0.0.0:9876") - address and port to listen for incoming webhooks -- `--dblab-url` (string, required) - DBLab API URL (e.g., `http://localhost:2345`) +- `--listen-addr` (string, optional, default: "localhost:9876") - address and port to listen for incoming webhooks. Use `0.0.0.0:9876` if the sidecar needs to be reachable from Docker containers. +- `--dblab-url` (string, optional, default: "http://localhost:2345") - DBLab API URL - `--dblab-token` (string, required) - DBLab verification token -- `--webhook-secret` (string, optional) - webhook secret for verifying incoming webhook payloads +- `--webhook-secret` (string, required) - shared secret that DBLab Engine sends in the `DBLab-Webhook-Token` header for webhook payload verification **Example** ```bash diff --git a/sidebars.js b/sidebars.js index 4cb11abe..671a84ba 100644 --- a/sidebars.js +++ b/sidebars.js @@ -131,12 +131,12 @@ module.exports = { "dblab-howtos/administration/logical-full-refresh", "dblab-howtos/administration/ci-observer-postgres-log-masking", "dblab-howtos/administration/add-disk-space-to-zfs-pool", - "dblab-howtos/administration/teleport-integration", { "Data sources": [ "dblab-howtos/administration/data/index", "dblab-howtos/administration/data/rds", "dblab-howtos/administration/data/rds-refresh", + "dblab-howtos/administration/data/database-rename", "dblab-howtos/administration/data/dump", "dblab-howtos/administration/data/wal-g", "dblab-howtos/administration/data/pgbackrest", From ad7c03f37470ceddc2c6a481bf04ce9acd450c79 Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov <nik@postgres.ai> Date: Thu, 14 May 2026 10:48:37 -0700 Subject: [PATCH 22/61] Improve the "autovacuum queue" howto --- .../autovacuum-queue-and-progress.md | 199 +++++++++--------- 1 file changed, 99 insertions(+), 100 deletions(-) diff --git a/docs/postgres-howtos/database-administration/maintenance/autovacuum-queue-and-progress.md b/docs/postgres-howtos/database-administration/maintenance/autovacuum-queue-and-progress.md index 24093801..bda10ce0 100644 --- a/docs/postgres-howtos/database-administration/maintenance/autovacuum-queue-and-progress.md +++ b/docs/postgres-howtos/database-administration/maintenance/autovacuum-queue-and-progress.md @@ -24,10 +24,10 @@ estimated_time: 5 min # Autovacuum "queue" and progress -We know that in some cases, `autovacuum` settings (especially if they are default) need to be adjusted to keep up -with the updates. One of the ways to understand that the existing settings are "not enough" is to compare -[autovacuum_max_workers](https://postgresqlco.nf/doc/en/param/autovacuum_max_workers/) and the number of workers -actually used: +In many workloads, `autovacuum` settings — especially the defaults — need to be tuned to keep up with dead-tuple accumulation. +One way to tell whether the current settings are sufficient is to compare +[autovacuum_max_workers](https://postgresqlco.nf/doc/en/param/autovacuum_max_workers/) with the number of workers +that are actually running: ```sql show autovacuum_max_workers; @@ -41,119 +41,118 @@ where backend_type = 'autovacuum worker' group by state; ``` -👉 If most of the time, we see that the number of workers currently acting reaches `autovacuum_max_workers`, this -is a strong signal that it's time to consider increasing the number of workers (requires a restart) and/or make them -move faster – via [adjusting quotas](https://www.postgresql.org/docs/current/runtime-config-autovacuum.html) -(<code><b>[auto]vacuum_vacuum_cost_limit</b></code>/<code>[auto]vacuum_vacuum_cost_delay</code>). +👉 If the number of active workers regularly hits `autovacuum_max_workers`, that is a strong signal to consider raising +the limit (which requires a restart) and/or letting workers run faster by +[adjusting quotas](https://www.postgresql.org/docs/current/runtime-config-autovacuum.html) +(<code><b>[auto]vacuum_vacuum_cost_limit</b></code> / <code>[auto]vacuum_vacuum_cost_delay</code>). -However, we might have a question: how many tables are currently in the "queue" to be processed by `autovacuum`? The -analysis of this "queue" can give an idea how much work the workers need to do and if the current settings are "enough". -The size of the queue compared to the number of workers, potentially, can give a metric similar to "load average" for CPU -load. +A related question: how many tables are currently in the "queue" waiting to be processed by `autovacuum`? +Looking at this queue gives a sense of how much work is pending and whether the current settings can keep up. +Queue depth relative to the number of workers acts as a rough analog of "load average" for CPU. -Below is the report ([source](https://gitlab.com/-/snippets/1889668)) that answers it, by looking at: +The report below ([source](https://gitlab.com/-/snippets/1889668)) answers that question by combining: -- current global `autovacuum` settings, -- per-table individual settings for vacuuming, -- numbers of dead tuples for each table. +- the current global `autovacuum` settings, +- per-table vacuum overrides, +- dead-tuple counts per table. -It compares all this and builds the list of tables that need vacuuming. +It cross-references them and produces a list of tables that need vacuuming. -Additionally, it inspects `pg_stat_progress_vacuum` to analyze what's being processed right now. +It also inspects `pg_stat_progress_vacuum` to show what is currently being processed. -The report has been derived from [here](https://github.com/avito-tech/dba-utils/blob/master/munin/vacuum_queue). +The query is adapted from [avito-tech/dba-utils](https://github.com/avito-tech/dba-utils/blob/master/munin/vacuum_queue). -The further development of this query could include: -_analysis of tables "in need of being auto-analyzed"_. +A natural extension is to add the same kind of analysis for tables that need auto-analyze. ```sql with table_opts as ( - select - pg_class.oid, - relname, - nspname, - array_to_string(reloptions, '') as relopts - from pg_class - join pg_namespace ns on relnamespace = ns.oid + select + pg_class.oid, + relname, + nspname, + array_to_string(reloptions, '') as relopts + from pg_class + join pg_namespace as ns on relnamespace = ns.oid ), vacuum_settings as ( - select - oid, - relname, - nspname, - case - when relopts like '%autovacuum_vacuum_threshold%' then - regexp_replace(relopts, '.*autovacuum_vacuum_threshold=([0-9.]+).*', e'\\1')::int8 - else current_setting('autovacuum_vacuum_threshold')::int8 - end as autovacuum_vacuum_threshold, - case - when relopts like '%autovacuum_vacuum_scale_factor%' - then regexp_replace(relopts, '.*autovacuum_vacuum_scale_factor=([0-9.]+).*', e'\\1')::numeric - else current_setting('autovacuum_vacuum_scale_factor')::numeric - end as autovacuum_vacuum_scale_factor, - case - when relopts ~ 'autovacuum_enabled=(false|off)' then false - else true - end as autovacuum_enabled - from table_opts -), p as ( - select * - from pg_stat_progress_vacuum -) -select - coalesce( - coalesce(nullif(vacuum_settings.nspname, 'public') || '.', '') || vacuum_settings.relname, -- current DB - format('[something in "%I"]', p.datname) -- another DB - ) as relation, - round((100 * psat.n_dead_tup::numeric / nullif(pg_class.reltuples, 0))::numeric, 2) as dead_tup_pct, - pg_class.reltuples::numeric, - psat.n_dead_tup, - format ( - 'vt: %s, vsf: %s, %s', -- 'vt' – vacuum_threshold, 'vsf' - vacuum_scale_factor - vacuum_settings.autovacuum_vacuum_threshold, - vacuum_settings.autovacuum_vacuum_scale_factor, - (case when autovacuum_enabled then 'DISABLED' else 'enabled' end) - ) as effective_settings, - case - when last_autovacuum > coalesce(last_vacuum, '0001-01-01') then left(last_autovacuum::text, 19) || ' (auto)' - when last_vacuum is not null then left(last_vacuum::text, 19) || ' (manual)' - else null - end as last_vacuumed, - coalesce(p.phase, '~~~ in queue ~~~') as status, - p.pid as pid, + select + oid, + relname, + nspname, case - when a.query ~ '^autovacuum.*to prevent wraparound' then 'wraparound' - when a.query ~ '^vacuum' then 'user' - when a.pid is null then null - else 'regular' - end as mode, + when relopts like '%autovacuum_vacuum_threshold%' + then regexp_replace(relopts, '.*autovacuum_vacuum_threshold=([0-9.]+).*', e'\\1')::int8 + else current_setting('autovacuum_vacuum_threshold')::int8 + end as autovacuum_vacuum_threshold, case - when a.pid is null then null - else coalesce(wait_event_type || '.' || wait_event, 'f') - end as waiting, - round(100.0 * p.heap_blks_scanned / nullif(p.heap_blks_total, 0), 1) as scanned_pct, - round(100.0 * p.heap_blks_vacuumed / nullif(p.heap_blks_total, 0), 1) as vacuumed_pct, - p.index_vacuum_count, + when relopts like '%autovacuum_vacuum_scale_factor%' + then regexp_replace(relopts, '.*autovacuum_vacuum_scale_factor=([0-9.]+).*', e'\\1')::numeric + else current_setting('autovacuum_vacuum_scale_factor')::numeric + end as autovacuum_vacuum_scale_factor, case - when psat.relid is not null and p.relid is not null then - (select count(*) from pg_index where indrelid = psat.relid) - else null - end as index_count -from pg_stat_all_tables psat - join pg_class on psat.relid = pg_class.oid - left join vacuum_settings on pg_class.oid = vacuum_settings.oid - full outer join p on p.relid = psat.relid and p.datname = current_database() - left join pg_stat_activity a using (pid) + when relopts ~ 'autovacuum_enabled=(false|off)' then false + else true + end as autovacuum_enabled + from table_opts +), progress as ( + select * + from pg_stat_progress_vacuum +) +select + coalesce( + coalesce(nullif(vacuum_settings.nspname, 'public') || '.', '') || vacuum_settings.relname, -- current DB + format('[something in "%I"]', progress.datname) -- another DB + ) as relation, + round((100 * psat.n_dead_tup::numeric / nullif(pg_class.reltuples, 0))::numeric, 2) as dead_tup_pct, + pg_class.reltuples::numeric, + psat.n_dead_tup, + format( + 'vt: %s, vsf: %s, %s', -- 'vt' – vacuum_threshold, 'vsf' – vacuum_scale_factor + vacuum_settings.autovacuum_vacuum_threshold, + vacuum_settings.autovacuum_vacuum_scale_factor, + case when autovacuum_enabled then 'enabled' else 'DISABLED' end + ) as effective_settings, + case + when last_autovacuum > coalesce(last_vacuum, '0001-01-01') then left(last_autovacuum::text, 19) || ' (auto)' + when last_vacuum is not null then left(last_vacuum::text, 19) || ' (manual)' + else null + end as last_vacuumed, + coalesce(progress.phase, '~~~ in queue ~~~') as status, + progress.pid, + case + when activity.query ~ '^autovacuum.*to prevent wraparound' then 'wraparound' + when activity.query ~ '^vacuum' then 'user' + when activity.pid is null then null + else 'regular' + end as mode, + case + when activity.pid is null then null + else coalesce(wait_event_type || '.' || wait_event, 'f') + end as waiting, + round(100.0 * progress.heap_blks_scanned / nullif(progress.heap_blks_total, 0), 1) as scanned_pct, + round(100.0 * progress.heap_blks_vacuumed / nullif(progress.heap_blks_total, 0), 1) as vacuumed_pct, + progress.index_vacuum_count, + case + when psat.relid is not null and progress.relid is not null + then (select count(*) from pg_index where indrelid = psat.relid) + else null + end as index_count +from pg_stat_all_tables as psat +join pg_class on psat.relid = pg_class.oid +left join vacuum_settings on pg_class.oid = vacuum_settings.oid +full outer join progress + on progress.relid = psat.relid + and progress.datname = current_database() +left join pg_stat_activity as activity using (pid) where - psat.relid is null - or p.phase is not null - or ( - autovacuum_vacuum_threshold - + (autovacuum_vacuum_scale_factor::numeric * pg_class.reltuples) - < psat.n_dead_tup - ) + psat.relid is null + or progress.phase is not null + or ( + autovacuum_vacuum_threshold + (autovacuum_vacuum_scale_factor::numeric * pg_class.reltuples) + < psat.n_dead_tup + ) order by status, relation; ``` -Example of the output (running it in psql with `\gx` instead of `;` in the end): +Example output (run in psql with `\gx` instead of `;` at the end): ![tables to be autovacuumed](/img/postgres-howtos/0067_tables_to_be_autovacuumed_2.png) From 08f877ae19949721dc9983c84c2ad77ea74911d8 Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov <nik@postgres.ai> Date: Fri, 15 May 2026 04:41:45 -0700 Subject: [PATCH 23/61] docs(issues): fix post-comment kebab-case and document output formats --- docs/postgresai-howtos/how-to-work-with-issues.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/docs/postgresai-howtos/how-to-work-with-issues.md b/docs/postgresai-howtos/how-to-work-with-issues.md index 1de25380..cbcd80c9 100644 --- a/docs/postgresai-howtos/how-to-work-with-issues.md +++ b/docs/postgresai-howtos/how-to-work-with-issues.md @@ -50,7 +50,7 @@ postgresai issues list postgresai issues view <issue_id> # Post a comment -postgresai issues post_comment <issue_id> "comment" +postgresai issues post-comment <issue_id> "comment" ``` </TabItem> @@ -64,7 +64,7 @@ npx postgresai issues list npx postgresai issues view <issue_id> # Post a comment -npx postgresai issues post_comment <issue_id> "comment" +npx postgresai issues post-comment <issue_id> "comment" ``` </TabItem> @@ -78,13 +78,19 @@ bunx postgresai issues list bunx postgresai issues view <issue_id> # Post a comment -bunx postgresai issues post_comment <issue_id> "comment" +bunx postgresai issues post-comment <issue_id> "comment" ``` </TabItem> </Tabs> -See [PostgresAI CLI reference](/docs/reference-guides/postgresai-cli-reference) for all available commands. +By default, `issues` commands print human-friendly YAML when stdout is a terminal, and switch to JSON when piped or redirected. Force JSON explicitly with `--json` for scripting: + +```bash +postgresai issues list --json | jq '.[] | {id, title}' +``` + +See the [PostgresAI CLI reference](/docs/reference-guides/postgresai-cli-reference#command-issues) for the full `issues` command set (including `create`, `update`, action items, and file attachments). ## Integrate with AI coding tools From 4076f3db06a76ecc5153e95e33069d4538ae5143 Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov <nik@postgres.ai> Date: Fri, 15 May 2026 05:28:39 -0700 Subject: [PATCH 24/61] docs(mcp): align install howto and reference with actual CLI behavior --- docs/postgresai-howtos/how-to-install-mcp.md | 37 +++++++++++++--- .../postgresai-cli-reference.md | 43 +++++++++++++++---- 2 files changed, 66 insertions(+), 14 deletions(-) diff --git a/docs/postgresai-howtos/how-to-install-mcp.md b/docs/postgresai-howtos/how-to-install-mcp.md index 2b24b799..0f1ea762 100644 --- a/docs/postgresai-howtos/how-to-install-mcp.md +++ b/docs/postgresai-howtos/how-to-install-mcp.md @@ -83,19 +83,44 @@ bunx postgresai mcp install </TabItem> </Tabs> -The CLI will detect supported AI coding tools and configure MCP integration automatically. +Without arguments, `mcp install` prints a numbered menu and asks you to pick a tool: + +``` +Available AI coding tools: + 1. Cursor + 2. Claude Code + 3. Windsurf + 4. Codex +Select your AI coding tool (1-4): +``` + +To skip the prompt, pass the client name as an argument: `postgresai mcp install <client>`, where `<client>` is one of `cursor`, `claude-code`, `windsurf`, or `codex`. + +:::note + +`mcp install` pins the absolute path of the `pgai` binary it was invoked from into the client config. If you ran the command via `npx` or `bunx`, the pinned path points into a per-version package cache that may be garbage-collected. For a stable install, prefer `npm install -g postgresai` (or `brew install postgresai`) before running `mcp install`, or re-run `mcp install` after each CLI upgrade. + +::: ## Verify installation -After installation, your AI coding tool will have access to PostgresAI features: +After installation, restart your AI coding tool. The PostgresAI MCP server exposes the following tools (see the [`mcp` section of the CLI reference](/docs/reference-guides/postgresai-cli-reference#command-mcp) for full details): + +- `list_issues`, `view_issue`, `create_issue`, `update_issue` — browse and manage issues in the PostgresAI Console. +- `post_issue_comment`, `update_issue_comment` — comment on issues. +- `upload_file`, `download_file` — upload local files to PostgresAI storage and download them back. + +To check the install landed, inspect the client config file. For Cursor: + +```bash +cat ~/.cursor/mcp.json +``` -- View and manage issues -- Access database monitoring data -- Get AI-assisted recommendations for database optimization +You should see a `postgresai` entry under `mcpServers` with `command` pointing at the `pgai` binary and `args: ["mcp", "start"]`. ## Manual configuration -If automatic installation doesn't work, you can configure MCP manually. See [PostgresAI CLI reference](/docs/reference-guides/postgresai-cli-reference) for the `mcp` command options. +If you prefer to wire up MCP by hand, edit the client config and add a `postgresai` entry under `mcpServers`. See the [`mcp install` section of the CLI reference](/docs/reference-guides/postgresai-cli-reference#mcp-install) for the exact JSON shape. ## Next steps diff --git a/docs/reference-guides/postgresai-cli-reference.md b/docs/reference-guides/postgresai-cli-reference.md index 71c967b8..5167250b 100644 --- a/docs/reference-guides/postgresai-cli-reference.md +++ b/docs/reference-guides/postgresai-cli-reference.md @@ -620,8 +620,9 @@ client (e.g. Cursor, Claude Code) rather than invoked directly. postgresai mcp install [client] ``` -Installs an `mcpServers.postgresai` entry pointing at the current -`postgresai` binary, with `mcp start` as its arguments. +Installs an `mcpServers.postgresai` entry pointing at the **absolute +path of the `pgai` binary that invoked `mcp install`**, with `mcp +start` as its arguments. `client` may be one of: @@ -633,22 +634,48 @@ Installs an `mcpServers.postgresai` entry pointing at the current If `client` is omitted, you are prompted to choose interactively (1=Cursor, 2=Claude Code, 3=Windsurf, 4=Codex). -A typical Cursor entry looks like: +:::note + +The pinned `command` path is the absolute path resolved at install +time. When `mcp install` is run via `npx` or `bunx`, that path points +into the package cache and may be garbage-collected. For a stable +install, run `mcp install` from a globally installed CLI +(`npm install -g postgresai` or `brew install postgresai`), or re-run +`mcp install` after each CLI upgrade. + +::: + +A typical Cursor entry written by `mcp install` looks like: ```json { "mcpServers": { "postgresai": { - "command": "postgresai", - "args": ["mcp", "start"], - "env": { - "PGAI_API_BASE_URL": "https://postgres.ai/api/general/" - } + "command": "<absolute-path-to-pgai>", + "args": ["mcp", "start"] } } } ``` +The `command` value is the absolute path resolved by `mcp install` at +install time. Typical values: + +- `/opt/homebrew/bin/pgai` — Homebrew on Apple Silicon macOS +- `/usr/local/bin/pgai` — Homebrew on Intel macOS or `npm install -g` on Linux/macOS +- `~/.nvm/versions/node/<version>/bin/pgai` — `npm install -g` under nvm +- `~/.npm/_npx/<hash>/node_modules/.bin/pgai` — invoked via `npx` (ephemeral; see the note above) + +To point the server at a non-production endpoint, add an `env` block +manually: + +```json +"env": { + "PGAI_API_BASE_URL": "https://v2.postgres.ai/api/general/", + "PGAI_UI_BASE_URL": "https://console-dev.postgres.ai" +} +``` + **MCP tools exposed** - `list_issues` — same JSON as `postgresai issues list`. From 5621eba0ecce5c69f0405b9e145794cb569c7904 Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov <nik@postgres.ai> Date: Fri, 15 May 2026 06:14:16 -0700 Subject: [PATCH 25/61] docs(postgresai-cli): fix two reference/howto inaccuracies --- docs/postgresai-howtos/postgresai-cli.md | 6 +++--- docs/reference-guides/postgresai-cli-reference.md | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/postgresai-howtos/postgresai-cli.md b/docs/postgresai-howtos/postgresai-cli.md index cfe54019..03ce81ad 100644 --- a/docs/postgresai-howtos/postgresai-cli.md +++ b/docs/postgresai-howtos/postgresai-cli.md @@ -154,21 +154,21 @@ Post a comment: <TabItem value="cli" label="Installed CLI" default> ```bash -postgresai issues post_comment <issue_id> "<comment>" +postgresai issues post-comment <issue_id> "<comment>" ``` </TabItem> <TabItem value="npx" label="npx"> ```bash -npx postgresai issues post_comment <issue_id> "<comment>" +npx postgresai issues post-comment <issue_id> "<comment>" ``` </TabItem> <TabItem value="bunx" label="bunx"> ```bash -bunx postgresai issues post_comment <issue_id> "<comment>" +bunx postgresai issues post-comment <issue_id> "<comment>" ``` </TabItem> diff --git a/docs/reference-guides/postgresai-cli-reference.md b/docs/reference-guides/postgresai-cli-reference.md index 5167250b..9eac73bf 100644 --- a/docs/reference-guides/postgresai-cli-reference.md +++ b/docs/reference-guides/postgresai-cli-reference.md @@ -162,7 +162,7 @@ SUPABASE_ACCESS_TOKEN=... SUPABASE_PROJECT_REF=... \ **Monitoring role options** -- `--monitoring-user <name>` — monitoring role name to create or update (default: `postgres_ai_monitoring`). +- `--monitoring-user <name>` — monitoring role name to create or update (default: `postgres_ai_mon`). - `--password <password>` — monitoring role password (overrides `PGAI_MON_PASSWORD`). If neither is provided, a strong password is generated. - `--print-password` — print the generated monitoring password (dangerous in CI logs). - `--skip-optional-permissions` — skip optional permissions (RDS / self-managed extras). @@ -197,7 +197,7 @@ postgresai unprepare-db [conn] [options] - `-h, --host`, `-p, --port`, `-U, --username`, `-d, --dbname`, `--admin-password`, `--db-url <url>` (deprecated) — admin connection parameters, same as `prepare-db`. -- `--monitoring-user <name>` — monitoring role to remove (default: `postgres_ai_monitoring`). +- `--monitoring-user <name>` — monitoring role to remove (default: `postgres_ai_mon`). - `--keep-role` — keep the monitoring role; only revoke permissions and drop objects. - `--provider <provider>` — database provider (affects which steps run). - `--print-sql` — print the SQL plan and exit; apply no changes. From affe01f52fb11f68448022451ae8579f3eb251a0 Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov <nik@postgres.ai> Date: Fri, 15 May 2026 07:50:56 -0700 Subject: [PATCH 26/61] docs(tutorials): fix joe-setup typos and grammar --- docs/tutorials/joe-setup.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/tutorials/joe-setup.md b/docs/tutorials/joe-setup.md index ab40a47c..79ef27c5 100644 --- a/docs/tutorials/joe-setup.md +++ b/docs/tutorials/joe-setup.md @@ -43,7 +43,7 @@ curl -fsSL https://gitlab.com/postgres-ai/joe/-/raw/0.10.0/configs/config.exampl Then, configure ways of communication with Joe. ### Step 2a. Set up Joe in PostgresAI Console ("Web UI") -If you don't need Web UI and prefer working with Joe only in messengers (such as Slack), comment out `channelMapping: communicationTypes: webui` subsection in Jog config, and proceed to the next step. +If you don't need Web UI and prefer working with Joe only in messengers (such as Slack), comment out `channelMapping: communicationTypes: webui` subsection in Joe config, and proceed to the next step. Before configuring Web UI make sure you have a PostgresAI account. @@ -76,7 +76,7 @@ _metadata: minor_version: 1 display_information: name: Joe Bot - description: PostgreSQL query optimization assistent + description: PostgreSQL query optimization assistant background_color: "#2b2c30" features: app_home: @@ -148,7 +148,7 @@ and we are ready to run Joe Bot. sudo docker logs -f joe_bot ``` - Need you to reconfigure or upgrade, you can stop and remove the container any time using `sudo docker stop joe_bot` and `sudo docker rm joe_bot` and then launching it again as described above. + If you need to reconfigure or upgrade, you can stop and remove the container any time using `sudo docker stop joe_bot` and `sudo docker rm joe_bot`, and then launch it again as described above. 1. Make a publicly accessible HTTP(S) server port specified in the configuration to receive requests from communication channels Request URL (e.g., http://35.200.200.200:2400, https://joe.dev.domain.com). From cb53983f8b8867a6b3ab53a3f714f3a17912f96e Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov <nik@postgres.ai> Date: Fri, 15 May 2026 07:58:55 -0700 Subject: [PATCH 27/61] docs(dblab-config): bump version pin to v4.1.3 and fix server.port type --- .../database-lab-engine-configuration-reference.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/reference-guides/database-lab-engine-configuration-reference.md b/docs/reference-guides/database-lab-engine-configuration-reference.md index 8bb8f96f..5d958da5 100644 --- a/docs/reference-guides/database-lab-engine-configuration-reference.md +++ b/docs/reference-guides/database-lab-engine-configuration-reference.md @@ -10,7 +10,7 @@ DBLab Engine behavior can be controlled using the main configuration file that h DBLab Engine supports [YAML 1.2](https://yaml.org/spec/1.2/spec.html) including anchors, aliases, tags, map merging. ::: -Example config files can be found here: https://gitlab.com/postgres-ai/database-lab/-/tree/v4.1.1/engine/configs. +Example config files can be found here: https://gitlab.com/postgres-ai/database-lab/-/tree/v4.1.3/engine/configs. You may store configuration files in any suitable location. The recommended location of configuration files for DBLab Engine is `~/.dblab/engine/configs`. @@ -160,7 +160,7 @@ Here is how the configuration file is structured: ## Section `server`: DBLab Engine API server - `verificationToken` (string, required) - the token that is used to work with Database Lab API - `host` (string, optional) - The host which the DBLab Engine API server accepts HTTP connections from. An empty string (default) means "all available addresses". -- `port` (string, required, default: 2345) - HTTP server port +- `port` (integer, required, default: 2345) - HTTP server port - `disableConfigModification` (boolean, optional, default: false) - disable modifying configuration via UI/API; when enabled, configuration changes can only be made by editing the config file directly ## Section `embeddedUI`: DBLab Engine user interface From 0e038a8be399e0f042065581fd0f97b9934d46cf Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov <nik@postgres.ai> Date: Fri, 15 May 2026 08:11:57 -0700 Subject: [PATCH 28/61] =?UTF-8?q?docs(dblab-components):=20fix=20syncInsta?= =?UTF-8?q?nce=20=E2=86=92=20sync=20option=20name?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/reference-guides/database-lab-engine-components.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/reference-guides/database-lab-engine-components.md b/docs/reference-guides/database-lab-engine-components.md index 550d0a11..a6283b23 100644 --- a/docs/reference-guides/database-lab-engine-components.md +++ b/docs/reference-guides/database-lab-engine-components.md @@ -60,7 +60,7 @@ Container names include a DLE RuntimeID, such as `dblab_sync_bt48bvi9c0h0`. #### How to manage Automatically starts and stops. -To activate a sync instance, use the `syncInstance` option for a physical restore job in the DLE configuration file. +To activate a sync instance, set `sync.enabled: true` for the `physicalRestore` job in the DBLab Engine configuration file. See [Job `physicalRestore`](/docs/reference-guides/database-lab-engine-configuration-reference#job-physicalrestore) for the full set of `sync` options. --- From 44145926a03d184eda750e4d0b573c55c82007bb Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov <nik@postgres.ai> Date: Fri, 15 May 2026 08:18:09 -0700 Subject: [PATCH 29/61] docs(index): add missing howto entries and fix reference-guides title --- docs/dblab-howtos/administration/data/index.md | 1 + docs/dblab-howtos/index.md | 10 ++++++++++ docs/reference-guides/index.md | 2 +- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/docs/dblab-howtos/administration/data/index.md b/docs/dblab-howtos/administration/data/index.md index 88c179a6..55ac1720 100644 --- a/docs/dblab-howtos/administration/data/index.md +++ b/docs/dblab-howtos/administration/data/index.md @@ -18,6 +18,7 @@ slug: /dblab-howtos/administration/data - [WAL-G](/docs/dblab-howtos/administration/data/wal-g) - [pgBackRest](/docs/dblab-howtos/administration/data/pgbackrest) - [pg_basebackup](/docs/dblab-howtos/administration/data/pg_basebackup) +- [rsync](/docs/dblab-howtos/administration/data/rsync) - [Custom](/docs/dblab-howtos/administration/data/custom) ## Overview diff --git a/docs/dblab-howtos/index.md b/docs/dblab-howtos/index.md index 9450cf2c..84d7e246 100644 --- a/docs/dblab-howtos/index.md +++ b/docs/dblab-howtos/index.md @@ -8,10 +8,13 @@ slug: /dblab-howtos - [How to install DBLab Engine from PostgresAI Console](/docs/dblab-howtos/administration/install-dle-from-postgres-ai) - [How to install DBLab Engine from AWS Marketplace](/docs/dblab-howtos/administration/install-dle-from-aws-marketplace) - [How to install DBLab Engine manually (Community Edition)](/docs/dblab-howtos/administration/install-dle-manually) +- [How to install Database Lab with Terraform on AWS](/docs/dblab-howtos/administration/install-database-lab-with-terraform) +- [How to run DBLab Engine on macOS](/docs/dblab-howtos/administration/run-database-lab-on-mac) - [How to configure PostgreSQL used by DBLab Engine](/docs/dblab-howtos/administration/postgresql-configuration) - [How to manage DBLab Engine](/docs/dblab-howtos/administration/engine-manage) - [How to manage Joe Bot](/docs/dblab-howtos/administration/joe-manage) - [Secure DBLab Engine](/docs/dblab-howtos/administration/engine-secure) +- [Teleport integration](/docs/dblab-howtos/administration/teleport-integration) - [How to refresh data when working in the "logical" mode](/docs/dblab-howtos/administration/logical-full-refresh) - [Masking sensitive data in PostgreSQL logs when using CI Observer](/docs/dblab-howtos/administration/ci-observer-postgres-log-masking) - [Add disk space to ZFS pool without downtime](/docs/dblab-howtos/administration/add-disk-space-to-zfs-pool) @@ -27,6 +30,7 @@ slug: /dblab-howtos ## How to work with DBLab branches - [How to create a database branch](/docs/dblab-howtos/branching/create-branch) - [How to delete a database branch](/docs/dblab-howtos/branching/delete-branch) +- [Preview environments with DBLab and Coolify](/docs/dblab-howtos/branching/preview-environments-with-dblab-and-coolify) ## How to work with DBLab snapshots - [How to create a snapshot](/docs/dblab-howtos/snapshots/create-snapshot) @@ -48,6 +52,7 @@ slug: /dblab-howtos ## Obtaining data for DBLab ### Logical retrieval - [Amazon RDS](/docs/dblab-howtos/administration/data/rds) +- [RDS/Aurora refresh from a temporary clone](/docs/dblab-howtos/administration/data/rds-refresh) - [Any database (dump/restore)](/docs/dblab-howtos/administration/data/dump) - [Full refresh](/docs/dblab-howtos/administration/logical-full-refresh) @@ -55,9 +60,14 @@ slug: /dblab-howtos - [pg_basebackup](/docs/dblab-howtos/administration/data/pg_basebackup) - [WAL-G](/docs/dblab-howtos/administration/data/wal-g) - [pgBackRest](/docs/dblab-howtos/administration/data/pgbackrest) +- [rsync](/docs/dblab-howtos/administration/data/rsync) - [Custom](/docs/dblab-howtos/administration/data/custom) +### Shared (logical and physical) +- [Rename databases during snapshot creation](/docs/dblab-howtos/administration/data/database-rename) + ## DBLab (PostgresAI) Platform - [Start using PostgresAI Platform](/docs/dblab-howtos/platform/start-using-platform) - [Create and use DBLab Platform access tokens](/docs/dblab-howtos/platform/tokens) - [DBLab Platform onboarding checklist](/docs/dblab-howtos/platform/onboarding) +- [Audit logs and SIEM integration](/docs/dblab-howtos/platform/audit-logs) diff --git a/docs/reference-guides/index.md b/docs/reference-guides/index.md index bf1343cc..487a55bf 100644 --- a/docs/reference-guides/index.md +++ b/docs/reference-guides/index.md @@ -1,5 +1,5 @@ --- -title: Database Lab reference guides +title: PostgresAI reference guides sidebar_label: Overview slug: /reference-guides --- From 8c6e229fe3fe55c933a506489b956cf50da460fe Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov <nik@postgres.ai> Date: Fri, 15 May 2026 08:33:09 -0700 Subject: [PATCH 30/61] docs(dblab-api): fix HTTP method and complete the snapshot endpoints --- .../database-lab-engine-api-reference.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/reference-guides/database-lab-engine-api-reference.md b/docs/reference-guides/database-lab-engine-api-reference.md index 468560d7..79b76316 100644 --- a/docs/reference-guides/database-lab-engine-api-reference.md +++ b/docs/reference-guides/database-lab-engine-api-reference.md @@ -58,10 +58,12 @@ curl -H "Verification-Token: YOUR_TOKEN" http://localhost:2345/status | Method | Path | Description | |--------|------|-------------| | GET | `/snapshots` | List all snapshots | +| GET | `/snapshot/{id}` | Retrieve a snapshot (DLE 4.0+) | | POST | `/snapshot` | Create a snapshot (DLE 4.0+) | +| POST | `/snapshot/clone` | Create a snapshot from a clone (DLE 4.0+) | | DELETE | `/snapshot/{id}` | Delete a snapshot (DLE 4.0+) | -| GET | `/branch/snapshot/{id}` | Retrieve a snapshot (DLE 4.0+) | -| POST | `/branch/snapshot` | Create a snapshot from clone (DLE 4.0+) | +| GET | `/branch/snapshot/{id}` | Retrieve a branch snapshot (DLE 4.0+) | +| POST | `/branch/snapshot` | Create a branch snapshot from clone (DLE 4.0+) | ### Branches (DLE 4.0+) @@ -85,11 +87,11 @@ curl -H "Verification-Token: YOUR_TOKEN" http://localhost:2345/status | Method | Path | Description | |--------|------|-------------| -| GET | `/admin/config` | Get config (JSON) | +| GET | `/admin/config` | Get config (JSON projection) | | POST | `/admin/config` | Set config | | GET | `/admin/config.yaml` | Get full config (YAML) | | POST | `/admin/test-db-source` | Test source database connection | -| POST | `/admin/ws-auth` | WebSocket authentication | +| GET | `/admin/ws-auth` | WebSocket authentication | ## New in DBLab Engine 4.1 From a298660d8c4a4001538c447cf984dbd01d88c8a9 Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov <nik@postgres.ai> Date: Fri, 15 May 2026 08:46:59 -0700 Subject: [PATCH 31/61] docs(dblab-cli): document protected duration suffixes, add tctl-path, drop TODO --- docs/dblab-howtos/cli/cli-install-init.md | 1 - .../dblab-client-cli-reference.md | 27 +++++++++++++------ 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/docs/dblab-howtos/cli/cli-install-init.md b/docs/dblab-howtos/cli/cli-install-init.md index dec59f46..5b88f5dc 100644 --- a/docs/dblab-howtos/cli/cli-install-init.md +++ b/docs/dblab-howtos/cli/cli-install-init.md @@ -3,7 +3,6 @@ title: How to install and initialize DBLab CLI sidebar_label: Install and initialize DBLab CLI --- -<!-- TODO proofread this (and all the HowTos (guides) --> ## Reference - Command [`dblab init`](/docs/reference-guides/dblab-client-cli-reference#command-init) - Command [`dblab instance status`](/docs/reference-guides/dblab-client-cli-reference#subcommand-status-1) diff --git a/docs/reference-guides/dblab-client-cli-reference.md b/docs/reference-guides/dblab-client-cli-reference.md index 6a5c9c4d..e74f4f21 100644 --- a/docs/reference-guides/dblab-client-cli-reference.md +++ b/docs/reference-guides/dblab-client-cli-reference.md @@ -215,7 +215,7 @@ dblab commit [command options] [arguments...] **Options** - `--clone-id` (string, required) - clone ID -- `--message` (string, optional) - use the given message as the commit message +- `--message`, `-m` (string, optional) - use the given message as the commit message **Arguments** - `CLONE_ID` (string, required) - an ID of the Database Lab clone @@ -304,7 +304,7 @@ dblab clone create [command options] - `--id` (string, optional) - clone ID - `--snapshot-id` (string, optional; DLE 4.0+) - snapshot ID - `--branch` (string, optional; DLE 4.0+) - branch name. If omitted, DBLab uses the default branch `main`. -- `--protected` , `-p` (string, optional) - enable deletion protection. Accepts: `true` for default lease duration, a number of minutes for custom duration, or `0` for infinite protection (no expiry). When omitted, clone is not protected. DLE 4.1+ supports time-limited protection leases — see [Protection leases](/docs/dblab-howtos/cloning/clone-protection). +- `--protected` , `-p` (string, optional) - enable deletion protection. Accepts: `true` for default lease duration; a number of minutes (e.g. `480`) or a Go-style duration string (`30m`, `2h`, `7d`) for a custom lease; or `0` for infinite protection (no expiry). When omitted, the clone is not protected. DLE 4.1+ supports time-limited protection leases — see [Protection leases](/docs/dblab-howtos/cloning/clone-protection). - `--async` , `-a` (boolean, default: false) - run the command asynchronously - `--extra-config` (string, optional) set an extra database configuration for the clone. An example: statement_timeout='1s' - `--help` , `-h` (boolean, default: false) - show help @@ -314,7 +314,12 @@ dblab clone create [command options] dblab clone create --username someuser --password SomePassword --branch main --id test ``` -Create a clone with protection for 8 hours (480 minutes): +Create a clone with protection for 8 hours (using a duration suffix): +```bash +dblab clone create --username someuser --password SomePassword --branch main --id test --protected 8h +``` + +Or equivalently, in minutes: ```bash dblab clone create --username someuser --password SomePassword --branch main --id test --protected 480 ``` @@ -331,7 +336,7 @@ dblab clone update [command options] CLONE_ID - `CLONE_ID` (string, required) - an ID of the Database Lab clone to update parameters **Options** -- `--protected` , `-p` (string, optional) - enable deletion protection. Accepts: `true` for default lease duration, a number of minutes for custom duration, or `0` for infinite protection (no expiry). DLE 4.1+ supports time-limited protection leases — see [Protection leases](/docs/dblab-howtos/cloning/clone-protection). +- `--protected` , `-p` (string, optional) - manage deletion protection. Accepts: `true` for default lease duration; a number of minutes (e.g. `1440`) or a Go-style duration string (`30m`, `24h`, `7d`) for a custom lease; `0` for infinite protection; or `false` to remove protection. DLE 4.1+ supports time-limited protection leases — see [Protection leases](/docs/dblab-howtos/cloning/clone-protection). - `--help` , `-h` (boolean, default: false) - show help **Example** @@ -341,9 +346,14 @@ Protect a clone with default lease duration: dblab clone update --protected true TestCloneID ``` -Protect a clone for 24 hours (1440 minutes): +Protect a clone for 24 hours (using a duration suffix): +```bash +dblab clone update --protected 24h TestCloneID +``` + +Remove protection from a clone: ```bash -dblab clone update --protected 1440 TestCloneID +dblab clone update --protected false TestCloneID ``` --- @@ -698,8 +708,9 @@ dblab teleport serve [command options] - `--teleport-identity` (string, required) - path to the Teleport bot identity file for authentication - `--listen-addr` (string, optional, default: "localhost:9876") - address and port to listen for incoming webhooks. Use `0.0.0.0:9876` if the sidecar needs to be reachable from Docker containers. - `--dblab-url` (string, optional, default: "http://localhost:2345") - DBLab API URL -- `--dblab-token` (string, required) - DBLab verification token -- `--webhook-secret` (string, required) - shared secret that DBLab Engine sends in the `DBLab-Webhook-Token` header for webhook payload verification +- `--dblab-token` (string, required) - DBLab verification token (or via env var `DBLAB_TOKEN`) +- `--webhook-secret` (string, required) - shared secret that DBLab Engine sends in the `DBLab-Webhook-Token` header for webhook payload verification (or via env var `WEBHOOK_SECRET`) +- `--tctl-path` (string, optional, default: `tctl`) - path to the `tctl` binary if it is not on `$PATH` **Example** ```bash From 56dc24543c413daf9a337d93db29b3dc612c4d21 Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov <nik@postgres.ai> Date: Mon, 18 May 2026 04:06:56 -0700 Subject: [PATCH 32/61] docs(monitoring): fix pgwatch group names, labels, and frontmatter typo --- .../postgres-ai-monitoring-reference.md | 28 +++++++++++-------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/docs/reference-guides/postgres-ai-monitoring-reference.md b/docs/reference-guides/postgres-ai-monitoring-reference.md index f71d43bf..b9e987c6 100644 --- a/docs/reference-guides/postgres-ai-monitoring-reference.md +++ b/docs/reference-guides/postgres-ai-monitoring-reference.md @@ -2,7 +2,7 @@ title: postgres_ai monitoring reference documentation sidebar_label: postgres_ai monitoring keywords: - - "postgres_ai monitoringreference" + - "postgres_ai monitoring reference" - "Monitoring reference" --- @@ -10,6 +10,12 @@ keywords: ## Metrics +:::note + +This page lists the user-facing metric groups. The pgwatch collector ships with additional groups that are emitted but not yet documented here (for example, `pg_stat_io`, `pg_stat_slru`, `pg_statio_all_tables`, `pg_statio_all_indexes`, `lock_waits`, `xmin_horizon`, `xmin_horizon_blockers`, `multixact_size`, `pg_wal_size`, `pg_index_pilot`, `stats_reset`, `table_size_detailed`). To see the full set of metrics emitted by your monitoring instance, query the Prometheus / VictoriaMetrics endpoint directly (e.g. `/api/v1/label/__name__/values`). + +::: + ### Common labels Most metrics include these standard labels: @@ -26,8 +32,8 @@ Most metrics include these standard labels: Additional labels are available for specific metric types: - **Query metrics** (`pg_stat_statements`): `queryid`, `user` -- **Table metrics** (`table_stats`, `pg_stat_user_tables`): `schema`, `table_name`, `table_full_name`, `table_size_cardinality_mb` -- **Index metrics** (`pg_stat_user_indexes`): `schemaname`, `relname`, `indexrelname` +- **Table metrics** (`table_stats`, `pg_stat_all_tables`): `schema`, `table_name`, `table_full_name`, `table_size_cardinality_mb` +- **Index metrics** (`pg_stat_all_indexes`): `schemaname`, `relname`, `indexrelname` - **Lock metrics** (`locks_mode`): `lockmode` - **Wait events** (`wait_events`): `wait_event`, `wait_event_type` - **Replication metrics**: `application_name`, `client_info`, `usename` @@ -95,8 +101,8 @@ Collected every 15-30 seconds | `db_stats_sessions_killed` | Sessions killed | - | | `db_size_size_b` | Database size in bytes | Bytes | | `db_size_catalog_size_b` | Catalog schema size in bytes | Bytes | -| `pg_stat_activity_count` | Count of sessions by state | - | -| `pg_stat_activity_max_tx_duration` | Maximum transaction duration | Seconds | +| `pg_stat_activity_count` | Count of sessions by state (additional labels: `state`, `application_name`) | - | +| `pg_stat_activity_max_tx_duration` | Maximum transaction duration (additional labels: `state`, `application_name`) | Seconds | ### Query performance (`pg_stat_statements`) Collected every 30 seconds @@ -131,13 +137,13 @@ Collected every 30 seconds ### Wait events (`wait_events`) Collected every 15 seconds -**Additional Labels:** `wait_event` (specific wait event), `wait_event_type` (wait category), `query_id` (associated query) +**Additional Labels:** `wait_event` (specific wait event), `wait_event_type` (wait category), and on PostgreSQL 14+ `query_id` (associated query) | Metric | Description | Units | |--------|-------------|-------| | `wait_events_total` | Count of processes experiencing wait event | - | -### Table statistics (`table_stats`, `pg_stat_user_tables`) +### Table statistics (`table_stats`, `pg_stat_all_tables`) Collected every 30 seconds **Additional Labels:** `schema` (table schema), `table_name` (table name), `table_full_name` (schema.table), `table_size_cardinality_mb` (size category) @@ -167,15 +173,15 @@ Collected every 30 seconds | `table_stats_seconds_since_last_analyze` | Seconds since last analyze | Seconds | | `table_stats_seconds_since_last_vacuum` | Seconds since last vacuum | Seconds | -### Index statistics (`pg_stat_user_indexes`) +### Index statistics (`pg_stat_all_indexes`) Collected every 30 seconds **Additional Labels:** `schemaname` (schema name), `relname` (table name), `indexrelname` (index name) | Metric | Description | Units | |--------|-------------|-------| -| `pg_stat_user_indexes_idx_scan` | Index scans performed | - | -| `pg_stat_user_indexes_idx_tup_read` | Index entries returned | - | -| `pg_stat_user_indexes_idx_tup_fetch` | Table rows fetched via index | - | +| `pg_stat_all_indexes_idx_scan` | Index scans performed | - | +| `pg_stat_all_indexes_idx_tup_read` | Index entries returned | - | +| `pg_stat_all_indexes_idx_tup_fetch` | Table rows fetched via index | - | ### WAL and replication metrics (`wal`, `replication`, `replication_slots`, `pg_stat_replication`, `pg_stat_wal_receiver`, `pg_archiver`, `archive_lag`, `pg_xlog_position`) Collected every 15-30 seconds From 24ec979540057796ee8934b230d791270bb6902b Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov <nik@postgres.ai> Date: Tue, 19 May 2026 03:53:29 -0700 Subject: [PATCH 33/61] docs(admin): bump v4.1.1 pins to v4.1.3 across administration howtos --- .../ci-observer-postgres-log-masking.md | 2 +- .../dblab-howtos/administration/data/custom.md | 4 ++-- docs/dblab-howtos/administration/data/dump.md | 4 ++-- .../administration/data/pg_basebackup.md | 4 ++-- .../administration/data/pgbackrest.md | 4 ++-- docs/dblab-howtos/administration/data/rds.md | 8 ++++---- docs/dblab-howtos/administration/data/rsync.md | 4 ++-- docs/dblab-howtos/administration/data/wal-g.md | 4 ++-- .../administration/engine-manage.md | 6 +++--- .../administration/install-dle-manually.md | 18 +++++++++--------- 10 files changed, 29 insertions(+), 29 deletions(-) diff --git a/docs/dblab-howtos/administration/ci-observer-postgres-log-masking.md b/docs/dblab-howtos/administration/ci-observer-postgres-log-masking.md index 6c3b0dfe..998854a4 100644 --- a/docs/dblab-howtos/administration/ci-observer-postgres-log-masking.md +++ b/docs/dblab-howtos/administration/ci-observer-postgres-log-masking.md @@ -14,7 +14,7 @@ keywords: ## Configure masking for PostgreSQL log When Database Lab's CI Observer is used for automated testing of database migrations, it stores PostgreSQL log in DBLab Platform's centralized storage. You can optionally configure masking rules for sensitive data in the PostgreSQL log. Such rules will be continuously applied before sending any PostgreSQL log entries to the Platform's storage. -You can define masking rules in the form of regular expressions. To do it, open the DBLab Engine configuration file (usually, `~/.dblab/engine/configs/server.yml`; see config file examples [here](https://gitlab.com/postgres-ai/database-lab/-/tree/v4.1.1/engine/configs)) and define subsection `replacementRules` in the section `replacementRules`. A basic example: +You can define masking rules in the form of regular expressions. To do it, open the DBLab Engine configuration file (usually, `~/.dblab/engine/configs/server.yml`; see config file examples [here](https://gitlab.com/postgres-ai/database-lab/-/tree/v4.1.3/engine/configs)) and define subsection `replacementRules` in the section `replacementRules`. A basic example: ```yaml observer: replacementRules: diff --git a/docs/dblab-howtos/administration/data/custom.md b/docs/dblab-howtos/administration/data/custom.md index 0886fa25..d8b743a3 100644 --- a/docs/dblab-howtos/administration/data/custom.md +++ b/docs/dblab-howtos/administration/data/custom.md @@ -16,7 +16,7 @@ To set up it you need to use following jobs: - [physicalSnapshot](/docs/reference-guides/database-lab-engine-configuration-reference#job-physicalsnapshot) ### Options -Copy the example configuration file [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.1/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`. For demo purposes we've used `pg_basebackup` tool, but you can use any tool suitable for the task. Check and update the following options: +Copy the example configuration file [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.3/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`. For demo purposes we've used `pg_basebackup` tool, but you can use any tool suitable for the task. Check and update the following options: - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine - Set connection options in `physicalRestore:options:envs`, based on your tool - Set PostgreSQL commands in `physicalRestore:options:customTool`: @@ -43,7 +43,7 @@ sudo docker run \ --env DOCKER_API_VERSION=1.39 \ --detach \ --restart on-failure \ - postgresai/dblab-server:4.1.1 + postgresai/dblab-server:4.1.3 ``` :::info diff --git a/docs/dblab-howtos/administration/data/dump.md b/docs/dblab-howtos/administration/data/dump.md index 172427bc..0a56537f 100644 --- a/docs/dblab-howtos/administration/data/dump.md +++ b/docs/dblab-howtos/administration/data/dump.md @@ -15,7 +15,7 @@ In order to set up DBLab Engine to automatically get the data from database usin - [logicalSnapshot](/docs/reference-guides/database-lab-engine-configuration-reference#job-logicalsnapshot) ### Options -Copy the contents of configuration example [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.1/engine/configs/config.example.logical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options: +Copy the contents of configuration example [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.3/engine/configs/config.example.logical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options: - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine - Set connection options in `retrieval:spec:logicalDump:options:source:connection`: - `dbname`: database name to connect to @@ -44,7 +44,7 @@ sudo docker run \ --env DOCKER_API_VERSION=1.39 \ --detach \ --restart on-failure \ - postgresai/dblab-server:4.1.1 + postgresai/dblab-server:4.1.3 ``` You can use PGPASSWORD env to set the password. diff --git a/docs/dblab-howtos/administration/data/pg_basebackup.md b/docs/dblab-howtos/administration/data/pg_basebackup.md index bbc39ffb..a1e00fbe 100644 --- a/docs/dblab-howtos/administration/data/pg_basebackup.md +++ b/docs/dblab-howtos/administration/data/pg_basebackup.md @@ -14,7 +14,7 @@ In order to set up DBLab Engine to automatically get the data from database usin - [physicalSnapshot](/docs/reference-guides/database-lab-engine-configuration-reference#job-physicalsnapshot) ### Options -Copy the contents of configuration example [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.1/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options: +Copy the contents of configuration example [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.3/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options: - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine - Set connection options in `physicalRestore:options:envs`: - `PGUSER`: database user name @@ -44,7 +44,7 @@ sudo docker run \ --env DOCKER_API_VERSION=1.39 \ --detach \ --restart on-failure \ - postgresai/dblab-server:4.1.1 + postgresai/dblab-server:4.1.3 ``` :::info diff --git a/docs/dblab-howtos/administration/data/pgbackrest.md b/docs/dblab-howtos/administration/data/pgbackrest.md index 7199f070..163c7b98 100644 --- a/docs/dblab-howtos/administration/data/pgbackrest.md +++ b/docs/dblab-howtos/administration/data/pgbackrest.md @@ -16,7 +16,7 @@ In order to configure DLE to automatically restore the database using the [pgBac - [physicalSnapshot](/docs/reference-guides/database-lab-engine-configuration-reference#job-physicalsnapshot) ### Options -Copy the example configuration file [`config.example.physical_pgbackrest.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.1/engine/configs/config.example.physical_pgbackrest.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options: +Copy the example configuration file [`config.example.physical_pgbackrest.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.3/engine/configs/config.example.physical_pgbackrest.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options: - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine - Set repository options in `physicalRestore:options:envs`: - pgBackRest allows using environment variables instead of command-line options (see [pgBackRest docs](https://pgbackrest.org/command.html#introduction)): @@ -70,7 +70,7 @@ sudo docker run \ --env DOCKER_API_VERSION=1.39 \ --detach \ --restart on-failure \ - postgresai/dblab-server:4.1.1 + postgresai/dblab-server:4.1.3 ``` :::info diff --git a/docs/dblab-howtos/administration/data/rds.md b/docs/dblab-howtos/administration/data/rds.md index 2dc605ea..44cb7c86 100644 --- a/docs/dblab-howtos/administration/data/rds.md +++ b/docs/dblab-howtos/administration/data/rds.md @@ -25,7 +25,7 @@ If you want to use **IAM database authentication**, read how to enable it [here] You need to know the **master password**. If you lost the password it can be reset. Read how to reset it [here](https://aws.amazon.com/premiumsupport/knowledge-center/reset-master-user-password-rds/). ::: -Copy the contents of configuration example [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.1/engine/configs/config.example.logical_generic.yml) from the DBLab Engine repository to `~/.dblab/engine/configs/server.yml` and update the following options: +Copy the contents of configuration example [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.3/engine/configs/config.example.logical_generic.yml) from the DBLab Engine repository to `~/.dblab/engine/configs/server.yml` and update the following options: - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine - Set connection options in `retrieval:spec:logicalDump:options:source:connection`: - `dbname`: database name to connect to @@ -54,7 +54,7 @@ sudo docker run \ --env DOCKER_API_VERSION=1.39 \ --detach \ --restart on-failure \ - postgresai/dblab-server:4.1.1 + postgresai/dblab-server:4.1.3 ``` :::info @@ -80,7 +80,7 @@ Alternatively, you can add `AmazonRDSFullAccess`, `IAMFullAccess` policies to an ::: ### Set up and run DBLab Engine -Copy the contents of configuration example [`config.example.logical_rds_iam.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.1/engine/configs/config.example.logical_rds_iam.yml) from the DBLab Engine repository to `~/.dblab/engine/configs/server.yml` and update the following options: +Copy the contents of configuration example [`config.example.logical_rds_iam.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.3/engine/configs/config.example.logical_rds_iam.yml) from the DBLab Engine repository to `~/.dblab/engine/configs/server.yml` and update the following options: - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine - Set connection options `retrieval:spec:logicalDump:options:source:connection`: - `dbname`: database name to connect to @@ -120,7 +120,7 @@ sudo docker run \ --env DOCKER_API_VERSION=1.39 \ --detach \ --restart on-failure \ - postgresai/dblab-server:4.1.1 + postgresai/dblab-server:4.1.3 ``` :::info diff --git a/docs/dblab-howtos/administration/data/rsync.md b/docs/dblab-howtos/administration/data/rsync.md index c3e2dfcf..9a0c51e8 100644 --- a/docs/dblab-howtos/administration/data/rsync.md +++ b/docs/dblab-howtos/administration/data/rsync.md @@ -14,7 +14,7 @@ In order to set up DBLab Engine to automatically get the data from database usin - [physicalSnapshot](/docs/reference-guides/database-lab-engine-configuration-reference#job-physicalsnapshot) ### Options -Copy the example configuration file [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.1/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options: +Copy the example configuration file [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.3/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml` and update the following options: - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine - Set connection options in `physicalRestore:options:envs`: - `PGUSER`: database user name @@ -54,7 +54,7 @@ sudo docker run \ --env DOCKER_API_VERSION=1.39 \ --detach \ --restart on-failure \ - postgresai/dblab-server:4.1.1 + postgresai/dblab-server:4.1.3 ``` :::info diff --git a/docs/dblab-howtos/administration/data/wal-g.md b/docs/dblab-howtos/administration/data/wal-g.md index d1c80c60..9c4deeff 100644 --- a/docs/dblab-howtos/administration/data/wal-g.md +++ b/docs/dblab-howtos/administration/data/wal-g.md @@ -14,7 +14,7 @@ In order to set up DBLab Engine to automatically get the data from database usin - [physicalSnapshot](/docs/reference-guides/database-lab-engine-configuration-reference#job-physicalsnapshot) ### Options -Copy the example configuration file [`config.example.physical_walg.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.1/engine/configs/config.example.physical_walg.yml) from the DBLab Engine repository to `~/.dblab/engine/configs/server.yml` and update the following options: +Copy the example configuration file [`config.example.physical_walg.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.3/engine/configs/config.example.physical_walg.yml) from the DBLab Engine repository to `~/.dblab/engine/configs/server.yml` and update the following options: - Set secure `server:verificationToken`, it will be used to authorize API requests to the Engine - Set connection options in `physicalRestore:options:envs`: - Use WAL-G environment variables to configure the job, see the [WAL-G configuration reference](https://github.com/wal-g/wal-g#configuration) @@ -50,7 +50,7 @@ sudo docker run \ --env DOCKER_API_VERSION=1.39 \ --detach \ --restart on-failure \ - postgresai/dblab-server:4.1.1 + postgresai/dblab-server:4.1.3 ``` :::info diff --git a/docs/dblab-howtos/administration/engine-manage.md b/docs/dblab-howtos/administration/engine-manage.md index 1c46d658..84630b66 100644 --- a/docs/dblab-howtos/administration/engine-manage.md +++ b/docs/dblab-howtos/administration/engine-manage.md @@ -16,7 +16,7 @@ All YAML features can be used, including anchors and aliases, to help you conven For instance, you can define a binding with `&` and then refer to it using an alias denoted by `*`. -See config examples [here](https://gitlab.com/postgres-ai/database-lab/-/tree/v4.1.1/engine/configs) +See config examples [here](https://gitlab.com/postgres-ai/database-lab/-/tree/v4.1.3/engine/configs) ::: After configuring DBLab Engine, run the following command: @@ -37,7 +37,7 @@ sudo docker run \ --volume /lib/modules:/lib/modules:ro \ --volume /proc:/host_proc:ro \ --env DOCKER_API_VERSION=1.41 \ - postgresai/dblab-server:4.1.1 + postgresai/dblab-server:4.1.3 ``` :::info @@ -105,7 +105,7 @@ If you need to save the logs in a file: sudo docker logs dblab_server 2>&1 | gzip > dblab_server.log.gz ``` -If you want to see more details, enable debug mode setting option `debug` to `true` (see [example](https://gitlab.com/postgres-ai/database-lab/-/tree/v4.1.1/engine/configs)). Next, follow [the reconfiguration guidelines](#reconfigure-dblab-engine) to apply the change. +If you want to see more details, enable debug mode setting option `debug` to `true` (see [example](https://gitlab.com/postgres-ai/database-lab/-/tree/v4.1.3/engine/configs)). Next, follow [the reconfiguration guidelines](#reconfigure-dblab-engine) to apply the change. :::caution When debug mode is turned on, logs may contain sensitive data such as API secret keys for the backup system. diff --git a/docs/dblab-howtos/administration/install-dle-manually.md b/docs/dblab-howtos/administration/install-dle-manually.md index 9874aaa3..a95e6e27 100644 --- a/docs/dblab-howtos/administration/install-dle-manually.md +++ b/docs/dblab-howtos/administration/install-dle-manually.md @@ -242,11 +242,11 @@ sudo docker stop dblab_pg_initdb sudo docker rm dblab_pg_initdb ``` -Now, we need to take care of DBLab Engine configuration. Copy the contents of configuration example [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.1/engine/configs/config.example.logical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`: +Now, we need to take care of DBLab Engine configuration. Copy the contents of configuration example [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.3/engine/configs/config.example.logical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`: ```bash mkdir -p ~/.dblab/engine/configs -curl -fsSL https://gitlab.com/postgres-ai/database-lab/-/raw/v4.1.1/engine/configs/config.example.logical_generic.yml \ +curl -fsSL https://gitlab.com/postgres-ai/database-lab/-/raw/v4.1.3/engine/configs/config.example.logical_generic.yml \ --output ~/.dblab/engine/configs/server.yml ``` @@ -263,11 +263,11 @@ Open `~/.dblab/engine/configs/server.yml` and edit the following options: If you want to try Database Lab for an existing database, you need to copy the data to PostgreSQL data directory on the Database Lab server, to the directory `/var/lib/dblab/dblab_pool/data`. This step is called "thick cloning". It only needs to be completed once. There are several options to physically copy the data directory. Here we will use the standard PostgreSQL tool, `pg_basebackup`. However, we are not going to use it directly (although, it is possible) – we will specify its options in the DBLab Engine configuration file. -First, copy the example configuration file [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.1/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`: +First, copy the example configuration file [`config.example.physical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.3/engine/configs/config.example.physical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`: ```bash mkdir -p ~/.dblab/engine/configs -curl -fsSL https://gitlab.com/postgres-ai/database-lab/-/raw/v4.1.1/engine/configs/config.example.physical_generic.yml \ +curl -fsSL https://gitlab.com/postgres-ai/database-lab/-/raw/v4.1.3/engine/configs/config.example.physical_generic.yml \ --output ~/.dblab/engine/configs/server.yml ``` @@ -288,11 +288,11 @@ If you want to try Database Lab for an existing database, you need to copy the d Here we will configure DBLab Engine to use a "logical" method of thick cloning, dump/restore. -First, copy the example configuration file [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.1/engine/configs/config.example.logical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`: +First, copy the example configuration file [`config.example.logical_generic.yml`](https://gitlab.com/postgres-ai/database-lab/-/blob/v4.1.3/engine/configs/config.example.logical_generic.yml) from the Database Lab repository to `~/.dblab/engine/configs/server.yml`: ```bash mkdir -p ~/.dblab/engine/configs -curl -fsSL https://gitlab.com/postgres-ai/database-lab/-/raw/v4.1.1/engine/configs/config.example.logical_generic.yml \ +curl -fsSL https://gitlab.com/postgres-ai/database-lab/-/raw/v4.1.3/engine/configs/config.example.logical_generic.yml \ --output ~/.dblab/engine/configs/server.yml ``` @@ -340,7 +340,7 @@ sudo docker run \ --env DOCKER_API_VERSION=1.39 \ --detach \ --restart on-failure \ - postgresai/dblab-server:4.1.1 + postgresai/dblab-server:4.1.3 ``` </TabItem> @@ -363,7 +363,7 @@ sudo docker run \ --env DOCKER_API_VERSION=1.39 \ --detach \ --restart on-failure \ - postgresai/dblab-server:4.1.1 + postgresai/dblab-server:4.1.3 ``` </TabItem> @@ -386,7 +386,7 @@ sudo docker run \ --env DOCKER_API_VERSION=1.39 \ --detach \ --restart on-failure \ - postgresai/dblab-server:4.1.1 + postgresai/dblab-server:4.1.3 ``` </TabItem> From 8ffa321d23100d8018c00a7a52e3ab84cfd9a5d7 Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov <nik@postgres.ai> Date: Tue, 19 May 2026 03:58:40 -0700 Subject: [PATCH 34/61] docs(dblab-howtos): polish cloning, branching, and platform sub-guides --- .../preview-environments-with-dblab-and-coolify.md | 2 +- docs/dblab-howtos/cloning/clone-protection.md | 2 +- docs/dblab-howtos/cloning/connect-clone.md | 1 - docs/dblab-howtos/cloning/create-clone.md | 10 +++++----- docs/dblab-howtos/platform/tokens.md | 2 +- 5 files changed, 8 insertions(+), 9 deletions(-) diff --git a/docs/dblab-howtos/branching/preview-environments-with-dblab-and-coolify.md b/docs/dblab-howtos/branching/preview-environments-with-dblab-and-coolify.md index 0891cd4e..8f4f7046 100644 --- a/docs/dblab-howtos/branching/preview-environments-with-dblab-and-coolify.md +++ b/docs/dblab-howtos/branching/preview-environments-with-dblab-and-coolify.md @@ -19,7 +19,7 @@ By the end of this guide, you'll have: Before starting, ensure you have: -- **DBLab 4.0+** - for database cloning and branching ([installation guide](https://postgres.ai/docs/how-to-guides/administration/install-dle-from-postgres-ai)) +- **DBLab 4.0+** - for database cloning and branching ([installation guide](/docs/dblab-howtos/administration/install-dle-from-postgres-ai)) - **Coolify latest version** - self-hosted deployment platform ([installation guide](https://coolify.io/docs/get-started/installation)) - **GitHub repository** - for code storage and CI/CD - **Virtual machine with Docker** - to run DBLab and Coolify diff --git a/docs/dblab-howtos/cloning/clone-protection.md b/docs/dblab-howtos/cloning/clone-protection.md index 5b315023..44993ddc 100644 --- a/docs/dblab-howtos/cloning/clone-protection.md +++ b/docs/dblab-howtos/cloning/clone-protection.md @@ -71,7 +71,7 @@ dblab clone update --protected 0 CLONE_ID ### Unprotect a clone ```bash -dblab clone update CLONE_ID +dblab clone update --protected false CLONE_ID ``` ### Protect at creation time diff --git a/docs/dblab-howtos/cloning/connect-clone.md b/docs/dblab-howtos/cloning/connect-clone.md index b5b88217..5589765e 100644 --- a/docs/dblab-howtos/cloning/connect-clone.md +++ b/docs/dblab-howtos/cloning/connect-clone.md @@ -3,7 +3,6 @@ title: How to connect to a DBLab clone sidebar_label: Connect to a clone --- -<!-- TODO proofread this (and all the HowTos (guides) --> ## Direct connection (psql) ### GUI 1. From the **DBLab clone** page under section **Connection info** copy **psql connection string** field contents by clicking the **Copy** button. diff --git a/docs/dblab-howtos/cloning/create-clone.md b/docs/dblab-howtos/cloning/create-clone.md index 4cb383ea..69dbf489 100644 --- a/docs/dblab-howtos/cloning/create-clone.md +++ b/docs/dblab-howtos/cloning/create-clone.md @@ -53,11 +53,11 @@ $ dblab clone create --username USERNAME --password PASSWORD --id CLONE_ID ### Create a clone with a non-default snapshot By default latest data snapshot (closest to production state) will be used to provision a clone. You can select any other available snapshot. -1. List available snapshots. -<!-- TODO proper indentation --> -```bash -$ dblab snapshot list -``` +1. List available snapshots: + + ```bash + $ dblab snapshot list + ``` ```json [ diff --git a/docs/dblab-howtos/platform/tokens.md b/docs/dblab-howtos/platform/tokens.md index 28299ffc..109094cf 100644 --- a/docs/dblab-howtos/platform/tokens.md +++ b/docs/dblab-howtos/platform/tokens.md @@ -11,7 +11,7 @@ By default DBLab Engine uses a single [verification token](/docs/reference-guide - **Verification tokens** - used for basic authorization of requests to DBLab Engine API. Can be used for initial setup, but it's not recommended to use in the daily practice ### Access tokens -Access tokens can be used to interact both with DBLab Engine and DBLab Platform. To work with the Database Lab CLI/API, generate a new token and use it in the `Verification-Token` header of each individual API request. Alternatively, you can if it with the `--token` flag during CLI initialization; in this case, `Verification-Token` is not needed. +Access tokens can be used to interact both with DBLab Engine and DBLab Platform. To work with the Database Lab CLI/API, generate a new token and use it in the `Verification-Token` header of each individual API request. Alternatively, you can use it with the `--token` flag during CLI initialization; in this case, `Verification-Token` is not needed. Access tokens allow calling the following functions on the Platform: `checkup_report_create`, `checkup_report_file_post`, `dblab_token_check`, `joe_message_artifact_post`, `joe_message_post`, `joe_session_command_post`, `joe_session_create`. From c6dd522e083042261bdb70b213de00d74ecc4bae Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov <nik@postgres.ai> Date: Tue, 19 May 2026 04:36:19 -0700 Subject: [PATCH 35/61] docs(postgres-ai-bot): drop stale date stamp and fix typo --- docs/reference-guides/postgres-ai-bot-reference.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/reference-guides/postgres-ai-bot-reference.md b/docs/reference-guides/postgres-ai-bot-reference.md index 12d69e96..aa894a07 100644 --- a/docs/reference-guides/postgres-ai-bot-reference.md +++ b/docs/reference-guides/postgres-ai-bot-reference.md @@ -53,7 +53,7 @@ Visualize some data such as benchmark results. This function uses QuickChart; se | **data** | `array` | Array of numbers representing the data points. | N/A | `[10, 20, 30, 40]` | ## Tool `fetch_whole_web_page` -Fetch the content of a web page. As of July 2024, this feature is limited to these domains: +Fetch the content of a web page. The feature is limited to these domains: - `github.com` - `gitlab.com` - `postgresql.org` @@ -71,7 +71,7 @@ Fetch the content of a web page. As of July 2024, this feature is limited to the Database experiment in dedicated environment: creates a PostgreSQL cluster in Hetzner Cloud and executes a series of experiment runs on it using a GitLab CI pipeline. -When started, provides pipeline URL. Once experiment is finished, either succesfully or with errors, +When started, provides pipeline URL. Once experiment is finished, either successfully or with errors, the user is informed of the results. JSON configuration example: From 08c2d4c40279f4216f9698b44d8f77a1249740c4 Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov <nik@postgres.ai> Date: Tue, 19 May 2026 04:58:03 -0700 Subject: [PATCH 36/61] docs(db-migration-checker): fix type tags and dle.url description --- .../db-migration-checker-configuration-reference.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/reference-guides/db-migration-checker-configuration-reference.md b/docs/reference-guides/db-migration-checker-configuration-reference.md index f3b3bb9f..856485cd 100644 --- a/docs/reference-guides/db-migration-checker-configuration-reference.md +++ b/docs/reference-guides/db-migration-checker-configuration-reference.md @@ -26,13 +26,13 @@ Here is how the configuration file is structured: | `runner` | How execution of DB migrations is organized | ## Section `app`: DB Migration Checker API server -- `host` (string, optional, default: `""`) - the host to which the DB Migration Checker server accepts HTTP connections -- `port` (string, required) - HTTP server port +- `host` (string, optional, default: `""`) - the host on which the DB Migration Checker server accepts HTTP connections; the empty string means "all available addresses" +- `port` (integer, optional, default: 2500) - HTTP server port - `verificationToken` (string, required) - token that is used to work with DB Migration Checker API -- `debug` - allows seeing more in the DBLab Engine logs; WARNING: in this mode, sensitive data (such as passwords) can be printed to logs +- `debug` (boolean, optional, default: false) - allows seeing more in the DB Migration Checker logs; WARNING: in this mode, sensitive data (such as passwords) can be printed to logs ## Section `dle`: DBLab Engine API integration -- `url` (string, required) - the URL to which the Database Lab server receives HTTP requests +- `url` (string, required) - URL of the DBLab Engine API server to which DB Migration Checker sends requests (for example, `https://dblab.domain.com`) - `verificationToken` (string, required) - the token that is used to work with Database Lab API ## Section `platform`: Postgres.ai Platform integration From ce3c5706eaffa26fbeac34fe034c2fe5569b6073 Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov <nik@postgres.ai> Date: Tue, 19 May 2026 05:18:48 -0700 Subject: [PATCH 37/61] =?UTF-8?q?docs(joe-bot):=20fix=20JOE=5FDEBUG=20?= =?UTF-8?q?=E2=86=92=20JOE=5FAPP=5FDEBUG=20and=20instanceLimit=20default?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/dblab-howtos/administration/joe-manage.md | 2 +- .../joe-bot-configuration-reference.md | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/dblab-howtos/administration/joe-manage.md b/docs/dblab-howtos/administration/joe-manage.md index 36433091..3f374e66 100644 --- a/docs/dblab-howtos/administration/joe-manage.md +++ b/docs/dblab-howtos/administration/joe-manage.md @@ -36,7 +36,7 @@ After upgrading, all user sessions are restored and should keep working (but Pos To enable the debugging mode you can use one of the following approaches: - Set the option `app: debug` to `true` in the [configuration file](/docs/reference-guides/joe-bot-configuration-reference#joe-bot-configuration-file). [Reconfigure the container](#reconfigure-joe-bot-container) if the option has been changed. -- Alternatively, use the environment variable [`JOE_DEBUG`](/docs/reference-guides/joe-bot-configuration-reference#joe_debug) when starting the container (`docker run ... --env JOE_DEBUG=true ...`). +- Alternatively, use the environment variable [`JOE_APP_DEBUG`](/docs/reference-guides/joe-bot-configuration-reference#joe_app_debug) when starting the container (`docker run ... --env JOE_APP_DEBUG=true ...`). To observe the container logs, run: ```bash diff --git a/docs/reference-guides/joe-bot-configuration-reference.md b/docs/reference-guides/joe-bot-configuration-reference.md index c1e8ab94..bf2297f8 100644 --- a/docs/reference-guides/joe-bot-configuration-reference.md +++ b/docs/reference-guides/joe-bot-configuration-reference.md @@ -221,8 +221,8 @@ enterprise: enabled: false dblab: - # Limit the number of available Database Lab instances. Default: 1. - instanceLimit: 1 + # Limit the number of available Database Lab instances. Default: 2. + instanceLimit: 2 ``` @@ -248,7 +248,7 @@ enterprise: ### `JOE_PLATFORM_HISTORY_ENABLED` - (boolean, default: `true`), enable sending command history to Postgres.ai Platform for collaboration and visualization. Requires setting proper `JOE_PLATFORM_TOKEN`. See the [Joe Bot Tutorial](/docs/tutorials/joe-setup#step-2a-set-up-joe-in-postgresai-console-web-ui) for the token. -### `JOE_DEBUG` +### `JOE_APP_DEBUG` - (boolean, default: `false`), enable debug mode; WARNING: in this mode, sensitive data (such as passwords) can be printed to logs --- @@ -265,5 +265,5 @@ Changing these options you confirm that you have active subscription to [Postgre ### `EE_AUDIT_ENABLED` - (boolean, default: `false`), enable command logging for audit purposes -### `EE_DBLAB_INSTANCE_LIMIT` -- (integer, default: `1`), limit the number of Database Lab instances. Joe Bot CE supports working with only 1 Database Lab instance +### `EE_DBLAB_INSTANCE_LIMIT` +- (integer, default: `2`), limit the number of Database Lab instances. Joe Bot CE supports working with only 1 Database Lab instance From d2f0b2dcd1363d8144ca6fea359d5b48a81838ad Mon Sep 17 00:00:00 2001 From: Maya P <maya@postgres.ai> Date: Fri, 29 May 2026 17:18:30 +0000 Subject: [PATCH 38/61] docs: align monitoring docs for postgresai 0.15 --- docs/monitoring/advanced/architecture.md | 6 +- docs/monitoring/configuration/index.md | 27 +-- .../configuration/pgwatch-config.md | 8 +- .../configuration/prometheus-config.md | 9 +- docs/monitoring/dashboards/self-monitoring.md | 27 +-- docs/monitoring/getting-started/index.md | 6 +- .../getting-started/installation-cli.md | 64 +++---- .../getting-started/installation-cloud.md | 42 +++-- .../getting-started/installation-docker.md | 156 +++++++++++------- .../getting-started/quickstart-supabase.md | 6 +- .../getting-started/requirements.md | 22 +-- docs/monitoring/index.md | 8 +- 12 files changed, 214 insertions(+), 167 deletions(-) diff --git a/docs/monitoring/advanced/architecture.md b/docs/monitoring/advanced/architecture.md index f2185c8f..63d61d25 100644 --- a/docs/monitoring/advanced/architecture.md +++ b/docs/monitoring/advanced/architecture.md @@ -288,14 +288,14 @@ PostgresAI monitoring collects **only database metadata** — no actual data or Review exactly what is collected: -- **Prometheus metrics**: [pgwatch-prometheus/metrics.yml](https://gitlab.com/postgres-ai/postgresai/-/blob/0.14.0/config/pgwatch-prometheus/metrics.yml) -- **PostgreSQL metrics** (with query texts): [pgwatch-postgres/metrics.yml](https://gitlab.com/postgres-ai/postgresai/-/blob/0.14.0/config/pgwatch-postgres/metrics.yml) +- **Prometheus metrics**: [pgwatch-prometheus/metrics.yml](https://gitlab.com/postgres-ai/postgresai/-/blob/0.15.0/config/pgwatch-prometheus/metrics.yml) +- **PostgreSQL metrics** (with query texts): [pgwatch-postgres/metrics.yml](https://gitlab.com/postgres-ai/postgresai/-/blob/0.15.0/config/pgwatch-postgres/metrics.yml) ### Verify monitoring database role and its permissions ```bash # See exact SQL for creating monitoring role -npx postgresai@latest prepare-db --print-sql +npx postgresai@0.15.0 prepare-db --print-sql ``` ## Security architecture diff --git a/docs/monitoring/configuration/index.md b/docs/monitoring/configuration/index.md index 80483ce3..d1249490 100644 --- a/docs/monitoring/configuration/index.md +++ b/docs/monitoring/configuration/index.md @@ -21,25 +21,26 @@ Configuration guides for customizing PostgresAI monitoring components. ### CLI installation -Configuration via environment variables and command-line flags: +Configuration is stored in the monitoring directory `.env` file and can be applied with `update-config`: ```bash -postgresai mon local-install \ - --retention 30d \ - --scrape-interval 15s \ - postgresql://user@host:5432/db +# Example .env overrides (default VM_RETENTION_PERIOD is 336h ≡ 14 days) +VM_RETENTION_PERIOD=30d +VM_QUERY_DURATION=30s +VM_MAX_CONCURRENT_REQUESTS=16 + +postgresai mon update-config ``` ### Docker Compose -Configuration via `docker-compose.yml` and environment files: +Configuration is passed through `docker-compose.yml` and the generated `.env` file: -```yaml -services: - pgwatch: - environment: - PW_SCRAPE_INTERVAL: 15s - PW_RETENTION: 720h +```bash +# Example overrides (default VM_RETENTION_PERIOD is 336h ≡ 14 days) +VM_RETENTION_PERIOD=30d +VM_QUERY_DURATION=30s +VM_MAX_CONCURRENT_REQUESTS=16 ``` ### Helm @@ -57,7 +58,7 @@ monitoring: | Setting | Default | Description | |---------|---------|-------------| | Scrape interval | 15s | How often to collect metrics | -| Retention | 14d | How long to keep metrics | +| Retention | 14 days (`336h`) | How long to keep metrics | | Max connections | 3 | Connections per monitored database | ## Sections diff --git a/docs/monitoring/configuration/pgwatch-config.md b/docs/monitoring/configuration/pgwatch-config.md index 7e2a0111..00c6a154 100644 --- a/docs/monitoring/configuration/pgwatch-config.md +++ b/docs/monitoring/configuration/pgwatch-config.md @@ -15,11 +15,11 @@ Configuration options for the pgwatch metrics collector. Default collection interval for all metrics: ```bash -# CLI -postgresai mon local-install --scrape-interval 15s - -# Environment variable +# Set in the monitoring stack .env file when overriding defaults PW_SCRAPE_INTERVAL=15s + +# Apply generated configuration after editing .env +postgresai mon update-config ``` | Interval | Use case | diff --git a/docs/monitoring/configuration/prometheus-config.md b/docs/monitoring/configuration/prometheus-config.md index 1e660c7b..b5de4e5b 100644 --- a/docs/monitoring/configuration/prometheus-config.md +++ b/docs/monitoring/configuration/prometheus-config.md @@ -15,11 +15,12 @@ PostgresAI uses VictoriaMetrics by default — a Prometheus-compatible TSDB with ### Setting retention period ```bash -# CLI -postgresai mon local-install --retention 30d - -# Environment variable +# Set in the monitoring stack .env file. +# Default is 336h (14 days); the value below overrides it to 30 days. VM_RETENTION_PERIOD=30d + +# Apply generated configuration after editing .env +postgresai mon update-config ``` | Retention | Disk usage (approx) | Use case | diff --git a/docs/monitoring/dashboards/self-monitoring.md b/docs/monitoring/dashboards/self-monitoring.md index aefb27ce..825538c0 100644 --- a/docs/monitoring/dashboards/self-monitoring.md +++ b/docs/monitoring/dashboards/self-monitoring.md @@ -84,32 +84,33 @@ Ensure the monitoring infrastructure is functioning correctly: | Variable | Purpose | |----------|---------| -| `cluster_name` | Filter by monitored cluster | +| `cluster` | Filter by monitored cluster (from the `custom_tags.cluster` instance tag) | +| `node_name` | Filter by node (from the `custom_tags.node_name` instance tag) | ## Health check commands ### Check VictoriaMetrics status ```bash -curl http://localhost:8428/api/v1/status/tsdb +curl http://localhost:59090/api/v1/status/tsdb ``` ### Check pgwatch status ```bash -docker compose logs pgwatch --tail=50 +docker compose logs pgwatch-postgres pgwatch-prometheus --tail=50 ``` ### Check Prometheus/VM targets ```bash -curl http://localhost:8428/api/v1/targets +curl http://localhost:59090/api/v1/targets ``` ### Verify metrics collection ```bash -curl 'http://localhost:8428/api/v1/query?query=up' +curl 'http://localhost:59090/api/v1/query?query=up' ``` ## Common issues @@ -118,12 +119,12 @@ curl 'http://localhost:8428/api/v1/query?query=up' 1. Check scrape targets are up: ```bash - curl http://localhost:8428/api/v1/targets | jq '.data.activeTargets[] | {job: .labels.job, health: .health}' + curl http://localhost:59090/api/v1/targets | jq '.data.activeTargets[] | {job: .labels.job, health: .health}' ``` 2. Verify metric exists: ```bash - curl 'http://localhost:8428/api/v1/label/__name__/values' | jq '.data[]' | grep pg_ + curl 'http://localhost:59090/api/v1/label/__name__/values' | jq '.data[]' | grep pg_ ``` 3. Check time range alignment @@ -132,20 +133,20 @@ curl 'http://localhost:8428/api/v1/query?query=up' 1. Check for cardinality explosion: ```bash - curl 'http://localhost:8428/api/v1/status/tsdb' | jq '.data.totalSeries' + curl 'http://localhost:59090/api/v1/status/tsdb' | jq '.data.totalSeries' ``` 2. Review high-cardinality metrics: ```bash - curl 'http://localhost:8428/api/v1/status/tsdb' | jq '.data.seriesCountByMetricName | to_entries | sort_by(-.value) | .[0:10]' + curl 'http://localhost:59090/api/v1/status/tsdb' | jq '.data.seriesCountByMetricName | to_entries | sort_by(-.value) | .[0:10]' ``` -3. Adjust retention if needed: +3. Adjust retention if needed (default is `336h` ≡ 14 days): ```yaml # docker-compose.yml - victoriametrics: - command: - - "-retentionPeriod=30d" # Reduce from 90d + sink-prometheus: + environment: + - VM_RETENTION_PERIOD=30d # Adjust retention if needed ``` ### Scrape timeouts diff --git a/docs/monitoring/getting-started/index.md b/docs/monitoring/getting-started/index.md index 1a58c546..628ad862 100644 --- a/docs/monitoring/getting-started/index.md +++ b/docs/monitoring/getting-started/index.md @@ -80,7 +80,7 @@ The monitoring user has read-only access to metadata only. To review the exact S to create the monitoring role: ```bash -npx postgresai@latest prepare-db --print-sql +npx postgresai@0.15.0 prepare-db --print-sql ``` This shows all `grant` statements and confirms the minimal, read-only nature of the permissions. @@ -96,9 +96,9 @@ Only database metadata is collected — no actual data or query parameters: To review exactly what metrics are collected, examine the metric definitions: - **Prometheus sink metrics**: - [metrics.yml (pgwatch-prometheus)](https://gitlab.com/postgres-ai/postgresai/-/blob/0.14.0/config/pgwatch-prometheus/metrics.yml) + [metrics.yml (pgwatch-prometheus)](https://gitlab.com/postgres-ai/postgresai/-/blob/0.15.0/config/pgwatch-prometheus/metrics.yml) - **PostgreSQL sink metrics** (including normalized queries): - [metrics.yml (pgwatch-postgres)](https://gitlab.com/postgres-ai/postgresai/-/blob/0.14.0/config/pgwatch-postgres/metrics.yml) + [metrics.yml (pgwatch-postgres)](https://gitlab.com/postgres-ai/postgresai/-/blob/0.15.0/config/pgwatch-postgres/metrics.yml) See [data privacy details](/docs/monitoring/#data-privacy-metadata-only). diff --git a/docs/monitoring/getting-started/installation-cli.md b/docs/monitoring/getting-started/installation-cli.md index a6c087f2..59f008ce 100644 --- a/docs/monitoring/getting-started/installation-cli.md +++ b/docs/monitoring/getting-started/installation-cli.md @@ -23,25 +23,26 @@ All commands work with both `npx` and `bunx`. The CLI is written in TypeScript a Before starting the monitoring stack, configure your PostgreSQL instance: ```bash -PGPASSWORD=your_password npx postgresai@latest prepare-db "postgresql://postgres@localhost:5432/mydb" +PGPASSWORD=your_password npx postgresai@0.15.0 prepare-db "postgresql://postgres@localhost:5432/mydb" ``` ### What prepare-db does 1. **Enables pg_stat_statements** extension -2. **Creates monitoring user** (`pgwatch`) with minimal read-only privileges +2. **Creates monitoring user** (`postgres_ai_mon` by default) with minimal read-only privileges 3. **Validates configuration** for optimal monitoring ### prepare-db options ```bash -npx postgresai@latest prepare-db [connection] [options] +npx postgresai@0.15.0 prepare-db [connection] [options] Options: - --mon-user <name> Monitoring username (default: pgwatch) - --mon-password <pass> Monitoring password (auto-generated if not set) - --skip-extension Skip pg_stat_statements setup - --dry-run Show what would be done without executing + --monitoring-user <name> Monitoring username (default: postgres_ai_mon) + --password <pass> Monitoring password (auto-generated if not set) + --skip-optional-permissions Skip optional permissions for managed providers + --print-sql Print SQL instead of executing it + --verify Verify monitoring permissions after setup ``` ### Example output @@ -49,7 +50,7 @@ Options: ``` ✓ Connected to PostgreSQL 16.2 ✓ pg_stat_statements extension enabled -✓ Created monitoring user 'pgwatch' +✓ Created monitoring user 'postgres_ai_mon' ✓ Granted required permissions Monitoring connection string: @@ -61,7 +62,7 @@ postgresql://postgres_ai_mon:auto_generated_pass@localhost:5432/mydb ### Demo mode (no target database) ```bash -npx postgresai@latest mon local-install --demo +npx postgresai@0.15.0 mon local-install --demo ``` Starts a complete stack with a sample PostgreSQL database pre-loaded with pgbench data. @@ -69,25 +70,23 @@ Starts a complete stack with a sample PostgreSQL database pre-loaded with pgbenc ### Production mode ```bash -npx postgresai@latest mon local-install \ - --target-db postgresql://postgres_ai_mon:pass@host:5432/mydb +npx postgresai@0.15.0 mon local-install \ + --db-url postgresql://postgres_ai_mon:pass@host:5432/mydb ``` ### local-install options ```bash -npx postgresai@latest mon local-install [options] +npx postgresai@0.15.0 mon local-install [options] Options: - --target-db <uri> PostgreSQL connection string - --demo Start with demo database - --grafana-port <port> Grafana port (default: 3000) - --vm-port <port> VictoriaMetrics port (default: 8428) - --cluster-name <name> Cluster identifier in dashboards - --node-name <name> Node identifier (default: node-01) - --detach Run in background - --stop Stop running stack - --status Show stack status + --demo demo mode with sample database (default: false) + --api-key <key> Postgres AI API key for automated report uploads + --db-url <url> PostgreSQL connection URL to monitor + --tag <tag> Docker image tag to use (e.g., 0.15.0, 0.15.0-dev.33) + --project <name> Docker Compose project name (default: postgres_ai) + -y, --yes accept all defaults and skip interactive prompts (default: false) + -h, --help display help for command ``` ## Step 3: Access Grafana @@ -110,28 +109,15 @@ Navigate to **Dashboards — Browse — postgres_ai** to see your monitoring das ### Check status ```bash -npx postgresai@latest mon local-install --status +npx postgresai@0.15.0 mon status ``` -Output: -``` -PostgresAI Monitoring Stack Status -─────────────────────────────────── -Grafana: Running (`http://localhost:3000`) -VictoriaMetrics: Running (`http://localhost:8428`) -pgwatch: Running -Flask Backend: Running - -Monitoring: - Cluster: local - Node: node-01 - Target: postgresql://...@localhost:5432/mydb -``` +Output is the Docker Compose service table for the monitoring stack, including `grafana-with-datasources`, `sink-postgres`, `sink-prometheus`, `pgwatch-postgres`, `pgwatch-prometheus`, and `flask-pgss-api`. ### Stop stack ```bash -npx postgresai@latest mon local-install --stop +npx postgresai@0.15.0 mon stop ``` ### View logs @@ -141,7 +127,7 @@ npx postgresai@latest mon local-install --stop docker compose -f ~/.postgresai/docker-compose.yml logs -f # Specific service -docker compose -f ~/.postgresai/docker-compose.yml logs -f pgwatch +docker compose -f ~/.postgresai/docker-compose.yml logs -f pgwatch-postgres pgwatch-prometheus ``` ## Troubleshooting @@ -166,7 +152,7 @@ Restart PostgreSQL after this change. 2. Verify Docker can reach the host: ```bash # On macOS/Windows, use host.docker.internal - --target-db postgresql://user:pass@host.docker.internal:5432/mydb + --db-url postgresql://user:pass@host.docker.internal:5432/mydb ``` ### "Permission denied" diff --git a/docs/monitoring/getting-started/installation-cloud.md b/docs/monitoring/getting-started/installation-cloud.md index c26e01ca..bee312b3 100644 --- a/docs/monitoring/getting-started/installation-cloud.md +++ b/docs/monitoring/getting-started/installation-cloud.md @@ -67,11 +67,16 @@ Allow inbound traffic from your monitoring stack: ### Step 4: Start monitoring ```bash -npx postgresai@latest mon local-install \ - --target-db "postgresql://postgres_ai_mon:password@your-instance.region.rds.amazonaws.com:5432/your_db" \ - --cluster-name "rds-production" +npx postgresai@0.15.0 mon local-install \ + --db-url "postgresql://postgres_ai_mon:password@your-instance.region.rds.amazonaws.com:5432/your_db" ``` +:::note Labeling clusters and nodes +The 0.15 `local-install` command does not accept `--cluster-name`/`--node-name`. To +tag metrics by cluster or node, set `custom_tags.cluster` and `custom_tags.node_name` +in `instances.yml` (see [Docker Compose → Adding multiple databases](/docs/monitoring/getting-started/installation-docker#adding-multiple-databases)). +::: + ### RDS-specific considerations **Enhanced Monitoring:** @@ -133,9 +138,8 @@ Add your monitoring stack's IP to authorized networks: For private IP: ```bash -npx postgresai@latest mon local-install \ - --target-db "postgresql://postgres_ai_mon:password@10.x.x.x:5432/your_db" \ - --cluster-name "cloudsql-production" +npx postgresai@0.15.0 mon local-install \ + --db-url "postgresql://postgres_ai_mon:password@10.x.x.x:5432/your_db" ``` For Cloud SQL Auth Proxy: @@ -144,11 +148,16 @@ For Cloud SQL Auth Proxy: cloud_sql_proxy -instances=PROJECT:REGION:INSTANCE=tcp:5432 # Connect -npx postgresai@latest mon local-install \ - --target-db "postgresql://postgres_ai_mon:password@localhost:5432/your_db" \ - --cluster-name "cloudsql-production" +npx postgresai@0.15.0 mon local-install \ + --db-url "postgresql://postgres_ai_mon:password@localhost:5432/your_db" ``` +:::note Labeling clusters and nodes +The 0.15 `local-install` command does not accept `--cluster-name`/`--node-name`. To +tag metrics by cluster or node, set `custom_tags.cluster` and `custom_tags.node_name` +in `instances.yml` (see [Docker Compose → Adding multiple databases](/docs/monitoring/getting-started/installation-docker#adding-multiple-databases)). +::: + ### Cloud SQL-specific considerations **Insights:** @@ -199,11 +208,16 @@ grant select on all tables in schema public to postgres_ai_mon; ### Step 4: Start monitoring ```bash -npx postgresai@latest mon local-install \ - --target-db "postgresql://postgres_ai_mon:password@db.xxxx.supabase.co:5432/postgres?sslmode=require" \ - --cluster-name "supabase-production" +npx postgresai@0.15.0 mon local-install \ + --db-url "postgresql://postgres_ai_mon:password@db.xxxx.supabase.co:5432/postgres?sslmode=require" ``` +:::note Labeling clusters and nodes +The 0.15 `local-install` command does not accept `--cluster-name`/`--node-name`. To +tag metrics by cluster or node, set `custom_tags.cluster` and `custom_tags.node_name` +in `instances.yml` (see [Docker Compose → Adding multiple databases](/docs/monitoring/getting-started/installation-docker#adding-multiple-databases)). +::: + :::note Connection pooling Use the "Direct connection" string, not the pooled connection (port 6543). Monitoring requires direct PostgreSQL protocol access. ::: @@ -216,10 +230,10 @@ Most cloud providers require SSL: ```bash # Require SSL ---target-db "postgresql://...?sslmode=require" +--db-url "postgresql://...?sslmode=require" # Verify certificate (recommended for production) ---target-db "postgresql://...?sslmode=verify-full&sslrootcert=/path/to/ca.crt" +--db-url "postgresql://...?sslmode=verify-full&sslrootcert=/path/to/ca.crt" ``` ### Permission limitations diff --git a/docs/monitoring/getting-started/installation-docker.md b/docs/monitoring/getting-started/installation-docker.md index 25b0bbf5..d6ebfe18 100644 --- a/docs/monitoring/getting-started/installation-docker.md +++ b/docs/monitoring/getting-started/installation-docker.md @@ -37,25 +37,28 @@ Create a `.env` file or set these environment variables: ```bash # Required -TARGET_DB_HOST=your-postgres-host -TARGET_DB_PORT=5432 -TARGET_DB_NAME=your_database -TARGET_DB_USER=pgwatch -TARGET_DB_PASSWORD=your_password +PGAI_TAG=0.15.0 +REPLICATOR_PASSWORD=<generated-secret> +VM_AUTH_USERNAME=vmauth +VM_AUTH_PASSWORD=<generated-secret> -# Optional - Cluster identification -CLUSTER_NAME=production -NODE_NAME=primary +# Target databases are defined in instances.yml +# Use postgres_ai_mon by default after running prepare-db. # Optional - Grafana admin password (REQUIRED for production!) # Default is 'demo' - always change this in production GF_SECURITY_ADMIN_PASSWORD=your_secure_password # Optional - Retention -VM_RETENTION_PERIOD=90d +VM_RETENTION_PERIOD=336h ``` -### docker-compose.yml Overview +### docker-compose.yml excerpt + +This excerpt omits the `config-init` and `sources-generator` helper services that +the pgwatch collectors depend on (see `depends_on` below); both are defined in the +full `docker-compose.yml` in the repository. `sources-generator` renders the pgwatch +source files from `instances.yml`. ```yaml services: @@ -70,28 +73,54 @@ services: - GF_SECURITY_ADMIN_USER=monitor - GF_SECURITY_ADMIN_PASSWORD=${GF_SECURITY_ADMIN_PASSWORD:-demo} - victoriametrics: - image: victoriametrics/victoria-metrics:latest + sink-postgres: + image: postgres:17 + environment: + POSTGRES_DB: postgres + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + POSTGRES_HOST_AUTH_METHOD: trust + + sink-prometheus: + image: victoriametrics/victoria-metrics:v1.140.0 ports: - - "${VICTORIAMETRICS_PORT:-8428}:8428" + - "${BIND_HOST:-}59090:9090" volumes: - vm-data:/victoria-metrics-data + environment: + - VM_AUTH_USERNAME=${VM_AUTH_USERNAME:-} + - VM_AUTH_PASSWORD=${VM_AUTH_PASSWORD:-} + - VM_RETENTION_PERIOD=${VM_RETENTION_PERIOD:-336h} + + pgwatch-postgres: + image: postgresai/pgwatch:${PGAI_TAG} command: - - "-retentionPeriod=${VM_RETENTION_PERIOD:-90d}" + - "--sources=/postgres_ai_configs/pgwatch/sources.yml" + - "--metrics=/postgres_ai_configs/pgwatch/metrics.yml" + - "--sink=postgresql://pgwatch@sink-postgres:5432/measurements?sslmode=disable" + - "--web-addr=:8080" + depends_on: + - sources-generator + - sink-postgres - pgwatch: - image: cybertec/pgwatch:latest - environment: - - PW_SOURCES=postgresql://${TARGET_DB_USER}:${TARGET_DB_PASSWORD}@${TARGET_DB_HOST}:${TARGET_DB_PORT}/${TARGET_DB_NAME} + pgwatch-prometheus: + image: postgresai/pgwatch:${PGAI_TAG} + command: + - "--sources=/postgres_ai_configs/pgwatch-prometheus/sources.yml" + - "--metrics=/postgres_ai_configs/pgwatch-prometheus/metrics.yml" + - "--sink=prometheus://0.0.0.0:9091/pgwatch" + - "--web-addr=:8089" depends_on: - - victoriametrics + - sources-generator + - sink-prometheus monitoring_flask_backend: - build: ./monitoring_flask_backend + image: postgresai/monitoring-flask-backend:${PGAI_TAG} ports: - "8000:8000" environment: - - POSTGRES_URI=postgresql://${TARGET_DB_USER}:${TARGET_DB_PASSWORD}@${TARGET_DB_HOST}:${TARGET_DB_PORT}/${TARGET_DB_NAME} + - PROMETHEUS_URL=http://sink-prometheus:9090 + - POSTGRES_SINK_URL=postgresql://pgwatch@sink-postgres:5432/measurements volumes: grafana-data: @@ -134,23 +163,26 @@ Single-node time-series database optimized for Prometheus metrics. **Performance tuning:** ```yaml -victoriametrics: - command: - - "-retentionPeriod=90d" - - "-memory.allowedPercent=60" - - "-search.maxConcurrentRequests=16" +sink-prometheus: + environment: + - VM_RETENTION_PERIOD=336h + - VM_QUERY_DURATION=30s + - VM_MAX_CONCURRENT_REQUESTS=16 ``` ### pgwatch -Metrics collector for PostgreSQL. Scrapes your database every 60 seconds by default. +Metrics collectors for PostgreSQL. The 0.15 stack runs separate `postgresai/pgwatch` services for PostgreSQL and Prometheus-compatible sinks. -**Custom metrics interval:** +**Prometheus sink options:** ```yaml -pgwatch: - environment: - - PW_INTERNAL_STATS_PORT=8081 - - PW_MIN_DB_SIZE_MB=0 +pgwatch-prometheus: + command: + - "--sources=/postgres_ai_configs/pgwatch-prometheus/sources.yml" + - "--metrics=/postgres_ai_configs/pgwatch-prometheus/metrics.yml" + - "--sink=prometheus://0.0.0.0:9091/pgwatch" + - "--web-addr=:8089" + - "--log-level=error" ``` ### Flask backend @@ -203,8 +235,8 @@ docker compose down # All services docker compose logs -f -# Specific service -docker compose logs -f pgwatch +# Specific services +docker compose logs -f pgwatch-postgres pgwatch-prometheus ``` ### Restart service @@ -222,24 +254,31 @@ docker compose up -d ## Adding multiple databases -To monitor multiple PostgreSQL instances, add additional pgwatch services: +To monitor multiple PostgreSQL instances, add them to `instances.yml`; `sources-generator` renders both pgwatch source files from that list: ```yaml -services: - pgwatch-prod: - image: cybertec/pgwatch:latest - environment: - - PW_SOURCES=postgresql://postgres_ai_mon:pass@prod-db:5432/app - - PW_SOURCE_NAME=prod-primary - - pgwatch-staging: - image: cybertec/pgwatch:latest - environment: - - PW_SOURCES=postgresql://postgres_ai_mon:pass@staging-db:5432/app - - PW_SOURCE_NAME=staging-primary +- name: prod-primary + conn_str: postgresql://postgres_ai_mon:pass@prod-db:5432/app + preset_metrics: full + is_enabled: true + group: production + custom_tags: + env: production + cluster: prod + node_name: primary + +- name: staging-primary + conn_str: postgresql://postgres_ai_mon:pass@staging-db:5432/app + preset_metrics: full + is_enabled: true + group: staging + custom_tags: + env: staging + cluster: staging + node_name: primary ``` -Use the `cluster_name` variable in Grafana to switch between environments. +Use the `cluster` and `node_name` custom tags in Grafana to switch between environments. ## Troubleshooting @@ -247,12 +286,12 @@ Use the `cluster_name` variable in Grafana to switch between environments. 1. Check pgwatch is collecting metrics: ```bash - docker compose logs pgwatch | grep -i error + docker compose logs pgwatch-postgres pgwatch-prometheus | grep -i error ``` 2. Verify VictoriaMetrics has data: ```bash - curl 'http://localhost:8428/api/v1/query?query=pg_stat_user_tables_n_tup_ins' + curl 'http://localhost:59090/api/v1/query?query=pg_stat_user_tables_n_tup_ins' ``` 3. Check Grafana datasource: @@ -261,22 +300,27 @@ Use the `cluster_name` variable in Grafana to switch between environments. ### High memory usage -VictoriaMetrics memory is proportional to active time series: +VictoriaMetrics memory is proportional to active time series. It sizes its caches +from the container memory limit, so cap memory by lowering that limit (or set +`SINK_PROMETHEUS_MEM` in `.env`) rather than overriding the service `command`: ```yaml -victoriametrics: - command: - - "-memory.allowedPercent=40" # Reduce from default 60% +sink-prometheus: + mem_limit: 1073741824 # 1 GiB (default is 1.5 GiB / SINK_PROMETHEUS_MEM) ``` ### Container networking issues -If pgwatch can't reach your database: +If the pgwatch collectors can't reach your database, add the host mapping to both collector services: ```yaml -pgwatch: +pgwatch-postgres: extra_hosts: - "host.docker.internal:host-gateway" # For host machine access + +pgwatch-prometheus: + extra_hosts: + - "host.docker.internal:host-gateway" ``` ## Next steps diff --git a/docs/monitoring/getting-started/quickstart-supabase.md b/docs/monitoring/getting-started/quickstart-supabase.md index 05d84a4d..6ada87ec 100644 --- a/docs/monitoring/getting-started/quickstart-supabase.md +++ b/docs/monitoring/getting-started/quickstart-supabase.md @@ -178,7 +178,7 @@ The monitoring user is created automatically during Supabase setup with read-onl only. To review the exact SQL statements used to create the monitoring role: ```bash -npx postgresai@latest prepare-db --print-sql +npx postgresai@0.15.0 prepare-db --print-sql ``` This shows all `grant` statements and confirms the minimal, read-only nature of the permissions. @@ -189,8 +189,8 @@ PostgresAI monitoring collects only database metadata — no actual data or quer review exactly what metrics are collected, examine the metric definitions: - **Prometheus sink metrics**: - [metrics.yml (pgwatch-prometheus)](https://gitlab.com/postgres-ai/postgresai/-/blob/0.14.0/config/pgwatch-prometheus/metrics.yml) + [metrics.yml (pgwatch-prometheus)](https://gitlab.com/postgres-ai/postgresai/-/blob/0.15.0/config/pgwatch-prometheus/metrics.yml) - **PostgreSQL sink metrics** (including normalized queries): - [metrics.yml (pgwatch-postgres)](https://gitlab.com/postgres-ai/postgresai/-/blob/0.14.0/config/pgwatch-postgres/metrics.yml) + [metrics.yml (pgwatch-postgres)](https://gitlab.com/postgres-ai/postgresai/-/blob/0.15.0/config/pgwatch-postgres/metrics.yml) See also: [data privacy details](/docs/monitoring/#data-privacy-metadata-only). diff --git a/docs/monitoring/getting-started/requirements.md b/docs/monitoring/getting-started/requirements.md index 64bfdcc2..b508d751 100644 --- a/docs/monitoring/getting-started/requirements.md +++ b/docs/monitoring/getting-started/requirements.md @@ -53,8 +53,8 @@ The wait events dashboard uses `pg_stat_activity`, which is built into PostgreSQ | Component | Minimum | Recommended | |-----------|---------|-------------| -| CPU | 2 cores | 4 cores | -| RAM | 2 GiB | 4 GiB | +| CPU | 4 cores | 6 cores | +| RAM | 8 GiB | 12 GiB | | Disk | 10 GiB | 50 GiB | | Docker | 20.10+ | Latest | @@ -102,16 +102,16 @@ For self-managed deployments, you need connectivity between the monitoring node ### Metrics retention Default retention periods: -- **VictoriaMetrics**: 90 days -- **Prometheus**: 15 days (if using instead of VM) +- **VictoriaMetrics**: 14 days (`336h`) +- **Prometheus**: not used by the default local-install stack ### Disk usage estimates -| Monitored databases | Daily growth | 90-day storage | +| Monitored databases | Daily growth | 14-day storage | |--------------------|--------------|----------------| -| 1 | ~50 MiB | ~4.5 GiB | -| 5 | ~200 MiB | ~18 GiB | -| 20 | ~800 MiB | ~72 GiB | +| 1 | ~50 MiB | ~700 MiB | +| 5 | ~200 MiB | ~2.8 GiB | +| 20 | ~800 MiB | ~11.2 GiB | :::tip Compression VictoriaMetrics typically achieves 10-15x compression on time-series data. @@ -131,7 +131,7 @@ grant pg_read_all_stats to postgres_ai_mon; :::tip Review exact permissions To see the complete SQL used to create the monitoring role: ```bash -npx postgresai@latest prepare-db --print-sql +npx postgresai@0.15.0 prepare-db --print-sql ``` This transparency lets you verify the minimal, read-only nature of the permissions before running. ::: @@ -151,8 +151,8 @@ For managed databases, use the master/admin user to run `prepare-db`: ```bash # RDS -npx postgresai@latest prepare-db postgresql://master_user:pass@instance.region.rds.amazonaws.com:5432/postgres +npx postgresai@0.15.0 prepare-db postgresql://master_user:pass@instance.region.rds.amazonaws.com:5432/postgres # CloudSQL -npx postgresai@latest prepare-db postgresql://postgres:pass@/dbname?host=/cloudsql/project:region:instance +npx postgresai@0.15.0 prepare-db postgresql://postgres:pass@/dbname?host=/cloudsql/project:region:instance ``` diff --git a/docs/monitoring/index.md b/docs/monitoring/index.md index f52b0715..edd7991a 100644 --- a/docs/monitoring/index.md +++ b/docs/monitoring/index.md @@ -87,15 +87,15 @@ PostgresAI monitoring collects **only database metadata** — no actual data or Review exactly what metrics are collected by examining the metric definitions: -- **Prometheus sink metrics**: [metrics.yml (pgwatch-prometheus)](https://gitlab.com/postgres-ai/postgresai/-/blob/0.14.0/config/pgwatch-prometheus/metrics.yml) -- **PostgreSQL sink metrics** (including normalized queries): [metrics.yml (pgwatch-postgres)](https://gitlab.com/postgres-ai/postgresai/-/blob/0.14.0/config/pgwatch-postgres/metrics.yml) +- **Prometheus sink metrics**: [metrics.yml (pgwatch-prometheus)](https://gitlab.com/postgres-ai/postgresai/-/blob/0.15.0/config/pgwatch-prometheus/metrics.yml) +- **PostgreSQL sink metrics** (including normalized queries): [metrics.yml (pgwatch-postgres)](https://gitlab.com/postgres-ai/postgresai/-/blob/0.15.0/config/pgwatch-postgres/metrics.yml) ### Verify database permissions The monitoring user has read-only access to metadata only. To review the exact SQL statements used to create the monitoring role: ```bash -npx postgresai@latest prepare-db --print-sql +npx postgresai@0.15.0 prepare-db --print-sql ``` This shows all `GRANT` statements and confirms the minimal, read-only nature of the permissions. @@ -108,4 +108,4 @@ The easiest way to set up PostgresAI monitoring is through [Console.Postgres.ai] 2. Click **Choose plan** 3. Select **Starter** or **Scale** plan -See [pricing](/pricing) for plan details and features. \ No newline at end of file +See [pricing](/pricing) for plan details and features. From 4b3f56c380e187caf07f15dcb9fabd8481e7b121 Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov <nik@postgres.ai> Date: Thu, 4 Jun 2026 23:26:48 -0700 Subject: [PATCH 39/61] docs(monitoring): cover 0.15.0 features (xmin horizon, pg_stat_io, upgrade, security) --- docs/monitoring/advanced/architecture.md | 91 +-- docs/monitoring/advanced/index.md | 2 + docs/monitoring/advanced/multi-cluster.md | 355 ++++------- docs/monitoring/advanced/security.md | 90 +++ docs/monitoring/advanced/telemetry.md | 72 +++ docs/monitoring/configuration/alerting.md | 342 ++-------- .../configuration/grafana-config.md | 171 +++-- docs/monitoring/configuration/index.md | 99 ++- .../configuration/pgwatch-config.md | 314 ++++------ .../configuration/prometheus-config.md | 344 +++++----- .../monitoring/dashboards/01-node-overview.md | 23 +- .../dashboards/02-query-analysis.md | 32 +- docs/monitoring/dashboards/03-single-query.md | 45 +- docs/monitoring/dashboards/04-wait-events.md | 54 +- docs/monitoring/dashboards/05-backups.md | 67 +- docs/monitoring/dashboards/06-replication.md | 59 +- docs/monitoring/dashboards/07-autovacuum.md | 234 +++++-- docs/monitoring/dashboards/08-table-stats.md | 64 +- docs/monitoring/dashboards/09-single-table.md | 45 +- docs/monitoring/dashboards/10-index-health.md | 55 +- docs/monitoring/dashboards/11-single-index.md | 35 +- docs/monitoring/dashboards/12-slru.md | 36 +- .../dashboards/13-lock-contention.md | 80 ++- .../monitoring/dashboards/14-io-statistics.md | 149 +++++ docs/monitoring/dashboards/index.md | 51 +- docs/monitoring/dashboards/self-monitoring.md | 94 ++- docs/monitoring/getting-started/index.md | 22 +- .../getting-started/installation-cli.md | 22 +- .../getting-started/installation-cloud.md | 52 +- .../getting-started/installation-docker.md | 123 +++- .../getting-started/installation-helm.md | 491 ++++++++++----- .../getting-started/quickstart-supabase.md | 6 +- .../getting-started/requirements.md | 53 +- docs/monitoring/getting-started/upgrade.md | 589 ++++++++++++++++++ docs/monitoring/metrics/index-metrics.md | 51 +- docs/monitoring/metrics/index.md | 68 +- docs/monitoring/metrics/pg-stat-statements.md | 83 ++- docs/monitoring/metrics/system-metrics.md | 134 ++-- docs/monitoring/metrics/table-metrics.md | 111 ++-- docs/monitoring/metrics/wait-events.md | 58 +- docs/monitoring/troubleshooting/index.md | 55 +- docs/monitoring/troubleshooting/no-data.md | 67 +- .../monitoring/troubleshooting/performance.md | 203 +++--- .../monitoring/troubleshooting/permissions.md | 35 +- docs/postgresai-howtos/how-to-install-mcp.md | 10 +- .../postgres-ai-monitoring-reference.md | 118 +++- .../postgresai-cli-reference.md | 82 ++- sidebars.js | 4 + 48 files changed, 3484 insertions(+), 1956 deletions(-) create mode 100644 docs/monitoring/advanced/security.md create mode 100644 docs/monitoring/advanced/telemetry.md create mode 100644 docs/monitoring/dashboards/14-io-statistics.md create mode 100644 docs/monitoring/getting-started/upgrade.md diff --git a/docs/monitoring/advanced/architecture.md b/docs/monitoring/advanced/architecture.md index 63d61d25..bd9b89c3 100644 --- a/docs/monitoring/advanced/architecture.md +++ b/docs/monitoring/advanced/architecture.md @@ -49,24 +49,24 @@ Deep-dive into PostgresAI monitoring system components and data flow. **Key functions:** - Execute SQL queries against PostgreSQL - Transform results to Prometheus metrics -- Expose `/metrics` endpoint +- Expose the `/pgwatch` metrics endpoint on `:9091` (Prometheus sink) **Configuration:** | Setting | Default | Description | |---------|---------|-------------| -| Scrape interval | 15s | Collection frequency | -| Statement timeout | 30s | Max query duration | -| Max connections | 3 | Connections per database | +| Scrape interval | 30s | VictoriaMetrics scrapes the `pgwatch-prometheus` job every 30s (the 15s global default is overridden for this job; the separate `query-info` job — `metrics_path: /query_info_metrics` — runs every 300s) | +| Collection interval | per-metric | Each metric group has its own interval in `metrics.yml` (most 30s; `pg_stat_activity`/`wait_events` 15s) | **Collected data sources:** | View | Metrics | |------|---------| | pg_stat_statements | Query performance | -| pg_stat_activity | Session state, wait events | -| pg_stat_user_tables | Table access patterns | -| pg_stat_user_indexes | Index usage | -| pg_stat_database | Database-level stats | -| pg_stat_bgwriter | Checkpoint behavior | +| pg_stat_activity | Session state | +| wait_events (from pg_stat_activity) | Wait event sampling | +| pg_stat_all_tables / table_stats | Table access patterns | +| pg_stat_all_indexes | Index usage | +| db_stats (from pg_stat_database) | Database-level stats | +| bgwriter | Checkpoint behavior | ### VictoriaMetrics — time-series database @@ -86,15 +86,11 @@ Deep-dive into PostgresAI monitoring system components and data flow. | High availability | Built-in clustering | Federation | **Storage model:** -``` -Data directory structure: -/var/lib/victoriametrics/ -├── data/ -│ ├── small/ # Recent data (in-memory) -│ └── big/ # Historical data (on-disk) -├── indexdb/ # Label indexes -└── snapshots/ # Point-in-time backups -``` + +In this deployment VictoriaMetrics is started with `-storageDataPath=/victoria-metrics-data`, and +the `victoria_metrics_data` Docker volume is mounted at `/victoria-metrics-data`. The on-disk +layout under that path follows VictoriaMetrics' standard structure (recent vs. historical data +parts, a label index, and optional snapshots). ### Grafana — Visualization @@ -121,6 +117,7 @@ PostgresAI dashboards: ├── 11. Single index (index deep-dive) ├── 12. SLRU (cache stats) ├── 13. Lock contention (lock waits) +├── 14. I/O statistics (pg_stat_io, PG16+) └── Self-monitoring (stack health) ``` @@ -137,13 +134,13 @@ PostgresAI dashboards: └── Column values → metric values └── Column names → labels -3. Metrics exposed on /metrics endpoint +3. Metrics exposed on the `/pgwatch` endpoint (`:9091`) └── Prometheus exposition format └── Timestamp attached -4. VictoriaMetrics scrapes pgwatch - └── HTTP GET /metrics - └── Configurable interval (default 15s) +4. VictoriaMetrics scrapes the pgwatch-prometheus sink + └── HTTP GET pgwatch-prometheus:9091/pgwatch + └── `pgwatch-prometheus` job scrape_interval: 30s (scrape_timeout 25s) 5. Metrics stored in VictoriaMetrics └── Compressed time-series storage @@ -174,20 +171,32 @@ PostgresAI dashboards: ### Convention +pgwatch exports series as `pgwatch_<metric-group>_<column>`. The Prometheus metric **type** is +driven by each metric group's `gauges:` list in `config/pgwatch-prometheus/metrics.yml`: a column +is emitted as a Prometheus gauge only if its group lists it (or uses `gauges: ['*']`); otherwise it +is emitted as a counter. Note this is the **exported** type, not the PostgreSQL semantics — the +`db_stats` and `pg_stat_statements` groups use `gauges: ['*']` / explicit gauge lists, so their +cumulative columns (e.g. `xact_commit`, `exec_time_total`) are exported as **gauges** even though +they only ever increase. Cumulative columns in the `pg_stat_database` family are also **not** +`_total`-suffixed. + ``` -{source}_{view}_{metric}_{unit}_{type} +pgwatch_<metric-group>_<column> -Examples: -pg_stat_database_xact_commit_total # Counter -pg_stat_database_numbackends # Gauge -pg_stat_statements_total_exec_time_seconds # Counter +Examples (Type = the exporter's emitted Prometheus type): +pgwatch_db_stats_xact_commit # Gauge (transactions committed; db_stats uses gauges: ['*']) +pgwatch_db_stats_numbackends # Gauge (current backends) +pgwatch_pg_stat_statements_exec_time_total # Gauge (total exec time, ms; listed in pg_stat_statements gauges) ``` ### Labels +The cluster label is `cluster` (set from `custom_tags.cluster`). `cluster_name` is only the +Grafana template variable; dashboard filters select with `cluster="$cluster_name"`. + ``` -{metric_name}{ - cluster_name="production", +pgwatch_<metric-group>_<column>{ + cluster="production", node_name="primary", datname="myapp", schemaname="public", @@ -209,7 +218,7 @@ Typical values: Example: 5 databases, 14-day retention = 5 × 100 × 1.5 × 1,209,600 -= ~900 MiB += 907,200,000 bytes ≈ 907 MB (≈ 865 MiB) ``` ### Scaling factors @@ -315,13 +324,14 @@ npx postgresai@0.15.0 prepare-db --print-sql │ Internal Network │ │ │ │ │ ┌──────────────────────▼─────────────────────────┐ │ -│ │ VictoriaMetrics │ │ -│ │ (port 8428 internal) │ │ +│ │ VictoriaMetrics (sink-prometheus) │ │ +│ │ (port 9090 internal, host 59090) │ │ │ └──────────────────────┬─────────────────────────┘ │ -│ │ │ +│ scrapes pgwatch-prometheus:9091/pgwatch │ │ ┌──────────────────────▼─────────────────────────┐ │ -│ │ pgwatch │ │ -│ │ (port 8080 internal) │ │ +│ │ pgwatch (pgwatch-postgres, pgwatch-prometheus)│ │ +│ │ metrics scraped on pgwatch-prometheus:9091 │ │ +│ │ (web/health ports 8080/8089 are internal) │ │ │ └──────────────────────┬─────────────────────────┘ │ │ │ │ └─────────────────────────┬───────────────────────────┘ @@ -348,12 +358,15 @@ npx postgresai@0.15.0 prepare-db --print-sql ### Collection overhead +Frequencies below are the `full` preset intervals from `config/pgwatch-prometheus/metrics.yml` +(see the per-metric note above): + | Metric type | Query cost | Frequency | |-------------|------------|-----------| -| pg_stat_database | Low | 15s | -| pg_stat_statements | Medium | 15s | -| pg_stat_user_tables | Medium | 60s | -| Bloat estimation | High | 300s | +| pg_stat_database (`db_stats`) | Low | 30s | +| pg_stat_statements | Medium | 30s | +| pg_stat_all_tables / `table_stats` | Medium | 30s | +| Bloat estimation (`pg_table_bloat`, `pg_btree_bloat`) | High | 7200s (2h) | ### Query performance diff --git a/docs/monitoring/advanced/index.md b/docs/monitoring/advanced/index.md index 7635f715..b72854a3 100644 --- a/docs/monitoring/advanced/index.md +++ b/docs/monitoring/advanced/index.md @@ -14,6 +14,8 @@ Advanced configuration and integration guides for PostgresAI monitoring. |-------|-------------| | [Multi-cluster monitoring](/docs/monitoring/advanced/multi-cluster) | Centralized monitoring for multiple clusters | | [Architecture](/docs/monitoring/advanced/architecture) | Deep-dive into system components | +| [Security](/docs/monitoring/advanced/security) | VictoriaMetrics auth, credential rotation, hardening | +| [Telemetry](/docs/monitoring/advanced/telemetry) | What the monitoring telemetry reporter sends, and how to disable it | ## When to use advanced features diff --git a/docs/monitoring/advanced/multi-cluster.md b/docs/monitoring/advanced/multi-cluster.md index 6bac4aba..d6cf0cf9 100644 --- a/docs/monitoring/advanced/multi-cluster.md +++ b/docs/monitoring/advanced/multi-cluster.md @@ -8,11 +8,12 @@ sidebar_position: 2 Centralized monitoring for multiple PostgreSQL clusters from a single Grafana instance. -## Architecture options +## Architecture -### Option 1: Single pgwatch, multiple targets - -Best for: 5-20 clusters in the same network +The stack runs one pair of pgwatch collectors (`pgwatch-postgres` and `pgwatch-prometheus`) that +read a list of monitored databases from a generated `sources.yml`, write metrics to +VictoriaMetrics (the `sink-prometheus` service, internal port `9090`, host port `59090`), and +expose them in Grafana. ``` ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ @@ -21,78 +22,97 @@ Best for: 5-20 clusters in the same network │ │ │ └───────────────────┼───────────────────┘ │ - ┌──────▼──────┐ - │ pgwatch │ - └──────┬──────┘ - │ - ┌──────▼────────┐ - │VictoriaMetrics│ - └──────┬────────┘ + ┌──────────▼───────────┐ + │ pgwatch-prometheus │ (reads sources.yml, + │ pgwatch-postgres │ generated from instances.yml) + └──────────┬───────────┘ + │ prometheus sink :9091/pgwatch + ┌──────────▼───────────┐ + │ VictoriaMetrics │ sink-prometheus :9090 (host 59090) + └──────────┬───────────┘ │ ┌──────▼──────┐ - │ Grafana │ + │ Grafana │ :3000 └─────────────┘ ``` -### Option 2: Distributed pgwatch, central storage +## Configuration -Best for: Clusters in different networks/regions +Monitored databases are defined in `instances.yml` (a YAML list). The +`config/scripts/generate-pgwatch-sources.sh` script renders this at runtime into the two +`sources.yml` files that pgwatch reads — `pgwatch/sources.yml` and `pgwatch-prometheus/sources.yml` +under the `/postgres_ai_configs` volume (i.e. `/postgres_ai_configs/pgwatch/sources.yml` and +`/postgres_ai_configs/pgwatch-prometheus/sources.yml`). These generated files are **not** committed +to the repository. There is **no** `PW_TARGETS` (or any `PW_*`) environment variable. -``` -┌─────────────┐ ┌─────────────┐ ┌─────────────┐ -│ Cluster A │ │ Cluster B │ │ Cluster C │ -│ + pgwatch │ │ + pgwatch │ │ + pgwatch │ -└──────┬──────┘ └──────┬──────┘ └──────┬──────┘ - │ │ │ - └───────────────────┼───────────────────┘ - │ remote_write - ┌──────▼────────┐ - │VictoriaMetrics│ - │ (central) │ - └──────┬────────┘ - │ - ┌──────▼──────┐ - │ Grafana │ - └─────────────┘ +### Adding clusters + +**CLI approach (recommended):** + +```bash +# Add a target. The second positional argument is the instance name (optional). +postgresai mon targets add postgresql://user:pass@prod-us:5432/postgres production-us +postgresai mon targets add postgresql://user:pass@prod-eu:5432/postgres production-eu ``` -## Configuration +`mon targets add` takes `[connStr]` and an optional positional `[name]` — there is no +`--cluster-name` flag. The connection string is parsed for user/password/host/port/database only; +cluster identity is **not** read from a `?cluster_name=...` query parameter. After adding a target, +the CLI regenerates `sources.yml` and applies it. -### Adding multiple clusters +**instances.yml approach:** -**docker-compose.yml approach:** +Each entry is a YAML object. Cluster identity is set through the `cluster` key under +`custom_tags:` (the default is `cluster: local` in demo mode, `cluster: default` for +CLI-added targets): ```yaml -services: - pgwatch: - environment: - # Use environment variable substitution for credentials - PW_TARGETS: | - postgresql://${PGWATCH_USER}:${PGWATCH_PASSWORD}@cluster-a:5432/postgres?cluster_name=cluster-a - postgresql://${PGWATCH_USER}:${PGWATCH_PASSWORD}@cluster-b:5432/postgres?cluster_name=cluster-b - postgresql://${PGWATCH_USER}:${PGWATCH_PASSWORD}@cluster-c:5432/postgres?cluster_name=cluster-c +- name: production-us + conn_str: postgresql://user:pass@prod-us:5432/postgres + preset_metrics: full + custom_metrics: + is_enabled: true + group: default + custom_tags: + env: production + cluster: production-us # <-- this becomes the `cluster` metric label + node_name: prod-us-primary + +- name: production-eu + conn_str: postgresql://user:pass@prod-eu:5432/postgres + preset_metrics: full + custom_metrics: + is_enabled: true + group: default + custom_tags: + env: production + cluster: production-eu + node_name: prod-eu-primary +``` + +When you edit `instances.yml` by hand, the change does not take effect until you re-render the +generated `sources.yml` files and restart the collectors so they reload them: + +```bash +postgresai mon update-config # runs sources-generator to re-render sources.yml +postgresai mon restart pgwatch-postgres +postgresai mon restart pgwatch-prometheus ``` +`mon update-config` only re-renders the files (it does **not** restart the collectors), and +`mon restart` only restarts the collectors (it does **not** re-render the files) — you need both. +(The CLI `mon targets add` / `mon targets remove` path does this for you automatically: it +re-renders the sources and recreates the collectors.) + :::tip Security -Define `PGWATCH_USER` and `PGWATCH_PASSWORD` in your `.env` file or use Docker secrets for production deployments. +Keep credentials in `instances.yml` out of version control. The stack's `.env` file holds stack +secrets (such as `REPLICATOR_PASSWORD` and `VM_AUTH_USERNAME` / `VM_AUTH_PASSWORD`), not the +monitored-database role passwords. ::: -**CLI approach:** - -```bash -# Add clusters one at a time -postgresai mon add-target \ - --cluster-name "production-us" \ - postgresql://user@prod-us:5432/postgres - -postgresai mon add-target \ - --cluster-name "production-eu" \ - postgresql://user@prod-eu:5432/postgres -``` - ### Cluster naming conventions -Use consistent, descriptive names: +Use consistent, descriptive values for the `cluster` custom tag: | Pattern | Example | Use case | |---------|---------|----------| @@ -100,84 +120,32 @@ Use consistent, descriptive names: | app-env | orders-prod | Per-application | | team-purpose | platform-analytics | Per-team | -```bash -# Good ---cluster-name="production-us-east-1" - -# Avoid - too generic ---cluster-name="db1" -``` - -## Distributed collection - -### Remote write configuration - -Each pgwatch instance writes to central VictoriaMetrics: - -```yaml -# pgwatch config at each site -remote_write: - url: https://central-vm.example.com/api/v1/write - basic_auth: - username: pgwatch - password: ${REMOTE_WRITE_PASSWORD} # Use environment variable - tls_config: - insecure_skip_verify: false -``` - -:::warning Security -Never commit plaintext passwords. Use environment variables or a secrets manager. -::: - -### Authentication - -Use unique credentials per pgwatch instance: - -```yaml -# Central VictoriaMetrics -basic_auth_users: - - username: pgwatch-us-east - password: <BCRYPT_HASH> # Generate with: htpasswd -nbB pgwatch-us-east <password> - - username: pgwatch-eu-west - password: <BCRYPT_HASH> -``` - -### Network considerations - -| Requirement | Configuration | -|-------------|---------------| -| Firewall | Allow outbound 8428 from pgwatch | -| TLS | Use HTTPS for remote write | -| Compression | Enable gzip (`remote_write.compress: true`) | -| Buffering | Configure local queue for network failures | - ## Label strategy ### Required labels -Every metric should include: +Every metric carries (via pgwatch and `custom_tags`): | Label | Purpose | Example | |-------|---------|---------| -| cluster_name | Primary identifier | `production-us` | -| node_name | Primary/replica distinction | `primary`, `replica-1` | -| datname | Database name | `orders` | +| `cluster` | Primary cluster identifier (from `custom_tags.cluster`) | `production-us` | +| `node_name` | Primary/replica distinction (from `custom_tags.node_name`) | `prod-us-primary` | +| `datname` | Database name | `orders` | -### Optional labels +Note: the metric **label** is `cluster`. `cluster_name` is only the name of the Grafana template +variable; dashboard filters select with `cluster="$cluster_name"`. -| Label | Purpose | Example | -|-------|---------|---------| -| region | Geographic region | `us-east-1` | -| environment | env classification | `production`, `staging` | -| team | Ownership | `platform` | +### Extra labels -### Adding external labels +Add any extra labels per instance via additional keys under `custom_tags:` (for example `env`, +`region`, or `team`). There is no `external_labels:` configuration key in this stack. ```yaml -# pgwatch config -external_labels: +custom_tags: + cluster: production-us + node_name: prod-us-primary region: us-east-1 - environment: production + env: production team: platform ``` @@ -185,99 +153,38 @@ external_labels: ### Cluster selector variable -All dashboards include a `cluster_name` variable: +Dashboards include a `cluster_name` template variable populated from the `cluster` label: -```yaml -# Variable definition +```text +# Grafana template variable name: cluster_name -query: label_values(pg_stat_database_xact_commit_total, cluster_name) -multi: true -include_all: true +query: label_values(pgwatch_db_size_size_b, cluster) ``` ### Cross-cluster queries -**Compare metrics across clusters:** +**Compare TPS across clusters** (the metric is `pgwatch_db_stats_xact_commit`; there is no +`_total`-suffixed pg_stat_database series): ```promql -# TPS comparison -sum by (cluster_name) ( - rate(pg_stat_database_xact_commit_total[5m]) +sum by (cluster) ( + rate(pgwatch_db_stats_xact_commit[5m]) ) ``` -**Alert on any cluster:** +**Connection saturation per cluster** (current backends come from +`pgwatch_db_stats_numbackends`; `max_connections` from the `settings` metric as +`pgwatch_settings_numeric_value{setting_name="max_connections"}` — there is no +`pgwatch_settings_max_connections` series): ```promql -# Alert if any cluster has high connection usage -max by (cluster_name) ( - pg_stat_database_numbackends / pg_settings_max_connections +max by (cluster) ( + sum by (cluster) (pgwatch_db_stats_numbackends) + / + scalar(max(pgwatch_settings_numeric_value{setting_name="max_connections"})) ) > 0.8 ``` -### Cluster overview dashboard - -Create a dashboard showing all clusters: - -```promql -# Cluster health summary -# Status: 1 = healthy, 0 = issues - -( - # Connection health - (pg_stat_database_numbackends / pg_settings_max_connections < 0.8) - and - # Recent activity - (time() - pg_stat_database_stats_reset < 3600) -) -# Note: For replication health, create a separate alert: -# pg_replication_lag_seconds > 60 -``` - -## High availability - -### Redundant pgwatch - -Run multiple pgwatch instances for HA: - -```yaml -services: - pgwatch-1: - environment: - PW_INSTANCE_ID: pgwatch-1 - PW_HA_MODE: active-passive - PW_HA_PEERS: pgwatch-1:8080,pgwatch-2:8080 - - pgwatch-2: - environment: - PW_INSTANCE_ID: pgwatch-2 - PW_HA_MODE: active-passive - PW_HA_PEERS: pgwatch-1:8080,pgwatch-2:8080 -``` - -### VictoriaMetrics cluster - -For large deployments, use VictoriaMetrics cluster mode: - -```yaml -services: - vmstorage-1: - image: victoriametrics/vmstorage - vmstorage-2: - image: victoriametrics/vmstorage - - vminsert: - image: victoriametrics/vminsert - command: - - -storageNode=vmstorage-1:8400,vmstorage-2:8400 - - -replicationFactor=2 - - vmselect: - image: victoriametrics/vmselect - command: - - -storageNode=vmstorage-1:8401,vmstorage-2:8401 -``` - ## Scaling considerations ### Metrics volume @@ -292,48 +199,40 @@ services: ### Storage planning ``` -Storage per cluster = (metrics/sec) × 4 bytes × retention_seconds # VictoriaMetrics compressed +Storage per cluster = (metrics/sec) × ~4 bytes × retention_seconds # VictoriaMetrics, compressed Example: 10 clusters, 30-day retention -= 10 × 100 × 100 × 30 × 86400 -= ~260 GiB += 10 × 100 × 4 × 30 × 86400 += 10,368,000,000 bytes +≈ 10 GiB ``` +Retention is controlled by `VM_RETENTION_PERIOD` (default `336h` = 14 days). + ## Troubleshooting ### Cluster not appearing -1. Check pgwatch logs for connection errors -2. Verify cluster_name is set in connection string -3. Check VictoriaMetrics is receiving data: +1. Check pgwatch logs for connection errors: + ```bash + docker compose logs pgwatch-postgres pgwatch-prometheus + ``` +2. Verify the `cluster` custom tag is set for the target in `instances.yml`. +3. Check VictoriaMetrics is receiving data (host port `59090`, VM basic auth required): ```bash - curl 'http://localhost:8428/api/v1/query?query=up{cluster_name="missing-cluster"}' + curl -u "$VM_AUTH_USERNAME:$VM_AUTH_PASSWORD" \ + 'http://localhost:59090/api/v1/query?query=pgwatch_db_size_size_b{cluster="missing-cluster"}' ``` ### Mixed-up metrics -Symptoms: Metrics from one cluster appearing under another - -Cause: Duplicate cluster_name labels - -Solution: Ensure unique cluster_name per connection: -```bash -grep -r "cluster_name" /etc/pgwatch/ -``` +Symptoms: metrics from one cluster appearing under another. -### High latency for remote clusters - -1. Enable compression: - ```yaml - remote_write: - compress: true - ``` - -2. Increase batch size: - ```yaml - remote_write: - queue_config: - max_samples_per_send: 5000 - ``` +Cause: duplicate `cluster` custom-tag values across targets. -3. Consider regional VictoriaMetrics instances with federation +Solution: ensure a unique `cluster` value per target in `instances.yml`, then regenerate sources +with `postgresai mon update-config` (which runs `sources-generator` to re-render `sources.yml`) and +restart the collectors so they reload the file: `postgresai mon restart pgwatch-postgres` and +`postgresai mon restart pgwatch-prometheus`. (`mon restart` alone only runs `docker compose restart` +and does **not** re-render `sources.yml`; `update-config` re-renders the file but does **not** +restart the collectors — you need both.) diff --git a/docs/monitoring/advanced/security.md b/docs/monitoring/advanced/security.md new file mode 100644 index 00000000..6d7fdc10 --- /dev/null +++ b/docs/monitoring/advanced/security.md @@ -0,0 +1,90 @@ +--- +title: Monitoring security +sidebar_label: Security +sidebar_position: 3 +keywords: + - "PostgresAI monitoring security" + - "VictoriaMetrics basic auth" + - "credential rotation" + - "monitoring at rest encryption" +--- + +# Monitoring security + +Security model and hardening options for the self-hosted monitoring stack. Several of these +were added or made required in 0.15. + +## Monitoring database access + +The monitoring role created by `prepare-db` has **read-only access to metadata only** — system +statistics, normalized query text, and object sizes. It never reads table data or query +parameter values. To review the exact SQL before running it: + +```bash +npx postgresai@0.15.0 prepare-db --print-sql +``` + +See [Permissions](/docs/monitoring/troubleshooting/permissions) and +[System requirements](/docs/monitoring/getting-started/requirements#permissions) for the full +permission breakdown, and +[Rotate monitoring database credentials](/docs/monitoring/troubleshooting/permissions#rotate-monitoring-database-credentials) +for rotating the monitored-database role's password. + +## VictoriaMetrics basic auth + +New in 0.15, the VictoriaMetrics endpoint is protected with HTTP basic auth. Two `.env` keys +are required: + +```bash +VM_AUTH_USERNAME=vmauth +VM_AUTH_PASSWORD=<non-empty secret> +``` + +These credentials guard the metrics endpoint and are also used by Grafana's provisioned +datasource — if they are missing, Grafana cannot query VictoriaMetrics. The CLI generates and +preserves them automatically; manual Docker Compose users must set them before +`docker compose up -d`. + +Full details, including what they protect and why they are required, are in +[Authentication and security](/docs/monitoring/configuration/prometheus-config#authentication-and-security). + +### Rotating VictoriaMetrics credentials + +```bash +# From the monitoring directory +VM_AUTH_PASSWORD="$(openssl rand -base64 18)" ./scripts/rotate-vm-auth.sh +``` + +This regenerates the VictoriaMetrics basic-auth credentials and re-applies the Grafana +datasource so the new password takes effect. See +[Rotating VictoriaMetrics credentials](/docs/monitoring/configuration/prometheus-config#rotating-victoriametrics-credentials). + +## Grafana + +- Change the default Grafana admin password immediately after first login (default user + `monitor`; the default password is intended for demo use only). +- Put Grafana behind a TLS-terminating reverse proxy for any internet-facing deployment — see + [Network requirements](/docs/monitoring/getting-started/requirements#self-managed-installation). +- The bundled-version update-check banner is disabled by default in 0.15 (no phone-home on a + pinned-version stack). + +See [Grafana configuration](/docs/monitoring/configuration/grafana-config) for authentication +options (anonymous access, LDAP, OAuth/OIDC). + +## Supply-chain hardening + +All stack images are version-pinned (no `:latest`) for reproducible, auditable deployments. +See [Image tags](/docs/monitoring/getting-started/installation-docker#image-tags-and-supply-chain). + +## Encryption at rest + +For self-hosted deployments, encryption at rest is provided by the underlying storage you run +the stack on (for example, an encrypted volume / filesystem for the Docker volumes that hold +VictoriaMetrics and Grafana data). PostgresAI's own hosted infrastructure uses +KMS-backed encrypted storage validated by infrastructure checks in CI. + +## Related + +- [Authentication and security (VictoriaMetrics)](/docs/monitoring/configuration/prometheus-config#authentication-and-security) +- [Telemetry](/docs/monitoring/advanced/telemetry) — what the monitoring telemetry reporter sends +- [Architecture](/docs/monitoring/advanced/architecture) — component and credential overview diff --git a/docs/monitoring/advanced/telemetry.md b/docs/monitoring/advanced/telemetry.md new file mode 100644 index 00000000..92528659 --- /dev/null +++ b/docs/monitoring/advanced/telemetry.md @@ -0,0 +1,72 @@ +--- +title: Monitoring telemetry +sidebar_label: Telemetry +sidebar_position: 4 +keywords: + - "PostgresAI monitoring telemetry" + - "telemetry reporter" + - "monitoring instance telemetry" +--- + +# Monitoring telemetry + +New in 0.15. Self-hosted monitoring instances include an optional **telemetry reporter** that +periodically sends a small operational health snapshot of the monitoring host to the PostgresAI +Console. This helps surface monitoring-stack health (for example, an out-of-memory event or a +container in a crash loop) without requiring access to the host. + +This is separate from the metrics collected about your PostgreSQL databases, which always stay +in your own VictoriaMetrics instance. + +## What it sends + +Each report contains a small, fixed set of host-level operational signals: + +| Field | Description | +|-------|-------------| +| OOM count (last 24h) | Number of kernel out-of-memory events observed | +| Faulty containers | Names of monitoring-stack containers that are unhealthy or restarting | +| Free RAM | Free memory on the monitoring host, in bytes | +| Free disk | Free disk space on the monitored path (default `/`), in bytes | +| Collected-at timestamp | When the snapshot was taken | + +The reporter identifies the monitoring instance by its UUID. It does **not** send PostgreSQL +data, query text, or table contents. + +## Enabling and disabling + +The reporter is driven entirely by environment variables. It only runs when the required +variables are present, so it is effectively **off by default** unless your installation +configures it (for example, an installation registered with an API key). + +**Required** (the reporter does nothing unless all three are set): + +| Variable | Description | +|----------|-------------| +| `PGAI_PLATFORM_API_URL` | Console API base URL (e.g. `https://postgres.ai/api/v1`) | +| `PGAI_API_TOKEN` | API token for the monitoring instance | +| `PGAI_MONITORING_INSTANCE_ID` | UUID of this monitoring instance | + +To **disable** telemetry, unset these variables (or remove them from `.env`) and restart the +stack. With the required variables absent, the reporter does not start. + +**Optional tuning:** + +| Variable | Default | Description | +|----------|---------|-------------| +| `PGAI_TELEMETRY_INTERVAL_SEC` | `3600` | Report interval in seconds (minimum 60) | +| `PGAI_TELEMETRY_DISK_PATH` | `/` | Path checked for free disk space | +| `PGAI_TELEMETRY_MEMINFO_PATH` | `/proc/meminfo` | Source for free-RAM readings | +| `PGAI_TELEMETRY_OOM_LOOKBACK` | `24 hours ago` | How far back to scan for OOM events | + +## Privacy + +- Reports are scoped to the monitoring host and the monitoring instance, not to any monitored + database. +- No database contents, credentials, or query parameter values are transmitted. +- Data is sent only to the configured `PGAI_PLATFORM_API_URL` using the instance API token. + +## Related + +- [DBLab Engine telemetry](/docs/database-lab/telemetry) — telemetry for the Database Lab Engine +- [Architecture](/docs/monitoring/advanced/architecture) — monitoring stack components diff --git a/docs/monitoring/configuration/alerting.md b/docs/monitoring/configuration/alerting.md index c4f4c4ca..228aafcd 100644 --- a/docs/monitoring/configuration/alerting.md +++ b/docs/monitoring/configuration/alerting.md @@ -6,112 +6,88 @@ sidebar_position: 5 # Alerting configuration -Configure alert rules and notification channels for PostgresAI monitoring. +:::info No bundled alerting in 0.15.0 +PostgresAI monitoring 0.15.0 does **not** ship any alert rules, an Alertmanager service, or a +`vmalert` component. There are no pre-configured alerts (such as connection, replication, or +bloat alerts), no Alertmanager API on port `9093`, and no notification receivers bundled with the +stack. -## Alert rule basics - -PostgresAI includes pre-configured alert rules for common PostgreSQL issues. - -### Alert structure +The metrics-storage backend is VictoriaMetrics (the `sink-prometheus` service), exposed on host +port `59090` (container `9090`). The bundled `config/prometheus/prometheus.yml` contains only a +commented-out `rule_files:` placeholder and **no** `alerting:` / `alertmanager` block: ```yaml -groups: - - name: postgresql_alerts - rules: - - alert: HighConnectionUsage - expr: | - sum(pg_stat_database_numbackends) - / - scalar(max(pg_settings_max_connections)) - > 0.8 - for: 5m - labels: - severity: warning - annotations: - summary: "Connection usage above 80%" - description: "{{ $labels.cluster_name }} has {{ $value | humanizePercentage }} connections used" +rule_files: + # - "first_rules.yml" + # - "second_rules.yml" ``` -### Alert components - -| Component | Purpose | -|-----------|---------| -| expr | PromQL expression that triggers alert | -| for | Duration condition must be true | -| labels | Metadata for routing and filtering | -| annotations | Human-readable alert details | - -## Pre-configured alerts - -### Connection alerts - -| Alert | Condition | Severity | -|-------|-----------|----------| -| HighConnectionUsage | > 80% of max_connections | warning | -| CriticalConnectionUsage | > 95% of max_connections | critical | -| IdleInTransactionLong | Session idle in transaction > 5min | warning | - -### Performance alerts +Everything on this page describes how you can *add your own* alerting on top of the stack. None of +it is provided out of the box. +::: -| Alert | Condition | Severity | -|-------|-----------|----------| -| HighTransactionRollbackRate | Rollbacks > 5% of commits | warning | -| LowBufferCacheHitRatio | Buffer hit ratio < 95% | warning | -| HighDeadTupleRatio | Dead tuples > 20% of live | warning | +## Adding alerting yourself -### Replication alerts +Because the stack stores metrics in VictoriaMetrics, you have two common options to add alerting. -| Alert | Condition | Severity | -|-------|-----------|----------| -| ReplicationLagHigh | Lag > 100MB | warning | -| ReplicationLagCritical | Lag > 1 GiB | critical | -| ReplicaDisconnected | Replica not in pg_stat_replication | critical | +### Option 1: Grafana alerting -### Storage alerts +Grafana (the `grafana` service, container `grafana-with-datasources`, on host port `3000`, +default login `monitor` / `demo`) ships with its own alerting engine. You can define alert rules +against the `PGWatch-Prometheus` datasource entirely inside Grafana, with no extra components. -| Alert | Condition | Severity | -|-------|-----------|----------| -| TableBloatHigh | Estimated bloat > 50% | warning | -| IndexBloatHigh | Estimated bloat > 30% | warning | -| TempFileUsageHigh | Temp files > 1 GiB/hour | warning | +1. Open a panel and switch to the **Alert** tab, or use **Alerting → Alert rules**. +2. Build a query against the `PGWatch-Prometheus` datasource using the real metric names exported + by pgwatch (all prefixed `pgwatch_`, for example `pgwatch_pg_stat_activity_count`, + `pgwatch_db_stats_xact_commit`, `pgwatch_db_stats_numbackends`, and + `pgwatch_settings_numeric_value{setting_name="max_connections"}`). See the + [metrics reference](/docs/reference-guides/postgres-ai-monitoring-reference) for the exact + series names. +3. Configure a threshold, an evaluation interval, and a contact point. -## Custom alert rules +### Option 2: vmalert + Alertmanager (not bundled) -### Creating custom rules +VictoriaMetrics supports Prometheus-style alerting through the separate `vmalert` component plus a +Prometheus Alertmanager. Neither is part of the PostgresAI compose stack, so you would run them +yourself and point them at the `sink-prometheus` datasource (`http://sink-prometheus:9090`, +which uses basic auth — `VM_AUTH_USERNAME` / `VM_AUTH_PASSWORD`). -1. Create rules file: +If you go this route, write your own rules against the real `pgwatch_*` series. For example, a +connection-saturation rule: ```yaml -# custom-alerts.yml groups: - - name: custom_postgresql + - name: postgresql_alerts rules: - - alert: SlowQueryDetected + - alert: HighConnectionUsage expr: | - pg_stat_statements_mean_exec_time_seconds - > 1 - for: 10m + sum(pgwatch_db_stats_numbackends) by (cluster, node_name) + / + scalar(max(pgwatch_settings_numeric_value{setting_name="max_connections"})) + > 0.8 + for: 5m labels: severity: warning annotations: - summary: "Slow query detected" - description: "Query {{ $labels.queryid }} averaging {{ $value }}s" + summary: "Connection usage above 80%" + description: "{{ $labels.cluster }} has {{ $value | humanizePercentage }} connections used" ``` -2. Mount into container: - -```yaml -volumes: - - ./custom-alerts.yml:/etc/prometheus/rules/custom-alerts.yml -``` +:::note Verify metric and label names first +Use real series names and labels. pgwatch exports series as `pgwatch_<metric-group>_<column>`, +and the cluster label is `cluster` (not `cluster_name`; `cluster_name` is only a Grafana template +variable). Query `http://localhost:59090/api/v1/query?query=...` against VictoriaMetrics (with VM +basic auth) to confirm a series exists before writing a rule against it. +::: -### Alert rule best practices +## Best practices for any rules you add -**Use `for` duration wisely:** -- Too short — false positives from transient spikes -- Too long — delayed notification +**Use the `for` duration wisely:** +- Too short — false positives from transient spikes. +- Too long — delayed notification. **Recommended `for` values:** + | Alert type | Duration | |------------|----------| | Critical outages | 1m | @@ -119,207 +95,9 @@ volumes: | Resource usage | 10m | | Trend alerts | 30m | -## Notification channels - -### Email - -```yaml -receivers: - - name: email-team - email_configs: - - to: dba-team@example.com - from: alerts@example.com - smarthost: smtp.example.com:587 - auth_username: alerts@example.com - auth_password: ${SMTP_PASSWORD} # Use environment variable -``` - -:::warning Security -Never hardcode SMTP passwords. Use environment variable interpolation or external secrets management. -::: - -### Slack - -```yaml -receivers: - - name: slack-alerts - slack_configs: - - api_url: https://hooks.slack.com/services/xxx/yyy/zzz - channel: '#postgres-alerts' - title: '{{ .GroupLabels.alertname }}' - text: '{{ .Annotations.description }}' -``` - -### PagerDuty - -```yaml -receivers: - - name: pagerduty-critical - pagerduty_configs: - - service_key: <PAGERDUTY_SERVICE_KEY> - severity: '{{ .Labels.severity }}' -``` - -### OpsGenie - -```yaml -receivers: - - name: opsgenie - opsgenie_configs: - - api_key: your-api-key - priority: '{{ if eq .Labels.severity "critical" }}P1{{ else }}P3{{ end }}' -``` - -## Alert routing - -### Route configuration - -```yaml -route: - receiver: default - group_by: [alertname, cluster_name] - group_wait: 30s - group_interval: 5m - repeat_interval: 4h - - routes: - - match: - severity: critical - receiver: pagerduty-critical - repeat_interval: 1h - - - match: - severity: warning - receiver: slack-alerts - repeat_interval: 4h -``` - -### Routing labels - -| Label | Purpose | -|-------|---------| -| severity | critical, warning, info | -| cluster_name | Target specific teams | -| team | Route to team channel | - -## Silencing alerts - -### Temporary silence - -```bash -# Via Alertmanager API -curl -X POST http://localhost:9093/api/v2/silences \ - -H "Content-Type: application/json" \ - -d '{ - "matchers": [ - {"name": "alertname", "value": "HighConnectionUsage"} - ], - "startsAt": "2024-01-15T00:00:00Z", - "endsAt": "2024-01-15T06:00:00Z", - "createdBy": "admin", - "comment": "Planned maintenance" - }' -``` - -### Inhibition rules - -Suppress dependent alerts: - -```yaml -inhibit_rules: - - source_match: - alertname: PostgresDown - target_match: - severity: warning - equal: [cluster_name] -``` - -## Grafana alerting - -### Creating Grafana alerts - -1. Open panel edit mode -2. Click "Alert" tab -3. Configure conditions: - -```yaml -conditions: - - evaluator: - type: gt - params: [0.8] - query: - params: [A, 5m, now] - reducer: - type: avg -``` - -### Grafana contact points - -```yaml -apiVersion: 1 -contactPoints: - - orgId: 1 - name: slack - receivers: - - uid: slack-1 - type: slack - settings: - url: https://hooks.slack.com/xxx -``` - -## Testing alerts - -### Dry run - -```bash -# Check rule syntax -promtool check rules custom-alerts.yml - -# Test PromQL expression -curl 'http://localhost:8428/api/v1/query?query=...' -``` - -### Alert testing - -```bash -# Fire test alert -curl -X POST http://localhost:9093/api/v2/alerts \ - -H "Content-Type: application/json" \ - -d '[{ - "labels": {"alertname": "TestAlert", "severity": "warning"}, - "annotations": {"summary": "Test alert"} - }]' -``` - -## Troubleshooting - -### Alert not firing - -1. Check expression returns data: - ```bash - curl 'http://localhost:8428/api/v1/query?query=<expression>' - ``` - -2. Verify `for` duration has elapsed - -3. Check Alertmanager received alert: - ```bash - curl http://localhost:9093/api/v2/alerts - ``` - -### Alert not delivered - -1. Check Alertmanager logs -2. Verify notification channel configuration -3. Test channel directly: - ```bash - curl -X POST https://hooks.slack.com/xxx -d '{"text":"test"}' - ``` - -### Common issues +## Related -| Issue | Cause | Solution | -|-------|-------|----------| -| No alerts | Expression returns empty | Check metric exists and labels match | -| Too many alerts | Threshold too sensitive | Adjust threshold or add `for` duration | -| Duplicate alerts | Multiple Alertmanagers | Configure HA clustering | +- [Monitoring reference](/docs/reference-guides/postgres-ai-monitoring-reference) — exact metric + and label names to use in alert expressions. +- [pgwatch configuration](/docs/monitoring/configuration/pgwatch-config) — how metric collection + is configured. diff --git a/docs/monitoring/configuration/grafana-config.md b/docs/monitoring/configuration/grafana-config.md index aa9a0ec9..cb2c4154 100644 --- a/docs/monitoring/configuration/grafana-config.md +++ b/docs/monitoring/configuration/grafana-config.md @@ -12,15 +12,21 @@ Configuration for Grafana dashboards and visualization. ### Default credentials -Default admin credentials for local installation: +Default admin credentials for the local Docker installation (set via +`GF_SECURITY_ADMIN_USER` / `GF_SECURITY_ADMIN_PASSWORD` in the compose file): ``` -Username: admin -Password: admin +Username: monitor +Password: demo ``` +The password is `${GF_SECURITY_ADMIN_PASSWORD:-demo}` — override it by setting +`GF_SECURITY_ADMIN_PASSWORD` in `.env`. On Helm, the admin username and password come from the +chart secret keys `grafana-admin-user` / `grafana-admin-password`. + :::warning -Change the default password immediately after first login. +The default password `demo` is for local testing only. Always set a strong +`GF_SECURITY_ADMIN_PASSWORD` before any production or exposed deployment. ::: ### Disable anonymous access @@ -54,46 +60,92 @@ api_url = https://auth.example.com/userinfo ## Data sources -### VictoriaMetrics data source +The stack provisions three data sources automatically (from +`config/grafana/provisioning/datasources/datasources.yml`). They are re-provisioned on every +startup (`editable: false`), so edit the provisioning file rather than the Grafana UI. + +| Data source | Type | URL | Default | +|-------------|------|-----|---------| +| `PGWatch-Prometheus` | `prometheus` | `http://sink-prometheus:9090` | **Yes** | +| `PGWatch-PostgreSQL` | `postgres` | `sink-postgres:5432` (db `measurements`) | No | +| `Infinity` | `yesoreyeram-infinity-datasource` | — | No | -Automatically configured during installation: +The default `PGWatch-Prometheus` source points at the single-node VictoriaMetrics instance +(`sink-prometheus`, internal port 9090) and uses basic auth from `VM_AUTH_USERNAME` / +`VM_AUTH_PASSWORD`: ```yaml apiVersion: 1 datasources: - - name: VictoriaMetrics + - name: PGWatch-Prometheus type: prometheus - url: http://victoriametrics:8428 access: proxy + url: http://sink-prometheus:9090 isDefault: true + basicAuth: true + basicAuthUser: ${VM_AUTH_USERNAME} + secureJsonData: + basicAuthPassword: ${VM_AUTH_PASSWORD} + editable: false ``` ### Adding additional data sources +Add entries to the source provisioning file +`config/grafana/provisioning/datasources/datasources.yml`: + ```yaml datasources: - name: PostgreSQL type: postgres - url: postgresql://host:5432/db + url: host:5432 + database: db user: readonly_user secureJsonData: password: ${DB_PASSWORD} # Use environment variable ``` +The datasources file lives only in the `postgres_ai_configs` volume (Grafana reads it +read-only via `GF_PATHS_PROVISIONING`), and Grafana provisions datasources **only at +container startup**. `postgresai mon update-config` does **not** apply this change — it +regenerates the pgwatch `sources.yml` only, and does not reseed the volume or restart +Grafana. To apply a datasources edit, reseed the config volume (which requires recreating +`config-init` with `docker compose up -d` directly), then restart Grafana so it re-reads the +provisioned file: + +```bash +docker compose run --rm --entrypoint rm config-init /target/.pgai-configs-version +docker compose up -d --force-recreate config-init # recreate config-init -> reseed the volume with the edited file +postgresai mon restart grafana # restart Grafana so it re-provisions from the reseeded volume +``` + +Use `docker compose up -d` here, **not** `postgresai mon start`: because you are editing a live +stack, `mon start` sees the running containers, prints `Monitoring services are already running`, +and exits **without** running `docker compose up -d`, so `config-init` is never recreated and the +edited `datasources.yml` is never reseeded — the subsequent `mon restart grafana` would then +re-provision Grafana from the **old** volume contents. `mon restart` alone would not work either: +`docker compose restart` restarts the existing `config-init` container in place, but with the marker +already gone the reseed only runs when `config-init` is **recreated** by `docker compose up -d`. + ## Dashboard provisioning ### Auto-loading dashboards -PostgresAI dashboards are provisioned automatically: +PostgresAI dashboards are provisioned automatically from +`config/grafana/provisioning/dashboards/dashboards.yml`, which loads the JSON files mounted at +`/postgres_ai_configs/grafana/dashboards`: ```yaml apiVersion: 1 providers: - - name: postgres_ai - folder: postgres_ai + - name: 'PostgresAI Dashboards' + orgId: 1 type: file + disableDeletion: false + updateIntervalSeconds: 10 + allowUiUpdates: true options: - path: /var/lib/grafana/dashboards/postgres_ai + path: /postgres_ai_configs/grafana/dashboards ``` ### Custom dashboard folder @@ -138,18 +190,42 @@ Control when variables are refreshed: ```bash # Use browser time zone -GF_DEFAULT_TIMEZONE=browser +GF_USERS_DEFAULT_TIMEZONE=browser # Use specific time zone -GF_DEFAULT_TIMEZONE=UTC +GF_USERS_DEFAULT_TIMEZONE=UTC ``` +These set Grafana's `[users] default_timezone` setting (the env override for an ini setting is +`GF_<SECTION>_<KEY>`). + ### Theme +New in 0.15, the bundled Grafana ships with **Desert Bloom** as the default theme. It is set in +the provisioned `grafana.ini`: + +```ini +[users] +default_theme = desertbloom + +[feature_toggles] +# Required for the bundled experimental themes (desertbloom, etc.) +enable = grafanaconThemes +``` + +The `grafanaconThemes` feature toggle is enabled by default in the stack so the theme is +available. To revert to a stock theme, override the default: + ```bash -GF_DEFAULT_THEME=dark # dark, light +# Revert to the stock Grafana theme (overrides the [users] default_theme ini setting) +GF_USERS_DEFAULT_THEME=dark # dark, light ``` +:::note +`grafanaconThemes` must remain enabled for `desertbloom` to apply. If you disable it, set +`GF_USERS_DEFAULT_THEME` to `dark` or `light` to avoid falling back to an unavailable theme. +::: + ### Refresh interval Default auto-refresh: @@ -160,9 +236,19 @@ GF_DASHBOARDS_DEFAULT_INTERVAL=15s ## Performance +:::note +The bundled stack ships a minimal `grafana.ini` +(`config/grafana/provisioning/grafana.ini`) that only sets `[analytics]`, +`[users]`, `[feature_toggles]`, `[auth]`, and `[auth.generic_oauth]` keys. The +`grafana.ini` examples below are **optional, generic Grafana customizations**, +not stack defaults — add them yourself if you need them. +::: + ### Query caching -Enable query result caching: +Grafana's built-in query result caching (`[caching]`) is a **Grafana Enterprise** +feature and is **not** available in the OSS `grafana/grafana` image the stack +ships. If you run Grafana Enterprise, enable it with: ```ini [caching] @@ -172,15 +258,25 @@ ttl = 60s ### Max data points -Limit data points returned per query: - -```ini -[server] -router_logging = false +Grafana has **no `grafana.ini` key** that limits the number of points returned +per query. The point count is capped per panel by the **Max data points** +(`maxDataPoints`) query option, set in the panel editor under **Query options** +(or as `"maxDataPoints"` in the panel's dashboard JSON). When left empty, Grafana +auto-derives it from the panel's pixel width; lowering it reduces the resolution +(and cost) of each query: + +```json +// In a panel's dashboard JSON +{ + "maxDataPoints": 500 +} ``` ### Concurrent queries +Size Grafana's own backend database connection pool (this governs connections to +Grafana's config/session database, not to your monitored Postgres): + ```ini [database] max_open_conn = 100 @@ -188,6 +284,10 @@ max_open_conn = 100 ## Embedding +The `[security]` settings below are **optional, generic Grafana customizations** +— the bundled `grafana.ini` does not set any `[security]` keys (admin +credentials are supplied via the `GF_SECURITY_*` env vars instead). + ### Allow embedding in iframes ```ini @@ -235,29 +335,30 @@ grafana-cli plugins install grafana-clock-panel ### Required plugins -PostgresAI dashboards use these plugins: +The stack installs one external plugin (via `GF_INSTALL_PLUGINS` in Docker Compose, or +`grafana.plugins` on Helm): | Plugin | Purpose | |--------|---------| -| Stat panel | Single value displays | -| Time series | Metric charts | -| Table | Data grids | -| Heatmap | Wait event visualization | +| `yesoreyeram-infinity-datasource` | Backs the `Infinity` data source used by some panels | + +The remaining panel types used by the dashboards (stat, time series, table, heatmap) are built +into Grafana and require no extra plugins. ## Resource limits ### Memory -```yaml -# docker-compose.yml -services: - grafana: - deploy: - resources: - limits: - memory: 512M +Grafana's memory limit is set with `mem_limit` (default 512 MiB), overridable via the +`GRAFANA_MEM` `.env` variable (bytes): + +```bash +# .env — raise Grafana's memory limit to 1 GiB +GRAFANA_MEM=1073741824 ``` +See [Resource limits (per service)](/docs/monitoring/configuration#resource-limits-per-service). + ### Concurrent users ```ini diff --git a/docs/monitoring/configuration/index.md b/docs/monitoring/configuration/index.md index d1249490..bb53a967 100644 --- a/docs/monitoring/configuration/index.md +++ b/docs/monitoring/configuration/index.md @@ -21,7 +21,10 @@ Configuration guides for customizing PostgresAI monitoring components. ### CLI installation -Configuration is stored in the monitoring directory `.env` file and can be applied with `update-config`: +Configuration is stored in the monitoring directory `.env` file. `update-config` migrates `.env` +and regenerates the pgwatch `sources.yml`, but it does **not** restart services — keys read by a +service at container startup (e.g. the `VM_*` flags below, consumed by sink-prometheus) only take +effect once that service is recreated: ```bash # Example .env overrides (default VM_RETENTION_PERIOD is 336h ≡ 14 days) @@ -30,6 +33,8 @@ VM_QUERY_DURATION=30s VM_MAX_CONCURRENT_REQUESTS=16 postgresai mon update-config +# These VM_* values are read by sink-prometheus at startup; recreate it to apply: +docker compose up -d --force-recreate sink-prometheus ``` ### Docker Compose @@ -45,11 +50,11 @@ VM_MAX_CONCURRENT_REQUESTS=16 ### Helm -Configuration via `values.yaml`: +Configuration via `values.yaml` (see [Helm installation](/docs/monitoring/getting-started/installation-helm)): ```yaml -monitoring: - retention: 30d +victoriaMetrics: + retentionPeriod: 336h # default; 14 days scrapeInterval: 15s ``` @@ -57,9 +62,89 @@ monitoring: | Setting | Default | Description | |---------|---------|-------------| -| Scrape interval | 15s | How often to collect metrics | -| Retention | 14 days (`336h`) | How long to keep metrics | -| Max connections | 3 | Connections per monitored database | +| Scrape interval | 15s | How often to collect metrics (`victoriaMetrics.scrapeInterval`) | +| Retention | 14 days (`336h`) | How long to keep metrics (`VM_RETENTION_PERIOD` / `victoriaMetrics.retentionPeriod`) | +| Query-id mapping retention | 720 hours (30 days) | How long the Flask backend keeps the queryid → query-text mapping (`QUERYID_RETENTION_HOURS`, a bare integer number of hours — no `h` suffix) | + +## Resource limits (per service) + +New in 0.15, each monitoring-stack service has optional CPU and memory limits exposed as `.env` +variables. All of them are **optional** — leaving them unset preserves the default +laptop/dev sizing and produces no behavior change. Memory limits are in **bytes** (Docker +Compose `mem_limit` convention); `*_CPUS` values are floats (Docker Compose `cpus:` semantics). +Provisioning playbooks can export production-grade values per VM size class without forking the +compose file. + +| Service | CPU variable | Memory variable | Default memory | +|---------|--------------|-----------------|----------------| +| Demo target database | `TARGET_DB_CPUS` (0.2) | `TARGET_DB_MEM` | 768 MiB | +| Demo target standby | `TARGET_STANDBY_CPUS` (0.2) | `TARGET_STANDBY_MEM` | 768 MiB | +| Postgres sink | `SINK_POSTGRES_CPUS` (0.4) | `SINK_POSTGRES_MEM` | 1 GiB | +| VictoriaMetrics sink | `SINK_PROMETHEUS_CPUS` (0.75) | `SINK_PROMETHEUS_MEM` | 1.5 GiB | +| pgwatch (Postgres sink) | `PGWATCH_POSTGRES_CPUS` (0.35) | `PGWATCH_POSTGRES_MEM` | 512 MiB | +| pgwatch (Prometheus sink) | `PGWATCH_PROMETHEUS_CPUS` (0.5) | `PGWATCH_PROMETHEUS_MEM` | 512 MiB | +| Grafana | `GRAFANA_CPUS` (0.5) | `GRAFANA_MEM` | 512 MiB | +| Flask backend | `FLASK_CPUS` (0.5) | `FLASK_MEM` | 1 GiB | +| Reporter | `POSTGRES_REPORTS_CPUS` (1.0) | `POSTGRES_REPORTS_MEM` | 1.75 GiB | +| cAdvisor (self-monitoring) | `CADVISOR_CPUS` (0.25) | `CADVISOR_MEM` | 384 MiB | +| node exporter (self-monitoring) | `NODE_EXPORTER_CPUS` (0.05) | `NODE_EXPORTER_MEM` | 96 MiB | +| postgres exporter (self-monitoring) | `POSTGRES_EXPORTER_CPUS` (0.1) | `POSTGRES_EXPORTER_MEM` | 128 MiB | + +Set the values in the monitoring stack `.env`. These are Compose `cpus:` / `mem_limit:` keys that +only take effect when a container is recreated, so after migrating `.env` with +`postgresai mon update-config` recreate the affected services with +`docker compose up -d --force-recreate <service>` (or set the values before the initial +`docker compose up -d` for manual installs); `update-config` does not recreate services. The +VictoriaMetrics engine tuning flags +(`VM_QUERY_DURATION`, `VM_MAX_CONCURRENT_REQUESTS`) are documented under +[Query and search tuning](/docs/monitoring/configuration/prometheus-config#query-and-search-tuning). + +## Config seeding and operator edits + +The stack seeds its generated configuration once and guards it with a **version marker**, so +operator edits to provisioned config persist across restarts and are not silently overwritten. +The reseed is performed by the `config-init` service: on start it compares the image's `/VERSION` +against the `.pgai-configs-version` marker in the config volume, and reseeds only when they +differ. A reseed therefore happens when you **recreate** the stack on a newer image — i.e. on +`docker compose up -d` after the image tag (and thus the image version) is bumped, since `up -d` +recreates `config-init` from the new image and it then sees the version mismatch. (`postgresai mon +start` runs `docker compose up -d` **only when the stack is stopped** — on an already-running stack +it reports `Monitoring services are already running` and exits without recreating anything — so for +an in-place upgrade of a running stack, run `docker compose up -d` directly to recreate `config-init`, +not `mon start`.) `postgresai mon restart` does **not** trigger a reseed: it runs +`docker compose restart`, which restarts the existing `config-init` container in place on the +**old** image, so it still reads the old `/VERSION`, the marker still matches, and nothing is +re-copied. Note that `postgresai mon update-config` does **not** reseed the volume either: it +migrates the `.env` file (additive required keys), refreshes the CLI-owned `docker-compose.yml` +to match the stack version for non-git/global installs (a no-op for git checkouts; it touches +only the compose file, never `.env`/`instances.yml`/`.pgwatch-config`), and regenerates the +pgwatch sources (`docker compose run --rm sources-generator`). It does not restart Grafana or +sink-prometheus. To force a fresh reseed, remove the version marker from the config volume so +`config-init` re-copies the image defaults on the next start. + +The `config-init` service is the only one that mounts the volume read-write (at `/target`); every +long-running service mounts it read-only (`/postgres_ai_configs:ro`), so you cannot delete the +marker from, say, the Grafana container. The service is also a one-shot init container that exits +immediately, so plain `docker exec config-init …` fails (the container name is +`postgres-ai-config-init` and it is not running). Instead, run a throwaway `config-init` with its +entrypoint overridden to `rm` (its normal entrypoint is the seeder script, which ignores extra +arguments), then restart: + +```bash +docker compose run --rm --entrypoint rm config-init /target/.pgai-configs-version +docker compose up -d --force-recreate config-init +``` + +`docker compose up -d --force-recreate config-init` recreates the one-shot `config-init` container; +with the marker now absent, `init-configs.sh` reseeds unconditionally. (A plain `docker compose up -d` +also works — it recreates `config-init` because nothing else depends on the cleared marker — but the +explicit `--force-recreate config-init` makes the intent unambiguous.) Do **not** use `postgresai mon +start` here: on an already-running stack `mon start` only checks whether the containers are up and, if +they are, prints `Monitoring services are already running` and exits **without** running `docker compose +up -d`, so `config-init` is never recreated and the reseed silently does not happen. Likewise +`postgresai mon restart` only restarts the existing containers in place and would not re-run the seeder +against the cleared volume. Recreating `config-init` on a live stack must therefore go through +`docker compose up -d` directly. ## Sections diff --git a/docs/monitoring/configuration/pgwatch-config.md b/docs/monitoring/configuration/pgwatch-config.md index 00c6a154..c63e4154 100644 --- a/docs/monitoring/configuration/pgwatch-config.md +++ b/docs/monitoring/configuration/pgwatch-config.md @@ -6,228 +6,172 @@ sidebar_position: 2 # pgwatch configuration -Configuration options for the pgwatch metrics collector. +Configuration options for the pgwatch metrics collectors. -## Collection intervals +The 0.15 stack runs **two** pgwatch v3 collectors — one writing to the PostgreSQL sink +(`pgwatch-postgres`) and one writing to the Prometheus/VictoriaMetrics sink +(`pgwatch-prometheus`). Both are configured the same way: from generated `sources.yml` and +`metrics.yml` files, plus a small set of command-line flags. There are **no `PW_*` environment +variables** in this stack — collection is driven by file-based config, not env vars. -### Global interval +## What you edit vs. what is generated -Default collection interval for all metrics: +| File | Edited by you? | Purpose | +|------|----------------|---------| +| `instances.yml` | **Yes** | The list of databases to monitor (connection, preset, tags) | +| `sources.yml` (runtime volume) | No (generated) | Rendered from `instances.yml` by `sources-generator` into the `postgres_ai_configs` volume | +| `metrics.yml` (runtime volume) | Rarely | Metric/SQL definitions and the `full` preset | -```bash -# Set in the monitoring stack .env file when overriding defaults -PW_SCRAPE_INTERVAL=15s - -# Apply generated configuration after editing .env -postgresai mon update-config -``` - -| Interval | Use case | -|----------|----------| -| 10s | High-resolution troubleshooting | -| 15s | Default — balanced | -| 30s | Lower resource usage | -| 60s | Large-scale deployments | - -### Per-metric intervals - -Some metrics use different intervals by default: - -| Metric group | Default interval | Rationale | -|--------------|------------------|-----------| -| pg_stat_statements | 15s | Query metrics — high value | -| pg_stat_activity | 5s | Wait events — time-sensitive | -| Table/index stats | 60s | Slow-changing, expensive | -| Bloat estimates | 300s | Very expensive queries | - -## Connection settings - -### Max connections - -Limit connections to monitored databases: - -```bash -PW_MAX_PARALLEL_CONNECTIONS_PER_DB=3 -``` - -Impact: -- Higher values — faster collection, more load -- Lower values — slower collection, less load - -### Connection timeout - -```bash -PW_CONNECT_TIMEOUT=10s -``` - -### Statement timeout - -Prevent long-running collection queries: - -```bash -PW_STATEMENT_TIMEOUT=30s -``` - -## Metric presets - -### Preset levels - -| Preset | Metrics collected | Use case | -|--------|-------------------|----------| -| basic | pg_stat_database, pg_stat_activity | Minimal monitoring | -| standard | Above + pg_stat_statements, table/index stats | Most deployments | -| full | All available metrics | Deep analysis | -| exhaustive | Full + expensive bloat queries | Troubleshooting | - -```bash -postgresai mon local-install --preset standard -``` - -### Custom metric selection - -Enable specific metrics: - -```bash -PW_ENABLED_METRICS="pg_stat_statements,pg_stat_activity,table_stats" -``` +Nothing named `sources.yml` is committed under `config/`. The `sources-generator` service renders +two copies into the `postgres_ai_configs` volume, one per sink: -Disable specific metrics: +- `/postgres_ai_configs/pgwatch/sources.yml` — for the PostgreSQL-sink collector (note the + directory is `pgwatch/`, **not** `pgwatch-postgres/`) +- `/postgres_ai_configs/pgwatch-prometheus/sources.yml` — for the Prometheus-sink collector -```bash -PW_DISABLED_METRICS="bloat_indexes,bloat_tables" -``` - -## Database filtering - -### Include specific databases +After editing `instances.yml`, re-render `sources.yml` and restart the collectors so they reload +it. `mon update-config` re-renders the file but does **not** restart the collectors, so restart +each one afterward: ```bash -PW_INCLUDE_DATABASES="production,staging" -``` - -### Exclude databases - -```bash -PW_EXCLUDE_DATABASES="template0,template1,postgres" +postgresai mon update-config +postgresai mon restart pgwatch-postgres +postgresai mon restart pgwatch-prometheus ``` -## Custom metrics +When running Docker Compose manually, the `sources-generator` service re-renders both +`sources.yml` files from `instances.yml` on `docker compose up`. -### Adding a custom metric +## Defining databases (instances.yml) -1. Create metric definition file: +Each entry in `instances.yml` is one monitored database: ```yaml -# custom-metrics/my_metric.yaml -metrics: - my_custom_metric: - query: | - select - datname, - count(*) as connection_count - from pg_stat_activity - where state = 'active' - group by datname - interval: 30s - labels: - - datname - value_columns: - - connection_count +- name: prod-primary + conn_str: postgresql://postgres_ai_mon:pass@prod-db:5432/app + preset_metrics: full + custom_metrics: + is_enabled: true + group: production + custom_tags: + env: production + cluster: prod + node_name: primary ``` -2. Mount into container: - -```yaml -volumes: - - ./custom-metrics:/etc/pgwatch/custom-metrics -``` - -### Metric definition fields - | Field | Required | Description | |-------|----------|-------------| -| query | Yes | SQL query to execute | -| interval | No | Override default interval | -| labels | No | Columns to use as labels | -| value_columns | Yes | Columns containing metric values | -| is_counter | No | Mark as counter vs gauge | +| `name` | Yes | Unique name for the source | +| `conn_str` | Yes | PostgreSQL connection string for the monitoring role | +| `preset_metrics` | Yes | Metrics preset to collect (the stack ships the `full` preset) | +| `custom_metrics` | No | Map of additional metric definitions (leave empty to use only the preset) | +| `is_enabled` | Yes | Whether this source is collected | +| `group` | No | Logical group label | +| `custom_tags` | No | Extra labels (e.g. `env`, `cluster`, `node_name`) used as Grafana variables | -## Logging +Use the `cluster` and `node_name` custom tags to switch between environments in Grafana. -### Log level - -```bash -PW_LOG_LEVEL=info # debug, info, warn, error -``` +## Metric presets -### Log format +The collectors apply a metrics preset named in `preset_metrics`. The stack ships a **`full`** +preset, but note that the two collectors use **different** `metrics.yml` files with +**different** `full` presets — they are not the same metric set: + +- `config/pgwatch-prometheus/metrics.yml` (the Prometheus/VictoriaMetrics collector, which feeds + the Grafana dashboards) defines a `full` preset of 49 metric groups, described as + *"almost all available metrics for a even deeper performance understanding"*. It includes groups + like `bgwriter`, `checkpointer`, `db_size`, `db_stats`, `table_stats`, `pg_stat_statements`, + `wait_events`, and `pg_stat_activity` (it does **not** contain `pgss_queryid_queries` or + `index_definitions`): + + ```yaml + presets: + full: + description: almost all available metrics for a even deeper performance understanding + metrics: + bgwriter: 30 + db_stats: 30 + table_stats: 30 + pg_stat_statements: 30 + wait_events: 15 + pg_stat_activity: 15 + # ... 49 groups total + ``` + +- `config/pgwatch-postgres/metrics.yml` (the Postgres-sink collector) defines its own, much + smaller `full` preset, described as *"Full metrics for PostgreSQL storage"*, containing only two + groups: + + ```yaml + presets: + full: + description: "Full metrics for PostgreSQL storage" + metrics: + pgss_queryid_queries: 30 + index_definitions: 3600 + ``` + +The preset maps each metric group to its collection interval (in seconds). To change which metrics +are collected or how often, edit the relevant `metrics.yml` definitions (advanced) or add entries +under `custom_metrics` for a specific database in `instances.yml`. + +## Collector command-line flags + +Both collectors are started with the same flag shape (see `docker-compose.yml`); the +Prometheus-sink collector differs only in its sources/metrics paths, sink URL, and web address: -```bash -PW_LOG_FORMAT=json # json, text -``` +```yaml +pgwatch-prometheus: + command: + - "--sources=/postgres_ai_configs/pgwatch-prometheus/sources.yml" + - "--metrics=/postgres_ai_configs/pgwatch-prometheus/metrics.yml" + - "--sink=prometheus://0.0.0.0:9091/pgwatch" + - "--web-addr=:8089" + - "--log-level=error" +``` + +| Flag | Purpose | +|------|---------| +| `--sources` | Path to the generated `sources.yml` | +| `--metrics` | Path to the `metrics.yml` definitions | +| `--sink` | Where collected metrics are written (Postgres or Prometheus sink) | +| `--web-addr` | Address for the collector's built-in web/health endpoint | +| `--log-level` | Log verbosity (`error` by default; also `info`, `warn`, `debug`) | + +On Helm, the equivalent log level is set with `pgwatchPostgres.logLevel` / +`pgwatchPrometheus.logLevel` (default `error`). ## Resource limits -### Memory +Collector CPU and memory limits are exposed as optional `.env` variables (Docker Compose +`mem_limit` is in bytes, `cpus:` is a float). Defaults preserve laptop/dev sizing: -Limit pgwatch memory usage: - -```yaml -# docker-compose.yml -services: - pgwatch: - deploy: - resources: - limits: - memory: 512M -``` - -### CPU +```bash +# pgwatch (Postgres sink) — defaults: 0.35 CPU, 512 MiB +PGWATCH_POSTGRES_CPUS=0.35 +PGWATCH_POSTGRES_MEM=536870912 -```yaml -deploy: - resources: - limits: - cpus: '1.0' +# pgwatch (Prometheus sink) — defaults: 0.5 CPU, 512 MiB +PGWATCH_PROMETHEUS_CPUS=0.5 +PGWATCH_PROMETHEUS_MEM=536870912 ``` -## High availability - -### Multiple pgwatch instances - -For HA, run multiple pgwatch instances with load balancing: - -```yaml -services: - pgwatch-1: - environment: - PW_INSTANCE_ID: pgwatch-1 - PW_CLUSTER_NODES: "pgwatch-1:8080,pgwatch-2:8080" - - pgwatch-2: - environment: - PW_INSTANCE_ID: pgwatch-2 - PW_CLUSTER_NODES: "pgwatch-1:8080,pgwatch-2:8080" -``` +See [Resource limits (per service)](/docs/monitoring/configuration#resource-limits-per-service) +for the full table. On Helm, set `pgwatchPostgres.resources` / `pgwatchPrometheus.resources`. ## Troubleshooting -### Check collection status - -```bash -curl http://localhost:8080/metrics | grep pgwatch_ -``` - -### View collected metrics +### Check the collector logs ```bash -curl http://localhost:8080/api/v1/metrics +docker compose logs pgwatch-postgres pgwatch-prometheus | grep -i error ``` ### Common issues | Issue | Cause | Solution | |-------|-------|----------| -| No metrics | Connection failed | Check credentials and network | -| Missing pg_stat_statements | Extension not loaded | Add to shared_preload_libraries | -| High CPU on target | Expensive queries | Use lower preset or longer intervals | +| No metrics | Connection failed | Check the `conn_str` credentials and network reachability | +| Missing pg_stat_statements | Extension not loaded | Add `pg_stat_statements` to `shared_preload_libraries` and restart | +| High CPU on target | Expensive queries | Reduce the number of monitored databases or raise preset intervals | +| Source not collected | `is_enabled: false` | Set `is_enabled: true` in `instances.yml`, run `mon update-config` to re-render `sources.yml`, then restart the collectors so they reload it: `mon restart pgwatch-postgres` and `mon restart pgwatch-prometheus` | diff --git a/docs/monitoring/configuration/prometheus-config.md b/docs/monitoring/configuration/prometheus-config.md index b5de4e5b..11f29f79 100644 --- a/docs/monitoring/configuration/prometheus-config.md +++ b/docs/monitoring/configuration/prometheus-config.md @@ -10,6 +10,93 @@ Configuration for the time-series database storing monitoring metrics. PostgresAI uses VictoriaMetrics by default — a Prometheus-compatible TSDB with better performance and compression. +## Authentication and security + +New in 0.15, the VictoriaMetrics endpoint is protected with HTTP basic auth. Two `.env` keys +are now **required**: + +```bash +VM_AUTH_USERNAME=vmauth +VM_AUTH_PASSWORD=<non-empty secret> +``` + +| Variable | Default | Purpose | +|----------|---------|---------| +| `VM_AUTH_USERNAME` | `vmauth` | Basic-auth username for the VictoriaMetrics endpoint | +| `VM_AUTH_PASSWORD` | (none — must be set) | Basic-auth password; generate with `openssl rand -base64 18` | + +**What it protects and why it is required:** + +- It guards the VictoriaMetrics HTTP API so the metrics store is not exposed unauthenticated. +- Grafana's provisioned datasource authenticates with these same credentials. If they are + missing or empty, **Grafana cannot query VictoriaMetrics and all dashboards show no data**. +- The shipped `.env.example` ships empty placeholders that make Docker Compose fail fast until + a value is set, to prevent an accidentally unauthenticated deployment. + +The CLI (`postgresai mon local-install` / `mon update` / `mon update-config`) generates and +preserves these automatically. If you run Docker Compose directly, you must add them before +`docker compose up -d` — see +[Upgrading the monitoring stack](/docs/monitoring/getting-started/upgrade#required-new-keys-in-015-victoriametrics-basic-auth). + +### Rotating VictoriaMetrics credentials + +The monitoring project directory (`~/.config/postgresai/monitoring/` for npx/global installs) +contains only `docker-compose.yml`, `instances.yml`, `.pgwatch-config`, and `.env` — the +`scripts/` directory is **not** copied there. So the simplest path that works for every install +type is to set a new password in `.env` and then recreate the affected services: + +```bash +# Edit ~/.config/postgresai/monitoring/.env and set a new VM_AUTH_PASSWORD, e.g. +# VM_AUTH_PASSWORD=$(openssl rand -base64 18) +# then recreate sink-prometheus (to pick up the new -httpAuth password) and Grafana +# (to re-provision its datasource with the new password): +docker compose up -d --force-recreate sink-prometheus grafana +``` + +:::warning `mon update-config` does not rotate the password +Running `postgresai mon update-config` alone is **not** enough here: in 0.15 it migrates required +`.env` keys (additive), refreshes the CLI-owned `docker-compose.yml` for non-git installs (a +no-op for git checkouts), and regenerates the pgwatch sources (`docker compose run --rm +sources-generator`). It does not restart Grafana or sink-prometheus. Grafana provisions its datasource +(with `editable: false`) only at container startup, so a rotated `VM_AUTH_PASSWORD` does not take +effect in the running Grafana until it is recreated — which is exactly why the bundled +`scripts/rotate-vm-auth.sh` runs `docker compose up -d --force-recreate sink-prometheus grafana`. +::: + +If you are working from a full git checkout of the repository, the bundled helper +`scripts/rotate-vm-auth.sh` does the same thing in one step (run it from the repo root, not from +the monitoring project directory): + +```bash +VM_AUTH_PASSWORD="$(openssl rand -base64 18)" ./scripts/rotate-vm-auth.sh +``` + +After rotating, confirm the recreated services are running: + +```bash +postgresai mon health +``` + +`mon health` only checks that each container is running (via `docker inspect`); it does not query +Grafana or VictoriaMetrics, so it will not surface a stale credential on its own. To confirm the +new credentials actually work, open a dashboard in Grafana (it should render data, not an auth +error) or query the VictoriaMetrics API directly with the new basic-auth credentials (the bundled +stack publishes VictoriaMetrics on host port `59090`): + +```bash +curl -fsS -u "${VM_AUTH_USERNAME:-vmauth}:${VM_AUTH_PASSWORD}" \ + 'http://localhost:59090/api/v1/query?query=up' +``` + +A `200` with a JSON result confirms the new credentials are accepted; a `401` means Grafana would +also fail to authenticate. + +:::note Not the same as the database role +This rotates the *VictoriaMetrics* basic-auth credentials. To rotate the *monitored database* +role's password instead, see +[Rotate monitoring database credentials](/docs/monitoring/troubleshooting/permissions#rotate-monitoring-database-credentials). +::: + ## Retention ### Setting retention period @@ -19,8 +106,11 @@ PostgresAI uses VictoriaMetrics by default — a Prometheus-compatible TSDB with # Default is 336h (14 days); the value below overrides it to 30 days. VM_RETENTION_PERIOD=30d -# Apply generated configuration after editing .env +# Migrate .env, then recreate sink-prometheus so it reads the new value. +# `mon update-config` migrates .env but does NOT restart sink-prometheus, +# which only reads VM_RETENTION_PERIOD at container startup. postgresai mon update-config +docker compose up -d --force-recreate sink-prometheus ``` | Retention | Disk usage (approx) | Use case | @@ -30,24 +120,38 @@ postgresai mon update-config | 30d | ~2 GiB per database | Production | | 90d | ~6 GiB per database | Compliance requirements | -### Retention with downsampling +### Query-id mapping retention -For long retention with reduced storage: +New in 0.15. The Flask backend keeps a mapping from `queryid` to query text so dashboards can +show readable query text instead of numeric IDs. How long that mapping is retained is +controlled separately from metrics retention: ```bash -# Keep full resolution for 14 days -# Downsample to 1-minute resolution for 90 days -VM_RETENTION_PERIOD=14d -VM_DOWNSAMPLING_PERIOD=90d:1m +# Hours to retain the queryid -> query text mapping in the Flask backend. +# Independent of VM_RETENTION_PERIOD; for new plan-specific configuration, +# use the same window as VM_RETENTION_PERIOD expressed in hours. +QUERYID_RETENTION_HOURS=720 ``` -## Storage +| Setting | Controls | Independent of | +|---------|----------|----------------| +| `VM_RETENTION_PERIOD` | How long time-series metrics are kept in VictoriaMetrics | — | +| `QUERYID_RETENTION_HOURS` | How long the query-id → query-text mapping is kept | `VM_RETENTION_PERIOD` | -### Data directory +Paired examples: -```bash -VM_STORAGE_DATA_PATH=/var/lib/victoriametrics -``` +| History | `VM_RETENTION_PERIOD` | `QUERYID_RETENTION_HOURS` | +|---------|-----------------------|---------------------------| +| Short (7 days) | `168h` | `168` | +| Long (6 months) | `4380h` | `4380` | + +Migrate `.env` with `postgresai mon update-config`, then recreate the services that read these +values at startup — `VM_RETENTION_PERIOD` is read by sink-prometheus and `QUERYID_RETENTION_HOURS` +by the Flask backend: `docker compose up -d --force-recreate sink-prometheus monitoring_flask_backend` +(`update-config` does not restart services). When running Compose manually, set the keys before the +initial `docker compose up -d`. + +## Storage ### Disk allocation @@ -62,169 +166,110 @@ Typical values: - ~3-5 bytes/sample (VictoriaMetrics with typical monitoring data) - 14 days = 1,209,600 seconds -Result: ~12 GiB per database for 14-day retention +Worked example: 100 × 5 × 1,209,600 ≈ 605 MB of compressed samples; allowing for indexes and +on-disk overhead this rounds to roughly **~1 GiB per database for 14-day retention**, matching +the 14d row in the [retention table](#setting-retention-period) above. ### Memory allocation -VictoriaMetrics uses memory for caching: +VictoriaMetrics sizes its caches from the container memory limit. In this stack the service is +named `sink-prometheus` and its limit is set with `mem_limit` (bytes), overridable via the +`SINK_PROMETHEUS_MEM` `.env` variable (default 1.5 GiB): -```yaml -# docker-compose.yml -services: - victoriametrics: - deploy: - resources: - limits: - memory: 2G +```bash +# .env — raise the VictoriaMetrics memory limit to 2 GiB +SINK_PROMETHEUS_MEM=2147483648 ``` -Rule of thumb: 2 GiB minimum, add 512 MiB per 10 monitored databases. +`SINK_PROMETHEUS_MEM` sets the Compose `mem_limit`, which only takes effect when the +container is recreated — `postgresai mon update-config` does not recreate services, so +apply it by recreating sink-prometheus: `docker compose up -d --force-recreate sink-prometheus`. +See [Resource limits (per service)](/docs/monitoring/configuration#resource-limits-per-service). ## Scrape configuration -### Scrape interval - -How often VictoriaMetrics pulls from pgwatch: - -```yaml -# prometheus.yml or vmagent config -scrape_configs: - - job_name: pgwatch - scrape_interval: 15s - static_configs: - - targets: ['pgwatch:8080'] -``` - -### Scrape timeout - -```yaml -scrape_timeout: 10s -``` - -### Labels - -Add global labels to all metrics: +VictoriaMetrics scrapes the collectors and self-monitoring exporters using the bundled +`config/prometheus/prometheus.yml`. The main job pulls metrics from the `pgwatch-prometheus` +collector: ```yaml global: - external_labels: - environment: production - region: us-east-1 -``` - -## Query settings + scrape_interval: 15s + scrape_timeout: 10s -### Query timeout - -```bash -VM_SEARCH_QUERY_TIMEOUT=30s -``` - -### Max concurrent queries - -```bash -VM_SEARCH_MAX_CONCURRENT_REQUESTS=16 +scrape_configs: + # Main monitoring target: pgwatch metrics + - job_name: 'pgwatch-prometheus' + static_configs: + - targets: ['pgwatch-prometheus:9091'] + scrape_interval: 30s + scrape_timeout: 25s + metrics_path: /pgwatch + sample_limit: 10000 ``` -### Max query memory +The same file also defines self-monitoring jobs (`victoriametrics`, `self-cadvisor`, +`self-node-exporter`, `self-postgres-exporter`) and a `query-info` job that scrapes the Flask +backend's `/query_info_metrics` endpoint every 5 minutes for query-text labels. -```bash -VM_SEARCH_MAX_MEMORY_PER_QUERY=512MB -``` +:::note Basic auth in the scrape file +The `victoriametrics` self-scrape job authenticates with `%{VM_AUTH_USERNAME}` / +`%{VM_AUTH_PASSWORD}` — VictoriaMetrics expands these percent-brace env references in the scrape +file (this is a VictoriaMetrics extension, not standard Prometheus syntax). +::: -## Remote write +## Query and search tuning -### Writing to external TSDB +VictoriaMetrics query/search behavior is tuned with two `.env` variables. These map directly to +the underlying VictoriaMetrics `-search.*` flags and have the same literal defaults whether or +not you set them — leaving them unset is a no-op. Set them in the monitoring stack `.env`, then +migrate `.env` with `postgresai mon update-config` and recreate sink-prometheus so it picks up +the new flags (`update-config` does not restart sink-prometheus, which reads these only at +container startup). -Send metrics to additional destinations: - -```yaml -# VictoriaMetrics remote write --remoteWrite.url=https://external-tsdb.example.com/api/v1/write --remoteWrite.basicAuth.username=user --remoteWrite.basicAuth.password=secret -``` - -### Multi-tenancy - -For SaaS deployments with multiple customers: +| `.env` variable | Default | VictoriaMetrics flag | Purpose | +|-----------------|---------|----------------------|---------| +| `VM_QUERY_DURATION` | `30s` | `-search.maxQueryDuration` | Maximum duration of a single query before it is cancelled | +| `VM_MAX_CONCURRENT_REQUESTS` | `16` | `-search.maxConcurrentRequests` | Maximum number of concurrent search requests | ```bash -# Enable multi-tenancy -VM_ENABLE_MULTI_TENANCY=true - -# Tenant ID from label -VM_TENANT_LABEL=customer_id -``` +# Example overrides in .env +VM_QUERY_DURATION=30s +VM_MAX_CONCURRENT_REQUESTS=16 -## Clustering - -### VictoriaMetrics cluster mode - -For high availability and horizontal scaling: - -```yaml -services: - vmstorage-1: - image: victoriametrics/vmstorage - command: - - -storageDataPath=/data - - -retentionPeriod=30d - - vminsert: - image: victoriametrics/vminsert - command: - - -storageNode=vmstorage-1:8400,vmstorage-2:8400 - - -replicationFactor=2 - - vmselect: - image: victoriametrics/vmselect - command: - - -storageNode=vmstorage-1:8401,vmstorage-2:8401 +postgresai mon update-config +docker compose up -d --force-recreate sink-prometheus ``` -### Replication - -```bash -# Replicate data across N storage nodes --replicationFactor=2 -``` +:::note Canonical variable names +Earlier drafts referenced `VM_SEARCH_*` names; the shipped 0.15 variables are +`VM_QUERY_DURATION` and `VM_MAX_CONCURRENT_REQUESTS` as listed above. These match +[`.env` configuration](/docs/monitoring/configuration#cli-installation). +::: + +:::note Single-node VictoriaMetrics +This stack ships a **single-node** `victoriametrics/victoria-metrics` instance (the +`sink-prometheus` service). VictoriaMetrics cluster mode, remote write, multi-tenancy, and +downsampling are upstream/Enterprise features that are **not configured by this stack** and have +no `.env` or chart knobs here. The only supported VictoriaMetrics tuning is retention +(`VM_RETENTION_PERIOD`), the search limits above (`VM_QUERY_DURATION`, +`VM_MAX_CONCURRENT_REQUESTS`), basic auth (`VM_AUTH_USERNAME` / `VM_AUTH_PASSWORD`), and the +container memory limit (`SINK_PROMETHEUS_MEM`). +::: ## Backup -### Creating backups +VictoriaMetrics backups use its native snapshot tooling. In the Docker Compose stack the +VictoriaMetrics API is published on host port `59090` (container port 9090): ```bash -# Snapshot-based backup -curl http://localhost:8428/snapshot/create +# Create a snapshot (VM basic auth required) +curl -u "$VM_AUTH_USERNAME:$VM_AUTH_PASSWORD" \ + http://localhost:59090/snapshot/create -# Download backup +# Back up / restore with vmbackup / vmrestore (run against the data path) vmbackup -snapshotName=<name> -dst=s3://bucket/path -``` - -### Restore - -```bash -vmrestore -src=s3://bucket/path -storageDataPath=/var/lib/victoriametrics -``` - -## Performance tuning - -### Compaction - -```bash -# Merge compaction interval -VM_STORAGE_MIN_FREE_DISK_SPACE_BYTES=1 GiB -``` - -### Cache sizes - -```bash -# Index cache -VM_STORAGE_CACHE_SIZE_STORAGE_TSID=256MB - -# Data cache -VM_STORAGE_CACHE_SIZE_INDEX_DB=128MB +vmrestore -src=s3://bucket/path -storageDataPath=/victoria-metrics-data ``` ## Monitoring VictoriaMetrics @@ -247,7 +292,9 @@ vm_data_size_bytes ### Check ingestion ```bash -curl http://localhost:8428/api/v1/status/tsdb +# Docker Compose publishes VictoriaMetrics on host port 59090 (container port 9090); VM basic auth +curl -u "$VM_AUTH_USERNAME:$VM_AUTH_PASSWORD" \ + http://localhost:59090/api/v1/status/tsdb ``` ### Debug slow queries @@ -261,6 +308,7 @@ curl http://localhost:8428/api/v1/status/tsdb | Issue | Cause | Solution | |-------|-------|----------| -| High memory | Large queries | Increase VM_SEARCH_MAX_MEMORY_PER_QUERY | -| Slow queries | No indexes | Check cardinality, reduce label count | -| Disk full | Retention too long | Reduce retention or add storage | +| High memory | Large / concurrent queries | Lower `VM_MAX_CONCURRENT_REQUESTS`, reduce query cardinality | +| Slow queries | High cardinality | Check cardinality, reduce label count; consider lowering `VM_QUERY_DURATION` to fail fast | +| Disk full | Retention too long | Reduce `VM_RETENTION_PERIOD` or add storage | +| No data in Grafana | Missing VM auth | Set `VM_AUTH_USERNAME` / `VM_AUTH_PASSWORD`, run `mon update-config`, then recreate sink-prometheus + Grafana (`docker compose up -d --force-recreate sink-prometheus grafana`) so both pick up the credentials | diff --git a/docs/monitoring/dashboards/01-node-overview.md b/docs/monitoring/dashboards/01-node-overview.md index 02f4b70c..44c7ddb2 100644 --- a/docs/monitoring/dashboards/01-node-overview.md +++ b/docs/monitoring/dashboards/01-node-overview.md @@ -46,17 +46,17 @@ Similar to AWS RDS Performance Insights, this panel shows wait event distributio |----------|-------|-----------| | CPU* | Green | On-CPU activity (query execution) | | IO | Blue | Disk I/O waits | -| LWLock | Red | Lightweight lock contention | -| Lock | Orange | Row/table lock waits | -| Timeout | Gray | Sleep/timeout events | +| Lock | Red | Row/table lock waits | +| LWLock | Dark red | Lightweight lock contention | +| Timeout | Brown (`#6f450c`) | Sleep/timeout events | **Healthy state:** - Mostly green (CPU) with occasional blue (IO) - Total height below `max_connections * 0.5` **Warning signs:** -- Sustained red (LWLock) — Internal contention -- Sustained orange (Lock) — Application-level locking issues +- Sustained dark red (LWLock) — Internal contention +- Sustained red (Lock) — Application-level locking issues - Spikes above normal baseline — Sudden load increase ### Sessions @@ -83,17 +83,17 @@ Focused view of sessions doing actual work. - Stable pattern matching application load - No sudden spikes without corresponding application events -### TPS (transactions per second) +### TPS **What it shows:** -- Commit rate +- Transactions per second: commit rate - Rollback rate (if significant) **Use for:** - Capacity baseline - Detecting throughput drops -### QPS (queries per second) +### QPS (pg_stat_statements) From `pg_stat_statements`, showing actual query execution rate. @@ -119,12 +119,13 @@ From `pg_stat_statements`, showing actual query execution rate. 1. Verify pgwatch is collecting metrics: ```bash - docker compose logs pgwatch | grep -i "wait\|session" + docker compose logs pgwatch-postgres pgwatch-prometheus | grep -i "wait\|session" ``` -2. Check VictoriaMetrics has data: +2. Check VictoriaMetrics has wait-event data backing the ASH panel (host port `59090`, VM basic auth): ```bash - curl 'http://localhost:8428/api/v1/query?query=pg_stat_activity_count' + curl -u "$VM_AUTH_USERNAME:$VM_AUTH_PASSWORD" \ + 'http://localhost:59090/api/v1/query?query=pgwatch_wait_events_total' ``` ### Sessions count doesn't match pg_stat_activity diff --git a/docs/monitoring/dashboards/02-query-analysis.md b/docs/monitoring/dashboards/02-query-analysis.md index 0ee921b4..930f4b27 100644 --- a/docs/monitoring/dashboards/02-query-analysis.md +++ b/docs/monitoring/dashboards/02-query-analysis.md @@ -111,31 +111,31 @@ Identify the most resource-intensive queries across multiple dimensions: | `cluster_name` | Cluster filter | Your clusters | | `node_name` | Node filter | Specific nodes | | `db_name` | Database filter | Filter by database | -| `top_n` | Number of queries | 5, 10, 20, 50 | +| `top_n` | Number of queries | 5, 10, 15, 20, 50, 100, 500 | | `legend_label` | Query display format | See below | ### Legend label options -| Value | Shows | Example | -|-------|-------|---------| -| `queryid` | Numeric ID | `-4021163671685...` | -| `displayname` | Smart truncation | `update pgbench_ac...` | -| `displayname_long` | Full context | `update pgbench_accounts set abalance = abalance + $1 where aid = $2` | +The `legend_label` variable (**Query texts**) has two options: + +| Option | Value | Shows | +|--------|-------|-------| +| Smart truncation (default) | `displayname_long` | Query text with smart truncation | +| Raw texts | `displayname_raw_long` | Full raw query text | :::tip -Use `displayname_long` during debugging to see complete query context. +Switch to **Raw texts** (`displayname_raw_long`) when you need the complete, untruncated query text. ::: ## Detailed table view Expand the **Detailed table view** section for a tabular breakdown including: -- queryid +- Query ID - Query text - Calls -- Total time -- Mean time +- Exec time (ms) +- Exec time/call (ms) - Rows -- Hit ratio ![Detailed table view](/img/monitoring/dashboards/02-query-analysis-table-view.png) @@ -158,9 +158,12 @@ The dashboard shows actual query text (not just queryid) by: ### Query texts show as "unknown" or queryid only -1. Check Flask backend is running: +1. Check the Flask backend is running. It is not published to the host, so check from inside the + container. The backend image is `python:3.11-slim` and has no `curl`, so hit the endpoint with + the bundled Python interpreter: ```bash - curl http://localhost:8000/health + docker compose exec monitoring_flask_backend \ + python -c "import urllib.request,sys; sys.exit(0 if urllib.request.urlopen('http://localhost:8000/health').status==200 else 1)" ``` 2. Verify pg_stat_statements has data: @@ -190,4 +193,5 @@ limit 10; select pg_stat_statements_reset(); -- caution: resets all stats ``` -Or wait for the next scrape interval (default: 60s). +Or wait for the next collection interval. `pg_stat_statements` is collected every 30s by default +in the `full` preset (activity metrics such as `pg_stat_activity` and `wait_events` every 15s). diff --git a/docs/monitoring/dashboards/03-single-query.md b/docs/monitoring/dashboards/03-single-query.md index 825edd09..8099ef7a 100644 --- a/docs/monitoring/dashboards/03-single-query.md +++ b/docs/monitoring/dashboards/03-single-query.md @@ -29,12 +29,20 @@ When you've identified a problematic query in [02. Query analysis](/docs/monitor ### Query text -Displays the full, non-truncated query text for the selected `queryid`. +A table at the top of the dashboard displays the full, non-truncated query text for the selected `query_id`. :::tip The query shown uses parameter placeholders (`$1`, `$2`). For actual parameter values, check application logs. ::: +### Active session history + +**What it shows:** +- ASH-style breakdown of the wait events sampled for this `query_id` over time + +**Use for:** +- Seeing what this specific query spends its time waiting on (CPU, IO, locks, LWLocks) + ### Calls per second **What it shows:** @@ -71,17 +79,6 @@ The query shown uses parameter placeholders (`$1`, `$2`). For actual parameter v - Prioritizing optimization efforts - Measuring optimization impact -### Planning time - -**What it shows:** -- Query planning overhead -- Relevant for frequently executed queries - -**When planning time matters:** -- Queries with < 10ms execution time -- High-frequency OLTP queries -- Complex JOINs that benefit from plan caching - ### Rows per call **What it shows:** @@ -92,29 +89,39 @@ The query shown uses parameter placeholders (`$1`, `$2`). For actual parameter v - High rows fetched, low rows returned = inefficient filtering - Growing over time = data growth impact -### Shared buffer usage +### shared_blks_hit (in bytes) **What it shows:** -- Buffer hits vs physical reads +- Shared buffer hits for this query (total and per call), expressed in bytes - Cache efficiency for this query **Healthy state:** -- Hit ratio > 99% for frequently accessed data -- Low physical reads +- High hit volume relative to physical reads for frequently accessed data + +### WAL and temp file usage + +**What it shows:** +- WAL bytes and WAL fpi (full page images) generated by this query, total and per call +- Temp bytes read and written, total and per call + +**Use for:** +- Spotting queries that generate excessive WAL (write amplification) +- Catching queries that spill to temp files (raise `work_mem`) ## Variables | Variable | Purpose | How to Get | |----------|---------|------------| -| `queryid` | Query identifier | From Dashboard 02 or pg_stat_statements | +| `query_id` | Query identifier (textbox) | From Dashboard 02 or pg_stat_statements | | `cluster_name` | Cluster filter | Your cluster | | `node_name` | Node filter | Primary or replica | +| `db_name` | Database filter | Database names or `All` | -### Finding the queryid +### Finding the query_id From [02. Query analysis](/docs/monitoring/dashboards/query-analysis): 1. Hover over a query in any chart -2. Note the queryid from the legend +2. Note the queryid from the legend (it populates the `query_id` textbox here) From PostgreSQL directly: ```sql diff --git a/docs/monitoring/dashboards/04-wait-events.md b/docs/monitoring/dashboards/04-wait-events.md index e54d6e7c..1522b1a4 100644 --- a/docs/monitoring/dashboards/04-wait-events.md +++ b/docs/monitoring/dashboards/04-wait-events.md @@ -47,17 +47,22 @@ This dashboard uses wait event data collected from `pg_stat_activity` by pgwatch ## Key panels -### Wait event distribution +The dashboard has three panels, each an Active Session History view at a different level of detail: +**Active session history** (grouped by wait event type), **Active session history by event type** +(adds the specific wait event), and **Active session history by event type and event** (further +broken down per `query_id`). + +### Active session history **What it shows:** -- Stacked area chart of wait events over time +- Stacked bar chart of active sessions by wait event type over time - Each color represents a wait event type **Wait event categories:** | Category | Description | Common events | |----------|-------------|---------------| -| **CPU** | On-CPU processing | `CPU` | +| **CPU** | On-CPU processing | `CPU*` | | **IO** | Disk I/O operations | `DataFileRead`, `WALWrite` | | **LWLock** | Internal PostgreSQL locks | `BufferContent`, `LockManager` | | **Lock** | Row/table locks | `tuple`, `transactionid` | @@ -65,17 +70,11 @@ This dashboard uses wait event data collected from `pg_stat_activity` by pgwatch | **Activity** | Background processes | `LogicalLauncherMain` | | **IPC** | Inter-process communication | `BgWorkerStartup` | -### Top wait events - -**What it shows:** -- Ranked list of most common wait events -- Percentage of total wait time - -**Interpretation guide:** +**Interpretation guide** for the most common wait events you will see in these panels: | Wait event | Meaning | Action | |------------|---------|--------| -| `CPU` | Query processing | Normal if workload-appropriate | +| `CPU*` | Query processing | Normal if workload-appropriate | | `DataFileRead` | Reading from disk | Check shared_buffers, add memory | | `DataFileWrite` | Writing to disk | Normal for writes | | `WALWrite` | WAL I/O | Check storage speed | @@ -83,13 +82,17 @@ This dashboard uses wait event data collected from `pg_stat_activity` by pgwatch | `Lock:tuple` | Row lock wait | Check for lock conflicts | | `Lock:transactionid` | Transaction wait | Long transactions blocking | -### Wait events by database +### Active session history by event type -Breakdown showing which databases contribute most to waits. +**What it shows:** +- The same ASH view, additionally split out by the specific wait event (`wait_event`) within each + type, so you can see exactly which event dominates a wait type -### Wait events by query +### Active session history by event type and event -Links wait events to specific queries (when available). +**What it shows:** +- The ASH view further attributed to the `query_id` responsible, linking waits to specific queries + (when captured during sampling) **Limitations:** - Only captures queries active during sampling @@ -138,10 +141,11 @@ Lightweight locks are internal to PostgreSQL: | Variable | Purpose | |----------|---------| +| `wait_event_type` | Filter by wait event type | +| `wait_event` | Filter by specific wait event | | `cluster_name` | Cluster filter | | `node_name` | Node filter | | `db_name` | Database filter | -| `wait_event_type` | Filter by event type | ## Related dashboards @@ -155,23 +159,27 @@ Lightweight locks are internal to PostgreSQL: 1. Verify pgwatch is collecting metrics: ```bash - docker compose logs pgwatch | grep -i wait + docker compose logs pgwatch-postgres pgwatch-prometheus | grep -i wait ``` -2. Check VictoriaMetrics has wait event data: +2. Check VictoriaMetrics has wait event data (host port `59090`, VM basic auth): ```bash - curl 'http://localhost:8428/api/v1/query?query=pg_stat_activity_count' + curl -u "$VM_AUTH_USERNAME:$VM_AUTH_PASSWORD" \ + 'http://localhost:59090/api/v1/query?query=pgwatch_wait_events_total' ``` 3. Ensure `pg_stat_activity` is accessible to the monitoring user ### Wait events don't match RDS Performance Insights -Different sampling rates and methodologies may cause variations. PostgresAI monitoring uses: -- Default: 10ms sampling interval -- Aggregation into time buckets for visualization +Different collection mechanisms and methodologies may cause variations. PostgresAI monitoring does +not use a sub-second sampler. Instead, the `wait_events` metric is a snapshot `count(*)` of active +sessions in `pg_stat_activity` (`WHERE state = 'active'`), grouped by `wait_event_type` / +`wait_event`. This snapshot is collected on the metric interval — every 15 seconds in the `full` +preset — and then aggregated into time buckets for visualization. -RDS Performance Insights may use different intervals. +RDS Performance Insights samples at a higher frequency (roughly once per second), so absolute counts +and short-lived waits can differ. ### "Other" category too large diff --git a/docs/monitoring/dashboards/05-backups.md b/docs/monitoring/dashboards/05-backups.md index edb9c7c9..b25810cb 100644 --- a/docs/monitoring/dashboards/05-backups.md +++ b/docs/monitoring/dashboards/05-backups.md @@ -1,10 +1,10 @@ --- -title: "05. Backups" -sidebar_label: "05. Backups" +title: "05. WAL, backups, DR" +sidebar_label: "05. WAL, backups, DR" sidebar_position: 6 --- -# 05. Backups and DR +# 05. WAL, backups, DR Monitor backup status, WAL archiving, and disaster recovery readiness. @@ -28,45 +28,61 @@ Track backup health to ensure: ## Key panels -### WAL archiving status +The dashboard is organized into four rows: **WAL overview**, **WAL archiving**, **Replication slot +retention**, and **Configuration and WAL producers**. + +### pg_wal directory size + +**What it shows:** +- Size of the `pg_wal` directory over time + +**Warning signs:** +- Steady growth = WAL is accumulating (archiving stuck or an inactive replication slot pinning WAL) + +### WAL generation rate + +**What it shows:** +- WAL bytes generated per second +- Helps size archive storage and bandwidth + +### WAL archive success and errors / WAL archive success rate **What it shows:** -- WAL files waiting to be archived -- Archive success/failure rate -- Archive lag time +- Counts of successful vs failed archive attempts (from `pg_stat_archiver`) +- The success rate as a percentage **Healthy state:** -- `ready_count` near 0 (no backlog) -- Consistent archive rate matching WAL generation +- 100% success rate, errors flat at zero **Warning signs:** -- Growing `ready_count` = archiving falling behind - Archive failures = storage or network issues -### Last backup age +### Archive lag bytes / Archive lag time and files **What it shows:** -- Time since last successful backup -- Backup duration trend +- How far behind archiving is, in bytes, in time, and in number of unarchived files -**Healthy range:** -- Within your backup schedule (e.g., < 24h for daily backups) +**Healthy state:** +- Lag near 0 (no backlog), consistent archive rate matching WAL generation -### WAL generation rate +**Warning signs:** +- Growing lag = archiving falling behind + +### Retained WAL by replication slot / Inactive replication slots **What it shows:** -- WAL bytes generated per second -- Helps size archive storage and bandwidth +- WAL retained on behalf of each replication slot +- Count of inactive replication slots -### Checkpoint activity +**Warning signs:** +- An inactive slot retaining large amounts of WAL can fill the disk -**What it shows:** -- Checkpoint frequency and duration -- Checkpoint write/sync times +### WAL-related settings / Top queries by WAL bytes/s -**Healthy state:** -- Checkpoints completing within `checkpoint_timeout` -- No checkpoint warnings in logs +**What it shows:** +- A table of WAL-related configuration settings (e.g. `archive_mode`, `archive_command`, + `wal_keep_size`, `max_wal_size`, `checkpoint_timeout`) +- The queries generating the most WAL per second (from `pg_stat_statements`) ## Variables @@ -74,6 +90,7 @@ Track backup health to ensure: |----------|---------| | `cluster_name` | Cluster filter | | `node_name` | Node filter | +| `db_name` | Database filter | ## Backup tools integration diff --git a/docs/monitoring/dashboards/06-replication.md b/docs/monitoring/dashboards/06-replication.md index 652ad724..1420dce6 100644 --- a/docs/monitoring/dashboards/06-replication.md +++ b/docs/monitoring/dashboards/06-replication.md @@ -26,65 +26,18 @@ Ensure replication health for: - Validating HA setup - Capacity planning for replicas -## Key panels +## Dashboard status -### Replication lag (Bytes) - -**What it shows:** -- Bytes of WAL not yet replayed on replica -- Per-replica breakdown - -**Healthy range:** -- < 1 MB for synchronous replication -- < 100 MB for async (depends on workload) - -**Warning signs:** -- Growing lag = replica can't keep up -- Sudden spikes = network issues or replica overload - -### Replication lag (Time) - -**What it shows:** -- Estimated time behind primary -- More intuitive than bytes for SLA monitoring - -**Calculation:** -Based on WAL generation rate and byte lag. - -### Replication slot status - -**What it shows:** -- Active slots and their consumers -- Slot lag (retained WAL) - -**Warning signs:** -- Inactive slots with growing lag = WAL retention risk -- Slots without active connections +In 0.15.0 this dashboard ships as a single placeholder panel ("Coming soon...") and has no data +panels or template variables yet. Replication metrics are still collected by the stack (for +example `replication`, `replication_slots`, and `pg_stat_replication` in the `full` preset), so +until the visualizations land you can inspect replication health directly via SQL using the +queries below. :::warning WAL retention Unused replication slots prevent WAL cleanup and can fill disk. ::: -### Sent vs replayed - -**What it shows:** -- WAL sent to replica -- WAL replayed (applied) on replica -- Gap indicates apply lag - -### Replica connections - -**What it shows:** -- Connected replicas -- Connection state (streaming, catchup) - -## Variables - -| Variable | Purpose | -|----------|---------| -| `cluster_name` | Cluster filter | -| `node_name` | Primary or replica | - ## Replication modes ### Streaming replication diff --git a/docs/monitoring/dashboards/07-autovacuum.md b/docs/monitoring/dashboards/07-autovacuum.md index 20601233..1b706249 100644 --- a/docs/monitoring/dashboards/07-autovacuum.md +++ b/docs/monitoring/dashboards/07-autovacuum.md @@ -1,92 +1,183 @@ --- -title: "07. Autovacuum" -sidebar_label: "07. Autovacuum" +title: "07. Autovacuum and xmin horizon" +sidebar_label: "07. Autovacuum & xmin horizon" sidebar_position: 8 +keywords: + - "PostgreSQL autovacuum dashboard" + - "xmin horizon" + - "transaction ID wraparound" + - "vacuum monitoring" + - "dead tuple monitoring" --- -# 07. Autovacuum and bloat +# 07. Autovacuum and xmin horizon -Monitor vacuum activity, dead tuple accumulation, and table bloat. - -:::info Dashboard in development -This dashboard is currently under development. Autovacuum and bloat metrics are collected as part of the health check system, and the full dashboard visualization is coming soon. -::: +Monitor autovacuum activity, transaction ID / MultiXID wraparound risk, and — new in 0.15 — the +**xmin horizon**: how far back the oldest snapshot reaches and which sessions, replication +slots, standbys, or prepared transactions are holding it back. (Per-table dead-tuple and bloat +detail lives on [08. Table stats](/docs/monitoring/dashboards/table-stats) and +[10. Index health](/docs/monitoring/dashboards/index-health).) ## Purpose -Track autovacuum health to prevent: -- Table bloat degrading query performance +Track autovacuum health and the xmin horizon to prevent: + +- Dead tuples that vacuum cannot clean up because a snapshot still needs them +- Table and index bloat degrading query performance - Transaction ID wraparound emergencies -- Excessive dead tuple accumulation +- WAL and slot retention growth driven by a stuck horizon + +The xmin horizon is the single most useful signal when vacuum runs but bloat keeps growing: +PostgreSQL can only remove dead tuples that are older than the oldest snapshot still in use +anywhere in the cluster. This dashboard attributes the horizon to its blocker so you can act +on the real cause instead of just running `VACUUM` again. ## When to use - Routine maintenance monitoring -- Investigating slow sequential scans +- Investigating bloat that vacuum is not reducing +- Diagnosing "dead tuples high but autovacuum is running" +- Tracking down long-running transactions, idle-in-transaction sessions, stale replication + slots, lagging standbys, or orphaned prepared transactions - Tuning autovacuum settings - Diagnosing disk space growth +## The xmin horizon + +PostgreSQL keeps a row version visible as long as any transaction might still need it. The +oldest such transaction defines the **xmin horizon**. While the horizon is held back, vacuum +cannot reclaim dead tuples even on busy tables, so bloat accumulates and the wraparound clock +keeps ticking. + +The horizon can be held back by five classes of "blocker", each tracked as a separate +component on this dashboard: + +| Blocker class | Source | Typical cause | +|---------------|--------|---------------| +| Client backends | `pg_stat_activity` (`backend_xmin`) | Long-running query or `idle in transaction` session | +| Replication slots (data) | `pg_replication_slots.xmin` | Inactive or lagging physical/logical slot | +| Replication slots (catalog) | `pg_replication_slots.catalog_xmin` | Logical slot holding the catalog horizon | +| Standby feedback | `pg_stat_replication.backend_xmin` | Replica with `hot_standby_feedback = on` lagging | +| Prepared transactions | `pg_prepared_xacts` | Orphaned two-phase commit (`PREPARE TRANSACTION`) | + +The dashboard separates the **data horizon** (blocks cleanup of ordinary table tuples) from +the **catalog horizon** (blocks cleanup of system catalogs, relevant to logical replication), +because a logical slot can hold the catalog horizon far behind the data horizon. + +:::tip Companion how-to +For a step-by-step methodology, see +[How to monitor the xmin horizon](/docs/postgres-howtos/performance-optimization/monitoring/how-to-monitor-xmin-horizon) +and +[How to monitor transaction ID wraparound risks](/docs/postgres-howtos/performance-optimization/monitoring/how-to-monitor-transaction-id-wraparound-risks). +::: + ## Key panels -### Autovacuum workers +The dashboard is organized into three sections: **Wraparound risk — top-N tables**, **xmin +horizon overview (experimental)**, and **Autovacuum mechanics**. + +### Wraparound risk — top-N tables + +#### Top-N tables by XID age (relfrozenxid) / by MultiXID age (relminmxid) **What it shows:** -- Active autovacuum workers -- Worker utilization vs `autovacuum_max_workers` +- The top-N tables by transaction ID (`relfrozenxid`) age and by MultiXID (`relminmxid`) age +- Reference lines for `autovacuum_freeze_max_age` / `vacuum_failsafe_age` (and the multixact + equivalents), plus the ~2.1B wraparound limit -**Healthy state:** -- Workers active during low-traffic periods -- Not constantly at max workers +**Critical thresholds:** +- Warning: age approaching `autovacuum_freeze_max_age` +- Critical: age approaching `vacuum_failsafe_age` / the 2B limit -**Warning signs:** -- Always at max workers = autovacuum can't keep up -- Zero workers for extended periods = check if enabled +:::danger Transaction ID wraparound +If a database reaches roughly 2 billion transactions without freezing, PostgreSQL stops +accepting writes to prevent data corruption. A stuck xmin horizon makes wraparound risk worse +because it blocks the freezing that vacuum would otherwise perform. +::: -### Dead tuples by table +### xmin horizon overview (experimental) + +:::note Experimental in 0.15 +This section is labeled **(experimental)** on the shipped dashboard. The panel titles and +signals may change in a future release. +::: + +#### xmin horizon age by source **What it shows:** -- Tables with most dead tuples -- Rate of dead tuple accumulation +- Data horizon age and catalog horizon age, in transactions (the `*_age_tx` signals) +- The per-component blocker ages (`pg_stat_activity`, `pg_replication_slots`, + `pg_replication_slots` catalog, `pg_stat_replication`, `pg_prepared_xacts`) as separate series **Healthy state:** -- Dead tuples cleared periodically by vacuum -- No single table dominating +- Horizon age stays low and tracks normal transaction throughput +- No single component dominates for long periods **Warning signs:** -- Dead tuples growing unbounded -- Ratio of dead to live tuples > 20% +- Horizon age climbing steadily — something is pinning old snapshots +- Catalog horizon far older than data horizon — a logical replication slot is stuck -### Tables approaching wraparound +#### Longest non-idle transaction age, > 1 min **What it shows:** -- Tables closest to transaction ID wraparound -- Age of oldest transaction (datfrozenxid) +- The age of the longest-running non-idle transaction (over 1 minute), a common cause of a + `pg_stat_activity` backend pinning the horizon -**Critical thresholds:** -- Warning: age > 500 million -- Critical: age > 1 billion (approaching 2B limit) +#### Current blocker counts -:::danger Transaction ID wraparound -If a table reaches 2 billion transactions without vacuum, PostgreSQL will shut down to prevent data corruption. +**What it shows:** +- The number of active blockers per component (`pg_stat_activity`, `pg_replication_slots`, + `pg_replication_slots` catalog, `pg_stat_replication`, `pg_prepared_xacts`) + +**Interpretation:** +- A `pg_stat_activity` blocker → find the session (use the `queryid` to inspect the query + text) and end the long transaction or fix the idle-in-transaction leak +- A `pg_replication_slots` blocker → check whether the slot is still needed; drop or advance it +- A `pg_stat_replication` blocker → a standby with `hot_standby_feedback` is lagging +- A `pg_prepared_xacts` blocker → resolve the orphaned prepared transaction with + `COMMIT PREPARED` / `ROLLBACK PREPARED` + +:::note Monitoring-user noise filtered +The blocker signals intentionally exclude the monitoring role's own sessions, so the monitoring +stack never reports itself as the top blocker. ::: -### Vacuum progress +### Autovacuum mechanics + +#### Autovacuum debt — top-N overdue tables **What it shows:** -- Currently running vacuum operations -- Phase and progress percentage -- Estimated completion +- The top-N tables by how far past their autovacuum threshold they are (the overdue factor) +- A reference line at the threshold (factor 1) where autovacuum should trigger + +**Warning signs:** +- Tables persistently above factor 1 — autovacuum is not keeping up on those tables -### Table bloat estimates +#### Autovacuum worker pool — active vs max **What it shows:** -- Estimated wasted space per table -- Based on dead tuple ratio and page density +- Active autovacuum workers vs `autovacuum_max_workers`, plus worker utilization -**Interpretation:** -- < 20% bloat: Normal -- 20-50% bloat: Consider manual vacuum -- > 50% bloat: May need VACUUM FULL or pg_repack +**Healthy state:** +- Workers active during low-traffic periods +- Not constantly at max workers + +**Warning signs:** +- Always at max workers = autovacuum can't keep up +- Zero workers for extended periods = check if enabled + +#### Autovacuum workers blocked on lock + +**What it shows:** +- Autovacuum workers that are stuck waiting on a lock, with how long they have been blocked + +**Warning signs:** +- Workers blocked for extended periods — a conflicting lock is stalling vacuum progress + +#### Vacuum timeline + +**What it shows:** +- A timeline of vacuum activity per table (including index-vacuum cycles and vacuum mode) ## Variables @@ -95,6 +186,12 @@ If a table reaches 2 billion transactions without vacuum, PostgreSQL will shut d | `cluster_name` | Cluster filter | | `node_name` | Node filter | | `db_name` | Database filter | +| `schema_name` | Schema filter (for the top-N table panels) | +| `table_name` | Table filter (for the top-N table panels) | +| `top_n` | How many tables to show in top-N panels (5, 10, 15, 20, 25, 50, 100) | + +The xmin horizon panels are instance-level (collected on the primary), so they are scoped by +`cluster_name` / `node_name` rather than per database. ## Autovacuum tuning @@ -122,6 +219,14 @@ alter table large_table set ( - **Table details** — [08. Table stats](/docs/monitoring/dashboards/table-stats) - **Single table** — [09. Single table](/docs/monitoring/dashboards/single-table) - **Index bloat** — [10. Index health](/docs/monitoring/dashboards/index-health) +- **Lock contention** — [13. Lock contention](/docs/monitoring/dashboards/lock-contention) + +## Metrics reference + +The signals behind this dashboard are documented in the +[monitoring reference](/docs/reference-guides/postgres-ai-monitoring-reference): the +`xmin_horizon` and `xmin_horizon_blockers` metric groups (xmin horizon attribution) and the +`pg_database_wraparound` / `pg_vacuum_progress` / table-statistics groups (vacuum and bloat). ## Troubleshooting @@ -144,17 +249,41 @@ alter table large_table set ( ### Vacuum running but not reducing bloat -1. Check for long-running transactions: +This is the classic xmin-horizon symptom. Start with the **xmin horizon age by source** and +**Current blocker counts** panels, then confirm from SQL: + +1. Check for long-running or idle-in-transaction sessions holding `backend_xmin`: ```sql - select pid, age(backend_xmin), query + select pid, state, age(backend_xmin) as xmin_age, query from pg_stat_activity where backend_xmin is not null order by age(backend_xmin) desc; ``` -2. Check for unused replication slots holding back vacuum +2. Check replication slots holding the horizon back: + ```sql + select slot_name, slot_type, active, + age(xmin) as xmin_age, + age(catalog_xmin) as catalog_xmin_age + from pg_replication_slots + where xmin is not null or catalog_xmin is not null + order by greatest(coalesce(age(xmin), 0), coalesce(age(catalog_xmin), 0)) desc; + ``` + +3. Check standby feedback and prepared transactions: + ```sql + select application_name, age(backend_xmin) as xmin_age + from pg_stat_replication + where backend_xmin is not null; -3. Consider VACUUM FULL for severely bloated tables (requires downtime) + select gid, prepared, owner, age(transaction) as xmin_age + from pg_prepared_xacts + order by age(transaction) desc; + ``` + +4. Once the blocker is gone, the horizon advances and autovacuum reclaims the dead tuples on + its next pass. For severely bloated tables, consider `VACUUM FULL` or `pg_repack` (requires + a lock / downtime). ### High wraparound age @@ -170,3 +299,6 @@ limit 20; -- Manual vacuum freeze vacuum freeze table_name; ``` + +Always clear the xmin horizon blocker first — `VACUUM FREEZE` cannot freeze rows newer than +the oldest snapshot still in use. diff --git a/docs/monitoring/dashboards/08-table-stats.md b/docs/monitoring/dashboards/08-table-stats.md index 68ec134b..9258716a 100644 --- a/docs/monitoring/dashboards/08-table-stats.md +++ b/docs/monitoring/dashboards/08-table-stats.md @@ -27,60 +27,43 @@ Identify tables that need attention: ## Key panels -### Tables by sequential scans +The dashboard opens with a **Detailed table view** table and is then organized into four rows of +top-N panels: **Size stats**, **Activity stats**, **IO stats**, and **Estimated bloat stats**. -**What it shows:** -- Tables with highest sequential scan counts -- Rate of seq scans over time - -**Warning signs:** -- Large tables with high seq scan rate — may need indexes -- Growing seq scan trend on tables that should use indexes - -### Tables by size +### Size stats **What it shows:** -- Largest tables by total size (data + indexes + toast) -- Growth trend over time +- Top-N tables by total size, heap size (excl. TOAST), TOAST size, and indexes size +- A matching growth-per-second panel for each (total, heap, TOAST, indexes) **Use for:** - Capacity planning - Identifying candidates for partitioning - Storage optimization -### Tables by dead tuples +### Activity stats **What it shows:** -- Tables with most dead tuples -- Dead tuple accumulation rate - -**Healthy state:** -- Dead tuples cleared regularly by autovacuum -- No single table dominating +- Top-N tables by tuple inserts, deletes, HOT updates, and non-HOT updates per second +- Top-N tables by sequential reads of live tuples and by index fetches of live tuples -**Warning signs:** -- Continuously growing dead tuples — autovacuum not keeping up -- High ratio of dead to live tuples +**Interpretation:** +- High HOT updates vs non-HOT updates is good (HOT avoids index updates) +- Large tables high in sequential reads of live tuples may be missing indexes -### Tables by insert/update/delete rate +### IO stats **What it shows:** -- Write activity by table -- Helps identify hot tables +- Top-N tables by total/heap/TOAST/index shared block hits and reads +- Total shared block hit ratio and read ratio per table -### HOT update ratio - -**What it shows:** -- Percentage of updates using Heap-Only Tuples -- Higher is better (avoids index updates) +**Healthy state:** +- High hit ratio for hot tables, minimal reads -**Healthy range:** -- HOT ratio > 90% for frequently updated tables +### Estimated bloat stats -**Low HOT ratio causes:** -- Updates to indexed columns -- `fillfactor` not set appropriately -- Index bloat +**What it shows:** +- Top-N tables by estimated heap bloat % and by estimated heap bloat size ## Variables @@ -89,6 +72,15 @@ Identify tables that need attention: | `cluster_name` | Cluster filter | | `node_name` | Node filter | | `db_name` | Database filter | +| `schema_name` | Schema filter | +| `top_n` | Number of tables to show in top-N panels (5, 10, 15, 20, 50, 100) | + +:::note Top-N filtering +Per-relation panels use `topk($top_n, ...)` to show only the highest-ranked tables and drop the +long tail — they do not aggregate the remainder into a separate series. If the table you need is +not shown, raise `top_n` (or use [09. Single table](/docs/monitoring/dashboards/single-table)). +See [Top-N filtering](/docs/monitoring/dashboards/#top-n-filtering). +::: ## Interpreting table metrics diff --git a/docs/monitoring/dashboards/09-single-table.md b/docs/monitoring/dashboards/09-single-table.md index 375c8447..af9c9a3a 100644 --- a/docs/monitoring/dashboards/09-single-table.md +++ b/docs/monitoring/dashboards/09-single-table.md @@ -31,39 +31,31 @@ When you've identified a problematic table in [08. Table Stats](/docs/monitoring ## Key panels -### Table size over time +The dashboard is organized into four rows: **Size stats**, **Estimated bloat stats**, **Activity +stats**, and **IO stats**. + +### Size stats **What it shows:** -- Total table size (data + toast + indexes) -- Growth trend +- **Table logical size distribution** — the logical size of the table over time +- **Size growth /s** — the rate of size change **Use for:** - Capacity forecasting - Detecting unexpected growth - Measuring impact of cleanup operations -### Sequential vs index scans - -**What it shows:** -- Scan type distribution over time -- Helps identify query pattern changes - -**Healthy pattern:** -- Predominantly index scans for OLTP tables -- Sequential scans acceptable for small tables or analytics - -### Tuple statistics +### Estimated bloat stats **What it shows:** -- Live tuples -- Dead tuples -- Inserts, updates, deletes per second +- **Estimated bloat %** and **Estimated bloat size** for the table -### HOT updates +### Activity stats **What it shows:** -- HOT update count and ratio -- Non-HOT updates +- **Tuple operations /s** — inserts, updates (HOT and non-HOT), and deletes per second +- **Tuple operations distribution (%)** — the same operations as a share of the total +- **Tuple fetch methods /s** — sequential vs index access over time **Improving HOT ratio:** ```sql @@ -71,12 +63,14 @@ When you've identified a problematic table in [08. Table Stats](/docs/monitoring alter table your_table set (fillfactor = 80); ``` -### Last vacuum/analyze +### IO stats **What it shows:** -- Time since last vacuum -- Time since last analyze -- Auto vs manual operations +- **Shared block hits /s** and **Shared block reads /s** +- **Shared block hit ratio** + +**Healthy pattern:** +- High hit ratio, minimal reads for hot tables ## Variables @@ -85,6 +79,7 @@ alter table your_table set (fillfactor = 80); | `cluster_name` | Cluster filter | | `node_name` | Node filter | | `db_name` | Database filter | +| `schema_name` | Schema filter | | `table_name` | Specific table to analyze | ## Table information queries @@ -153,7 +148,7 @@ where relname = 'your_table'; Some metrics require activity to populate: - Run queries against the table -- Wait for next metrics collection cycle (60s default) +- Wait for next metrics collection cycle (table stats collect every 30s by default) ### Size metrics don't match pg_relation_size diff --git a/docs/monitoring/dashboards/10-index-health.md b/docs/monitoring/dashboards/10-index-health.md index 25b2745a..30038bc1 100644 --- a/docs/monitoring/dashboards/10-index-health.md +++ b/docs/monitoring/dashboards/10-index-health.md @@ -31,59 +31,58 @@ Identify indexes that need attention: ## Key panels -### Unused indexes +The dashboard opens with a **Detailed index view** table and is then organized into four rows of +top-N panels: **Size stats**, **Estimated bloat stats**, **Index usage stats**, and **IO stats**. + +### Size stats **What it shows:** -- Indexes with zero or very low scan count -- Size of unused indexes +- **Top $top_n indexes by size** — the largest indexes -**Warning signs:** -- Large indexes with zero scans — candidates for removal -- Indexes unused since last stats reset +**Use for:** +- Spotting oversized indexes that dominate storage :::warning Before dropping -Verify index isn't used for: -- Unique constraints -- Foreign key references -- Periodic batch jobs (check longer time range) +The aggregated panels here show size, bloat, usage, and I/O — use them together with the +**Detailed index view** table and a longer time range to find genuinely unused indexes. Before +dropping any index, verify it isn't backing a unique constraint, a foreign key, or a periodic +batch job, and drill into [11. Single index](/docs/monitoring/dashboards/single-index). ::: -### Index size by table +### Estimated bloat stats **What it shows:** -- Total index size per table -- Index to table size ratio - -**Healthy range:** -- Index size typically 20-100% of table size -- Ratio > 200% may indicate over-indexing +- **Top $top_n indexes by estimated bloat %** and **by estimated bloat size** -### Index scan rate +### Index usage stats **What it shows:** -- Index usage frequency -- Trends in index utilization - -### Redundant indexes +- **Top $top_n indexes by tuples read** and **by tuples fetched** -**What it shows:** -- Indexes that are subsets of other indexes -- Example: `(a)` is redundant if `(a, b)` exists +**Interpretation:** +- Indexes with persistently zero tuples read over a long range are candidates for removal -### Index bloat estimates +### IO stats **What it shows:** -- Estimated wasted space in indexes -- Based on statistical analysis +- **Top $top_n indexes by block reads** and **by block hits** ## Variables | Variable | Purpose | |----------|---------| +| `top_n` | Number of indexes to show in top-N panels (10, 15, 20, 50, 100) | | `cluster_name` | Cluster filter | | `node_name` | Node filter | | `db_name` | Database filter | +:::note Top-N filtering +Per-index panels use `topk($top_n, ...)` to show only the highest-ranked indexes and drop the +long tail — they do not aggregate the remainder into a separate series. If the index you need is +not shown, raise `top_n` (or use [11. Single index](/docs/monitoring/dashboards/single-index)). +See [Top-N filtering](/docs/monitoring/dashboards/#top-n-filtering). +::: + ## Index analysis queries ### Find unused indexes diff --git a/docs/monitoring/dashboards/11-single-index.md b/docs/monitoring/dashboards/11-single-index.md index b1c3edf0..076c39cb 100644 --- a/docs/monitoring/dashboards/11-single-index.md +++ b/docs/monitoring/dashboards/11-single-index.md @@ -31,11 +31,8 @@ When investigating a specific index from [10. Index Health](/docs/monitoring/das ## Key panels -### Index scans over time - -**What it shows:** -- Scan frequency trend -- Helps identify usage patterns (batch jobs, peak hours) +The dashboard is organized into four rows: **Size stats**, **Index usage stats**, **IO stats**, +and **Estimated bloat stats**. ### Index size @@ -43,7 +40,13 @@ When investigating a specific index from [10. Index Health](/docs/monitoring/das - Current index size - Size trend over time -### Tuples read vs fetched +### Index scans + +**What it shows:** +- Scan frequency trend +- Helps identify usage patterns (batch jobs, peak hours) + +### Tuples read and fetched **What it shows:** - `idx_tup_read` — tuples returned by index @@ -53,11 +56,22 @@ When investigating a specific index from [10. Index Health](/docs/monitoring/das - Large gap may indicate index-only scans (good) - Or visibility map issues requiring heap fetches -### Index bloat estimate +### Shared block reads and hits **What it shows:** -- Estimated wasted space -- Bloat percentage +- Buffer reads and hits for this index over time + +**Healthy state:** +- Hits dominate reads for a frequently used index + +### Boguk ratio (index size / reltuples) + +**What it shows:** +- The Boguk ratio — index size divided by the table's estimated row count (`reltuples`) — a + bloat proxy in this dashboard's **Estimated bloat stats** row + +**Interpretation:** +- A rising ratio over time suggests the index is bloating relative to the rows it covers ## Variables @@ -65,7 +79,8 @@ When investigating a specific index from [10. Index Health](/docs/monitoring/das |----------|---------| | `cluster_name` | Cluster filter | | `node_name` | Node filter | -| `db_name` | Database filter | +| `datname` | Database filter (label "DB name") | +| `schema_name` | Schema filter | | `index_name` | Specific index to analyze | ## Index information queries diff --git a/docs/monitoring/dashboards/12-slru.md b/docs/monitoring/dashboards/12-slru.md index 2672a774..f4ca923c 100644 --- a/docs/monitoring/dashboards/12-slru.md +++ b/docs/monitoring/dashboards/12-slru.md @@ -33,20 +33,28 @@ Poor SLRU performance can cause system-wide slowdowns. ## Key panels -### SLRU blocks read - -**What it shows:** -- Blocks read from each SLRU cache -- Breakdown by cache type +The dashboard's **SLRU stats** row has one panel per `pg_stat_slru` counter, each broken down by +cache type (name). ### SLRU blocks hit **What it shows:** -- Cache hit rate -- Higher is better +- Blocks served from each SLRU cache (cache hits) +- Higher relative to reads is better **Healthy range:** -- Hit rate > 99% for most caches +- Hits dominate reads for most caches + +### SLRU blocks exist + +**What it shows:** +- `blks_exists` — checks for whether a block already exists in the cache + +### SLRU blocks read + +**What it shows:** +- Blocks read into each SLRU cache from disk +- Breakdown by cache type ### SLRU blocks written @@ -54,6 +62,17 @@ Poor SLRU performance can cause system-wide slowdowns. - Write activity to SLRU caches - High writes may indicate configuration issues +### SLRU blocks zeroed + +**What it shows:** +- `blks_zeroed` — newly initialized (zeroed) SLRU pages + +### SLRU truncates / SLRU flushes + +**What it shows:** +- `truncates` — SLRU segment truncations (e.g. as old transaction data is removed) +- `flushes` — SLRU buffer flushes to disk + ### SLRU cache types | Cache | Purpose | Tuning parameter | @@ -71,6 +90,7 @@ Poor SLRU performance can cause system-wide slowdowns. |----------|---------| | `cluster_name` | Cluster filter | | `node_name` | Node filter | +| `db_name` | Database filter | ## SLRU statistics query diff --git a/docs/monitoring/dashboards/13-lock-contention.md b/docs/monitoring/dashboards/13-lock-contention.md index c51559a7..095afc36 100644 --- a/docs/monitoring/dashboards/13-lock-contention.md +++ b/docs/monitoring/dashboards/13-lock-contention.md @@ -31,31 +31,27 @@ Diagnose lock-related performance issues: ## Key panels -### Lock waits over time +The dashboard has a **Blocking overview** row (five timeseries panels) and a **Blocking tree** +row (one table). + +### Lock conflicts **What it shows:** -- Number of sessions waiting for locks -- Lock wait duration distribution +- Number of lock-wait conflicts over time **Warning signs:** -- Sustained lock waits -- Increasing wait times +- Sustained conflicts - Correlation with specific operations -### Blocking chains +### Wait duration **What it shows:** -- Which sessions are blocking others -- Depth of blocking chains - -**Interpretation:** -- Single blocker affecting many — address that query -- Deep chains — potential design issue +- How long blocked backends have been waiting for locks (in ms) -### Locks by type +### By lock type **What it shows:** -- Distribution of lock types +- Distribution of lock-wait conflicts by lock type - Most common contention points | Lock type | Description | Common cause | @@ -65,11 +61,50 @@ Diagnose lock-related performance issues: | `AccessExclusiveLock` | DDL operations | ALTER TABLE, DROP | | `ShareLock` | Index creation | CREATE INDEX | -### Lock wait duration +### Blocker age + +**What it shows:** +- Age of the blocking transaction (in ms) — how long the blocker has held its lock + +### By table + +**What it shows:** +- Lock-wait conflicts broken down by the table being contended + +### Blocking tree **What it shows:** -- How long queries wait for locks -- Percentile distribution +- A table view of the blocked/blocker relationships (the blocking chain), including the + blocked and blocking PIDs + +**Interpretation:** +- A single blocker affecting many rows — address that query +- Deep chains — potential design issue + +## Lock-wait metrics carry session PIDs + +New in 0.15. The collected lock-wait metrics (the `lock_waits` metric group) now expose the +blocked and blocking backend PIDs as **labels**, so you can identify the blocker directly in +Grafana / PromQL without running the manual `pg_locks` join below. + +Available labels include `blocked_pid` and `blocker_pid`, plus `blocked_user` / `blocker_user`, +`blocked_appname` / `blocker_appname`, `blocked_table` / `blocker_table`, and `blocked_query_id` / +`blocker_query_id` (plus `datname`). The two gauges are `pgwatch_lock_waits_blocked_ms` (how long +the blocked backend has waited) and `pgwatch_lock_waits_blocker_tx_ms` (age of the blocking +transaction). See the +[monitoring reference](/docs/reference-guides/postgres-ai-monitoring-reference#lock-waits-lock_waits). + +```promql +# Longest current lock waits, labeled with blocker/blocked PIDs +topk(10, pgwatch_lock_waits_blocked_ms) +``` + +Because the `blocker_pid` is on the metric itself, you can read it straight off the panel and +terminate the blocker without any blocking-chain SQL: + +```sql +select pg_terminate_backend(<blocker_pid>); +``` ## Variables @@ -81,6 +116,12 @@ Diagnose lock-related performance issues: ## Lock analysis queries +:::tip +The queries below remain useful for ad-hoc investigation, but in 0.15 you no longer need them +just to find the blocking PID — it is available as the `blocker_pid` label on the lock-wait +metrics (see [above](#lock-wait-metrics-carry-session-pids)). +::: + ### Current lock waits ```sql @@ -148,9 +189,10 @@ where deadlocks > 0; where pid in (select pid from pg_locks where not granted); ``` -2. **Terminate if necessary:** +2. **Terminate if necessary** (use the `blocker_pid` label from the lock-wait metric, or the + `blocking_pid` from the query above): ```sql - select pg_terminate_backend(blocking_pid); + select pg_terminate_backend(<blocker_pid>); ``` ### Preventive measures diff --git a/docs/monitoring/dashboards/14-io-statistics.md b/docs/monitoring/dashboards/14-io-statistics.md new file mode 100644 index 00000000..fb12a0a8 --- /dev/null +++ b/docs/monitoring/dashboards/14-io-statistics.md @@ -0,0 +1,149 @@ +--- +title: "14. I/O statistics (pg_stat_io)" +sidebar_label: "14. I/O statistics" +sidebar_position: 15 +keywords: + - "pg_stat_io" + - "PostgreSQL I/O monitoring" + - "I/O statistics dashboard" + - "backend type I/O" + - "PostgreSQL 16 I/O" +--- + +# 14. I/O statistics (pg_stat_io) + +New in 0.15. Monitor PostgreSQL I/O activity broken down by backend type using the +`pg_stat_io` view. + +:::note PostgreSQL 16+ required +`pg_stat_io` was introduced in PostgreSQL 16. On PostgreSQL 15 and earlier this dashboard has +no data — the collector emits nothing for the `pg_stat_io` metric group on those versions. See +[System requirements](/docs/monitoring/getting-started/requirements#postgresql-requirements). +::: + +## Purpose + +Understand where I/O is happening inside PostgreSQL and which backend type is responsible: + +- Distinguish client-backend reads from background-writer, checkpointer, autovacuum, and WAL I/O +- See cache hits versus actual reads +- Spot excessive evictions (shared buffers under pressure) +- Track relation extends (table/index growth) and fsync activity + +`pg_stat_io` exposes operations that older views could not attribute to a backend type, which +makes it far easier to tell, for example, whether reads come from queries or from vacuum. + +## When to use + +- Investigating disk I/O pressure on PostgreSQL 16+ +- Deciding whether `shared_buffers` is too small (high evictions / reuses) +- Attributing read/write load to a specific backend type +- Correlating I/O spikes with checkpointer or autovacuum activity + +## Key panels + +The dashboard is organized into four rows: **I/O overview**, **I/O by backend type**, +**Writebacks, fsyncs, and file extends**, and **Buffer cache efficiency**. + +### I/O overview + +**What it shows:** +- **Total I/O throughput (MiB/s)** and **I/O time (ms/s)** +- **Buffer hit ratio (%)** — a gauge of blocks found in shared buffers vs fetched from the OS/disk +- **I/O operations (ops/s)** + +**Healthy state:** +- High buffer hit ratio for hot data + +**Warning signs:** +- Falling hit ratio / rising reads = working set no longer fits in shared buffers + +### I/O by backend type + +**What it shows:** +- **Reads by backend type (ops/s)** and **Writes by backend type (ops/s)**, grouped by `backend_type` + +**Interpretation:** +- `client backend` dominating reads = query workload is I/O bound +- `autovacuum worker` dominating reads = vacuum is reading heavily; check bloat and the + [Autovacuum dashboard](/docs/monitoring/dashboards/autovacuum) +- `checkpointer` / `background writer` dominating writes = normal flushing behavior + +### Writebacks, fsyncs, and file extends + +**What it shows:** +- **Writebacks (ops/s)**, **Fsyncs (ops/s)**, and **File extends (ops/s)** + +**Interpretation:** +- High file-extend rates track heavy inserts / table growth +- High fsync activity can point to slow storage + +### Buffer cache efficiency + +**What it shows:** +- **Buffer evictions and reuses (ops/s)** — evictions (a buffer had to be evicted to make room) + and reuses (a buffer was reused directly, e.g. by ring buffers during bulk operations) +- **Buffer hits by backend type (ops/s)** + +**Interpretation:** +- High evictions under steady load is a classic signal that `shared_buffers` is undersized + +## Variables + +| Variable | Purpose | +|----------|---------| +| `cluster_name` | Cluster filter | +| `node_name` | Node filter | + +I/O statistics are instance-level; this dashboard has no database or table filter (only +`cluster_name` and `node_name`). + +## Underlying query + +The dashboard is built on the `pg_stat_io` view, aggregated by backend type: + +```sql +select + coalesce(backend_type, 'total') as backend_type, + sum(reads) as reads, + sum(writes) as writes, + sum(extends) as extends, + sum(hits) as hits, + sum(evictions) as evictions, + sum(reuses) as reuses, + sum(fsyncs) as fsyncs +from pg_stat_io +group by rollup (backend_type); +``` + +`pg_stat_io` counters are cumulative until `pg_stat_reset_shared('io')`; the dashboard shows +rates derived from them. + +## Related dashboards + +- **Node overview** — [01. Node overview](/docs/monitoring/dashboards/node-overview) +- **Autovacuum and xmin horizon** — [07. Autovacuum](/docs/monitoring/dashboards/autovacuum) +- **Backups and WAL** — [05. Backups](/docs/monitoring/dashboards/backups) + +## Metrics reference + +The signals behind this dashboard are documented as the `pg_stat_io` metric group in the +[monitoring reference](/docs/reference-guides/postgres-ai-monitoring-reference#io-statistics-pg_stat_io-postgresql-16). + +## Troubleshooting + +### No data on this dashboard + +1. Confirm the monitored database runs PostgreSQL 16 or newer: + ```sql + select current_setting('server_version_num')::int >= 160000 as has_pg_stat_io; + ``` +2. Verify the view is readable by the monitoring role: + ```sql + select count(*) from pg_stat_io; + ``` + +### Counters look reset + +`pg_stat_io` is reset by `pg_stat_reset_shared('io')` and on server restart. The `stats_reset` +timestamp is exposed so you can tell when the window started. diff --git a/docs/monitoring/dashboards/index.md b/docs/monitoring/dashboards/index.md index 4022fd9c..8f07767a 100644 --- a/docs/monitoring/dashboards/index.md +++ b/docs/monitoring/dashboards/index.md @@ -36,7 +36,7 @@ PostgresAI monitoring includes 14 pre-built Grafana dashboards designed for expe | # | Dashboard | Purpose | |---|-----------|---------| | 05 | [Backups](/docs/monitoring/dashboards/backups) | Backup status and WAL archiving | -| 07 | [Autovacuum](/docs/monitoring/dashboards/autovacuum) | Vacuum progress and bloat | +| 07 | [Autovacuum & xmin horizon](/docs/monitoring/dashboards/autovacuum) | Autovacuum, dead tuples, bloat, and xmin-horizon root cause analysis | | 08 | [Table stats](/docs/monitoring/dashboards/table-stats) | Aggregated table metrics | | 09 | [Single table](/docs/monitoring/dashboards/single-table) | Deep-dive into specific table | | 10 | [Index health](/docs/monitoring/dashboards/index-health) | Index usage and bloat | @@ -49,6 +49,12 @@ PostgresAI monitoring includes 14 pre-built Grafana dashboards designed for expe |---|-----------|---------| | 06 | [Replication](/docs/monitoring/dashboards/replication) | Replication lag and slot status | +### I/O + +| # | Dashboard | Purpose | +|---|-----------|---------| +| 14 | [I/O statistics](/docs/monitoring/dashboards/io-statistics) | I/O by backend type (`pg_stat_io`, PostgreSQL 16+) | + ### Stack health | # | Dashboard | Purpose | @@ -57,7 +63,7 @@ PostgresAI monitoring includes 14 pre-built Grafana dashboards designed for expe ## Common variables -All dashboards share these filter variables: +Most dashboards share these filter variables: | Variable | Purpose | Example | |----------|---------|---------| @@ -65,6 +71,13 @@ All dashboards share these filter variables: | `node_name` | Node within cluster | `primary`, `replica-1` | | `db_name` | Database filter | `myapp`, `All` | +**Exceptions:** +- **06. Replication** and **Self-monitoring** have no template variables at all (06 is a + placeholder; self-monitoring reports on the single monitoring instance). +- **14. I/O statistics** has only `cluster_name` and `node_name` (no database filter — `pg_stat_io` + is instance-level). +- **11. Single index** names its database variable `datname` (label "DB name") rather than `db_name`. + ## Recommended workflow ### Incident response @@ -90,23 +103,39 @@ All dashboards share these filter variables: | Query review | 02. Query analysis | New slow queries, regression | | Index health | 10. Index health | Unused indexes, bloat | | Table health | 08. Table stats | Bloat, sequential scans | -| Vacuum status | 07. Autovacuum | Dead tuple accumulation | +| Vacuum status | 07. Autovacuum & xmin horizon | Dead tuple accumulation, xmin-horizon blockers | +| I/O attribution | 14. I/O statistics | Reads/writes by backend type (PG16+) | ## Legend options -Most query-related dashboards support multiple legend formats: +[02. Query analysis](/docs/monitoring/dashboards/query-analysis) has a **Query texts** variable +(`legend_label`) that switches how query texts are rendered in legends: -| Format | Shows | Use case | -|--------|-------|----------| -| `queryid` | Numeric ID only | Compact view | -| `displayname` | Truncated query | Default | -| `displayname_long` | Full query with context | Debugging | +| Option | Value | Shows | +|--------|-------|-------| +| Smart truncation (default) | `displayname_long` | Query text with smart truncation | +| Raw texts | `displayname_raw_long` | Full raw query text | -Select the format using the **Query texts** variable at the top of dashboards. +Select the format using the **Query texts** variable at the top of the dashboard. + +## Top-N filtering + +Many dashboards limit each panel to the top-N series (for example, the `top_n` variable on +[02. Query analysis](/docs/monitoring/dashboards/query-analysis) offers 5, 10, 15, 20, 50, 100, 500). +These panels use plain PromQL `topk($top_n, ...)`, which keeps only the highest-ranked series and +**drops the long tail** — it does not sum the remainder into a separate bucket. The per-relation +dashboards ([08. Table stats](/docs/monitoring/dashboards/table-stats), +[10. Index health](/docs/monitoring/dashboards/index-health)) use the same `topk($top_n, ...)` approach. + +If the objects you care about are not visible, raise `top_n` or drill into the corresponding +single-object dashboard to see the detail. ## Time range tips -- **Incident investigation**: Start with 15m-1h to see recent patterns +Dashboards default to a **`now-1h`** time range in 0.15, tuned for readable, recent patterns +out of the box. + +- **Incident investigation**: The default `now-1h` shows recent patterns; widen as needed - **Trend analysis**: Use 24h-7d for capacity planning - **Comparison**: Use "Compare to" feature for week-over-week analysis diff --git a/docs/monitoring/dashboards/self-monitoring.md b/docs/monitoring/dashboards/self-monitoring.md index 825538c0..839f6f66 100644 --- a/docs/monitoring/dashboards/self-monitoring.md +++ b/docs/monitoring/dashboards/self-monitoring.md @@ -1,7 +1,7 @@ --- title: "Self-monitoring" sidebar_label: "Self-monitoring" -sidebar_position: 15 +sidebar_position: 16 --- # Self-monitoring dashboard @@ -31,68 +31,59 @@ Ensure the monitoring infrastructure is functioning correctly: ## Key panels -### Scrape success rate +The dashboard is organized into six rows: **Overview**, **Host stats**, **Disk I/O metrics**, +**Container resource usage**, **Victoria Metrics metrics**, and **Sink Postgres database**. -**What it shows:** -- Percentage of successful metric scrapes -- Per-target breakdown - -**Healthy state:** -- 100% success rate -- Consistent scrape intervals +### Overview -**Warning signs:** -- Scrape failures — check target availability -- Timeouts — target may be overloaded +**What it shows (single-stat tiles):** +- **Active monitoring services** and **Running containers** +- **Application memory usage** and **System CPU usage** +- **Victoria Metrics storage size** and **Victoria Metrics time series** -### Metrics ingestion rate +### Host stats and Disk I/O metrics **What it shows:** -- Samples ingested per second -- Trend over time +- System CPU / memory / network / disk usage breakdowns +- Disk I/O operations (IOPS), throughput, utilization, and average latency -**Use for:** -- Capacity planning -- Detecting metric explosion - -### Storage usage +### Container resource usage **What it shows:** -- VictoriaMetrics disk usage -- Projected capacity based on retention - -**Warning threshold:** -- Alert when > 80% capacity +- Per-container CPU, memory, network I/O, and disk I/O -### Active time series +### Victoria Metrics metrics **What it shows:** -- Number of unique metric series -- Growth trend +- **Victoria Metrics ingestion rate** — samples ingested per second +- **Scrape duration by target** — how long each scrape takes (rising durations = a target is slow) +- **Victoria Metrics storage size** — disk usage; project capacity against your retention +- **Victoria Metrics rows count** — number of stored rows; watch for cardinality explosion -**Monitoring series growth:** -- Sudden spikes may indicate cardinality explosion -- Gradual growth expected as you add targets - -### Query performance +### Sink Postgres database **What it shows:** -- Grafana query latency -- Slow queries +- Sink Postgres connections, transactions, database size, and block I/O ## Variables -| Variable | Purpose | -|----------|---------| -| `cluster` | Filter by monitored cluster (from the `custom_tags.cluster` instance tag) | -| `node_name` | Filter by node (from the `custom_tags.node_name` instance tag) | +This dashboard has no template variables — it reports on the monitoring stack itself (Grafana, +VictoriaMetrics, the sink Postgres, cAdvisor, and node-exporter), which is a single instance, so +there is nothing to filter by cluster or node. ## Health check commands +:::note VictoriaMetrics basic auth +The VictoriaMetrics API on host port `59090` requires basic auth in 0.15. Every `curl` below passes +`-u "$VM_AUTH_USERNAME:$VM_AUTH_PASSWORD"`; export those from your stack's `.env` first (or substitute +the values). Without credentials these endpoints return `401 Unauthorized`. +::: + ### Check VictoriaMetrics status ```bash -curl http://localhost:59090/api/v1/status/tsdb +curl -u "$VM_AUTH_USERNAME:$VM_AUTH_PASSWORD" \ + http://localhost:59090/api/v1/status/tsdb ``` ### Check pgwatch status @@ -104,13 +95,15 @@ docker compose logs pgwatch-postgres pgwatch-prometheus --tail=50 ### Check Prometheus/VM targets ```bash -curl http://localhost:59090/api/v1/targets +curl -u "$VM_AUTH_USERNAME:$VM_AUTH_PASSWORD" \ + http://localhost:59090/api/v1/targets ``` ### Verify metrics collection ```bash -curl 'http://localhost:59090/api/v1/query?query=up' +curl -u "$VM_AUTH_USERNAME:$VM_AUTH_PASSWORD" \ + 'http://localhost:59090/api/v1/query?query=up' ``` ## Common issues @@ -119,12 +112,14 @@ curl 'http://localhost:59090/api/v1/query?query=up' 1. Check scrape targets are up: ```bash - curl http://localhost:59090/api/v1/targets | jq '.data.activeTargets[] | {job: .labels.job, health: .health}' + curl -u "$VM_AUTH_USERNAME:$VM_AUTH_PASSWORD" \ + http://localhost:59090/api/v1/targets | jq '.data.activeTargets[] | {job: .labels.job, health: .health}' ``` 2. Verify metric exists: ```bash - curl 'http://localhost:59090/api/v1/label/__name__/values' | jq '.data[]' | grep pg_ + curl -u "$VM_AUTH_USERNAME:$VM_AUTH_PASSWORD" \ + 'http://localhost:59090/api/v1/label/__name__/values' | jq '.data[]' | grep pg_ ``` 3. Check time range alignment @@ -133,12 +128,14 @@ curl 'http://localhost:59090/api/v1/query?query=up' 1. Check for cardinality explosion: ```bash - curl 'http://localhost:59090/api/v1/status/tsdb' | jq '.data.totalSeries' + curl -u "$VM_AUTH_USERNAME:$VM_AUTH_PASSWORD" \ + 'http://localhost:59090/api/v1/status/tsdb' | jq '.data.totalSeries' ``` 2. Review high-cardinality metrics: ```bash - curl 'http://localhost:59090/api/v1/status/tsdb' | jq '.data.seriesCountByMetricName | to_entries | sort_by(-.value) | .[0:10]' + curl -u "$VM_AUTH_USERNAME:$VM_AUTH_PASSWORD" \ + 'http://localhost:59090/api/v1/status/tsdb' | jq '.data.seriesCountByMetricName | to_entries | sort_by(-.value) | .[0:10]' ``` 3. Adjust retention if needed (default is `336h` ≡ 14 days): @@ -155,7 +152,7 @@ curl 'http://localhost:59090/api/v1/query?query=up' ```yaml # prometheus.yml scrape_configs: - - job_name: 'pgwatch' + - job_name: 'pgwatch-prometheus' scrape_timeout: 30s ``` @@ -182,7 +179,8 @@ Daily storage ≈ (series_count × samples_per_day × bytes_per_sample) / compre Typical values: - Bytes per sample: ~2-4 (compressed) - Compression ratio: 10-15x -- Samples per day at 60s interval: 1,440 +- Samples per day at the default 30s interval: ~2,880 (most metric groups collect every 30s; + `pg_stat_activity` and `wait_events` every 15s) ### Scaling recommendations diff --git a/docs/monitoring/getting-started/index.md b/docs/monitoring/getting-started/index.md index 628ad862..f7e44b84 100644 --- a/docs/monitoring/getting-started/index.md +++ b/docs/monitoring/getting-started/index.md @@ -14,7 +14,7 @@ Get PostgresAI monitoring running in minutes with PostgresAI Cloud. ## Step 1: Choose your plan -Go to [console.postgres.ai](https://console.postgres.ai) and navigate to **Checkup → Monitoring instances → Choose plan**. +Go to [console.postgres.ai](https://console.postgres.ai), open **Monitoring** in the left sidebar to reach the **Monitoring instances** page, then click **Start setup** (under **Hosted by PostgresAI**) and choose a plan. ![Plans page](/img/monitoring/cloud-setup/01-plans-page.png) @@ -72,7 +72,7 @@ Once deployed, you'll receive: - Grafana URL with your dashboards - Login credentials -Start with **01. Node overview** for a high-level health check. +Start with **01. Single node performance overview (high-level)** for a high-level health check. ## Verify database permissions @@ -104,7 +104,7 @@ See [data privacy details](/docs/monitoring/#data-privacy-metadata-only). ## First dashboard walkthrough -Key panels to check in **01. Node overview**: +Key panels to check in **01. Single node performance overview (high-level)**: 1. **Active session history (ASH)** — Wait events over time (similar to RDS Performance Insights) 2. **Sessions** — Active, idle, and idle in transaction connections 3. **TPS** — Transactions per second @@ -114,16 +114,16 @@ Key panels to check in **01. Node overview**: ``` Is there an ongoing incident? -├─ Yes — Start with "01. Node Overview" for quick triage -│ └─ High wait events? — "04. Wait Events" for deep-dive -│ └─ Slow queries? — "02. Query Analysis" then "03. Single Query" -│ └─ Lock contention? — "13. Lock Contention" +├─ Yes — Start with "01. Single node performance overview (high-level)" for quick triage +│ └─ High wait events? — "04. Wait event analysis (Active Session History)" for deep-dive +│ └─ Slow queries? — "02. Query performance analysis (top-N)" then "03. Single queryid analysis" +│ └─ Lock contention? — "13. Lock contention" │ ├─ No, routine monitoring -│ ├─ Query performance review — "02. Query Analysis" -│ ├─ Index health check — "10. Index Health" -│ ├─ Table bloat check — "07. Autovacuum" or "08. Table Stats" -│ └─ Replication lag — "06. Replication" +│ ├─ Query performance review — "02. Query performance analysis (top-N)" +│ ├─ Index health check — "10. Aggregated index analysis" +│ ├─ Table bloat check — "07. Autovacuum and xmin horizon" or "08. Aggregated table analysis" +│ └─ Replication lag — "06. Replication and HA" ``` ## Self-hosted alternative diff --git a/docs/monitoring/getting-started/installation-cli.md b/docs/monitoring/getting-started/installation-cli.md index 59f008ce..1793c3c4 100644 --- a/docs/monitoring/getting-started/installation-cli.md +++ b/docs/monitoring/getting-started/installation-cli.md @@ -12,7 +12,7 @@ The fastest way to get PostgresAI monitoring running locally. - Node.js 18+ or Bun 1.0+ - Docker 20.10+ -- PostgreSQL 14+ with `pg_stat_statements` +- PostgreSQL 13+ (14+ recommended) with `pg_stat_statements` :::tip Bun support All commands work with both `npx` and `bunx`. The CLI is written in TypeScript and runs natively on Bun. @@ -65,7 +65,8 @@ postgresql://postgres_ai_mon:auto_generated_pass@localhost:5432/mydb npx postgresai@0.15.0 mon local-install --demo ``` -Starts a complete stack with a sample PostgreSQL database pre-loaded with pgbench data. +Starts a complete stack with a sample PostgreSQL database seeded with a small demo dataset (a +`sample_data` table plus the monitoring schema objects). ### Production mode @@ -83,7 +84,7 @@ Options: --demo demo mode with sample database (default: false) --api-key <key> Postgres AI API key for automated report uploads --db-url <url> PostgreSQL connection URL to monitor - --tag <tag> Docker image tag to use (e.g., 0.15.0, 0.15.0-dev.33) + --tag <tag> Docker image tag to use (e.g., 0.14.0, 0.14.0-dev.33) --project <name> Docker Compose project name (default: postgres_ai) -y, --yes accept all defaults and skip interactive prompts (default: false) -h, --help display help for command @@ -99,9 +100,12 @@ Credentials: To retrieve the password later: ```bash -grep grafana_password ~/.postgresai/.pgwatch-config +grep grafana_password ~/.config/postgresai/monitoring/.pgwatch-config ``` +(The monitoring project lives in `~/.config/postgresai/monitoring` by default, or in +`$PGAI_PROJECT_DIR` if set.) + Navigate to **Dashboards — Browse — postgres_ai** to see your monitoring dashboards. ## Managing the stack @@ -124,10 +128,10 @@ npx postgresai@0.15.0 mon stop ```bash # All containers -docker compose -f ~/.postgresai/docker-compose.yml logs -f +docker compose -f ~/.config/postgresai/monitoring/docker-compose.yml logs -f # Specific service -docker compose -f ~/.postgresai/docker-compose.yml logs -f pgwatch-postgres pgwatch-prometheus +docker compose -f ~/.config/postgresai/monitoring/docker-compose.yml logs -f pgwatch-postgres pgwatch-prometheus ``` ## Troubleshooting @@ -157,10 +161,12 @@ Restart PostgreSQL after this change. ### "Permission denied" -The monitoring user needs these minimum privileges: +The monitoring user needs the built-in `pg_monitor` role (this is what `prepare-db` grants and +what the install/verify step checks for; `pg_read_all_stats` alone is a strict subset and is not +sufficient): ```sql -grant pg_read_all_stats to postgres_ai_mon; +grant pg_monitor to postgres_ai_mon; ``` For RDS/CloudSQL, ensure you're using the master user for `prepare-db`. diff --git a/docs/monitoring/getting-started/installation-cloud.md b/docs/monitoring/getting-started/installation-cloud.md index bee312b3..4cb42fca 100644 --- a/docs/monitoring/getting-started/installation-cloud.md +++ b/docs/monitoring/getting-started/installation-cloud.md @@ -23,6 +23,7 @@ Managed PostgreSQL services (RDS, CloudSQL, Supabase) require specific configura - RDS PostgreSQL 14+ - Parameter group with `pg_stat_statements` enabled - Security group allowing monitoring access +- Node.js 18+ (or Bun 1.0+) on the host running the `postgresai` CLI — older versions fail fast ### Step 1: Enable pg_stat_statements @@ -30,8 +31,8 @@ Create or modify a parameter group: ``` shared_preload_libraries = pg_stat_statements -pg_stat_statements.track = all -pg_stat_statements.max = 10000 +pg_stat_statements.track = top +pg_stat_statements.max = 5000 ``` Apply to your RDS instance and reboot if required. @@ -44,18 +45,26 @@ Connect as the master user: -- Create monitoring user create user postgres_ai_mon with password '<STRONG_RANDOM_PASSWORD>'; --- Grant required permissions -grant pg_read_all_stats to postgres_ai_mon; +-- Grant required permissions (the product requires the built-in pg_monitor role, +-- not pg_read_all_stats) +grant pg_monitor to postgres_ai_mon; -- Enable extension (if not already) create extension if not exists pg_stat_statements; --- For each database to monitor +-- For each database to monitor, connect and grant connect (pg_monitor already +-- covers reading statistics — monitoring needs metadata only, NOT table data, +-- so do NOT `grant select on all tables`). \c your_database -grant usage on schema public to postgres_ai_mon; -grant select on all tables in schema public to postgres_ai_mon; +grant connect on database your_database to postgres_ai_mon; ``` +:::tip Use prepare-db for the exact grants +Instead of granting by hand, run `npx postgresai@0.15.0 prepare-db --print-sql` (or run +`prepare-db` against the master/admin user) to apply the exact, minimal read-only grants the +product uses. See [Permissions](/docs/monitoring/getting-started/requirements#permissions). +::: + ### Step 3: Configure security group Allow inbound traffic from your monitoring stack: @@ -94,7 +103,7 @@ Monitor the primary endpoint. For read replicas, add separate monitoring targets - Cloud SQL PostgreSQL 14+ - Private IP or authorized network -- `cloudsql.pg_stat_statements` flag enabled +- `cloudsql.enable_pg_stat_statements` flag enabled ### Step 1: Enable extensions @@ -115,12 +124,14 @@ Using Cloud SQL admin user: -- Create monitoring user create user postgres_ai_mon with password '<STRONG_RANDOM_PASSWORD>'; --- Grant permissions -grant pg_read_all_stats to postgres_ai_mon; +-- Grant permissions (the product requires the built-in pg_monitor role, +-- not pg_read_all_stats) +grant pg_monitor to postgres_ai_mon; --- On each database -grant usage on schema public to postgres_ai_mon; -grant select on all tables in schema public to postgres_ai_mon; +-- On each database to monitor (pg_monitor already covers reading statistics — +-- monitoring needs metadata only, NOT table data, so do NOT `grant select on +-- all tables`): +grant connect on database your_database to postgres_ai_mon; ``` ### Step 3: Configure network access @@ -197,12 +208,13 @@ Connect to your Supabase database and run: -- Create monitoring user create user postgres_ai_mon with password '<STRONG_RANDOM_PASSWORD>'; --- Grant permissions -grant pg_read_all_stats to postgres_ai_mon; +-- Grant permissions (the product requires the built-in pg_monitor role, +-- not pg_read_all_stats) +grant pg_monitor to postgres_ai_mon; --- Grant access to your schemas -grant usage on schema public to postgres_ai_mon; -grant select on all tables in schema public to postgres_ai_mon; +-- pg_monitor already covers reading statistics — monitoring needs metadata +-- only, NOT table data, so do NOT `grant select on all tables`: +grant connect on database postgres to postgres_ai_mon; ``` ### Step 4: Start monitoring @@ -262,9 +274,9 @@ For optimal metric collection: ### "permission denied for function" -Grant required permissions: +Grant the required role (the product requires `pg_monitor`, not `pg_read_all_stats`): ```sql -grant pg_read_all_stats to postgres_ai_mon; +grant pg_monitor to postgres_ai_mon; ``` ### "pg_stat_statements must be loaded" diff --git a/docs/monitoring/getting-started/installation-docker.md b/docs/monitoring/getting-started/installation-docker.md index d6ebfe18..d0c7c131 100644 --- a/docs/monitoring/getting-started/installation-docker.md +++ b/docs/monitoring/getting-started/installation-docker.md @@ -12,7 +12,7 @@ For custom deployments and development environments. - Docker 20.10+ - Docker Compose v2 -- PostgreSQL 14+ target database +- PostgreSQL 13+ (14+ recommended) target database ## Quick start @@ -21,14 +21,34 @@ For custom deployments and development environments. git clone https://gitlab.com/postgres-ai/postgresai.git cd postgresai -# Configure target database +# Configure stack secrets cp .env.example .env -# Edit .env with your database connection +# Edit .env and set (at minimum): +# PGAI_TAG=0.15.0 # .env.example ships 0.14.0 — bump it to this release +# VM_AUTH_PASSWORD=... # required (non-empty) — Grafana datasource won't provision without it +# REPLICATOR_PASSWORD=... # required if you keep the demo target-db/target-standby services + +# Create instances.yml (the list of databases to monitor). +# This file MUST exist as a FILE before `docker compose up`: docker-compose.yml +# bind-mounts ./instances.yml, so if it is missing Docker creates a *directory* +# of that name and sources-generator produces zero targets. +cp instances.demo.yml instances.yml +# Edit instances.yml: set is_enabled: true and a real conn_str for each target +# (the connection string lives here, NOT in .env). + +# Render the pgwatch source files from instances.yml +docker compose run --rm sources-generator # Start the stack docker compose up -d ``` +:::tip Prefer the CLI +`postgresai mon local-install` automates the steps above (copies the demo files, prompts for a +target, generates sources, and starts the stack). Use the manual flow here only for custom +deployments. +::: + ## Configuration ### Environment variables @@ -39,6 +59,10 @@ Create a `.env` file or set these environment variables: # Required PGAI_TAG=0.15.0 REPLICATOR_PASSWORD=<generated-secret> + +# Required in 0.15: VictoriaMetrics basic auth. VM_AUTH_PASSWORD must be non-empty. +# Grafana datasource provisioning depends on these — without them, dashboards show no data. +# See: Authentication and security in the Prometheus/VictoriaMetrics config guide. VM_AUTH_USERNAME=vmauth VM_AUTH_PASSWORD=<generated-secret> @@ -63,18 +87,25 @@ source files from `instances.yml`. ```yaml services: grafana: - image: grafana/grafana:latest + image: grafana/grafana:12.3.2 + container_name: grafana-with-datasources ports: - "${GRAFANA_BIND_HOST:-}3000:3000" volumes: - - grafana-data:/var/lib/grafana - - ./config/grafana/provisioning:/etc/grafana/provisioning + - grafana_data:/var/lib/grafana + - postgres_ai_configs:/postgres_ai_configs:ro environment: - - GF_SECURITY_ADMIN_USER=monitor - - GF_SECURITY_ADMIN_PASSWORD=${GF_SECURITY_ADMIN_PASSWORD:-demo} + GF_SECURITY_ADMIN_USER: monitor + GF_SECURITY_ADMIN_PASSWORD: ${GF_SECURITY_ADMIN_PASSWORD:-demo} + GF_PATHS_PROVISIONING: /postgres_ai_configs/grafana/provisioning + GF_PATHS_CONFIG: /postgres_ai_configs/grafana/provisioning/grafana.ini + VM_AUTH_USERNAME: ${VM_AUTH_USERNAME:?VM_AUTH_USERNAME is required for Grafana datasource provisioning} + VM_AUTH_PASSWORD: ${VM_AUTH_PASSWORD:?VM_AUTH_PASSWORD is required for Grafana datasource provisioning} + restart: unless-stopped sink-postgres: image: postgres:17 + container_name: sink-postgres environment: POSTGRES_DB: postgres POSTGRES_USER: postgres @@ -83,10 +114,11 @@ services: sink-prometheus: image: victoriametrics/victoria-metrics:v1.140.0 + container_name: sink-prometheus ports: - "${BIND_HOST:-}59090:9090" volumes: - - vm-data:/victoria-metrics-data + - victoria_metrics_data:/victoria-metrics-data environment: - VM_AUTH_USERNAME=${VM_AUTH_USERNAME:-} - VM_AUTH_PASSWORD=${VM_AUTH_PASSWORD:-} @@ -94,39 +126,61 @@ services: pgwatch-postgres: image: postgresai/pgwatch:${PGAI_TAG} + container_name: pgwatch-postgres command: - "--sources=/postgres_ai_configs/pgwatch/sources.yml" - "--metrics=/postgres_ai_configs/pgwatch/metrics.yml" - "--sink=postgresql://pgwatch@sink-postgres:5432/measurements?sslmode=disable" - "--web-addr=:8080" + - "--log-level=error" depends_on: - sources-generator - sink-postgres pgwatch-prometheus: image: postgresai/pgwatch:${PGAI_TAG} + container_name: pgwatch-prometheus command: - "--sources=/postgres_ai_configs/pgwatch-prometheus/sources.yml" - "--metrics=/postgres_ai_configs/pgwatch-prometheus/metrics.yml" - "--sink=prometheus://0.0.0.0:9091/pgwatch" - "--web-addr=:8089" + - "--log-level=error" depends_on: - sources-generator - sink-prometheus + # Flask backend is internal-only (no published host port); other services + # reach it over the Docker network. monitoring_flask_backend: image: postgresai/monitoring-flask-backend:${PGAI_TAG} - ports: - - "8000:8000" + container_name: flask-pgss-api environment: - PROMETHEUS_URL=http://sink-prometheus:9090 - POSTGRES_SINK_URL=postgresql://pgwatch@sink-postgres:5432/measurements + - QUERYID_RETENTION_HOURS=${QUERYID_RETENTION_HOURS:-720} volumes: - grafana-data: - vm-data: + grafana_data: + victoria_metrics_data: ``` +## Image tags and supply chain + +All stack images are **version-pinned** in 0.15 — none use `:latest`. PostgresAI images +(`pgwatch`, `monitoring-flask-backend`, `reporter`, configs) are pinned to `PGAI_TAG`, and the +third-party images are pinned to specific releases (for example `grafana/grafana:12.3.2`, +`victoriametrics/victoria-metrics:v1.140.0`, `postgres:17`). Pinning makes deployments +reproducible and auditable and avoids silent, unreviewed upgrades — set `PGAI_TAG=0.15.0` to +deploy this release. + +## Reliability and restart behavior + +Critical services ship with `restart: unless-stopped` so the monitoring stack comes back +automatically after a Docker daemon restart or host reboot — no manual systemd unit is needed. +The excerpt above shows the `restart:` key on the Grafana service; the full +`docker-compose.yml` sets it on the other long-running services as well. + ## Access Grafana After starting the stack, open Grafana at `localhost:3000` in your browser. @@ -188,10 +242,17 @@ pgwatch-prometheus: ### Flask backend Provides query text lookup for Grafana dashboards (joining pg_stat_statements queryid with actual SQL). +The backend listens on port 8000 inside the Docker network and is **not published to the host**, so +reach its health endpoint from within the network: **Health check:** + +The backend image is `python:3.11-slim` and does not include `curl`, so hit the endpoint with the +Python interpreter that ships in the image: + ```bash -curl http://localhost:8000/health +docker compose exec monitoring_flask_backend \ + python -c "import urllib.request,sys; sys.exit(0 if urllib.request.urlopen('http://localhost:8000/health').status==200 else 1)" ``` ## Directory structure @@ -200,21 +261,27 @@ curl http://localhost:8000/health postgresai/ ├── docker-compose.yml ├── .env +├── instances.yml # Databases to monitor ├── config/ │ ├── grafana/ -│ │ ├── provisioning/ -│ │ │ ├── dashboards/ -│ │ │ │ └── postgres_ai/ # Dashboard JSON files -│ │ │ └── datasources/ -│ │ │ └── default.yaml # VictoriaMetrics datasource -│ │ └── grafana.ini +│ │ ├── dashboards/ # Dashboard JSON files (14 dashboards + self-monitoring) +│ │ └── provisioning/ +│ │ ├── dashboards/ +│ │ │ └── dashboards.yml # Dashboard provider +│ │ ├── datasources/ +│ │ │ └── datasources.yml # PGWatch-PostgreSQL / PGWatch-Prometheus / Infinity datasources +│ │ └── grafana.ini │ └── prometheus/ -│ └── prometheus.yml # Scrape configuration +│ └── prometheus.yml # Scrape configuration └── monitoring_flask_backend/ ├── app.py └── Dockerfile ``` +At runtime these configs are copied into the `postgres_ai_configs` Docker volume by the +`config-init` service and mounted into the containers at `/postgres_ai_configs` (Grafana reads +its provisioning from `GF_PATHS_PROVISIONING=/postgres_ai_configs/grafana/provisioning`). + ## Operations ### Start stack @@ -278,6 +345,14 @@ To monitor multiple PostgreSQL instances, add them to `instances.yml`; `sources- node_name: primary ``` +After editing `instances.yml`, re-render both `sources.yml` files and restart the collectors so +they reload the new list (the running pgwatch collectors read `sources.yml` only at startup): + +```bash +docker compose run --rm sources-generator # re-render pgwatch/*/sources.yml +docker compose restart pgwatch-postgres pgwatch-prometheus # reload the regenerated sources +``` + Use the `cluster` and `node_name` custom tags in Grafana to switch between environments. ## Troubleshooting @@ -289,9 +364,11 @@ Use the `cluster` and `node_name` custom tags in Grafana to switch between envir docker compose logs pgwatch-postgres pgwatch-prometheus | grep -i error ``` -2. Verify VictoriaMetrics has data: +2. Verify VictoriaMetrics has data (host port `59090`, VM basic auth; all pgwatch series are + `pgwatch_`-prefixed): ```bash - curl 'http://localhost:59090/api/v1/query?query=pg_stat_user_tables_n_tup_ins' + curl -u "$VM_AUTH_USERNAME:$VM_AUTH_PASSWORD" \ + 'http://localhost:59090/api/v1/query?query=pgwatch_pg_stat_all_tables_n_tup_ins' ``` 3. Check Grafana datasource: diff --git a/docs/monitoring/getting-started/installation-helm.md b/docs/monitoring/getting-started/installation-helm.md index 779b5849..e9a253b9 100644 --- a/docs/monitoring/getting-started/installation-helm.md +++ b/docs/monitoring/getting-started/installation-helm.md @@ -6,171 +6,332 @@ sidebar_position: 5 # Helm installation -:::info Enterprise feature -Kubernetes deployment with Helm is available for Enterprise customers. [Contact us](https://postgres.ai/contact) to get started. +:::info Positioned for production / Enterprise +Kubernetes deployment with Helm is the recommended path for production and Enterprise use. The chart +is self-service and the full procedure is below; for dedicated support, SLAs, and managed rollout, +[contact us](https://postgres.ai/contact). ::: Deploy PostgresAI monitoring on Kubernetes using Helm. +:::info 0.15 chart defaults +The Helm chart defaults have been prepared for PostgresAI 0.15 — review updated chart values +before upgrading. Two things to note when moving to 0.15: + +- **VictoriaMetrics basic auth** is available but **off by default** (`victoriaMetrics.auth.enabled: false`). + To protect the VictoriaMetrics endpoint, set `victoriaMetrics.auth.enabled: true` and supply the + password — see [VictoriaMetrics authentication](#victoriametrics-authentication) below. +- **Metrics retention** is set with `victoriaMetrics.retentionPeriod`, which defaults to `336h` + (14 days) — the same default as the Docker Compose stack. Set it explicitly to match your plan. +::: + ## Prerequisites - Kubernetes 1.19+ - Helm 3.0+ - `kubectl` configured for your cluster -- PostgreSQL 14+ target database (accessible from cluster) +- PostgreSQL 13+ (14+ recommended) target database (accessible from cluster) ## Quick start +Monitored databases are configured as a list under `monitoredDatabases`, and their passwords +come from a Kubernetes secret (never inline). The minimal flow is: + +```bash +# 1. Create the namespace +kubectl create namespace postgres-ai-mon + +# 2. Create the secret holding the sink, Grafana, and per-database passwords +kubectl create secret generic postgres-ai-monitoring-secrets \ + --namespace postgres-ai-mon \ + --from-literal=postgres-password='SINK_POSTGRES_PASSWORD' \ + --from-literal=grafana-admin-user='monitor' \ + --from-literal=grafana-admin-password='GRAFANA_PASSWORD' \ + --from-literal=pgai-api-key='POSTGRES_AI_API_KEY' \ + --from-literal=db-password-my-db-password='DB_PASSWORD' + +# 3. Install the chart from a repository checkout +git clone https://gitlab.com/postgres-ai/postgresai.git && cd postgresai +helm install postgres-ai-monitoring ./postgres_ai_helm \ + --namespace postgres-ai-mon \ + --values custom-values.yaml +``` + +Installing from the chart directory in a repository checkout (the command above) works against +any tag or branch and is the most reliable option. + +If you prefer a packaged `.tgz`, the chart is published as a release asset under a `helm-v<version>` +tag. Once the matching release exists (for example `helm-v0.15.0`), open its +[Releases page](https://gitlab.com/postgres-ai/postgresai/-/releases) and download the +`postgres-ai-monitoring-chart.tgz` asset from that release, then install it: + ```bash -# Add the postgres-ai Helm repository -helm repo add postgres-ai https://charts.postgres.ai -helm repo update - -# Install with default values -helm install postgres-ai-monitoring postgres-ai/monitoring \ - --set target.host=your-postgres-host \ - --set target.port=5432 \ - --set target.database=your_database \ - --set target.user=pgwatch \ - --set target.password=your_password +helm install postgres-ai-monitoring postgres-ai-monitoring-chart.tgz \ + --namespace postgres-ai-mon \ + --values custom-values.yaml ``` +:::note +The packaged chart is registered as a generic release-asset link, so use the **Releases page** +asset for the tag to obtain its download URL. There is no stable +`/-/releases/<tag>/downloads/<file>` permalink for it. The `helm-v0.15.0` release may not be cut +yet at the time of reading — in that case use the repository-checkout install above. +::: + +The secret key for each monitored database must be named `db-password-<passwordSecretKey>`, +where `<passwordSecretKey>` matches the `passwordSecretKey` set on that database in +`monitoredDatabases` (see below). + ## Configuration ### values.yaml overview +The chart configures monitored databases as a **list** (`monitoredDatabases`), not a single +`target`. Cluster/node identity comes from `global.clusterName` / `global.nodeName` (with optional +per-database overrides), and all credentials live in a Kubernetes secret. The keys below match +the chart's `values.yaml` exactly: + ```yaml -# Target PostgreSQL connection -target: - host: "postgres.default.svc.cluster.local" - port: 5432 - database: "myapp" - user: "pgwatch" - password: "" # Use secret instead - existingSecret: "" # Name of secret containing password - -# Cluster identification -cluster: - name: "production" - nodeName: "primary" - -# Grafana configuration +# Top-level secret reference (recommended). When set, the chart reads all +# credentials (postgres, grafana, vm-auth, per-database passwords) from this secret. +existingSecret: + name: postgres-ai-monitoring-secrets + +# Cluster/node identity applied to all monitored databases by default +global: + clusterName: my-cluster + nodeName: my-node + customTags: {} + +# Databases to monitor (a list). Passwords are referenced by secret key, never inline. +monitoredDatabases: + - name: my-db + host: db-host.example.com + port: 5432 + database: postgres + user: postgres_ai_mon + passwordSecretKey: my-db-password # secret key: db-password-my-db-password + presetMetrics: full + customMetrics: {} + isEnabled: true + group: production + # Optional per-database overrides: + # clusterName: prod-us-east + # nodeName: node-02 + customTags: + env: production + +# VictoriaMetrics configuration +victoriaMetrics: + image: victoriametrics/victoria-metrics:v1.140.0 + retentionPeriod: 336h # default 336h (14 days); same as the Docker stack — set to match your plan + scrapeInterval: 15s + # VictoriaMetrics basic auth (optional in 0.15; off by default). The VictoriaMetrics + # StatefulSet, Flask, and the reporter read the password from the chart secret key + # `vm-auth-password`; the Grafana datasource instead reads the inline value + # `secrets.vmAuth.password`, so enabling auth requires supplying both (see below). + auth: + enabled: false + username: "vmauth" + service: + type: ClusterIP + port: 8428 + resources: {} + +# pgwatch collectors. Two deployments are shipped: one writing to the Postgres +# sink and one writing to the Prometheus (VictoriaMetrics) sink. Each runs a +# single replica. +pgwatchPostgres: + enabled: true + image: postgresai/pgwatch:0.15.0 + logLevel: error + resources: {} + +pgwatchPrometheus: + enabled: true + image: postgresai/pgwatch:0.15.0 + logLevel: error + resources: {} + +# Grafana is the upstream grafana/grafana subchart. Admin credentials come from +# the secret via grafana.admin; persistence/service/ingress are subchart values. grafana: enabled: true - replicas: 1 - resources: - requests: - cpu: 100m - memory: 256Mi - limits: - cpu: 500m - memory: 512Mi - ingress: - enabled: false - hosts: - - grafana.example.com - tls: [] - adminPassword: "" # Auto-generated if empty + image: + repository: grafana/grafana + tag: "12.3.2" + admin: + existingSecret: postgres-ai-monitoring-secrets + userKey: grafana-admin-user + passwordKey: grafana-admin-password persistence: enabled: true size: 5Gi + service: + type: ClusterIP + port: 80 + +# Persistent volume sizing +storage: + postgresSize: 50Gi + victoriaMetricsSize: 150Gi + grafanaSize: 5Gi + storageClassName: "" # empty = cluster default +``` -# VictoriaMetrics configuration -victoriametrics: - enabled: true - replicas: 1 - retention: 90d - resources: - requests: - cpu: 100m - memory: 256Mi - limits: - cpu: 1000m - memory: 1Gi - persistence: - enabled: true - size: 50Gi +:::note Subchart-managed Grafana +`grafana` is the upstream [grafana/grafana](https://github.com/grafana/helm-charts) subchart, so +its resource requests/limits, ingress, and replica count are configured with that subchart's own +values (for example `grafana.resources`). The PostgresAI chart only pins `grafana.image`, +`grafana.admin`, `grafana.persistence`, `grafana.service`, and the dashboard/datasource sidecars. +There is no top-level `grafana.adminPassword` value — set the admin password in the secret +(`grafana-admin-password`). +::: -# pgwatch collector -pgwatch: - enabled: true - replicas: 1 - resources: - requests: - cpu: 50m - memory: 128Mi - limits: - cpu: 500m - memory: 256Mi +### Using Kubernetes secrets + +For production, store all credentials in a single Kubernetes secret and reference it with the +top-level `existingSecret`. The chart reads these keys: + +| Secret key | Used for | +|------------|----------| +| `postgres-password` | Internal Postgres metrics sink | +| `grafana-admin-user` | Grafana admin username | +| `grafana-admin-password` | Grafana admin password | +| `pgai-api-key` | PostgresAI platform API key (reporter) | +| `vm-auth-password` | VictoriaMetrics basic auth (when `victoriaMetrics.auth.enabled: true`) | +| `db-password-<passwordSecretKey>` | Password for each monitored database | + +```bash +kubectl create secret generic postgres-ai-monitoring-secrets \ + --namespace postgres-ai-mon \ + --from-literal=postgres-password='...' \ + --from-literal=grafana-admin-user='monitor' \ + --from-literal=grafana-admin-password='...' \ + --from-literal=pgai-api-key='...' \ + --from-literal=db-password-my-db-password='...' ``` -### Using Kubernetes secrets +Reference it in values: -For production, store credentials in a secret: +```yaml +existingSecret: + name: postgres-ai-monitoring-secrets +``` + +:::note Development only +For development/testing, the chart can render the secret from values by setting +`secrets.createFromValues: true` and supplying `secrets.postgres.password`, +`secrets.grafana.adminPassword`, etc. **Never commit real secrets to version control.** +::: + +### VictoriaMetrics authentication + +New in 0.15, VictoriaMetrics can be protected with HTTP basic auth. It is **off by default** +(`victoriaMetrics.auth.enabled: false`); enable it to secure the metrics endpoint. When enabled, +the VictoriaMetrics StatefulSet, the Flask backend, and the reporter read the password from the +chart secret key **`vm-auth-password`** (via `secretKeyRef`). + +:::warning The Grafana datasource reads the password from an inline value, not the secret +The Grafana datasource ConfigMap is the exception: it renders `basicAuthPassword` from the +**inline** chart value `secrets.vmAuth.password`, **not** from the `vm-auth-password` secret key. +So when `victoriaMetrics.auth.enabled: true`, you must also supply `secrets.vmAuth.password` (for +example via `secrets.createFromValues: true`, or by setting it directly) — otherwise the datasource +is rendered with the unset placeholder default (`CHANGE_ME_vm_auth_password`), Grafana cannot +authenticate to VictoriaMetrics, and all dashboards show no data. Putting the password only in the +pre-created `existingSecret` is enough for VictoriaMetrics, Flask, and the reporter, but **not** for +the Grafana datasource. +::: + +Turn it on in values: ```yaml -apiVersion: v1 -kind: Secret -metadata: - name: postgres-ai-target -type: Opaque -stringData: - password: "your-secure-password" +victoriaMetrics: + auth: + enabled: true + username: "vmauth" # default ``` -Reference in values: +Provide the `vm-auth-password` value through the chart's secret. For production, store it in a +pre-created Kubernetes secret and reference it via the top-level `existingSecret` (the same secret +also holds the Postgres and Grafana credentials): + +```bash +kubectl create secret generic postgres-ai-monitoring-secrets \ + --namespace postgres-ai-mon \ + --from-literal=postgres-password='...' \ + --from-literal=grafana-admin-user='monitor' \ + --from-literal=grafana-admin-password='...' \ + --from-literal=vm-auth-password='your-vm-auth-secret' +``` ```yaml -target: - existingSecret: "postgres-ai-target" - # passwordKey defaults to "password" +existingSecret: + name: postgres-ai-monitoring-secrets ``` +For development/testing only, the chart can render the secret from values +(`secrets.createFromValues: true`): + +```yaml +secrets: + createFromValues: true # never commit real secrets to version control + vmAuth: + password: "your-vm-auth-secret" +``` + +This mirrors the `VM_AUTH_USERNAME` / `VM_AUTH_PASSWORD` keys used by the Docker Compose stack — +see [Authentication and security](/docs/monitoring/configuration/prometheus-config#authentication-and-security). + ### Ingress configuration -Enable external access to Grafana: +External access to Grafana is configured with the chart's **top-level** `ingress` block (enabled +by default). The host is set under `ingress.hosts.grafana`: ```yaml -grafana: - ingress: - enabled: true - className: nginx - annotations: - cert-manager.io/cluster-issuer: letsencrypt - hosts: - - host: grafana.example.com - paths: - - path: / - pathType: Prefix - tls: - - secretName: grafana-tls - hosts: - - grafana.example.com +ingress: + enabled: true + className: nginx + annotations: + cert-manager.io/cluster-issuer: letsencrypt + hosts: + grafana: grafana.example.com + tls: + - secretName: grafana-tls + hosts: + - grafana.example.com ``` +:::note +This is the chart's own `ingress` value, not the Grafana subchart's. The subchart's +`grafana.ingress` is disabled by default and is not used by this stack. +::: + ## Installation commands ### Install with custom values ```bash -helm install postgres-ai-monitoring postgres-ai/monitoring \ - -f values.yaml \ - --namespace monitoring \ +# postgres-ai-monitoring-chart.tgz is the release artifact from GitLab Releases (see Quick start), +# or use ./postgres_ai_helm from a repository checkout +helm install postgres-ai-monitoring postgres-ai-monitoring-chart.tgz \ + -f custom-values.yaml \ + --namespace postgres-ai-mon \ --create-namespace ``` ### Upgrade existing installation ```bash -helm upgrade postgres-ai-monitoring postgres-ai/monitoring \ - -f values.yaml \ - --namespace monitoring +helm upgrade postgres-ai-monitoring postgres-ai-monitoring-chart.tgz \ + -f custom-values.yaml \ + --namespace postgres-ai-mon ``` ### Uninstall ```bash -helm uninstall postgres-ai-monitoring --namespace monitoring +helm uninstall postgres-ai-monitoring --namespace postgres-ai-mon ``` :::warning @@ -181,62 +342,63 @@ Uninstalling removes all components including data. Back up VictoriaMetrics PVC ### Port forward (development) +The Grafana subchart's service listens on port 80: + ```bash -kubectl port-forward svc/postgres-ai-monitoring-grafana 3000:3000 -n monitoring +kubectl port-forward svc/postgres-ai-monitoring-grafana 3000:80 -n postgres-ai-mon ``` -Open Grafana +Then open `http://localhost:3000`. -### Get admin password +### Get admin credentials -If not specified in values: +The admin username and password come from the chart secret (keys `grafana-admin-user` / +`grafana-admin-password`): ```bash -kubectl get secret postgres-ai-monitoring-grafana -n monitoring \ - -o jsonpath="{.data.admin-password}" | base64 --decode +kubectl get secret postgres-ai-monitoring-secrets -n postgres-ai-mon \ + -o jsonpath="{.data.grafana-admin-password}" | base64 --decode ``` ## Multi-cluster monitoring -Monitor multiple PostgreSQL clusters from a single Grafana instance: - -### Option 1: Multiple pgwatch deployments +Monitor multiple PostgreSQL clusters from a single installation by adding entries to +`monitoredDatabases`. Set `clusterName` / `nodeName` per database to tag each one; if omitted, +they inherit `global.clusterName` / `global.nodeName`. The reporter creates a separate cronjob +for each unique cluster/node combination. ```yaml -# values-cluster1.yaml -cluster: - name: "prod-us-east" -pgwatch: - enabled: true -grafana: - enabled: false # Disable for secondary clusters - -# values-cluster2.yaml -cluster: - name: "prod-us-west" -pgwatch: - enabled: true -grafana: - enabled: false -``` - -Install each: -```bash -helm install monitoring-us-east postgres-ai/monitoring -f values-cluster1.yaml -helm install monitoring-us-west postgres-ai/monitoring -f values-cluster2.yaml +global: + clusterName: default + nodeName: default + +monitoredDatabases: + - name: prod-us-east + host: db-east.example.com + port: 5432 + database: postgres + user: postgres_ai_mon + passwordSecretKey: prod-us-east-password + presetMetrics: full + isEnabled: true + group: production + clusterName: prod-us-east + nodeName: node-01 + + - name: prod-us-west + host: db-west.example.com + port: 5432 + database: postgres + user: postgres_ai_mon + passwordSecretKey: prod-us-west-password + presetMetrics: full + isEnabled: true + group: production + clusterName: prod-us-west + nodeName: node-01 ``` -### Option 2: Multi-target configuration - -Configure pgwatch to scrape multiple databases: - -```yaml -pgwatch: - extraSources: - - name: "staging-db" - connstring: "postgresql://user:pass@staging-host:5432/db" - cluster_name: "staging" -``` +Add a matching `db-password-<passwordSecretKey>` key to the secret for each database. ## Resource sizing @@ -246,11 +408,11 @@ pgwatch: grafana: resources: requests: { cpu: 100m, memory: 256Mi } -victoriametrics: +victoriaMetrics: resources: requests: { cpu: 100m, memory: 256Mi } - persistence: - size: 10Gi +storage: + victoriaMetricsSize: 10Gi ``` ### Medium (5-20 databases) @@ -259,11 +421,11 @@ victoriametrics: grafana: resources: requests: { cpu: 200m, memory: 512Mi } -victoriametrics: +victoriaMetrics: resources: requests: { cpu: 500m, memory: 1Gi } - persistence: - size: 50Gi +storage: + victoriaMetricsSize: 50Gi ``` ### Large (20+ databases) @@ -272,11 +434,11 @@ victoriametrics: grafana: resources: requests: { cpu: 500m, memory: 1Gi } -victoriametrics: +victoriaMetrics: resources: requests: { cpu: 1000m, memory: 4Gi } - persistence: - size: 200Gi +storage: + victoriaMetricsSize: 200Gi ``` ## Troubleshooting @@ -285,30 +447,35 @@ victoriametrics: Check events: ```bash -kubectl describe pod -l app=postgres-ai-monitoring -n monitoring +kubectl describe pod -l app.kubernetes.io/instance=postgres-ai-monitoring -n postgres-ai-mon ``` Common issues: - PVC not provisioned (check storage class) -- Secret not found +- Secret not found (check `existingSecret.name` and the `db-password-*` keys) - Resource limits too low ### No data in Grafana -1. Check pgwatch logs: +1. Check the pgwatch collector logs (two deployments: `-pgwatch-postgres` and + `-pgwatch-prometheus`): ```bash - kubectl logs -l app=pgwatch -n monitoring + kubectl logs -l app.kubernetes.io/component=pgwatch-prometheus -n postgres-ai-mon ``` -2. Verify target connectivity: +2. Verify target connectivity. The pgwatch image is a minimal Alpine build + with only the collector binary (no `psql`), so run the check from a throwaway + `postgres:17` pod instead of `kubectl exec` into the pgwatch pod: ```bash - kubectl exec -it deploy/pgwatch -n monitoring -- \ + kubectl run pg-check --rm -it --image=postgres:17 --restart=Never -n postgres-ai-mon -- \ psql "postgresql://user:pass@host:5432/db" -c "SELECT 1" ``` + (If you prefer not to spin up a pod, the collector logs from step 1 already + surface connection errors.) 3. Check VictoriaMetrics has data: ```bash - kubectl port-forward svc/victoriametrics 8428:8428 -n monitoring + kubectl port-forward svc/postgres-ai-monitoring-victoriametrics 8428:8428 -n postgres-ai-mon curl 'http://localhost:8428/api/v1/query?query=up' ``` diff --git a/docs/monitoring/getting-started/quickstart-supabase.md b/docs/monitoring/getting-started/quickstart-supabase.md index 6ada87ec..ef2b4c0d 100644 --- a/docs/monitoring/getting-started/quickstart-supabase.md +++ b/docs/monitoring/getting-started/quickstart-supabase.md @@ -1,7 +1,7 @@ --- title: Quick start for Supabase sidebar_label: Quick start for Supabase -sidebar_position: 7 +sidebar_position: 8 keywords: - "PostgresAI for Supabase" - "Postgres monitoring for Supabase" @@ -137,8 +137,8 @@ Open the Grafana URL from the deployment page. You can sign in using one of the [![Grafana login page with Sign in with PostgresAI button](/assets/supabase-monitoring/supabase-monitoring-7.png)](/assets/supabase-monitoring/supabase-monitoring-7.png) -Start with **01. Node overview** for a high-level health check of your Supabase database. Key panels -to check first: +Start with **01. Single node performance overview (high-level)** for a high-level health check of +your Supabase database. Key panels to check first: 1. **Active session history (ASH)** — wait events over time 2. **Sessions** — active, idle, and idle in transaction connections diff --git a/docs/monitoring/getting-started/requirements.md b/docs/monitoring/getting-started/requirements.md index b508d751..56771bc9 100644 --- a/docs/monitoring/getting-started/requirements.md +++ b/docs/monitoring/getting-started/requirements.md @@ -20,6 +20,13 @@ sidebar_position: 2 | 13 | Not recommended (EOL Nov 2025) | | 12 and earlier | Not supported | +:::note PostgreSQL 16+ for I/O statistics +The [I/O statistics dashboard (14)](/docs/monitoring/dashboards/io-statistics) and the +`pg_stat_io` metric group require **PostgreSQL 16 or newer** (`pg_stat_io` was introduced in +PG16). On PostgreSQL 15 and earlier, all other dashboards work but the I/O statistics dashboard +has no data. +::: + ### Required extensions #### pg_stat_statements (required) @@ -47,6 +54,18 @@ Changes to `shared_preload_libraries` require a PostgreSQL restart. The wait events dashboard uses `pg_stat_activity`, which is built into PostgreSQL. No additional extensions are required. ::: +## CLI runtime + +The `postgresai` CLI (used for `prepare-db`, `checkup`, `mon`, and MCP) requires: + +| Runtime | Version | +|---------|---------| +| Node.js | 18+ | +| Bun (alternative) | 1.0+ | + +Older Node.js versions fail fast in 0.15 with a clear error instead of breaking partway through +a command. + ## Monitoring stack requirements ### Local installation (Docker) @@ -78,11 +97,17 @@ For self-managed deployments, you need connectivity between the monitoring node **Inbound ports** (on the monitoring node): -| Service | Default port | Notes | -|---------|--------------|-------| -| Grafana | 3000 | Recommended: protect behind a reverse proxy with TLS | -| VictoriaMetrics | 8428 | Internal use | -| Flask backend | 8000 | Internal use | +| Service | Host port | Notes | +|---------|-----------|-------| +| Grafana | 3000 | Published to the host. Recommended: protect behind a reverse proxy with TLS | +| VictoriaMetrics | 59090 | Published to the host (container listens on 9090); used for direct metric queries | +| Flask backend | — | Internal only — not published to the host (container port 8000) | + +:::note Helm uses different ports +The port numbers above apply to the Docker Compose stack. On Kubernetes, the VictoriaMetrics +service listens on port 8428 and Grafana on port 80 (cluster-internal); expose them via Ingress +or `kubectl port-forward`. +::: ## Cloud-specific requirements @@ -102,9 +127,13 @@ For self-managed deployments, you need connectivity between the monitoring node ### Metrics retention Default retention periods: -- **VictoriaMetrics**: 14 days (`336h`) +- **VictoriaMetrics**: 14 days (`336h`), tunable via `VM_RETENTION_PERIOD` +- **Query-id → query-text mapping** (Flask backend): tunable via `QUERYID_RETENTION_HOURS`, independent of metrics retention - **Prometheus**: not used by the default local-install stack +See [Retention](/docs/monitoring/configuration/prometheus-config#retention) for tuning both +knobs together. + ### Disk usage estimates | Monitored databases | Daily growth | 14-day storage | @@ -124,10 +153,18 @@ VictoriaMetrics typically achieves 10-15x compression on time-series data. The `prepare-db` command creates a user with **read-only access to metadata only** — no actual data is ever accessed. ```sql --- Read-only access to system catalogs -grant pg_read_all_stats to postgres_ai_mon; +-- Standard monitoring privileges (the built-in pg_monitor role) +grant pg_monitor to postgres_ai_mon; +grant connect on database <database> to postgres_ai_mon; +grant select on pg_catalog.pg_index to postgres_ai_mon; +-- plus a small postgres_ai schema (with a pg_statistic view for bloat analysis) +-- that prepare-db creates and grants usage/select on ``` +`prepare-db` grants the built-in `pg_monitor` role (not `pg_read_all_stats`, which is a strict +subset of `pg_monitor` and would not be sufficient — the install/verify step checks for +`pg_monitor` membership). + :::tip Review exact permissions To see the complete SQL used to create the monitoring role: ```bash diff --git a/docs/monitoring/getting-started/upgrade.md b/docs/monitoring/getting-started/upgrade.md new file mode 100644 index 00000000..00bb20af --- /dev/null +++ b/docs/monitoring/getting-started/upgrade.md @@ -0,0 +1,589 @@ +--- +title: Upgrading the monitoring stack +sidebar_label: Upgrading +sidebar_position: 7 +keywords: + - "PostgresAI monitoring upgrade" + - "mon update" + - "mon update-config" + - "VM_AUTH upgrade" + - "monitoring .env migration" +--- + +# Upgrading the monitoring stack + +This page covers upgrading an existing self-hosted monitoring stack to a newer PostgresAI +release (for example, from 0.14.x to 0.15.0). New installs should follow the +[CLI](/docs/monitoring/getting-started/installation-cli) or +[Docker Compose](/docs/monitoring/getting-started/installation-docker) guides instead. + +:::danger Breaking change in 0.15.0: bundled PostgreSQL 15 → 17 +0.15.0 upgrades the bundled PostgreSQL images from **15 to 17** for the stack's own +databases (`sink-postgres`, and on the demo `target-db` / `target-standby`). PostgreSQL's +on-disk format is **not** compatible across major versions, so the new images **refuse to +start** on a PostgreSQL 15 data directory (the entrypoint exits with a clear message instead +of crash-looping). **Your data is not deleted** — the guard refuses to touch it — but the +stack will not come up until you migrate the data. **Do the +[PostgreSQL 15 → 17 migration](#postgresql-15--17-major-version-migration) below *before* the +bring-up step** (`docker compose up -d`) in either upgrade path. This affects every +self-hosted deployment; your externally-monitored databases are **not** touched. +::: + +## PostgreSQL 15 → 17 major-version migration + +**Read this before bringing the stack up.** 0.15.0 bumps the stack's bundled PostgreSQL from +15 to 17. PostgreSQL stores data in a major-version-specific on-disk format, so PostgreSQL 17 +cannot read a PostgreSQL 15 data directory. To make this safe and obvious, the 0.15.0 entrypoint +checks the on-disk `PG_VERSION` against the image version and, on a mismatch, **refuses to start** +with an actionable message (exit code 3) instead of crash-looping with a buried +"database files are incompatible with server" error. + +**Your historical data is not lost** by the upgrade itself — the guard never writes to the old +data directory. You migrate it (or deliberately reset it) with the steps below. + +### Who is affected + +| Database (Docker container) | Role | Present in | Action | +|---|---|---|---| +| `sink-postgres` | pgwatch **measurements** DB — stores historical PostgreSQL metrics | **Every** self-hosted deploy | Migrate **or** reset (your choice — see below) | +| `target-db` | Bundled **sample** database being monitored | Demo only (`--demo`) | Migrate or reset (same procedure) | +| `target-standby` | Streaming **replica** of `target-db` | Demo only | **Do not migrate the replica** — re-clone it (see [Standbys](#standbys-target-standby)) | + +Your **own monitored databases are external and are *not* touched** by this upgrade — PostgresAI +connects to them over the network and never alters their on-disk format. This migration is only +about the stack's *own* bundled PostgreSQL containers. + +### Choose: preserve history, or reset + +For `sink-postgres` you have two options. Pick one before you start: + +- **(a) Preserve historical measurements (dump/restore).** Keeps all of your accumulated pgwatch + measurements across the upgrade. Use this if historical trends matter to you. Follow + [Option A](#option-a-preserve-history-dumprestore). +- **(b) Accept a reset of the measurements DB (simpler).** Discard the historical pgwatch + measurements and start PostgreSQL 17 with a **fresh, empty** `sink-postgres`. Live monitoring + resumes immediately and history re-accumulates from now on; only past measurements are lost. + Choose this if you do not need the history or want the fastest path. Follow + [Option B](#option-b-accept-a-reset-no-dump). + +Either way, **VictoriaMetrics metrics** (the `sink-prometheus` time-series, used by most Grafana +dashboards) live in a **separate** volume and are **not** affected by the PostgreSQL major-version +change. This choice only concerns the PostgreSQL-format `sink-postgres` measurements DB. + +:::danger Data-safety rules (apply to every option) +- **Never delete or overwrite the PostgreSQL 15 data volume until the PostgreSQL 17 restore is + verified.** Keep the old volume as your rollback. +- **Rename / keep the old volume**, do not reuse it in place: restore into a **fresh** volume so + the original PostgreSQL 15 data stays intact until you have confirmed the new one works. +- **Verify before cleanup:** check `pg_isready`, expected databases exist, and row counts / + table counts look sane on PostgreSQL 17, and that Grafana/app health is green — *then* remove + the old volume. +- Take the dump and run the migration **while the stack is stopped**, so nothing writes to the + measurements DB mid-migration. +::: + +### Find your volume names first + +The migration commands below operate on Docker **volumes** and **containers** by name. Container +names are stable (`sink-postgres`, `target-db`, `target-standby`). Volume names are +**prefixed with your Compose project name**, which is the **basename of your monitoring +directory** — for the default npx / global install (`~/.config/postgresai/monitoring`) the +prefix is `monitoring_`, giving `monitoring_sink_postgres_data`. **Do not assume the prefix** — +list your actual volumes and use those exact names: + +```bash +# From your monitoring directory. List the stack's PostgreSQL data volumes: +docker volume ls --format '{{.Name}}' | grep -E 'sink_postgres_data|target_db_data|target_standby_data' +# Example output (default install): +# monitoring_sink_postgres_data +# monitoring_target_db_data +# monitoring_target_standby_data +``` + +Throughout this section, substitute **`<sink-vol>`** with your actual `*_sink_postgres_data` +volume name (and `<target-db-vol>` / `<target-standby-vol>` on the demo). + +### Stop the stack + +```bash +# From your monitoring directory +docker compose down # stops containers; named volumes are preserved +``` + +### Option A: preserve history (dump/restore) + +This runs the **previous PostgreSQL 15 image** against your existing data volume to take a logical +dump, then restores it into a **fresh PostgreSQL 17 volume**. The old volume is never modified. + +```bash +# 0. Substitute your real sink volume name (see "Find your volume names first"). +SINK_VOL=<sink-vol> # e.g. monitoring_sink_postgres_data +DUMP_DIR="$(pwd)/pg15-migration" # dump lands on the host, outside any volume +mkdir -p "$DUMP_DIR" + +# 1. Dump the PG15 data using the OLD image, read-only against the EXISTING volume. +# pg_dumpall captures ALL databases + global roles (the pgwatch 'measurements' +# DB, the 'pgwatch' role, etc.). The volume is mounted but never written to. +docker run --rm \ + -v "${SINK_VOL}:/var/lib/postgresql/data:ro" \ + -v "${DUMP_DIR}:/dump" \ + -e POSTGRES_HOST_AUTH_METHOD=trust \ + --entrypoint bash \ + postgres:15 -c ' + set -e + # Start PG15 transiently from the existing data dir, dump, then stop. + chown -R postgres:postgres /var/lib/postgresql/data + su postgres -c "pg_ctl -D /var/lib/postgresql/data -w start" + su postgres -c "pg_dumpall -U postgres" > /dump/all.sql + su postgres -c "pg_ctl -D /var/lib/postgresql/data -w stop" + ' +# Sanity-check the dump is non-empty and contains your DB: +ls -lh "$DUMP_DIR/all.sql" +grep -c 'CREATE DATABASE' "$DUMP_DIR/all.sql" || true +``` + +:::note Read-only mount keeps PostgreSQL 15 intact +The old volume is mounted `:ro` here so the dump physically cannot modify your PostgreSQL 15 +data. If your platform rejects starting PostgreSQL on a read-only mount, drop `:ro` — but then +**do not** run any other PostgreSQL 15 step against it, and keep the volume untouched as your +rollback. +::: + +```bash +# 2. Create a FRESH PG17 volume (do NOT reuse the PG15 volume). +NEW_SINK_VOL="${SINK_VOL}-pg17" +docker volume create "$NEW_SINK_VOL" + +# 3. Initialize + restore into the fresh PG17 volume using the PG17 image. +docker run --rm \ + -v "${NEW_SINK_VOL}:/var/lib/postgresql/data" \ + -v "${DUMP_DIR}:/dump:ro" \ + -e POSTGRES_HOST_AUTH_METHOD=trust \ + --entrypoint bash \ + postgres:17 -c ' + set -e + su postgres -c "initdb -D /var/lib/postgresql/data" + su postgres -c "pg_ctl -D /var/lib/postgresql/data -w start" + su postgres -c "psql -U postgres -f /dump/all.sql" + su postgres -c "pg_ctl -D /var/lib/postgresql/data -w stop" + ' +``` + +```bash +# 4. Swap the stack onto the new volume WITHOUT destroying the old one. +# Rename the old PG15 volume aside (rollback), then give the new PG17 data +# the name the stack expects. Docker has no native rename, so re-create the +# target volume from the PG17 data via a copy. +docker volume create "${SINK_VOL}-pg15-backup" +# Copy PG15 data into the *-pg15-backup volume (preserves your rollback under a safe name)… +docker run --rm -v "${SINK_VOL}:/from:ro" -v "${SINK_VOL}-pg15-backup:/to" \ + alpine sh -c 'cp -a /from/. /to/' +# …then overwrite the canonical volume with the PG17 data: +docker run --rm -v "${NEW_SINK_VOL}:/from:ro" -v "${SINK_VOL}:/to" \ + alpine sh -c 'rm -rf /to/* /to/..?* /to/.[!.]* 2>/dev/null; cp -a /from/. /to/' +``` + +:::tip Simpler alternative to step 4 +If you would rather not copy volumes, you can instead tell Compose to use the new volume by name. +But the copy approach above keeps the canonical volume name the stack already references, which +avoids editing `docker-compose.yml`. Whichever you choose, the original PostgreSQL 15 data must +survive under a clearly-named backup volume (`*-pg15-backup`) until you have verified PostgreSQL 17. +::: + +Now continue to **[Bring the stack up and verify](#bring-up-and-verify)**. + +### Option B: accept a reset (no dump) + +This discards the historical pgwatch measurements and lets PostgreSQL 17 initialize a brand-new, +empty `sink-postgres`. Live monitoring resumes immediately; only past measurements are lost. +**Still keep the old volume as a backup** until you have confirmed the fresh stack is healthy — +do not delete it yet. + +```bash +SINK_VOL=<sink-vol> # e.g. monitoring_sink_postgres_data + +# Preserve the PG15 data under a backup name (rollback), THEN clear the canonical +# volume so PG17 initializes fresh into it. +docker volume create "${SINK_VOL}-pg15-backup" +docker run --rm -v "${SINK_VOL}:/from:ro" -v "${SINK_VOL}-pg15-backup:/to" \ + alpine sh -c 'cp -a /from/. /to/' +docker run --rm -v "${SINK_VOL}:/to" \ + alpine sh -c 'rm -rf /to/* /to/..?* /to/.[!.]* 2>/dev/null || true' +``` + +On the next bring-up, `sink-postgres` (PostgreSQL 17) sees an empty data directory and runs a +fresh `initdb`; pgwatch recreates the `measurements` database and starts collecting again. +Continue to **[Bring the stack up and verify](#bring-up-and-verify)**. + +### Demo sample DB (`target-db`) + +On a `--demo` deployment, `target-db` is the bundled sample database and follows the **same +pattern** as `sink-postgres`. It usually holds only throwaway sample data, so most operators just +**reset** it (Option B applied to `<target-db-vol>`). If you want to keep its contents, apply +Option A to `<target-db-vol>` instead. Real users' monitored databases are external and need no +action. + +### Standbys (`target-standby`) + +**Do not migrate the replica.** A standby's data directory is a physical copy of its primary and +cannot be independently `pg_upgrade`d or dump/restored. Instead: + +1. Upgrade/initialize the **primary** (`target-db`) first, per the steps above. +2. **Re-clone the standby** from the upgraded primary via `pg_basebackup`. + +The bundled demo does this automatically: the `target-standby` service re-clones itself with +`pg_basebackup` whenever its data directory is empty. So the correct action is simply to **clear +the standby's volume** and let it rebuild on bring-up: + +```bash +STANDBY_VOL=<target-standby-vol> # e.g. monitoring_target_standby_data +# Keep a backup name for safety, then clear so the demo re-clones from the new primary. +docker volume create "${STANDBY_VOL}-pg15-backup" +docker run --rm -v "${STANDBY_VOL}:/from:ro" -v "${STANDBY_VOL}-pg15-backup:/to" \ + alpine sh -c 'cp -a /from/. /to/' +docker run --rm -v "${STANDBY_VOL}:/to" \ + alpine sh -c 'rm -rf /to/* /to/..?* /to/.[!.]* 2>/dev/null || true' +``` + +On bring-up, `target-standby` waits for the upgraded `target-db` and re-streams a fresh +PostgreSQL 17 base backup. (No dump/restore is possible or needed for a replica.) + +### Bring up and verify + +After migrating/resetting the volumes above, proceed with the normal bring-up of your upgrade +path (continue to [Upgrade with the CLI](#upgrade-with-the-cli-recommended) or +[Upgrade with Docker Compose](#upgrade-with-docker-compose-manual)). Then verify: + +```bash +# Containers are up and PG17 is actually serving: +docker compose ps +docker exec sink-postgres postgres --version # expect: postgres (PostgreSQL) 17.x +docker exec sink-postgres pg_isready -U postgres # expect: accepting connections + +# (Option A only) confirm the measurements DB and its contents survived: +docker exec sink-postgres psql -U postgres -c '\l' # 'measurements' DB present +docker exec sink-postgres psql -U postgres -d measurements -c \ + "SELECT count(*) FROM information_schema.tables WHERE table_schema NOT IN ('pg_catalog','information_schema');" +# Compare this table count (and, for key tables, row counts) against the PG15 dump +# before you trust the migration. Spot-check a metrics table row count if you can. +``` + +Then open Grafana and confirm dashboards render data, and run the stack health check: + +```bash +npx postgresai@0.15.0 mon health +``` + +### Post-migration: restore query-text collection on the fresh `sink-postgres` + +After a dump/restore migration ([Option A](#option-a-preserve-history-dumprestore)) — or any +path that lands the `measurements` database on a **freshly initialized PostgreSQL 17** data +directory — query-text collection breaks **silently** even though metrics keep flowing. The new +data directory is bootstrapped from scratch, so two things the stack normally configures only on +**first init** are missing. This affects **all dump/restore upgraders**. Apply both fixes below. + +**Symptom (how to recognize it).** Metrics graphs still draw, but **query texts vanish**: + +- Dashboard 02 — the **"Query text" column is blank**. +- Dashboard 03 (per-query) — **"No data"**. +- Graph legends show the **raw label JSON** (e.g. `{queryid="…", …}`) instead of the actual + query text. + +There are **two independent root causes**, both on the fresh `sink-postgres`. Fix both. + +#### Cause 1 — pg_hba.conf does not allow the monitoring services over the Docker IPv6 network + +A fresh PG17 data directory ships a default `pg_hba.conf` that does **not** include the +Docker **IPv6 ULA** network the monitoring stack uses. The Flask backend +(`monitoring_flask_backend`) and `pgwatch-postgres` resolve `sink-postgres` to its IPv6 +address first (per RFC 6724) and are rejected, so **0 query texts** are written. You'll see +this in the `sink-postgres` / Flask logs: + +```text +FATAL: no pg_hba.conf entry for host "<ipv6-addr>", user "...", database "measurements", no encryption +``` + +**Discover the real IPv6 range** for your deployment (do **not** copy a value from this page — +ranges differ per host). Either read the rejected host straight from the logs: + +```bash +docker logs sink-postgres 2>&1 | grep "no pg_hba.conf entry" +docker logs monitoring_flask_backend 2>&1 | grep -i "pg_hba\|no encryption" +``` + +…or inspect the monitoring Docker network's IPv6 subnet directly: + +```bash +# Replace <monitoring-network> with your compose network (see: docker network ls) +docker network inspect <monitoring-network> \ + --format '{{range .IPAM.Config}}{{.Subnet}} {{end}}' +``` + +Add a matching IPv6 ULA entry to the fresh `sink-postgres` `pg_hba.conf` and reload (no +restart needed). Use the **range you discovered** above: + +```bash +# Use the IPv6 ULA subnet from the step above (example shape only — substitute yours): +IPV6_ULA='fdXX:XXXX:XXXX::/48' + +docker exec -i sink-postgres bash -lc \ + "echo \"host all all ${IPV6_ULA} trust\" >> \"\$PGDATA/pg_hba.conf\"" + +# Reload so the new rule takes effect without a restart +docker exec -i sink-postgres psql -U postgres -d measurements -c "select pg_reload_conf()" +``` + +#### Cause 2 — `init.sql` schema bootstrap was not re-applied (dedup function missing) + +The fresh `measurements` database lacks the partition-safe dedup function/trigger and +supporting schema that `config/sink-postgres/init.sql` installs (it only runs automatically on +the very first init of a volume). Without it, the Flask backend refuses to export query texts +and logs: + +```text +WARNING: Sink dedup function public.enforce_queryid_uniqueness ... missing ... + Re-run config/sink-postgres/init.sql as the bootstrap role. +... +Exported 0 active queryids for metrics +``` + +Re-run the schema bootstrap as the **bootstrap/superuser role** (`postgres`). The script is +idempotent (`create … if not exists` / `create or replace`), so it is safe to re-apply: + +```bash +# From the monitoring project directory (where config/sink-postgres/init.sql lives) +docker exec -i sink-postgres psql -U postgres -d measurements < config/sink-postgres/init.sql +``` + +#### Restart the collectors and verify + +After **both** fixes, restart the two services that write query texts: + +```bash +docker compose restart pgwatch-postgres monitoring_flask_backend +``` + +Confirm the Flask backend now exports query texts (allow **one query-info scrape cycle, +~5 minutes**): + +```bash +# Expect a non-zero count, not "Exported 0 active queryids": +docker logs --since 6m monitoring_flask_backend 2>&1 | grep "active queryids for metrics" +``` + +Then reload Grafana: Dashboard 02's **"Query text"** column populates, Dashboard 03 shows +data, and graph legends render real query text instead of raw label JSON. + +### Rollback + +If anything looks wrong, you have **not** lost the PostgreSQL 15 data — it is in the +`*-pg15-backup` volume(s): + +```bash +docker compose down +SINK_VOL=<sink-vol> +# Restore the PG15 data back into the canonical volume… +docker run --rm -v "${SINK_VOL}-pg15-backup:/from:ro" -v "${SINK_VOL}:/to" \ + alpine sh -c 'rm -rf /to/* /to/..?* /to/.[!.]* 2>/dev/null; cp -a /from/. /to/' +# …then temporarily pin the affected service back to postgres:15 (edit docker-compose.yml) +# and bring the stack up on the old image while you investigate. +``` + +### Clean up (only after verification) + +Once PostgreSQL 17 is verified healthy and you no longer need the rollback, reclaim space: + +```bash +docker volume rm "${SINK_VOL}-pg15-backup" +docker volume rm "${SINK_VOL}-pg17" 2>/dev/null || true # the scratch restore volume (Option A) +rm -rf ./pg15-migration # the host-side dump (Option A) +# (demo) docker volume rm "${TARGET_DB_VOL}-pg15-backup" "${STANDBY_VOL}-pg15-backup" +``` + +:::tip An automated `pg-upgrade` command is planned +A built-in command to automate this major-version migration (in-place `pg_upgrade`) is in +progress (draft MR +[!145](https://gitlab.com/postgres-ai/postgresai/-/merge_requests/145)). It is **not** part of +0.15.0 — on 0.15.0 use the manual dump/restore procedure above. +::: + +## Upgrade with the CLI (recommended) + +If you installed with `postgresai mon local-install`, upgrade with the CLI. `mon update` pulls the +new images and migrates your `.env` file; `mon update-config` regenerates the pgwatch sources. +Neither command restarts or recreates the running services, so after pulling you **must** recreate +the containers with the new images — preserving your existing values. Because the stack is already +running, recreate it with `docker compose up -d` directly: `up -d` recreates any container whose +image changed. A plain `postgresai mon restart` only runs `docker compose restart` and restarts the +**existing** containers on the **old** image, so it does not apply a pulled image — and a bare +`postgresai mon start` is a **no-op** on a running stack (it sees the running containers, prints +`Monitoring services are already running`, and exits without running `docker compose up -d`). If you +prefer the CLI, run `mon stop` first so the next `mon start` sees no running containers and actually +performs `up -d`. + +```bash +# From the monitoring directory (~/.config/postgresai/monitoring by default for npx/global installs) +$EDITOR .env # set PGAI_TAG=0.15.0 FIRST — see note below +npx postgresai@0.15.0 mon update # migrate .env + pull new images (does NOT restart) +npx postgresai@0.15.0 mon update-config # regenerate pgwatch sources.yml +# ⚠️ 0.15.0 only: complete the PostgreSQL 15 → 17 migration BEFORE this bring-up. +# See "PostgreSQL 15 → 17 major-version migration" above. +docker compose up -d # recreate containers to apply the pulled images +# (CLI alternative: `npx postgresai@0.15.0 mon stop && npx postgresai@0.15.0 mon start`) +``` + +> **Set `PGAI_TAG=0.15.0` in `.env` first.** All stack images are pinned to `${PGAI_TAG}`, and +> `mon update` / `mon update-config` do **not** change `PGAI_TAG` (only `mon local-install` rewrites +> it). If you leave a stale `PGAI_TAG=0.14.x`, the commands above just re-pull and recreate the +> **old** images — not an upgrade. Edit `.env` and set `PGAI_TAG=0.15.0` before running `mon update`. + +> `mon update` prints a hint to run `postgres-ai mon restart` afterward, but `docker compose restart` +> restarts containers in place and does **not** pull in a newly-fetched image. A bare `mon start` +> also will not help on a running stack — it short-circuits with `Monitoring services are already +> running`. Recreate the running stack with `docker compose up -d` (or `mon stop` then `mon start`), +> which recreates the containers on the new image. + +| Command | What it does | +|---------|--------------| +| `$EDITOR .env` → `PGAI_TAG=0.15.0` | **Do this first.** Pins the stack images to the new tag. `mon update` / `mon update-config` do **not** change `PGAI_TAG` (only `mon local-install` rewrites it), and every image is pinned to `${PGAI_TAG}` — so without this step the commands below just re-pull the **old** tag. | +| `mon update` | Migrates `.env` (additively) and pulls the pinned images for the tag in `.env` (set `PGAI_TAG=0.15.0` first — `mon update` does **not** advance it). It does **not** restart or recreate the services — run `docker compose up -d` afterward to recreate the containers and apply the new images. (A bare `postgresai mon start` will not do this on a running stack; it no-ops with `Monitoring services are already running`. Use `docker compose up -d`, or `mon stop` then `mon start`.) | +| `mon update-config` | Migrates `.env` and regenerates the pgwatch `sources.yml` files (via the `sources-generator`). It does not regenerate the Grafana datasources, does not restart the collectors, and does not reseed the config volume. | + +### Additive, value-preserving `.env` migration (`mon update` / `mon update-config`) + +`mon update` and `mon update-config` migrate `.env` **additively**: new keys required by the +release are appended with safe defaults, and every existing value (passwords, retention, resource +limits, OAuth, `GF_SERVER_ROOT_URL`, …) is preserved. These two commands never overwrite a value +you have already set, so they are the recommended way to upgrade an existing, tuned deployment. + +:::warning `local-install` rewrites `.env` — it does not migrate additively +`postgresai mon local-install -y` does **not** preserve arbitrary keys. It rewrites `.env` from +scratch, carrying forward only your **credentials and registry** — `PGAI_REGISTRY`, +`GF_SECURITY_ADMIN_PASSWORD`, `REPLICATOR_PASSWORD`, `VM_AUTH_USERNAME`, `VM_AUTH_PASSWORD` — and +it always resets `PGAI_TAG` to the CLI's own version. Any other key you had set is **dropped**, +including retention (`VM_RETENTION_PERIOD`, `QUERYID_RETENTION_HOURS`), resource-limit overrides +(`*_CPUS` / `*_MEM`, e.g. `SINK_PROMETHEUS_MEM`), and `GF_SERVER_ROOT_URL` / `BIND_HOST`. To +upgrade a tuned deployment, prefer `mon update` / `mon update-config` above; if you do run +`local-install`, re-apply those settings to `.env` afterward and run `docker compose up -d` so the +affected containers are recreated with the restored values (`mon restart` would not pick up changed +container env vars — those are read only when a container is recreated — and a bare `postgresai mon +start` is a no-op on a running stack, so it would not recreate them either; use `docker compose up -d`, +or `mon stop` then `mon start`). +::: + +:::tip Node.js 18+ required +0.15 requires Node.js 18+ (or Bun 1.0+). Older Node versions now fail early with a clear error. +See [System requirements](/docs/monitoring/getting-started/requirements#cli-runtime). +::: + +### Bundled `docker-compose.yml` refresh for non-git (npx) installs + +If you installed via `npx postgresai` or a global npm install, your project directory is **not** +a git checkout, so `git pull` cannot bring in the new compose file. `docker-compose.yml` is a +version-coupled asset — for example, 0.15 wires `VM_AUTH_*` into the VictoriaMetrics service and +the Grafana datasource — and a stale compose would leave that wiring missing and blank all +dashboards. + +To handle this, `mon local-install -y`, `mon update`, and `mon update-config` automatically +refresh the bundled `docker-compose.yml` for non-git installs when it is stale relative to the +target version. The refresh: + +- Is a **no-op for git checkouts** (those upgrade via `git pull`) and a no-op when the deployed + compose already matches the target. +- **Backs up** the previous compose before overwriting it, to a uniquely named file + `docker-compose.yml.bak-<old-tag>-<hash>` (the backup is never clobbered on repeated runs, so + your original compose is always preserved). +- **Validates** the fetched compose before replacing anything. If it cannot retrieve a valid + compose (for example, no network), it keeps the existing file, writes no backup, warns, and + the upgrade still proceeds. +- Touches **only** `docker-compose.yml` — never `.env`, `instances.yml`, or `.pgwatch-config`. + +When it refreshes, the CLI prints a confirmation such as +`✓ Refreshed docker-compose.yml to 0.15.0 (backup: docker-compose.yml.bak-0.14.0-<hash>)`. + +## Required new keys in 0.15: VictoriaMetrics basic auth + +0.15 protects the VictoriaMetrics endpoint with HTTP basic auth, so two keys are now required: + +```bash +VM_AUTH_USERNAME=vmauth +VM_AUTH_PASSWORD=<non-empty secret> +``` + +The CLI generates and preserves these automatically during `local-install`, `update`, and +`update-config`. `VM_AUTH_USERNAME` defaults to `vmauth` when absent, and a random +`VM_AUTH_PASSWORD` is generated when missing. + +:::warning Manual Docker Compose users: add these before upgrading +If you run `docker compose` directly instead of through the CLI, you **must** add +`VM_AUTH_USERNAME=vmauth` and a non-empty `VM_AUTH_PASSWORD` to `.env` before running +`docker compose up -d`. Grafana datasource provisioning depends on these credentials; without +them, Grafana cannot query VictoriaMetrics and dashboards show no data. The shipped +`.env.example` includes empty placeholders that intentionally make Docker Compose fail fast +until you set a value. + +```bash +# Generate a password +VM_AUTH_PASSWORD="$(openssl rand -base64 18)" +``` +::: + +See [Authentication and security](/docs/monitoring/configuration/prometheus-config#authentication-and-security) +for what these credentials protect and how to rotate them. + +## Upgrade with Docker Compose (manual) + +If you manage the stack with `docker compose` directly: + +```bash +# 1. Pull the latest repository state (new compose / config templates) +git pull + +# 2. Pin the new image tag and add any newly required keys +# Required in 0.15: +# PGAI_TAG=0.15.0 +# VM_AUTH_USERNAME=vmauth +# VM_AUTH_PASSWORD=<non-empty secret> +$EDITOR .env + +# 3. Pull images and restart +docker compose pull +# ⚠️ 0.15.0 only: complete the PostgreSQL 15 → 17 migration BEFORE this bring-up. +# See "PostgreSQL 15 → 17 major-version migration" above. +docker compose up -d +``` + +All stack images are version-pinned (no `:latest`) for reproducible upgrades — see +[Image tags](/docs/monitoring/getting-started/installation-docker#image-tags-and-supply-chain). + +## Other 0.15 upgrade notes + +- **Retention is now plan-parameterizable.** `VM_RETENTION_PERIOD` (metrics) and + `QUERYID_RETENTION_HOURS` (query-id mapping) can be tuned per deployment. `mon update` / + `mon update-config` preserve any values you have set; `mon local-install -y` does **not** (it + rewrites `.env` and drops these keys — see the warning above), so re-apply them afterward if you + upgrade via `local-install`. See + [Retention](/docs/monitoring/configuration/prometheus-config#retention). +- **Restart policies.** Critical services ship with `restart: unless-stopped` and survive host + reboots without a manual systemd unit. See + [Reliability and restart behavior](/docs/monitoring/getting-started/installation-docker#reliability-and-restart-behavior). +- **Idempotent config seeding.** Generated config is seeded once and guarded by a version + marker, so operator edits persist across restarts; `mon update-config` regenerates the pgwatch + `sources.yml` files after a version bump. + +## Verify the upgrade + +```bash +npx postgresai@0.15.0 mon health +npx postgresai@0.15.0 mon status +``` + +Then open Grafana and confirm dashboards render data. If panels are empty after the upgrade, +check that `VM_AUTH_USERNAME` / `VM_AUTH_PASSWORD` are set and that you recreated the stack with +`docker compose up -d` so the containers are rebuilt on the pulled images and re-read the updated +VM_AUTH credentials. (A plain `postgresai mon restart` restarts the existing containers in place and +would pick up neither the new image nor changed env values; a bare `postgresai mon start` no-ops on +an already-running stack and does not recreate anything — recreate via `docker compose up -d`, or +`mon stop` then `mon start`.) The +Grafana datasource is static (provisioned from `config/grafana` into the config volume) and only +re-reads those credentials when Grafana restarts — it is not regenerated by `mon update-config`. diff --git a/docs/monitoring/metrics/index-metrics.md b/docs/monitoring/metrics/index-metrics.md index bae18c4f..49a9185e 100644 --- a/docs/monitoring/metrics/index-metrics.md +++ b/docs/monitoring/metrics/index-metrics.md @@ -6,16 +6,18 @@ sidebar_position: 5 # Index metrics -Index usage and health metrics from `pg_stat_user_indexes` and related views. +Index usage and health metrics. In this stack the usage metric reads **`pg_stat_all_indexes`** +(not `pg_stat_user_indexes`) and the I/O metric reads **`pg_statio_all_indexes`**. Series are +exported with the `pgwatch_` prefix. ## Data sources -| View | Description | -|------|-------------| -| `pg_stat_user_indexes` | Index usage statistics | -| `pg_statio_user_indexes` | Index I/O statistics | -| `pg_indexes` | Index definitions | -| `pg_class` | Index sizes | +| Metric group | Underlying view | Description | +|--------------|-----------------|-------------| +| `pg_stat_all_indexes` | `pg_stat_all_indexes` | Index usage (`pgwatch_pg_stat_all_indexes_*`) | +| `pg_statio_all_indexes` | `pg_statio_all_indexes` | Index I/O (`pgwatch_pg_statio_all_indexes_*`) | +| `pg_class` | `pg_class` | Index sizes (`pgwatch_pg_class_relation_size_bytes`) | +| `pg_btree_bloat` | – | B-tree bloat estimates (`pgwatch_pg_btree_bloat_*`) | ## Core metrics @@ -23,32 +25,35 @@ Index usage and health metrics from `pg_stat_user_indexes` and related views. | Metric | Type | Description | |--------|------|-------------| -| `pg_stat_user_indexes_idx_scan_total` | Counter | Index scans initiated | -| `pg_stat_user_indexes_idx_tup_read_total` | Counter | Index entries read | -| `pg_stat_user_indexes_idx_tup_fetch_total` | Counter | Table rows fetched via index | +| `pgwatch_pg_stat_all_indexes_idx_scan` | Gauge | Index scans initiated | +| `pgwatch_pg_stat_all_indexes_idx_tup_read` | Gauge | Index entries read | +| `pgwatch_pg_stat_all_indexes_idx_tup_fetch` | Gauge | Table rows fetched via index | ### Size metrics | Metric | Type | Description | |--------|------|-------------| -| `pg_index_size_bytes` | Gauge | Index size in bytes | +| `pgwatch_pg_class_relation_size_bytes` | Gauge | Relation size in bytes (used for index size) | +| `pgwatch_pg_btree_bloat_bloat_pct` | Gauge | Estimated B-tree index bloat percentage | ### I/O metrics | Metric | Type | Description | |--------|------|-------------| -| `pg_statio_user_indexes_idx_blks_read_total` | Counter | Index blocks read from disk | -| `pg_statio_user_indexes_idx_blks_hit_total` | Counter | Index blocks hit in buffer cache | +| `pgwatch_pg_statio_all_indexes_idx_blks_read` | Gauge | Index blocks read from disk | +| `pgwatch_pg_statio_all_indexes_idx_blks_hit` | Gauge | Index blocks hit in buffer cache | ## Labels +The cluster label is `cluster` (not `cluster_name`). The index identity labels are correct: + | Label | Description | Example | |-------|-------------|---------| | `indexrelname` | Index name | `users_email_idx` | | `relname` | Parent table name | `users` | | `schemaname` | Schema name | `public` | | `datname` | Database name | `myapp` | -| `cluster_name` | Cluster identifier | `production` | +| `cluster` | Cluster identifier (from `custom_tags.cluster`) | `production` | | `node_name` | Node identifier | `primary` | ## Common queries @@ -56,31 +61,31 @@ Index usage and health metrics from `pg_stat_user_indexes` and related views. ### Unused indexes ```promql -pg_stat_user_indexes_idx_scan_total == 0 +pgwatch_pg_stat_all_indexes_idx_scan == 0 ``` ### Index scan rate ```promql -rate(pg_stat_user_indexes_idx_scan_total[5m]) +rate(pgwatch_pg_stat_all_indexes_idx_scan[5m]) ``` ### Index buffer hit ratio ```promql -rate(pg_statio_user_indexes_idx_blks_hit_total[5m]) +rate(pgwatch_pg_statio_all_indexes_idx_blks_hit[5m]) / ( - rate(pg_statio_user_indexes_idx_blks_hit_total[5m]) + rate(pgwatch_pg_statio_all_indexes_idx_blks_hit[5m]) + - rate(pg_statio_user_indexes_idx_blks_read_total[5m]) + rate(pgwatch_pg_statio_all_indexes_idx_blks_read[5m]) ) ``` ### Largest indexes ```promql -topk(10, pg_index_size_bytes) +topk(10, pgwatch_pg_class_relation_size_bytes) ``` ### Index read efficiency @@ -88,15 +93,15 @@ topk(10, pg_index_size_bytes) Ratio of tuples fetched vs tuples read from index: ```promql -rate(pg_stat_user_indexes_idx_tup_fetch_total[5m]) +rate(pgwatch_pg_stat_all_indexes_idx_tup_fetch[5m]) / -rate(pg_stat_user_indexes_idx_tup_read_total[5m]) +rate(pgwatch_pg_stat_all_indexes_idx_tup_read[5m]) ``` ### Most active indexes ```promql -topk(10, rate(pg_stat_user_indexes_idx_scan_total[5m])) +topk(10, rate(pgwatch_pg_stat_all_indexes_idx_scan[5m])) ``` ## Dashboard usage diff --git a/docs/monitoring/metrics/index.md b/docs/monitoring/metrics/index.md index fbeb8069..f995e4ad 100644 --- a/docs/monitoring/metrics/index.md +++ b/docs/monitoring/metrics/index.md @@ -12,37 +12,46 @@ Reference documentation for all metrics collected by PostgresAI monitoring. PostgresAI monitoring collects metrics from multiple PostgreSQL sources: -| Source | Description | Dashboard usage | -|--------|-------------|-----------------| -| `pg_stat_statements` | Query-level performance metrics | 02, 03 | -| `pg_stat_activity` | Session and wait event data | 01, 04 | -| `pg_stat_user_tables` | Table-level statistics | 07, 08, 09 | -| `pg_stat_user_indexes` | Index usage statistics | 10, 11 | -| `pg_stat_replication` | Replication metrics | 06 | -| `pg_stat_bgwriter` | Background writer stats | 01 | -| `pg_stat_database` | Database-level aggregates | 01 | +| pgwatch metric group | Underlying view(s) | Dashboard usage | +|----------------------|--------------------|-----------------| +| `pg_stat_statements` | `pg_stat_statements` | 02, 03 | +| `pg_stat_activity` / `wait_events` | `pg_stat_activity` | 01, 04 | +| `table_stats` / `pg_stat_all_tables` | `pg_stat_all_tables` | 07, 08, 09 | +| `pg_stat_all_indexes` / `pg_statio_all_indexes` | `pg_stat_all_indexes`, `pg_statio_all_indexes` | 10, 11 | +| `pg_stat_replication` / `replication` | `pg_stat_replication` | 06 | +| `bgwriter` | `pg_stat_bgwriter` | 01 | +| `db_stats` | `pg_stat_database` | 01 | ## Metric naming convention -All metrics follow the pattern: +pgwatch exports each series as: ``` -pg_{source}_{metric_name} +pgwatch_{metric-group}_{column} ``` -Examples: -- `pg_stat_statements_calls_total` — Total query calls -- `pg_stat_activity_count` — Active session count -- `pg_stat_user_tables_seq_scan_total` — Sequential scans +Examples (these are the names you query in VictoriaMetrics/Grafana): +- `pgwatch_pg_stat_statements_calls` — query calls (no `_total` suffix) +- `pgwatch_pg_stat_activity_count` — session count +- `pgwatch_pg_stat_all_tables_seq_tup_read` — tuples read by sequential scans +- `pgwatch_db_stats_xact_commit` — transactions committed + +There is no `pg_{source}_{metric_name}` naming in this stack; all series carry the `pgwatch_` +prefix and use the column name (not a `_total`/`_seconds` suffix convention). ## Collection intervals -| Metric type | Default interval | Configurable | -|-------------|------------------|--------------| -| Session metrics | 10s | Yes | -| Query metrics | 60s | Yes | -| Table/index metrics | 60s | Yes | -| Replication metrics | 10s | Yes | +Intervals are set per metric group in `config/pgwatch-prometheus/metrics.yml` (the `full` preset). +Representative defaults: + +| Metric group | Default interval | +|--------------|------------------| +| `pg_stat_activity`, `wait_events` | 15s | +| `pg_stat_statements` | 30s | +| `table_stats`, `pg_stat_all_tables`, `pg_stat_all_indexes` | 30s | +| `db_stats`, `bgwriter`, `replication` | 30s | +| `settings` | 300s | +| Bloat groups (`pg_table_bloat`, `pg_btree_bloat`) | 7200s | ## Metric categories @@ -93,20 +102,23 @@ All metrics are stored in VictoriaMetrics (Prometheus-compatible). Example queri ```promql # Queries per second -rate(pg_stat_statements_calls_total[5m]) +rate(pgwatch_pg_stat_statements_calls[5m]) # Transactions per second -rate(pg_stat_database_xact_commit_total[5m]) +rate(pgwatch_db_stats_xact_commit[5m]) ``` ### Aggregations ```promql -# Total active sessions across all databases -sum(pg_stat_activity_count{state="active"}) - -# Average query time by database -avg by (datname) (pg_stat_statements_mean_exec_time_seconds) +# Active sessions across all databases (the activity metric carries a `state` label) +sum(pgwatch_pg_stat_activity_count{state="active"}) + +# Average exec time per call by database. There is no mean_exec_time series; +# derive it from the cumulative exec_time_total (ms) and calls counters. +sum by (datname) (rate(pgwatch_pg_stat_statements_exec_time_total[5m])) +/ +sum by (datname) (rate(pgwatch_pg_stat_statements_calls[5m])) ``` ## Related documentation diff --git a/docs/monitoring/metrics/pg-stat-statements.md b/docs/monitoring/metrics/pg-stat-statements.md index 5b3b1d46..e1a675b8 100644 --- a/docs/monitoring/metrics/pg-stat-statements.md +++ b/docs/monitoring/metrics/pg-stat-statements.md @@ -30,39 +30,40 @@ pg_stat_statements.max = 10000 ## Core metrics +All series are exported as `pgwatch_pg_stat_statements_<column>`. Times are in **milliseconds** +(not seconds), buffer usage is reported in **bytes** (not blocks), and counters do **not** carry a +`_total` suffix unless the column name itself ends in `_total`. There are no `mean_*` series. + ### Execution metrics | Metric | Type | Description | |--------|------|-------------| -| `pg_stat_statements_calls_total` | Counter | Total number of query executions | -| `pg_stat_statements_total_exec_time_seconds` | Counter | Total execution time | -| `pg_stat_statements_mean_exec_time_seconds` | Gauge | Average execution time per call | -| `pg_stat_statements_rows_total` | Counter | Total rows returned or affected | +| `pgwatch_pg_stat_statements_calls` | Gauge | Number of query executions | +| `pgwatch_pg_stat_statements_exec_time_total` | Gauge | Total execution time (ms) | +| `pgwatch_pg_stat_statements_rows` | Gauge | Rows returned or affected | ### Planning metrics | Metric | Type | Description | |--------|------|-------------| -| `pg_stat_statements_total_plan_time_seconds` | Counter | Total planning time | -| `pg_stat_statements_mean_plan_time_seconds` | Gauge | Average planning time per call | +| `pgwatch_pg_stat_statements_plans_total` | Gauge | Number of times the statement was planned | +| `pgwatch_pg_stat_statements_plan_time_total` | Gauge | Total planning time (ms) | -### Buffer metrics +### Buffer metrics (bytes) | Metric | Type | Description | |--------|------|-------------| -| `pg_stat_statements_shared_blks_hit_total` | Counter | Shared buffer hits | -| `pg_stat_statements_shared_blks_read_total` | Counter | Shared blocks read from disk | -| `pg_stat_statements_shared_blks_written_total` | Counter | Shared blocks written | -| `pg_stat_statements_shared_blks_dirtied_total` | Counter | Shared blocks dirtied | - -### I/O timing metrics +| `pgwatch_pg_stat_statements_shared_bytes_hit_total` | Gauge | Shared buffer hits (bytes) | +| `pgwatch_pg_stat_statements_shared_bytes_read_total` | Gauge | Shared bytes read from disk | +| `pgwatch_pg_stat_statements_shared_bytes_written_total` | Gauge | Shared bytes written | +| `pgwatch_pg_stat_statements_shared_bytes_dirtied_total` | Gauge | Shared bytes dirtied | -Available when `track_io_timing = on`: +### Block I/O timing metrics | Metric | Type | Description | |--------|------|-------------| -| `pg_stat_statements_blk_read_time_seconds` | Counter | Time spent reading blocks | -| `pg_stat_statements_blk_write_time_seconds` | Counter | Time spent writing blocks | +| `pgwatch_pg_stat_statements_block_read_total` | Gauge | Block read time (ms) | +| `pgwatch_pg_stat_statements_block_write_total` | Gauge | Block write time (ms) | ### WAL metrics @@ -70,21 +71,32 @@ PostgreSQL 13+: | Metric | Type | Description | |--------|------|-------------| -| `pg_stat_statements_wal_records_total` | Counter | WAL records generated | -| `pg_stat_statements_wal_bytes_total` | Counter | WAL bytes generated | +| `pgwatch_pg_stat_statements_wal_records` | Gauge | WAL records generated | +| `pgwatch_pg_stat_statements_wal_fpi` | Gauge | WAL full-page images | +| `pgwatch_pg_stat_statements_wal_bytes` | Gauge | WAL bytes generated | + +### Temp I/O metrics + +| Metric | Type | Description | +|--------|------|-------------| +| `pgwatch_pg_stat_statements_temp_bytes_read` | Gauge | Temp bytes read | +| `pgwatch_pg_stat_statements_temp_bytes_written` | Gauge | Temp bytes written | ## Labels -All pg_stat_statements metrics include these labels: +The `pg_stat_statements` metric is grouped only by database and query id, so it carries these +labels (plus the instance labels): | Label | Description | Example | |-------|-------------|---------| | `queryid` | Unique query identifier | `-4021163671685...` | | `datname` | Database name | `myapp` | -| `usename` | User name | `app_user` | -| `cluster_name` | Cluster identifier | `production` | +| `cluster` | Cluster identifier (from `custom_tags.cluster`) | `production` | | `node_name` | Node identifier | `primary` | +There is no `usename` label on `pg_stat_statements` metrics, and the cluster label is `cluster` +(not `cluster_name`). + ## Common queries ### Top queries by total time @@ -92,7 +104,7 @@ All pg_stat_statements metrics include these labels: ```promql topk(10, sum by (queryid, datname) ( - rate(pg_stat_statements_total_exec_time_seconds[5m]) + rate(pgwatch_pg_stat_statements_exec_time_total[5m]) ) ) ``` @@ -101,34 +113,38 @@ topk(10, ```promql sum by (queryid) ( - rate(pg_stat_statements_calls_total[5m]) + rate(pgwatch_pg_stat_statements_calls[5m]) ) ``` -### Average query latency +### Average query latency (ms per call) + +There is no mean series; derive it from the cumulative `exec_time_total` (ms) and `calls`: ```promql -pg_stat_statements_mean_exec_time_seconds +sum by (queryid) (rate(pgwatch_pg_stat_statements_exec_time_total[5m])) +/ +sum by (queryid) (rate(pgwatch_pg_stat_statements_calls[5m])) ``` -### Buffer hit ratio per query +### Buffer hit ratio per query (bytes) ```promql -sum by (queryid) (rate(pg_stat_statements_shared_blks_hit_total[5m])) +sum by (queryid) (rate(pgwatch_pg_stat_statements_shared_bytes_hit_total[5m])) / ( - sum by (queryid) (rate(pg_stat_statements_shared_blks_hit_total[5m])) + sum by (queryid) (rate(pgwatch_pg_stat_statements_shared_bytes_hit_total[5m])) + - sum by (queryid) (rate(pg_stat_statements_shared_blks_read_total[5m])) + sum by (queryid) (rate(pgwatch_pg_stat_statements_shared_bytes_read_total[5m])) ) ``` ### Queries with high planning time ratio ```promql -pg_stat_statements_mean_plan_time_seconds +rate(pgwatch_pg_stat_statements_plan_time_total[5m]) / -(pg_stat_statements_mean_plan_time_seconds + pg_stat_statements_mean_exec_time_seconds) +(rate(pgwatch_pg_stat_statements_plan_time_total[5m]) + rate(pgwatch_pg_stat_statements_exec_time_total[5m])) > 0.1 ``` @@ -153,9 +169,10 @@ These metrics are used in: show pg_stat_statements.track; ``` -3. Ensure monitoring user has access: +3. Ensure the monitoring user has access (the product grants the built-in `pg_monitor` role, not + `pg_read_all_stats`): ```sql - grant pg_read_all_stats to postgres_ai_mon; + grant pg_monitor to postgres_ai_mon; ``` ### queryid changes after PostgreSQL upgrade diff --git a/docs/monitoring/metrics/system-metrics.md b/docs/monitoring/metrics/system-metrics.md index a2772f92..b85cc357 100644 --- a/docs/monitoring/metrics/system-metrics.md +++ b/docs/monitoring/metrics/system-metrics.md @@ -6,17 +6,19 @@ sidebar_position: 6 # Database- and cluster-level metrics -PostgreSQL system-level metrics from various `pg_stat_*` views. +PostgreSQL system-level metrics. In this stack they are exported by the `db_stats`, `bgwriter`, +`archive_lag` / `pg_archiver`, `pg_stat_replication`, and `settings` metric groups, with the +`pgwatch_` prefix and the source column name (no `_total`/`_seconds` suffix convention). ## Data sources -| View | Description | -|------|-------------| -| `pg_stat_database` | Database-level aggregates | -| `pg_stat_bgwriter` | Background writer statistics | -| `pg_stat_archiver` | WAL archiver status | -| `pg_stat_replication` | Replication status | -| `pg_settings` | Configuration parameters | +| Metric group | Underlying view | Description | +|--------------|-----------------|-------------| +| `db_stats` | `pg_stat_database` | Database-level aggregates (`pgwatch_db_stats_*`) | +| `bgwriter` | `pg_stat_bgwriter` | Background writer statistics (`pgwatch_bgwriter_*`) | +| `archive_lag` / `pg_archiver` | `pg_stat_archiver` | WAL archiver status | +| `pg_stat_replication` | `pg_stat_replication` | Replication status | +| `settings` | `pg_settings` | Configuration parameters (`pgwatch_settings_*`) | ## Database metrics @@ -24,70 +26,96 @@ PostgreSQL system-level metrics from various `pg_stat_*` views. | Metric | Type | Description | |--------|------|-------------| -| `pg_stat_database_xact_commit_total` | Counter | Transactions committed | -| `pg_stat_database_xact_rollback_total` | Counter | Transactions rolled back | -| `pg_stat_database_deadlocks_total` | Counter | Deadlocks detected | -| `pg_stat_database_conflicts_total` | Counter | Recovery conflicts (replicas) | +| `pgwatch_db_stats_xact_commit` | Gauge | Transactions committed | +| `pgwatch_db_stats_xact_rollback` | Gauge | Transactions rolled back | +| `pgwatch_db_stats_deadlocks` | Gauge | Deadlocks detected | +| `pgwatch_db_stats_conflicts` | Gauge | Recovery conflicts (replicas) | ### Connection metrics | Metric | Type | Description | |--------|------|-------------| -| `pg_stat_database_numbackends` | Gauge | Active connections | -| `pg_settings_max_connections` | Gauge | Maximum allowed connections | +| `pgwatch_db_stats_numbackends` | Gauge | Active connections | +| `pgwatch_settings_numeric_value{setting_name="max_connections"}` | Gauge | Maximum allowed connections (from the `settings` metric; there is no `pgwatch_settings_max_connections` series) | ### Buffer metrics | Metric | Type | Description | |--------|------|-------------| -| `pg_stat_database_blks_read_total` | Counter | Blocks read from disk | -| `pg_stat_database_blks_hit_total` | Counter | Blocks found in buffer cache | +| `pgwatch_db_stats_blks_read` | Gauge | Blocks read from disk | +| `pgwatch_db_stats_blks_hit` | Gauge | Blocks found in buffer cache | ### Temporary file metrics | Metric | Type | Description | |--------|------|-------------| -| `pg_stat_database_temp_files_total` | Counter | Temporary files created | -| `pg_stat_database_temp_bytes_total` | Counter | Temporary file bytes written | +| `pgwatch_db_stats_temp_files` | Gauge | Temporary files created | +| `pgwatch_db_stats_temp_bytes` | Gauge | Temporary file bytes written | ## Background writer metrics | Metric | Type | Description | |--------|------|-------------| -| `pg_stat_bgwriter_checkpoints_timed_total` | Counter | Scheduled checkpoints | -| `pg_stat_bgwriter_checkpoints_req_total` | Counter | Requested checkpoints | -| `pg_stat_bgwriter_checkpoint_write_time_seconds_total` | Counter | Checkpoint write time | -| `pg_stat_bgwriter_checkpoint_sync_time_seconds_total` | Counter | Checkpoint sync time | -| `pg_stat_bgwriter_buffers_checkpoint_total` | Counter | Buffers written during checkpoints | -| `pg_stat_bgwriter_buffers_clean_total` | Counter | Buffers written by background writer | -| `pg_stat_bgwriter_buffers_backend_total` | Counter | Buffers written by backends | -| `pg_stat_bgwriter_buffers_alloc_total` | Counter | Buffers allocated | +| `pgwatch_bgwriter_checkpoints_timed` | Counter | Scheduled checkpoints | +| `pgwatch_bgwriter_checkpoints_req` | Counter | Requested checkpoints | +| `pgwatch_bgwriter_checkpoint_write_time` | Counter | Checkpoint write time (ms) | +| `pgwatch_bgwriter_checkpoint_sync_time` | Counter | Checkpoint sync time (ms) | +| `pgwatch_bgwriter_buffers_checkpoint` | Counter | Buffers written during checkpoints | +| `pgwatch_bgwriter_buffers_clean` | Counter | Buffers written by background writer | +| `pgwatch_bgwriter_buffers_backend` | Counter | Buffers written by backends | +| `pgwatch_bgwriter_buffers_alloc` | Counter | Buffers allocated | ## WAL archiver metrics | Metric | Type | Description | |--------|------|-------------| -| `pg_stat_archiver_archived_count_total` | Counter | WAL files archived | -| `pg_stat_archiver_failed_count_total` | Counter | Failed archive attempts | -| `pg_stat_archiver_last_archived_time` | Gauge | Last successful archive timestamp | +| `pgwatch_archive_lag_archived_count` | Gauge | WAL files archived | +| `pgwatch_archive_lag_failed_count` | Gauge | Failed archive attempts | +| `pgwatch_archive_lag_seconds_since_archive` | Gauge | Seconds since last successful archive | +| `pgwatch_archive_lag_wal_files_behind` | Gauge | WAL files behind the latest segment | + +## WAL directory size + +New in 0.15, the collector reports the total size of the `pg_wal` directory using +`pg_ls_waldir()`. This is the on-disk WAL size, which complements the archiver and replication +metrics for diagnosing disk-fill risk. + +| Metric | Type | Description | +|--------|------|-------------| +| `pgwatch_pg_wal_size_bytes` | Gauge | Total size of regular files in `pg_wal` (excludes subdirectories like `pg_wal/archive_status`) | +| `pgwatch_pg_wal_size_status_code` | Gauge | Collection status: `0` = success, `1` = `pg_ls_waldir()` unavailable, `2` = monitoring role lacks EXECUTE privilege | + +`pg_wal` growth that is **not** matched by archive or replica progress is a disk-fill warning — +typically a stuck WAL archiver, an inactive replication slot retaining WAL, or sustained high +WAL generation. Correlate `pgwatch_pg_wal_size_bytes` with the `pgwatch_archive_lag_*` and +replication-slot metrics, and see +[How to troubleshoot a growing pg_wal directory](/docs/postgres-howtos/database-administration/maintenance/how-to-troubleshoot-a-growing-pg-wal-directory). + +```promql +# Alert when pg_wal exceeds, e.g., 20 GiB while archiving is failing +pgwatch_pg_wal_size_bytes > 20 * 1024 * 1024 * 1024 +``` ## Replication metrics +LSN positions come from the `pg_stat_replication` group; lag is reported in `replication_*_lag_ms` +/ `_lag_b` fields. There is no `pg_replication_lag_seconds` series. + | Metric | Type | Description | |--------|------|-------------| -| `pg_stat_replication_sent_lsn` | Gauge | WAL sent to replica | -| `pg_stat_replication_write_lsn` | Gauge | WAL written on replica | -| `pg_stat_replication_flush_lsn` | Gauge | WAL flushed on replica | -| `pg_stat_replication_replay_lsn` | Gauge | WAL replayed on replica | -| `pg_replication_lag_bytes` | Gauge | Replication lag in bytes | -| `pg_replication_lag_seconds` | Gauge | Estimated replication lag | +| `pgwatch_pg_stat_replication_sent_lsn` | Gauge | WAL sent to replica | +| `pgwatch_pg_stat_replication_write_lsn` | Gauge | WAL written on replica | +| `pgwatch_pg_stat_replication_flush_lsn` | Gauge | WAL flushed on replica | +| `pgwatch_pg_stat_replication_replay_lsn` | Gauge | WAL replayed on replica | ## Labels +The cluster label is `cluster` (not `cluster_name`). + | Label | Description | Example | |-------|-------------|---------| | `datname` | Database name | `myapp` | -| `cluster_name` | Cluster identifier | `production` | +| `cluster` | Cluster identifier (from `custom_tags.cluster`) | `production` | | `node_name` | Node identifier | `primary` | ## Common queries @@ -95,39 +123,39 @@ PostgreSQL system-level metrics from various `pg_stat_*` views. ### Transactions per second ```promql -sum(rate(pg_stat_database_xact_commit_total[5m])) +sum(rate(pgwatch_db_stats_xact_commit[5m])) ``` ### Rollback ratio ```promql -rate(pg_stat_database_xact_rollback_total[5m]) +rate(pgwatch_db_stats_xact_rollback[5m]) / -(rate(pg_stat_database_xact_commit_total[5m]) + rate(pg_stat_database_xact_rollback_total[5m])) +(rate(pgwatch_db_stats_xact_commit[5m]) + rate(pgwatch_db_stats_xact_rollback[5m])) ``` ### Buffer cache hit ratio ```promql -sum(rate(pg_stat_database_blks_hit_total[5m])) +sum(rate(pgwatch_db_stats_blks_hit[5m])) / -(sum(rate(pg_stat_database_blks_hit_total[5m])) + sum(rate(pg_stat_database_blks_read_total[5m]))) +(sum(rate(pgwatch_db_stats_blks_hit[5m])) + sum(rate(pgwatch_db_stats_blks_read[5m]))) ``` ### Connection utilization ```promql -sum(pg_stat_database_numbackends) +sum(pgwatch_db_stats_numbackends) / -pg_settings_max_connections +scalar(max(pgwatch_settings_numeric_value{setting_name="max_connections"})) ``` ### Checkpoint frequency ```promql -rate(pg_stat_bgwriter_checkpoints_timed_total[5m]) +rate(pgwatch_bgwriter_checkpoints_timed[5m]) + -rate(pg_stat_bgwriter_checkpoints_req_total[5m]) +rate(pgwatch_bgwriter_checkpoints_req[5m]) ``` ### Backend buffer writes (problematic) @@ -135,27 +163,21 @@ rate(pg_stat_bgwriter_checkpoints_req_total[5m]) High values indicate checkpoint tuning needed: ```promql -rate(pg_stat_bgwriter_buffers_backend_total[5m]) +rate(pgwatch_bgwriter_buffers_backend[5m]) / ( - rate(pg_stat_bgwriter_buffers_checkpoint_total[5m]) + rate(pgwatch_bgwriter_buffers_checkpoint[5m]) + - rate(pg_stat_bgwriter_buffers_clean_total[5m]) + rate(pgwatch_bgwriter_buffers_clean[5m]) + - rate(pg_stat_bgwriter_buffers_backend_total[5m]) + rate(pgwatch_bgwriter_buffers_backend[5m]) ) ``` -### Replication lag - -```promql -pg_replication_lag_seconds -``` - ### WAL archive status ```promql -time() - pg_stat_archiver_last_archived_time +pgwatch_archive_lag_seconds_since_archive ``` ## Dashboard usage diff --git a/docs/monitoring/metrics/table-metrics.md b/docs/monitoring/metrics/table-metrics.md index 6dbba74a..24824819 100644 --- a/docs/monitoring/metrics/table-metrics.md +++ b/docs/monitoring/metrics/table-metrics.md @@ -6,80 +6,87 @@ sidebar_position: 4 # Table metrics -Table-level statistics from `pg_stat_user_tables` and related views. +Table-level statistics. In this stack they come from the `table_stats` metric group, whose query +reads **`pg_stat_all_tables`** (not `pg_stat_user_tables`). Series are exported as +`pgwatch_table_stats_<column>`. ## Data sources -| View | Description | -|------|-------------| -| `pg_stat_user_tables` | Table access statistics | -| `pg_statio_user_tables` | Table I/O statistics | -| `pg_class` | Table sizes and properties | +| Metric group | Underlying view | Description | +|--------------|-----------------|-------------| +| `table_stats` | `pg_stat_all_tables` | Table access, modification, tuple, vacuum, and size stats | +| `pg_class` | `pg_class` | Table sizes (`pgwatch_pg_class_*`) | +| `db_size` | – | Database size (`pgwatch_db_size_size_b`) | ## Core metrics +All series are `pgwatch_table_stats_<column>`. There are no `_total` suffixes and no +`pg_statio_user_tables_*` / `pg_table_size_bytes` series. + ### Access metrics | Metric | Type | Description | |--------|------|-------------| -| `pg_stat_user_tables_seq_scan_total` | Counter | Sequential scans initiated | -| `pg_stat_user_tables_seq_tup_read_total` | Counter | Rows fetched by sequential scans | -| `pg_stat_user_tables_idx_scan_total` | Counter | Index scans initiated | -| `pg_stat_user_tables_idx_tup_fetch_total` | Counter | Rows fetched by index scans | +| `pgwatch_table_stats_seq_scan` | Counter | Sequential scans initiated | +| `pgwatch_table_stats_seq_tup_read` | Counter | Rows fetched by sequential scans | +| `pgwatch_table_stats_idx_scan` | Counter | Index scans initiated | +| `pgwatch_table_stats_idx_tup_fetch` | Counter | Rows fetched by index scans | ### Modification metrics | Metric | Type | Description | |--------|------|-------------| -| `pg_stat_user_tables_n_tup_ins_total` | Counter | Rows inserted | -| `pg_stat_user_tables_n_tup_upd_total` | Counter | Rows updated | -| `pg_stat_user_tables_n_tup_del_total` | Counter | Rows deleted | -| `pg_stat_user_tables_n_tup_hot_upd_total` | Counter | HOT updates (heap-only tuple) | +| `pgwatch_table_stats_n_tup_ins` | Counter | Rows inserted | +| `pgwatch_table_stats_n_tup_upd` | Counter | Rows updated | +| `pgwatch_table_stats_n_tup_del` | Counter | Rows deleted | +| `pgwatch_table_stats_n_tup_hot_upd` | Counter | HOT updates (heap-only tuple) | ### Tuple metrics | Metric | Type | Description | |--------|------|-------------| -| `pg_stat_user_tables_n_live_tup` | Gauge | Estimated live rows | -| `pg_stat_user_tables_n_dead_tup` | Gauge | Estimated dead rows | -| `pg_stat_user_tables_n_mod_since_analyze` | Gauge | Rows modified since last analyze | +| `pgwatch_table_stats_n_live_tup` | Gauge | Estimated live rows | +| `pgwatch_table_stats_n_dead_tup` | Gauge | Estimated dead rows | ### Vacuum metrics | Metric | Type | Description | |--------|------|-------------| -| `pg_stat_user_tables_last_vacuum` | Gauge | Timestamp of last manual vacuum | -| `pg_stat_user_tables_last_autovacuum` | Gauge | Timestamp of last autovacuum | -| `pg_stat_user_tables_last_analyze` | Gauge | Timestamp of last manual analyze | -| `pg_stat_user_tables_last_autoanalyze` | Gauge | Timestamp of last autoanalyze | -| `pg_stat_user_tables_vacuum_count_total` | Counter | Manual vacuum count | -| `pg_stat_user_tables_autovacuum_count_total` | Counter | Autovacuum count | +| `pgwatch_table_stats_seconds_since_last_vacuum` | Gauge | Seconds since last (auto)vacuum | +| `pgwatch_table_stats_seconds_since_last_analyze` | Gauge | Seconds since last (auto)analyze | +| `pgwatch_table_stats_vacuum_count` | Counter | Manual vacuum count | +| `pgwatch_table_stats_autovacuum_count` | Counter | Autovacuum count | +| `pgwatch_table_stats_analyze_count` | Counter | Manual analyze count | +| `pgwatch_table_stats_autoanalyze_count` | Counter | Autoanalyze count | ### Size metrics | Metric | Type | Description | |--------|------|-------------| -| `pg_table_size_bytes` | Gauge | Table size (excluding indexes) | -| `pg_total_relation_size_bytes` | Gauge | Total size (table + indexes + toast) | -| `pg_indexes_size_bytes` | Gauge | Total index size for table | +| `pgwatch_table_stats_table_size_b` | Gauge | Table size in bytes (excluding indexes) | +| `pgwatch_table_stats_total_relation_size_b` | Gauge | Total size (table + indexes + toast) | +| `pgwatch_table_stats_toast_size_b` | Gauge | TOAST size in bytes | -### I/O metrics +### Freeze-age metrics | Metric | Type | Description | |--------|------|-------------| -| `pg_statio_user_tables_heap_blks_read_total` | Counter | Heap blocks read from disk | -| `pg_statio_user_tables_heap_blks_hit_total` | Counter | Heap blocks hit in buffer cache | -| `pg_statio_user_tables_idx_blks_read_total` | Counter | Index blocks read from disk | -| `pg_statio_user_tables_idx_blks_hit_total` | Counter | Index blocks hit in buffer cache | +| `pgwatch_table_stats_tx_freeze_age` | Counter | Transaction-id freeze age | +| `pgwatch_table_stats_mxid_freeze_age` | Counter | Multixact-id freeze age | ## Labels +The `table_stats` metric is grouped by schema and table, so it carries these labels (plus the +instance labels). Note the names are `schema` / `table_name` / `table_full_name` (not +`schemaname` / `relname`), and the cluster label is `cluster` (not `cluster_name`). + | Label | Description | Example | |-------|-------------|---------| -| `relname` | Table name | `users` | -| `schemaname` | Schema name | `public` | +| `table_name` | Table name | `users` | +| `table_full_name` | Schema-qualified table name | `public.users` | +| `schema` | Schema name | `public` | | `datname` | Database name | `myapp` | -| `cluster_name` | Cluster identifier | `production` | +| `cluster` | Cluster identifier (from `custom_tags.cluster`) | `production` | | `node_name` | Node identifier | `primary` | ## Common queries @@ -87,65 +94,53 @@ Table-level statistics from `pg_stat_user_tables` and related views. ### Sequential scan ratio ```promql -rate(pg_stat_user_tables_seq_scan_total[5m]) +rate(pgwatch_table_stats_seq_scan[5m]) / ( - rate(pg_stat_user_tables_seq_scan_total[5m]) + rate(pgwatch_table_stats_seq_scan[5m]) + - rate(pg_stat_user_tables_idx_scan_total[5m]) + rate(pgwatch_table_stats_idx_scan[5m]) ) ``` ### Tables with high dead tuple ratio ```promql -pg_stat_user_tables_n_dead_tup +pgwatch_table_stats_n_dead_tup / -(pg_stat_user_tables_n_live_tup + pg_stat_user_tables_n_dead_tup) +(pgwatch_table_stats_n_live_tup + pgwatch_table_stats_n_dead_tup) > 0.1 ``` ### HOT update ratio ```promql -rate(pg_stat_user_tables_n_tup_hot_upd_total[5m]) +rate(pgwatch_table_stats_n_tup_hot_upd[5m]) / -rate(pg_stat_user_tables_n_tup_upd_total[5m]) +rate(pgwatch_table_stats_n_tup_upd[5m]) ``` ### Tables not vacuumed recently ```promql -time() - pg_stat_user_tables_last_autovacuum > 86400 -``` - -### Buffer hit ratio per table - -```promql -rate(pg_statio_user_tables_heap_blks_hit_total[5m]) -/ -( - rate(pg_statio_user_tables_heap_blks_hit_total[5m]) - + - rate(pg_statio_user_tables_heap_blks_read_total[5m]) -) +pgwatch_table_stats_seconds_since_last_vacuum > 86400 ``` ### Largest tables ```promql -topk(10, pg_total_relation_size_bytes) +topk(10, pgwatch_table_stats_total_relation_size_b) ``` ### Write-heavy tables ```promql topk(10, - rate(pg_stat_user_tables_n_tup_ins_total[5m]) + rate(pgwatch_table_stats_n_tup_ins[5m]) + - rate(pg_stat_user_tables_n_tup_upd_total[5m]) + rate(pgwatch_table_stats_n_tup_upd[5m]) + - rate(pg_stat_user_tables_n_tup_del_total[5m]) + rate(pgwatch_table_stats_n_tup_del[5m]) ) ``` diff --git a/docs/monitoring/metrics/wait-events.md b/docs/monitoring/metrics/wait-events.md index 41158717..eb17cbf0 100644 --- a/docs/monitoring/metrics/wait-events.md +++ b/docs/monitoring/metrics/wait-events.md @@ -25,47 +25,53 @@ where backend_type = 'client backend'; ## Core metrics +Series are exported with the `pgwatch_` prefix. Wait-event sampling counts come from the +`wait_events` metric group (column `total`), and session state/duration come from the +`pg_stat_activity` group. + ### Session state metrics | Metric | Type | Description | |--------|------|-------------| -| `pg_stat_activity_count` | Gauge | Sessions by state | -| `pg_stat_activity_max_tx_duration_seconds` | Gauge | Longest running transaction | -| `pg_stat_activity_oldest_query_seconds` | Gauge | Oldest active query duration | +| `pgwatch_pg_stat_activity_count` | Gauge | Sessions, grouped by state | +| `pgwatch_pg_stat_activity_max_tx_duration` | Gauge | Longest running transaction (seconds) | ### Wait event metrics | Metric | Type | Description | |--------|------|-------------| -| `pg_wait_event_count` | Gauge | Sessions waiting by event type | -| `pg_wait_event_activity_count` | Gauge | Sessions in activity wait states | +| `pgwatch_wait_events_total` | Gauge | Sampled count of backends per wait event / type | + +There is no `pg_wait_event_count` or `pg_wait_event_activity_count` series. ## Labels -### Session state labels +### Session state labels (`pgwatch_pg_stat_activity_count`) | Label | Values | Description | |-------|--------|-------------| -| `state` | `active`, `idle`, `idle in transaction`, `idle in transaction (aborted)`, `fastpath function call`, `disabled` | Session state | +| `state` | `active`, `idle`, `idle in transaction`, `idle in transaction (aborted)`, ... | Session state | | `datname` | Database name | Target database | -| `usename` | User name | Connected user | +| `application_name` | Application name | Reported `application_name` | -### Wait event labels +### Wait event labels (`pgwatch_wait_events_total`) | Label | Values | Description | |-------|--------|-------------| -| `wait_event_type` | `CPU`, `IO`, `Lock`, `LWLock`, `BufferPin`, `Activity`, `Extension`, `Client`, `IPC`, `Timeout` | Wait category | +| `wait_event_type` | `LWLock`, `Lock`, `BufferPin`, `Activity`, `Client`, `Extension`, `IPC`, `Timeout`, `IO`, plus the synthesized `CPU*` placeholder (see below) | Wait category | | `wait_event` | Various | Specific wait event | +| `datname` | Database name | Target database | +| `query_id` | queryid (PG14+) | Associated query id, when available | ## Wait event categories -### CPU +### CPU* (synthesized placeholder) -On-CPU processing, no actual wait: - -| Event | Description | -|-------|-------------| -| `CPU` | Query execution on CPU | +`CPU` is **not** a real PostgreSQL `wait_event_type`. When a backend is running on CPU, its +`wait_event` and `wait_event_type` are `NULL`. To make on-CPU activity visible, the `wait_events` +metric coalesces those NULLs into a `CPU*` placeholder value — so you will see `CPU*` (not `CPU`) +in the `wait_event` / `wait_event_type` labels. The categories below are the standard PostgreSQL +wait-event types reported as-is. ### IO @@ -129,39 +135,39 @@ Background process waits: ### Sessions by state ```promql -sum by (state) (pg_stat_activity_count) +sum by (state) (pgwatch_pg_stat_activity_count) ``` ### Wait events distribution ```promql -sum by (wait_event_type) (pg_wait_event_count) +sum by (wait_event_type) (pgwatch_wait_events_total) ``` ### Active (non-idle) sessions ```promql -sum(pg_stat_activity_count{state!~"idle.*"}) +sum(pgwatch_pg_stat_activity_count{state!~"idle.*"}) ``` ### Sessions waiting on locks ```promql -sum(pg_wait_event_count{wait_event_type="Lock"}) +sum(pgwatch_wait_events_total{wait_event_type="Lock"}) ``` ### I/O wait ratio ```promql -sum(pg_wait_event_count{wait_event_type="IO"}) +sum(pgwatch_wait_events_total{wait_event_type="IO"}) / -sum(pg_stat_activity_count{state="active"}) +sum(pgwatch_pg_stat_activity_count{state="active"}) ``` ### Long-running transactions ```promql -pg_stat_activity_max_tx_duration_seconds > 300 +pgwatch_pg_stat_activity_max_tx_duration > 300 ``` ## Dashboard usage @@ -178,12 +184,12 @@ These metrics are used in: 1. Verify pgwatch is collecting from pg_stat_activity: ```bash - docker compose logs pgwatch | grep -i "stat_activity" + docker compose logs pgwatch-postgres pgwatch-prometheus | grep -i "stat_activity" ``` -2. Check monitoring user permissions: +2. Check monitoring user permissions (the product grants `pg_monitor`, not `pg_read_all_stats`): ```sql - grant pg_read_all_stats to postgres_ai_mon; + grant pg_monitor to postgres_ai_mon; ``` ### Wait events show "unknown" diff --git a/docs/monitoring/troubleshooting/index.md b/docs/monitoring/troubleshooting/index.md index 44c42de8..eeac0403 100644 --- a/docs/monitoring/troubleshooting/index.md +++ b/docs/monitoring/troubleshooting/index.md @@ -16,24 +16,35 @@ Guides for diagnosing and resolving common PostgresAI monitoring issues. # Docker Compose docker compose ps -# Expected output -# NAME STATUS -# pgwatch Up -# victoriametrics Up -# grafana Up +# Expected services (names) +# NAME STATUS +# pgwatch-postgres Up +# pgwatch-prometheus Up +# sink-postgres Up +# sink-prometheus Up (VictoriaMetrics) +# grafana Up (container grafana-with-datasources) ``` ### Verify metrics flow ```bash -# 1. Check pgwatch is collecting -curl http://localhost:8080/metrics | grep pg_stat - -# 2. Check VictoriaMetrics is receiving -curl 'http://localhost:8428/api/v1/query?query=up' - -# 3. Check Grafana data source -curl http://monitor:YOUR_PASSWORD@localhost:3000/api/datasources/proxy/1/api/v1/query?query=up +# 1. Check pgwatch metrics are exposed (internal only; the prometheus sink +# serves them at pgwatch-prometheus:9091/pgwatch — no host port 8080). +# sink-prometheus enables VM basic auth when VM_AUTH_USERNAME/PASSWORD are set, +# so /api/v1/query needs credentials (otherwise it returns 401). +# sink-prometheus is the VictoriaMetrics image: its wget is BusyBox wget, which +# has NO --user/--password flags — pass the credentials in the URL userinfo instead. +docker compose exec sink-prometheus wget -qO- \ + "http://$VM_AUTH_USERNAME:$VM_AUTH_PASSWORD@localhost:9090/api/v1/query?query=pgwatch_pg_stat_activity_count" + +# 2. Check VictoriaMetrics is receiving (host port 59090; VM basic auth) +curl -u "$VM_AUTH_USERNAME:$VM_AUTH_PASSWORD" \ + 'http://localhost:59090/api/v1/query?query=up' + +# 3. Check the Grafana data source proxy (admin: monitor / demo; the proxy path +# takes the datasource UID, not its name — PGWatch-Prometheus has uid +# P7A0D6631BB10B34F; Grafana adds the VM basic auth under the hood) +curl 'http://monitor:demo@localhost:3000/api/datasources/proxy/uid/P7A0D6631BB10B34F/api/v1/query?query=up' ``` ## Common issues @@ -50,13 +61,13 @@ curl http://monitor:YOUR_PASSWORD@localhost:3000/api/datasources/proxy/1/api/v1/ ### pgwatch logs ```bash -docker compose logs pgwatch --tail 100 +docker compose logs pgwatch-postgres pgwatch-prometheus --tail 100 ``` ### VictoriaMetrics logs ```bash -docker compose logs victoriametrics --tail 100 +docker compose logs sink-prometheus --tail 100 ``` ### Grafana logs @@ -67,23 +78,29 @@ docker compose logs grafana --tail 100 ### PostgreSQL connectivity +The `pgwatch-postgres` image is a minimal Alpine build that ships only the pgwatch binary — it has no +`psql`. Run the connectivity check from a container that does have a client, such as `sink-postgres` +(image `postgres:17`): + ```bash -docker compose exec pgwatch psql -h target-host -U monitoring_user -c "select 1" +docker compose exec sink-postgres psql -h target-host -U monitoring_user -c "select 1" ``` ## Health check endpoints +Only Grafana (port `3000`) and VictoriaMetrics (host `59090`) are reachable from the host. pgwatch's +internal web address (`:8080` on `pgwatch-postgres`) is not published to the host. + | Component | Endpoint | Expected | |-----------|----------|----------| -| pgwatch | `http://localhost:8080/health` | `{"status": "ok"}` | -| VictoriaMetrics | `http://localhost:8428/health` | `OK` | | Grafana | `http://localhost:3000/api/health` | `{"database": "ok"}` | +| VictoriaMetrics | `http://localhost:59090/health` | `OK` | ## Getting help 1. Check logs for error messages 2. Review the specific troubleshooting guide -3. Search [GitHub Issues](https://github.com/postgres-ai/postgresai/issues) +3. Search [GitLab Issues](https://gitlab.com/postgres-ai/postgresai/-/issues) 4. Open a new issue with diagnostic output ## Sections diff --git a/docs/monitoring/troubleshooting/no-data.md b/docs/monitoring/troubleshooting/no-data.md index b7e780db..84c7ec66 100644 --- a/docs/monitoring/troubleshooting/no-data.md +++ b/docs/monitoring/troubleshooting/no-data.md @@ -22,21 +22,24 @@ Diagnosing and fixing "No data" issues in PostgresAI dashboards. ### 1. Check pgwatch status ```bash -docker compose ps pgwatch +docker compose ps pgwatch-postgres pgwatch-prometheus ``` Expected: `Up` status If not running: ```bash -docker compose logs pgwatch --tail 50 +docker compose logs pgwatch-postgres pgwatch-prometheus --tail 50 ``` ### 2. Verify PostgreSQL connectivity +The `pgwatch-postgres` container has no `psql` (it is a minimal Alpine image with only the pgwatch +binary). Run the check from `sink-postgres` (image `postgres:17`), which has a client: + ```bash # Use PGPASSWORD environment variable for authentication -docker compose exec -e PGPASSWORD="$PGPASSWORD" pgwatch psql \ +docker compose exec -e PGPASSWORD="$PGPASSWORD" sink-postgres psql \ "postgresql://user@host:5432/dbname" \ -c "select 1" ``` @@ -74,22 +77,21 @@ Adding to shared_preload_libraries requires PostgreSQL restart. ### 4. Verify metrics collection -```bash -# Check pgwatch is scraping -curl http://localhost:8080/metrics | head -20 -``` - -Expected: Prometheus-format metrics +The pgwatch-prometheus sink serves metrics at `pgwatch-prometheus:9091/pgwatch` on the internal +network; it is not published to the host. The simplest check is to query VictoriaMetrics (which +scrapes it) for a `pgwatch_`-prefixed series: ```bash -# Check specific metrics -curl http://localhost:8080/metrics | grep pg_stat_statements_calls +# Confirm pgwatch metrics have been ingested (host port 59090, VM basic auth) +curl -u "$VM_AUTH_USERNAME:$VM_AUTH_PASSWORD" \ + 'http://localhost:59090/api/v1/query?query=pgwatch_pg_stat_statements_calls' ``` ### 5. Check VictoriaMetrics ingestion ```bash -curl 'http://localhost:8428/api/v1/query?query=up' +curl -u "$VM_AUTH_USERNAME:$VM_AUTH_PASSWORD" \ + 'http://localhost:59090/api/v1/query?query=up' ``` Expected: @@ -97,18 +99,20 @@ Expected: {"status":"success","data":{"result":[...]}} ``` -Check data for specific metric: +Check data for a specific metric (all pgwatch series are `pgwatch_`-prefixed; the transaction +commit counter is `pgwatch_db_stats_xact_commit`): ```bash -curl 'http://localhost:8428/api/v1/query?query=pg_stat_database_xact_commit_total' +curl -u "$VM_AUTH_USERNAME:$VM_AUTH_PASSWORD" \ + 'http://localhost:59090/api/v1/query?query=pgwatch_db_stats_xact_commit' ``` ### 6. Verify Grafana data source ```bash -curl http://monitor:YOUR_PASSWORD@localhost:3000/api/datasources +curl 'http://monitor:demo@localhost:3000/api/datasources' ``` -Check data source URL points to VictoriaMetrics. +Check the `PGWatch-Prometheus` data source URL points to `http://sink-prometheus:9090`. ## Specific scenarios @@ -158,8 +162,10 @@ Check data source URL points to VictoriaMetrics. create extension pg_stat_statements; ``` -2. **Database excluded from collection:** - Check pgwatch configuration for `PW_EXCLUDE_DATABASES`. +2. **Database not included in collection:** + pgwatch monitors the databases listed in `instances.yml` (rendered into `sources.yml`). There + is no `PW_EXCLUDE_DATABASES` (or any `PW_*`) environment variable. Verify the target's + `conn_str` and that `is_enabled: true` in `instances.yml`. ### No data for specific cluster @@ -169,14 +175,15 @@ Check data source URL points to VictoriaMetrics. **Causes and solutions:** -1. **Check connectivity for that specific connection:** +1. **Check connectivity for that specific connection** (run `psql` from `sink-postgres`, since the + `pgwatch-postgres` image has no client): ```bash - docker compose exec pgwatch psql "connection_string" -c "select 1" + docker compose exec sink-postgres psql "connection_string" -c "select 1" ``` 2. **Check pgwatch logs for errors:** ```bash - docker compose logs pgwatch | grep "cluster_name" + docker compose logs pgwatch-postgres pgwatch-prometheus | grep -i cluster ``` ### Data stops after some time @@ -189,7 +196,7 @@ Check data source URL points to VictoriaMetrics. 1. **pgwatch crashed:** ```bash - docker compose restart pgwatch + docker compose restart pgwatch-postgres pgwatch-prometheus ``` 2. **Target PostgreSQL connection dropped:** @@ -212,14 +219,15 @@ Grafana time range may not include collected data: Dashboard variables filter displayed data: - Check `cluster_name` variable -- Check `datname` variable +- Check `db_name` variable (the standard database-selection variable; only + [11. Single index](/docs/monitoring/dashboards/single-index) names it `datname`) - Try "All" option if available ### Query timeout Complex dashboards may timeout: - Check Grafana query inspector for errors -- Increase `VM_SEARCH_QUERY_TIMEOUT` +- Increase `VM_QUERY_DURATION` (default `30s`; maps to VictoriaMetrics' `-search.maxQueryDuration`) ## Permission issues @@ -229,10 +237,10 @@ If pgwatch can connect but gets no data: -- Check monitoring user permissions \du monitoring_user --- Grant required permissions +-- Grant the required role (pg_monitor; this is what prepare-db grants and what +-- the install/verify step checks for). pg_read_all_stats is a strict subset and +-- is not sufficient on its own. grant pg_monitor to monitoring_user; --- or for older PostgreSQL versions: -grant pg_read_all_stats to monitoring_user; ``` See [Permission errors](/docs/monitoring/troubleshooting/permissions) for details. @@ -243,9 +251,10 @@ See [Permission errors](/docs/monitoring/troubleshooting/permissions) for detail ```bash docker compose logs > monitoring-logs.txt docker compose ps >> monitoring-logs.txt - curl http://localhost:8080/metrics >> monitoring-logs.txt 2>&1 + curl -u "$VM_AUTH_USERNAME:$VM_AUTH_PASSWORD" \ + 'http://localhost:59090/api/v1/query?query=up' >> monitoring-logs.txt 2>&1 ``` -2. Check GitHub Issues for similar problems +2. Check [GitLab Issues](https://gitlab.com/postgres-ai/postgresai/-/issues) for similar problems 3. Open a new issue with the diagnostic output diff --git a/docs/monitoring/troubleshooting/performance.md b/docs/monitoring/troubleshooting/performance.md index 2fa7f60e..14545908 100644 --- a/docs/monitoring/troubleshooting/performance.md +++ b/docs/monitoring/troubleshooting/performance.md @@ -33,30 +33,30 @@ docker stats ### Reducing collection overhead -**1. Increase collection interval:** +There are no `PW_*` environment variables in this stack. Collection is controlled per metric group +in the pgwatch `metrics.yml` files, and the set of metrics is fixed by the `full` preset that the +generated `sources.yml` uses. -```bash -# Default: 15s, increase for less load -PW_SCRAPE_INTERVAL=30s -``` +**1. Increase a metric group's collection interval:** -**2. Use appropriate preset:** +Each group lists an interval (seconds) under `presets:` in +`config/pgwatch-prometheus/metrics.yml`. For example, most groups collect every `30s` while +`pg_stat_activity` and `wait_events` collect every `15s`. Raise these values for the groups you +care less about to reduce load. There is no `PW_SCRAPE_INTERVAL` variable. -| Preset | Load | Coverage | -|--------|------|----------| -| basic | Low | Essential metrics only | -| standard | Medium | Most use cases | -| full | Higher | Complete visibility | +**2. Preset selection:** -```bash -postgresai mon local-install --preset basic -``` +The generated source hardcodes `preset_metrics: full` (see +`config/scripts/generate-pgwatch-sources.sh` and `cli/lib/instances.ts`). `mon local-install` has +**no** `--preset` flag — its options are `--demo`, `--api-key`, `--db-url`, `--tag`, `--project`, +and `-y/--yes`. There are no `basic`/`standard` preset tiers. To trim collection, edit the `full` +preset (or define a custom preset) in `metrics.yml`. **3. Disable expensive metrics:** -```bash -PW_DISABLED_METRICS="bloat_tables,bloat_indexes" -``` +Remove or lengthen the interval of expensive groups (for example the bloat groups +`pg_table_bloat`, `pg_btree_bloat` — already at `7200s`) directly in the `full` preset in +`metrics.yml`. There is no `PW_DISABLED_METRICS` variable. ### Monitoring query overhead @@ -76,41 +76,23 @@ limit 10; ## VictoriaMetrics tuning -### Memory optimization - -**Reduce active time series:** - -```bash -# Limit cardinality -VM_STORAGE_MAX_UNIQUE_SERIES=1000000 -``` - -**Adjust cache sizes:** - -```bash -# Reduce if memory constrained -VM_STORAGE_CACHE_SIZE_STORAGE_TSID=128MB -VM_STORAGE_CACHE_SIZE_INDEX_DB=64MB -``` +The compose stack reads only these VictoriaMetrics (`sink-prometheus`) environment variables: +`VM_AUTH_USERNAME`, `VM_AUTH_PASSWORD`, `VM_RETENTION_PERIOD`, `VM_QUERY_DURATION`, and +`VM_MAX_CONCURRENT_REQUESTS`. Variables such as `VM_STORAGE_*`, `VM_SEARCH_*`, and a per-query +memory limit do not exist here. ### Query performance -**Increase query timeout:** +**Increase query duration limit:** ```bash -VM_SEARCH_QUERY_TIMEOUT=60s +VM_QUERY_DURATION=60s # default 30s; maps to -search.maxQueryDuration ``` **Limit concurrent queries:** ```bash -VM_SEARCH_MAX_CONCURRENT_REQUESTS=8 -``` - -**Reduce query memory:** - -```bash -VM_SEARCH_MAX_MEMORY_PER_QUERY=256MB +VM_MAX_CONCURRENT_REQUESTS=8 # default 16; maps to -search.maxConcurrentRequests ``` ### Storage optimization @@ -118,15 +100,20 @@ VM_SEARCH_MAX_MEMORY_PER_QUERY=256MB **Shorter retention:** ```bash -VM_RETENTION_PERIOD=7d # Down from 14d +VM_RETENTION_PERIOD=168h # 7 days, down from the default 336h (14 days) ``` +`VM_RETENTION_PERIOD` accepts VictoriaMetrics durations with hour/day/week/year suffixes — for +example `168h` or `7d`, `336h` or `14d`, `30d`, `4380h` (a bare integer is interpreted as months). +The bundled `.env.example` lists `30d` as a valid example. + **Enable compression:** -VictoriaMetrics compresses by default. Check compression ratio: +VictoriaMetrics compresses by default. Check TSDB status (host port `59090`, VM basic auth): ```bash -curl http://localhost:8428/api/v1/status/tsdb +curl -u "$VM_AUTH_USERNAME:$VM_AUTH_PASSWORD" \ + http://localhost:59090/api/v1/status/tsdb ``` ## Grafana optimization @@ -140,12 +127,12 @@ curl http://localhost:8428/api/v1/status/tsdb **Optimize panel queries:** - Use `rate()` instead of raw counters - Limit time series with `topk()` or `bottomk()` -- Add `{cluster_name="production"}` filters +- Add `{cluster="production"}` filters (the metric label is `cluster`, not `cluster_name`) **Example — limit to top 10:** ```promql -topk(10, rate(pg_stat_statements_calls_total[5m])) +topk(10, rate(pgwatch_pg_stat_statements_calls[5m])) ``` ### Query caching @@ -171,36 +158,14 @@ row_limit = 10000 ## pgwatch tuning -### Connection pooling - -**Limit connections per database:** - -```bash -PW_MAX_PARALLEL_CONNECTIONS_PER_DB=2 # Down from 3 -``` - -**Increase connection timeout:** - -```bash -PW_CONNECT_TIMEOUT=15s -``` - -### Collection scheduling +### Connection and collection settings -**Stagger collection times:** - -For multiple databases, avoid simultaneous collection: - -```yaml -# Configure different scrape offsets -databases: - - name: db1 - scrape_offset: 0s - - name: db2 - scrape_offset: 5s - - name: db3 - scrape_offset: 10s -``` +pgwatch in this stack is configured through its `sources.yml` / `metrics.yml` files (generated +from `instances.yml`), not through `PW_*` environment variables. Variables such as +`PW_MAX_PARALLEL_CONNECTIONS_PER_DB` and `PW_CONNECT_TIMEOUT` do not exist here. To reduce load, +adjust per-metric collection intervals in `metrics.yml` (see +[Reducing collection overhead](#reducing-collection-overhead) above) or disable targets in +`instances.yml`. ## Resource allocation @@ -226,29 +191,31 @@ VictoriaMetrics Disk: 10 × 4 weeks × 5 GiB = 200 GiB ## Docker resource limits +Each service in `docker-compose.yml` sets top-level `cpus:` and `mem_limit:` keys whose defaults +come from environment variables — there is no `deploy.resources.limits` block. Override them in +`.env` rather than editing the compose file. These limits apply only when a container is +recreated, so after editing `.env` run `docker compose up -d --force-recreate <service>` to apply +them (`postgresai mon update-config` migrates `.env` but does not recreate services). CPUs are +floats (Docker Compose `cpus:` semantics); memory is in **bytes**. + +```bash +# .env — override the per-service defaults +PGWATCH_PROMETHEUS_CPUS=1.0 +PGWATCH_PROMETHEUS_MEM=536870912 # 512 MiB (default) + +SINK_PROMETHEUS_CPUS=2.0 # VictoriaMetrics (sink-prometheus) +SINK_PROMETHEUS_MEM=4294967296 # 4 GiB + +GRAFANA_CPUS=1.0 +GRAFANA_MEM=1073741824 # 1 GiB +``` + +The matching `cpus:`/`mem_limit:` lines in `docker-compose.yml` read these variables, for example: + ```yaml -# docker-compose.yml -services: - pgwatch: - deploy: - resources: - limits: - memory: 512M - cpus: '1.0' - - victoriametrics: - deploy: - resources: - limits: - memory: 4G - cpus: '2.0' - - grafana: - deploy: - resources: - limits: - memory: 1G - cpus: '1.0' + pgwatch-prometheus: + cpus: ${PGWATCH_PROMETHEUS_CPUS:-0.5} + mem_limit: ${PGWATCH_PROMETHEUS_MEM:-536870912} ``` ## High cardinality issues @@ -256,7 +223,8 @@ services: ### Identify high cardinality ```bash -curl http://localhost:8428/api/v1/status/tsdb | jq '.data.totalSeries' +curl -u "$VM_AUTH_USERNAME:$VM_AUTH_PASSWORD" \ + http://localhost:59090/api/v1/status/tsdb | jq '.data.totalSeries' ``` ### Common cardinality sources @@ -270,20 +238,19 @@ curl http://localhost:8428/api/v1/status/tsdb | jq '.data.totalSeries' ### Reduce cardinality -**Drop high-cardinality labels:** +**Reduce query-identity cardinality:** -```yaml -# VictoriaMetrics relabel config -relabel_configs: - - action: labeldrop - regex: query # Drop full query text -``` +Query-level series are keyed by the `queryid` label (used throughout the dashboards via +`pgwatch_query_info`). There is no `query` label carrying full query text on the Prometheus +metrics to drop. The primary cardinality control is the per-metric `LIMIT 100` in the pgwatch +`metrics.yml` (and the `sample_limit` safety nets in `prometheus.yml`); lower these to cap the +number of distinct `queryid`s retained. **Aggregate metrics:** ```promql -# Instead of per-table -sum by (datname) (pg_stat_user_tables_seq_scan_total) +# Instead of per-table, aggregate across tables +sum by (datname) (pgwatch_pg_stat_all_tables_seq_tup_read) ``` ## Monitoring the monitoring @@ -295,15 +262,11 @@ Use the Self-Monitoring dashboard to track: - Memory usage - Disk usage -Set up alerts for monitoring health: - -```yaml -- alert: MonitoringCollectionSlow - expr: pgwatch_collection_duration_seconds > 30 - for: 5m - labels: - severity: warning -``` +The stack does not ship alert rules (there is no Alertmanager or `vmalert`; see +[Alerting configuration](/docs/monitoring/configuration/alerting)). If you add your own alerting, +note that there is no `pgwatch_collection_duration_seconds` metric in this stack — base health +alerts on series that actually exist (for example `up{job="pgwatch-prometheus"}` for the pgwatch +scrape job, or VM's own self-monitoring metrics). ## Troubleshooting slow dashboards @@ -324,8 +287,8 @@ Look for: ```promql # Before (slow) -sum(rate(pg_stat_statements_calls_total[5m])) +sum(rate(pgwatch_pg_stat_statements_calls[5m])) -# After (faster - add filter) -sum(rate(pg_stat_statements_calls_total{cluster_name="$cluster"}[5m])) +# After (faster - add filter; the label is `cluster`) +sum(rate(pgwatch_pg_stat_statements_calls{cluster="$cluster_name"}[5m])) ``` diff --git a/docs/monitoring/troubleshooting/permissions.md b/docs/monitoring/troubleshooting/permissions.md index 3453b45d..90e7ea5e 100644 --- a/docs/monitoring/troubleshooting/permissions.md +++ b/docs/monitoring/troubleshooting/permissions.md @@ -184,8 +184,12 @@ grant execute on function public.monitoring_stats_reset() to monitoring_user; 3. Network connectivity exists ```bash -# Test from Grafana container -docker compose exec grafana curl http://victoriametrics:8428/api/v1/query?query=up +# Test from the Grafana container. The datasource points at sink-prometheus:9090 +# (there is no host named "victoriametrics", and the container port is 9090, not +# 8428). The endpoint requires VM basic auth. +docker compose exec grafana curl \ + -u "$VM_AUTH_USERNAME:$VM_AUTH_PASSWORD" \ + 'http://sink-prometheus:9090/api/v1/query?query=up' ``` ### Dashboard access @@ -259,16 +263,33 @@ host all monitoring_user 10.0.0.5/32 scram-sha-256 hostssl all monitoring_user 10.0.0.0/24 scram-sha-256 ``` -### Rotate credentials +### Rotate monitoring database credentials -Update connection string in pgwatch configuration and restart: +This rotates the **monitored database** role's password. To rotate the VictoriaMetrics +basic-auth credentials instead, see +[Rotating VictoriaMetrics credentials](/docs/monitoring/configuration/prometheus-config#rotating-victoriametrics-credentials). + +The monitored-database connection (including its password) lives in `instances.yml`, which is +rendered into pgwatch's `sources.yml` by `config/scripts/generate-pgwatch-sources.sh` — **not** in +`docker-compose.yml` or `.env` (the `.env` file holds stack secrets such as `REPLICATOR_PASSWORD` +and `VM_AUTH_*`). Update the target's `conn_str` in `instances.yml`, then regenerate sources and +recreate the pgwatch collectors: ```bash -docker compose down -# Update credentials in docker-compose.yml or .env -docker compose up -d +# Edit the target's conn_str in instances.yml, then regenerate sources.yml from it: +postgresai mon update-config +# Apply the new connection by restarting the collectors. `mon restart` takes at most one +# service argument, so restart each collector separately: +postgresai mon restart pgwatch-postgres +postgresai mon restart pgwatch-prometheus ``` +`postgresai mon restart` alone is **not** enough: it only runs `docker compose restart` and never +re-renders `sources.yml` from `instances.yml`, so the new `conn_str` would never reach the +collectors. `mon update-config` runs the `sources-generator` service that regenerates the sources. +(`mon restart` with no service argument restarts the whole stack; it accepts at most one service, +so the two collectors must be restarted with two separate commands.) + ## Troubleshooting checklist 1. ☐ User exists in database diff --git a/docs/postgresai-howtos/how-to-install-mcp.md b/docs/postgresai-howtos/how-to-install-mcp.md index 0f1ea762..cab52c4a 100644 --- a/docs/postgresai-howtos/how-to-install-mcp.md +++ b/docs/postgresai-howtos/how-to-install-mcp.md @@ -104,11 +104,13 @@ To skip the prompt, pass the client name as an argument: `postgresai mcp install ## Verify installation -After installation, restart your AI coding tool. The PostgresAI MCP server exposes the following tools (see the [`mcp` section of the CLI reference](/docs/reference-guides/postgresai-cli-reference#command-mcp) for full details): +After installation, restart your AI coding tool. The PostgresAI MCP server exposes 15 tools (see the [`mcp` section of the CLI reference](/docs/reference-guides/postgresai-cli-reference#command-mcp) for full details): -- `list_issues`, `view_issue`, `create_issue`, `update_issue` — browse and manage issues in the PostgresAI Console. -- `post_issue_comment`, `update_issue_comment` — comment on issues. -- `upload_file`, `download_file` — upload local files to PostgresAI storage and download them back. +- **Issues:** `list_issues`, `view_issue`, `create_issue`, `update_issue` — browse and manage issues in the PostgresAI Console. +- **Issue comments:** `post_issue_comment`, `update_issue_comment` — comment on issues. +- **Action items:** `list_action_items`, `view_action_item`, `create_action_item`, `update_action_item` — manage action items on an issue (including the approval workflow). +- **Reports:** `list_reports`, `list_report_files`, `get_report_data` — list and read checkup reports stored in the Console. +- **Files:** `upload_file`, `download_file` — upload local files to PostgresAI storage and download them back. To check the install landed, inspect the client config file. For Cursor: diff --git a/docs/reference-guides/postgres-ai-monitoring-reference.md b/docs/reference-guides/postgres-ai-monitoring-reference.md index b9e987c6..2b059862 100644 --- a/docs/reference-guides/postgres-ai-monitoring-reference.md +++ b/docs/reference-guides/postgres-ai-monitoring-reference.md @@ -12,7 +12,7 @@ keywords: :::note -This page lists the user-facing metric groups. The pgwatch collector ships with additional groups that are emitted but not yet documented here (for example, `pg_stat_io`, `pg_stat_slru`, `pg_statio_all_tables`, `pg_statio_all_indexes`, `lock_waits`, `xmin_horizon`, `xmin_horizon_blockers`, `multixact_size`, `pg_wal_size`, `pg_index_pilot`, `stats_reset`, `table_size_detailed`). To see the full set of metrics emitted by your monitoring instance, query the Prometheus / VictoriaMetrics endpoint directly (e.g. `/api/v1/label/__name__/values`). +This page lists the user-facing metric groups. The pgwatch collector ships with additional groups that are emitted but not yet documented here (for example, `pg_stat_slru`, `pg_statio_all_tables`, `pg_statio_all_indexes`, `multixact_size`, `pg_index_pilot`, `stats_reset`, `table_size_detailed`). To see the full set of metrics emitted by your monitoring instance, query the Prometheus / VictoriaMetrics endpoint directly (e.g. `/api/v1/label/__name__/values`). ::: @@ -31,7 +31,7 @@ Most metrics include these standard labels: ### Metric-specific labels Additional labels are available for specific metric types: -- **Query metrics** (`pg_stat_statements`): `queryid`, `user` +- **Query metrics** (`pg_stat_statements`): `queryid`, `datname` - **Table metrics** (`table_stats`, `pg_stat_all_tables`): `schema`, `table_name`, `table_full_name`, `table_size_cardinality_mb` - **Index metrics** (`pg_stat_all_indexes`): `schemaname`, `relname`, `indexrelname` - **Lock metrics** (`locks_mode`): `lockmode` @@ -106,7 +106,7 @@ Collected every 15-30 seconds ### Query performance (`pg_stat_statements`) Collected every 30 seconds -**Additional Labels:** `queryid` (query identifier), `user` (database user) +**Additional Labels:** `queryid` (query identifier), `datname` (database name) | Metric | Description | Units | |--------|-------------|-------| @@ -135,6 +135,31 @@ Collected every 30 seconds |--------|-------------|-------| | `locks_mode_count` | Number of locks held by mode type | - | +### Lock waits (`lock_waits`) +Collected every 30 seconds + +Detailed blocked / blocking pairs for lock-contention root cause analysis. New in 0.15: +the lock-wait metrics carry session PIDs as labels, so the blocker can be identified directly +in Grafana / PromQL without running the manual `pg_locks` join. Used by +[Dashboard 13 — Lock contention](/docs/monitoring/dashboards/lock-contention). + +**Additional Labels:** `blocked_pid` (PID of the waiting backend), `blocker_pid` (PID of the +blocking backend), `blocked_user` / `blocker_user`, `blocked_appname` / `blocker_appname`, +`blocked_table` / `blocker_table` (affected relation), `blocked_query_id` / `blocker_query_id`, +and `datname`. Note: `blocked_mode` / `blocker_mode` and `blocked_locktype` / `blocker_locktype` +are emitted as plain (non-`tag_`) value columns in the metric definition, so they are **not** +Prometheus labels. + +| Metric | Description | Units | +|--------|-------------|-------| +| `pgwatch_lock_waits_blocked_ms` | Time the blocked backend has been waiting | Milliseconds | +| `pgwatch_lock_waits_blocker_tx_ms` | Age of the blocking backend's transaction | Milliseconds | + +:::tip Terminating a blocker +Use the `blocker_pid` label directly: `select pg_terminate_backend(<blocker_pid>);`. No manual +blocking-chain query is required to find the PID. +::: + ### Wait events (`wait_events`) Collected every 15 seconds **Additional Labels:** `wait_event` (specific wait event), `wait_event_type` (wait category), and on PostgreSQL 14+ `query_id` (associated query) @@ -207,6 +232,93 @@ Collected every 15-30 seconds | `archive_lag_archived_count` | Total archived WAL files | - | | `archive_lag_failed_count` | Failed archive attempts | - | | `pg_archiver_pending_wal_count` | Number of WAL files pending archive | - | +| `pg_wal_size_bytes` | Total size of regular files in the `pg_wal` directory (via `pg_ls_waldir()`; excludes subdirectories such as `pg_wal/archive_status`). New in 0.15. Not emitted when `pg_wal_size_status_code` > 0. | Bytes | +| `pg_wal_size_status_code` | `pg_wal` size collection status: `0` = success, `1` = `pg_ls_waldir()` not available, `2` = monitoring role lacks EXECUTE privilege. New in 0.15. | - | + +:::note Interpreting `pg_wal_size` +`pg_wal` growth that is not matched by archive or replica progress points to disk-fill risk — +typically a stuck WAL archiver, an inactive replication slot retaining WAL, or sustained high +WAL generation. Cross-reference with the archiver and replication-slot metrics above, and see +[How to troubleshoot a growing pg_wal directory](/docs/postgres-howtos/database-administration/maintenance/how-to-troubleshoot-a-growing-pg-wal-directory). +::: + +### xmin horizon (`xmin_horizon`) +Collected every 30 seconds. Instance-level, primary only. New in 0.15. + +Tracks the current xmin horizon age split by blocker class and horizon type. Component +`*_age_tx` / `*_count` columns emit `0` (never NULL) when that component has no active blocker. +Used by [Dashboard 07 — Autovacuum and xmin horizon](/docs/monitoring/dashboards/autovacuum). + +| Metric | Description | Units | +|--------|-------------|-------| +| `xmin_horizon_data_horizon_age_tx` | Age of the data horizon (worst of client-backend, slot, standby, prepared-xact blockers) | Transactions | +| `xmin_horizon_catalog_horizon_age_tx` | Age of the catalog horizon (data horizon plus catalog `catalog_xmin` blockers) | Transactions | +| `xmin_horizon_snapshot_xmin` | Raw snapshot xmin anchor (`txid_snapshot_xmin(txid_current_snapshot())`) | - | +| `xmin_horizon_pg_stat_activity_age_tx` | Oldest client-backend `backend_xmin` age | Transactions | +| `xmin_horizon_pg_stat_activity_count` | Number of client backends holding a horizon | - | +| `xmin_horizon_pg_replication_slots_age_tx` | Oldest replication-slot `xmin` age | Transactions | +| `xmin_horizon_pg_replication_slots_count` | Number of slots holding the data horizon | - | +| `xmin_horizon_pg_replication_slots_catalog_age_tx` | Oldest replication-slot `catalog_xmin` age | Transactions | +| `xmin_horizon_pg_replication_slots_catalog_count` | Number of slots holding the catalog horizon | - | +| `xmin_horizon_pg_stat_replication_age_tx` | Oldest standby-feedback `backend_xmin` age | Transactions | +| `xmin_horizon_pg_stat_replication_count` | Number of standbys holding a horizon | - | +| `xmin_horizon_pg_prepared_xacts_age_tx` | Oldest prepared-transaction age | Transactions | +| `xmin_horizon_pg_prepared_xacts_count` | Number of prepared transactions holding a horizon | - | + +### xmin horizon blockers (`xmin_horizon_blockers`) +Collected every 30 seconds. Instance-level, primary only. New in 0.15. + +Captures the single oldest (top) blocker for each currently active component as a separate +labeled series, with that blocker's xmin age in transactions. Emits one series per active +component and no series for an empty component, so cardinality varies between 0 and 5 per +scrape. The monitoring role's own sessions are excluded. + +**Additional Labels:** `component` (`pg_stat_activity`, `pg_replication_slots`, +`pg_replication_slots_catalog`, `pg_stat_replication`, `pg_prepared_xacts`), `horizon_type` +(`data` / `catalog`), `blocker_database`, `blocker_user`, `blocker_appname`, `blocker_state`, +`queryid` (for activity blockers), `slot_name` / `slot_type` / `slot_plugin` / +`slot_xmin_source` / `slot_status` / `slot_wal_status` (for slot blockers), `standby_name` +(for replication blockers), `prepared_gid` / `owner` (for prepared-transaction blockers). + +| Metric | Description | Units | +|--------|-------------|-------| +| `xmin_horizon_blockers_age_tx` | xmin age of the top blocker for the labeled component | Transactions | + +:::note Query text is not a label +Query text is intentionally not emitted as a Prometheus label. Use the `queryid` label to look +up the query text in pgwatch query storage. +::: + +### I/O statistics (`pg_stat_io`, PostgreSQL 16+) {#io-statistics-pg_stat_io-postgresql-16} +Collected every 30 seconds. Instance-level. New in 0.15. + +Collects I/O statistics from the PostgreSQL `pg_stat_io` view (PostgreSQL 16+). On PostgreSQL +15 and earlier this group emits nothing. Values are aggregated by backend type with a `total` +row added via `ROLLUP`. Used by +[Dashboard 14 — I/O statistics](/docs/monitoring/dashboards/io-statistics). + +**Additional Labels:** `backend_type` (e.g. `client backend`, `autovacuum worker`, +`background writer`, `checkpointer`, `walwriter`, or `total` for the rollup row). + +| Metric | Description | Units | +|--------|-------------|-------| +| `pg_stat_io_reads` | Read operations | - | +| `pg_stat_io_read_bytes_mb` | Data read | MiB | +| `pg_stat_io_read_time_ms` | Time spent reading | Milliseconds | +| `pg_stat_io_writes` | Write operations | - | +| `pg_stat_io_write_bytes_mb` | Data written | MiB | +| `pg_stat_io_write_time_ms` | Time spent writing | Milliseconds | +| `pg_stat_io_writebacks` | Writeback operations | - | +| `pg_stat_io_writeback_bytes_mb` | Data written back | MiB | +| `pg_stat_io_writeback_time_ms` | Time spent on writebacks | Milliseconds | +| `pg_stat_io_fsyncs` | fsync operations | - | +| `pg_stat_io_fsync_time_ms` | Time spent on fsyncs | Milliseconds | +| `pg_stat_io_extends` | Relation extend operations | - | +| `pg_stat_io_extend_bytes_mb` | Data added by extends | MiB | +| `pg_stat_io_hits` | Blocks found in shared buffers | - | +| `pg_stat_io_evictions` | Buffers evicted to make room | - | +| `pg_stat_io_reuses` | Buffers reused directly (e.g. ring buffers) | - | +| `pg_stat_io_stats_reset_s` | Seconds since `pg_stat_reset_shared('io')` | Seconds | ### Bloat analysis metrics (`pg_table_bloat`, `pg_btree_bloat`, `unused_indexes`, `rarely_used_indexes`, `redundant_indexes`, `pg_invalid_indexes`) Collected every 2-3 hours diff --git a/docs/reference-guides/postgresai-cli-reference.md b/docs/reference-guides/postgresai-cli-reference.md index 9eac73bf..7a7bdf07 100644 --- a/docs/reference-guides/postgresai-cli-reference.md +++ b/docs/reference-guides/postgresai-cli-reference.md @@ -28,6 +28,11 @@ equivalent binaries: `postgresai` (canonical) and `pgai` (short alias). Both names accept exactly the same commands and options; this page uses `postgresai` throughout. +## Requirements + +The CLI requires **Node.js 18+ (or Bun 1.0+)**. Older Node versions fail fast with a clear +error rather than breaking partway through a command. + ## Getting started To install and authenticate, see the [PostgresAI CLI how-to](/docs/postgresai-howtos/postgresai-cli). @@ -215,7 +220,7 @@ and optionally upload them to the PostgresAI Console. # Run all checks postgresai checkup <conn> -# Run a specific check (CHECK_ID matches /^[A-Z]\d{3}$/, e.g. H002) +# Run a specific check (CHECK_ID matches /^[A-Z]\d{3}$/i — case-insensitive, e.g. H002 or h002) postgresai checkup <CHECK_ID> <conn> ``` @@ -226,14 +231,50 @@ postgresai checkup <CHECK_ID> <conn> - `--check-id <id>` — specific check to run (or `ALL`). Equivalent to passing the check ID as the first positional argument. - `--node-name <name>` — node name embedded in reports (default: `node-01`). -- `--output <path>` — write JSON results to this directory. +- `--output <path>` — write per-check JSON results to this directory. Only the report payload is written; progress and error messages go to stderr, so the output files stay clean. - `--upload` / `--no-upload` — upload JSON results to PostgresAI Console (requires API key). Default depends on whether an API key is configured. - `--project <project>` — project name or ID for the upload (used with `--upload`). Defaults to the value stored by [`set-default-project`](#command-set-default-project); a project is auto-generated on first run if needed. - `--json` — print JSON to stdout. - `--markdown` — print Markdown to stdout. -Run `postgresai checkup --help` to see the list of available check IDs -and titles bundled with your CLI version. +:::tip stdout vs stderr +Progress and error messages are written to **stderr**; **stdout** carries only the report +payload. This means `--json` / `--markdown` can be piped safely, for example: + +```bash +postgresai checkup <conn> --json | jq '.checks[] | select(.id == "H002")' +``` +::: + +**Available checks** + +Run `postgresai checkup --help` to see the full list of check IDs and titles bundled with your +CLI version. The express-mode checks span the A (general / version / cluster), D (logging and +`pg_stat_statements` settings), F (autovacuum / bloat), G (memory and timeouts), H (index), and I +(I/O) groups — there are no K (query) checks in the express-mode CLI. In addition to the index +(`H00x`) checks, 0.15 ships the estimated bloat checks: + +| Check | Finds | +|-------|-------| +| `F004` | Autovacuum: heap bloat (estimated) | +| `F005` | Autovacuum: index bloat (estimated) | + +```bash +# Run a single bloat check +postgresai checkup F004 <conn> +``` + +:::note Bloat checks need the monitoring role +The bloat estimation checks read catalog-level statistics that require the monitoring role +created by [`prepare-db`](#command-prepare-db). When the connection lacks the required +privileges, the check prints a hint: + +``` +Hint: Run "postgresai prepare-db <connection>" to create required objects. +``` + +Run `prepare-db` (or connect with a sufficiently privileged role) and re-run the check. +::: ## Command: `mon` @@ -249,15 +290,15 @@ postgresai mon <subcommand> [options] **Subcommands** - `local-install` — install the local monitoring stack: generate `.env`, configure services, and start them. -- `start` — start monitoring services. +- `start` — start monitoring services. Runs `docker compose up -d` **only when the stack is not already running**: if any Grafana/pgwatch container is already up, it prints `Monitoring services are already running` and exits **without** running `up -d` (suggesting `mon restart`). When it does run, `up -d` creates or recreates containers as needed, so it applies a newly pulled image and triggers a `config-init` reseed when the image version no longer matches the config-volume marker. It uses plain `docker compose up -d` (not `--force-recreate`). A full-stack `up -d --force-recreate` is used by `mon local-install`; `mon targets add`/`remove` also force-recreate, but only the two pgwatch collector containers (`pgwatch-prometheus`, `pgwatch-postgres`). On an **already-running** stack a bare `mon start` is therefore a no-op — to apply a pulled image or recreate `config-init` on a live stack, run `docker compose up -d` directly, or `mon stop` then `mon start`. - `stop` — stop monitoring services. -- `restart [service]` — restart all services or a specific one. +- `restart [service]` — restart all services or a specific one (`docker compose restart [service]`). Restarts the **existing** containers in place: it does **not** recreate them, does **not** apply a newly pulled image, and does **not** trigger a `config-init` reseed. To apply a new image or changed container env vars on a running stack, recreate the containers with `docker compose up -d` (a bare `mon start` no-ops while the stack is running, since it short-circuits with `Monitoring services are already running`). - `status` — show services status. - `health` — check that services are up and healthy. - `logs [service]` — show logs for all services or a specific one. - `config` — show monitoring configuration. -- `update-config` — apply configuration changes (regenerate datasources, …). -- `update` — update the monitoring stack. +- `update-config` — apply configuration changes after editing `.env`: migrates `.env` additively (preserving existing values), refreshes the CLI-owned `docker-compose.yml` for non-git installs, and regenerates the pgwatch `sources.yml` (`docker compose run --rm sources-generator`). It does **not** regenerate the Grafana datasources, reseed the config volume, or restart any service. +- `update` — update the monitoring stack: migrates `.env` additively (preserving existing values), refreshes the repo/compose, and pulls the pinned images for the current tag (`docker compose pull`). It does **not** restart, recreate, or `up` any service — afterward you must recreate the containers to apply the new images. On a running stack do this with `docker compose up -d` directly (or `mon stop` then `mon start`, or re-run `mon local-install`, which uses `up -d --force-recreate`). The command prints a hint to run `mon restart`, but `docker compose restart` restarts containers in place on the old image and does not apply a pulled image; and a bare `mon start` is a **no-op** while the stack is running (it short-circuits with `Monitoring services are already running`), so it will not apply the new image on its own either. See [Upgrading the monitoring stack](/docs/monitoring/getting-started/upgrade) for the full upgrade flow (including the required `VM_AUTH_*` keys in 0.15). - `reset [service]` — reset all services or a specific one (removes data). - `clean` — clean up monitoring artifacts (stops services and removes volumes). - `check` — system readiness check. @@ -280,8 +321,8 @@ postgresai mon local-install [options] - `--demo` — demo mode with a sample database (for testing; cannot be combined with `--api-key`). - `--api-key <key>` — PostgresAI API key for automated report uploads. - `--db-url <url>` — PostgreSQL connection URL to monitor (form: `postgresql://user:pass@host:port/db`). -- `--tag <tag>` — Docker image tag to use (e.g. `0.14.0`, `0.14.0-dev.33`). -- `--project <name>` — Docker Compose project name (default: `postgres_ai`). +- `--tag <tag>` — Docker image tag to use (e.g. `0.15.0`, `0.15.0-dev.33`). +- `--project <name>` — project name. Used as the Docker Compose project name (default: `postgres_ai`). When an `--api-key` is supplied (non-demo install), it is **also** used as the project name when registering this monitoring instance with the PostgresAI Console; the registration default is `postgres-ai-monitoring`. - `-y, --yes` — accept all defaults and skip interactive prompts. `local-install` writes `.env` in the monitoring directory, preserving @@ -678,12 +719,32 @@ manually: **MCP tools exposed** +The 0.15 MCP server registers 15 tools in four groups. + +*Issues:* + - `list_issues` — same JSON as `postgresai issues list`. - `view_issue` — view a single issue with its comments. - `create_issue` — create a new issue. - `update_issue` — update title / description / status / labels. - `post_issue_comment` — post a comment. - `update_issue_comment` — update an existing comment. + +*Action items:* + +- `list_action_items` — list action items for an issue. +- `view_action_item` — view one or more action items with full detail. +- `create_action_item` — create an action item (title, description, optional `sql_action` and config changes) for an issue. +- `update_action_item` — mark done / not done, approve / reject, or edit an action item. + +*Reports:* (new in 0.15 — the only place the reports capability is exposed to AI agents) + +- `list_reports` — list checkup reports (metadata: id, project, status, timestamps; supports `before_date` filtering). +- `list_report_files` — list files in a report (per-check `json` / `md` files; filter by `report_id`, `type`, or `check_id`). +- `get_report_data` — fetch report file content (`type=md` for analysis, `type=json` for raw check data). + +*Files:* + - `upload_file` — upload a local file and return the storage URL plus a ready-to-paste markdown link. - `download_file` — download a file from storage. @@ -778,6 +839,7 @@ Base URL resolution order: 1. Command-line option (`--storage-base-url`). 2. Environment variable (`PGAI_STORAGE_BASE_URL`). 3. Value stored by `postgresai set-storage-url`. + 4. Default: `https://postgres.ai/storage`. A single trailing `/` is stripped from URL values to ensure consistent path joining. diff --git a/sidebars.js b/sidebars.js index 671a84ba..2d73c409 100644 --- a/sidebars.js +++ b/sidebars.js @@ -20,6 +20,7 @@ module.exports = { "monitoring/getting-started/installation-helm", "monitoring/getting-started/installation-cloud", "monitoring/getting-started/quickstart-supabase", + "monitoring/getting-started/upgrade", ], }, { @@ -40,6 +41,7 @@ module.exports = { "monitoring/dashboards/single-index", "monitoring/dashboards/slru", "monitoring/dashboards/lock-contention", + "monitoring/dashboards/io-statistics", "monitoring/dashboards/self-monitoring", ], }, @@ -83,6 +85,8 @@ module.exports = { "monitoring/advanced/index", "monitoring/advanced/multi-cluster", "monitoring/advanced/architecture", + "monitoring/advanced/security", + "monitoring/advanced/telemetry", ], }, ], From 9e67547f79c8832fed7c95d0314dcad195c737a3 Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov <nik@postgres.ai> Date: Fri, 5 Jun 2026 10:22:47 -0700 Subject: [PATCH 40/61] docs(supabase): partnership landing page at /supabase --- static/supabase/index.html | 252 +++++++++++++++++++++++++++++++++++++ 1 file changed, 252 insertions(+) create mode 100644 static/supabase/index.html diff --git a/static/supabase/index.html b/static/supabase/index.html new file mode 100644 index 00000000..0cc16dc3 --- /dev/null +++ b/static/supabase/index.html @@ -0,0 +1,252 @@ +<!DOCTYPE html> +<html lang="en" data-theme="system"> +<head> +<meta charset="utf-8"> +<meta name="viewport" content="width=device-width, initial-scale=1"> +<meta name="color-scheme" content="light dark"> +<title>Postgres.AI for Supabase + + + + +
+
+ Postgres.AI × Supabase +
+ + + +
+
+
+ +
+
+

Improve the health of your Supabase Postgres

+

Find and fix what's slowing your database down — continuous health checks and a prioritized list of what to act on, from the team that helps keep Postgres healthy for companies like GitLab, Gadget, Suno, WorkOS, and Orb.

+

Included at no extra charge — covered by your Supabase plan, offered through the Supabase × Postgres.AI partnership.

+
+
+ +
+ +
+

What you get

+
+
DB Health Matrix
Your database's health across settings, bloat, indexes, locks and workload — tracked over time.
+
Actionable issues
Prioritized findings with a detailed action plan — ready to execute by your team or an AI agent. Not just charts.
+
Expert dashboards
Active Session History, query analysis, locks, WAL, autovacuum, I/O and more.
+
Expertise on tap
The Postgres.AI team reviews your database's health and answers your questions — helping you postpone or avoid hiring a dedicated DBA.
+
+
+ +
+

What's collected

+

Can you see my data? No. Monitoring is read-only and metadata-only — we never read the contents of your tables.

+
    +
  • A least-privilege user postgres_ai_mon with the built-in pg_monitor role — reads system catalogs and statistics, not your rows.
  • +
  • Collected: server settings, schema/index metadata, query statistics (pg_stat_statements), wait events, and size/bloat estimates.
  • +
  • Light footprint (observer effect): collection queries are time-bounded — statement_timeout ≈ 15s, lock_timeout = 100ms, so they never block your workload. We rely on pg_stat_statements and built-in stat views you most likely already run — nothing extra to install, negligible added overhead.
  • +
  • No query values. Query text comes from pg_stat_statements in normalized form — literal values are never captured.
  • +
  • You choose where it's stored. Collected metadata is stored in an AWS region of your choice.
  • +
  • Open source — inspect everything. The setup is open source: it creates the monitoring user, sets permissions, and adds two read-only helper functions (explain_generic, table_describe). Review it before anything runs: npx pgai@latest prepare-db --print-sql
  • +
+ +
+ +
+

See it in action

+
+ DB Health Matrix +
DB Health Matrix — health across categories, tracked over 10 days / 4 weeks / 3 months.
+
+
+ Issue detail with before/after +
Inside an issue — evidence, before/after, and the fix.
+
+
+ Actionable issues list +
Actionable issues — prioritized findings, each with a checklist.
+
+
+ Active Session History dashboard +
Active Session History — time spent by waiting on each wait event.
+
+
+ Query performance analysis dashboard +
Query performance analysis — top queries by calls & time.Live demo of the dashboards (Grafana only): demo.postgres.ai — login demo / demo.
+
+
+ +
+

How to get started

+
    +
  1. Review & decide

    See exactly what we access — metadata only, never your data — and give go / no-go. Your security team can run a full audit: documentation · source code.

  2. +
  3. Approve & install

    Give consent to your Supabase contact, pick the database to monitor and click Install — setup runs automatically and you'll get an email invite.

  4. +
  5. Get results

    First health results appear in the Console within ~30 minutes, with deeper findings and trends over the following days.

  6. +
+
+ +
+ + + + + + + + \ No newline at end of file From 076ad82c2bdc358383782dde84bd269a1a927c61 Mon Sep 17 00:00:00 2001 From: Ralph1 Date: Sat, 6 Jun 2026 00:23:18 +0000 Subject: [PATCH 41/61] ci: pin Bun Docker image --- Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 7e0477fb..79993202 100755 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,6 @@ -FROM oven/bun:1.3-debian +# Pin Bun to a patch release. The floating 1.3 tag moved under us and forced +# fresh dependency installs in CI. +FROM oven/bun:1.3.13-debian@sha256:e95356cb8e1de62ad69ab3bd3584ba947013d27650a226804d2fc0af4e17dac2 # Install only libvips runtime (not -dev) so sharp uses prebuilt binaries # This is much faster than compiling from source (~2 min saved) From 9a2e76cee17a2d864830a7cadc0d460e1d924304 Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov Date: Thu, 11 Jun 2026 04:19:55 -0700 Subject: [PATCH 42/61] ci: unblock production deploy from flaky staging image build --- .gitlab-ci.yml | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f2a76021..ebfc0989 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -102,7 +102,10 @@ docs_sql_snippets: # Build the image. # `--cache-from` arg in `docker build` doesn't have any troubles if # passed image tag is unavailable - it will simply ignore it. + # --network=host: the inner bridge network in dind stalls on outbound + # TLS (bun install hangs forever, #226); host = the dind service netns. - docker build + --network=host --cache-from $TAG_LATEST --tag $TAG_VERSION --tag $TAG_LATEST @@ -157,6 +160,16 @@ docs_sql_snippets: build_and_push_production: <<: *build_and_push_definition <<: *env_production + # bun install occasionally hangs forever inside dind on shared runners + # (#226); a healthy build takes ~10 min — fail fast and retry instead of + # burning the 1h default timeout. + timeout: 30m + retry: + max: 2 + when: + - job_execution_timeout + - stuck_or_timeout_failure + - runner_system_failure only: - master @@ -177,6 +190,11 @@ build_and_push_staging: deploy_production: <<: *deploy_definition <<: *env_production + # DAG: deploy as soon as the production image is ready — don't let a flaky + # build_and_push_main_staging (bun install hangs in dind, see #226) skip + # the whole deploy stage and block production. + needs: + - build_and_push_production only: - master @@ -227,7 +245,9 @@ build_and_push_review: - source "./deploy/configs/review.sh" - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY" - docker pull "${CI_REGISTRY_IMAGE}:review-cache" || true + # --network=host: see build_and_push_definition (#226) - docker build + --network=host --cache-from "${CI_REGISTRY_IMAGE}:review-cache" --tag "${CI_REGISTRY_IMAGE}:review-${BRANCH_SLUG}" --tag "${CI_REGISTRY_IMAGE}:review-latest" @@ -313,11 +333,21 @@ build_and_push_main_staging: url: https://docs-main.pgai.green rules: - if: $CI_COMMIT_BRANCH == "master" + # Same flaky bun-install hang as build_and_push_production (#226) + timeout: 30m + retry: + max: 2 + when: + - job_execution_timeout + - stuck_or_timeout_failure + - runner_system_failure script: - source "./deploy/configs/main-staging.sh" - echo "$CI_REGISTRY_PASSWORD" | docker login -u "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY" - docker pull "${CI_REGISTRY_IMAGE}:main-latest" || true + # --network=host: see build_and_push_definition (#226) - docker build + --network=host --cache-from "${CI_REGISTRY_IMAGE}:main-latest" --tag "${CI_REGISTRY_IMAGE}:main-latest" --build-arg ARG_URL="${URL}" From 68aa10595c5d099779ae177d02a789a42e80289b Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov Date: Wed, 24 Jun 2026 10:28:41 -0700 Subject: [PATCH 43/61] docs(monitoring): fix stale Postgres version support (18 is GA, not beta) --- docs/monitoring/getting-started/requirements.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/monitoring/getting-started/requirements.md b/docs/monitoring/getting-started/requirements.md index 56771bc9..13f6532b 100644 --- a/docs/monitoring/getting-started/requirements.md +++ b/docs/monitoring/getting-started/requirements.md @@ -12,7 +12,7 @@ sidebar_position: 2 | PostgreSQL version | Support status | |--------------------|----------------| -| 18 (beta) | Supported | +| 18 | Fully supported | | 17 | Fully supported | | 16 | Fully supported | | 15 | Fully supported | From 38d626b64901c65c52b6b26565aad6868d06f4ed Mon Sep 17 00:00:00 2001 From: Nikolay Samokhvalov Date: Wed, 24 Jun 2026 10:58:10 -0700 Subject: [PATCH 44/61] docs(monitoring): quickstart for Amazon RDS / Aurora over AWS PrivateLink --- .../quickstart-rds-privatelink.md | 280 ++++++++++++++++++ sidebars.js | 1 + src/pages/pricing/index.tsx | 1 + .../rds-privatelink-monitoring-1.png | Bin 0 -> 191312 bytes .../rds-privatelink-monitoring-2.png | Bin 0 -> 277042 bytes .../rds-privatelink-monitoring-3.png | Bin 0 -> 221984 bytes .../rds-privatelink-monitoring-4.png | Bin 0 -> 226226 bytes .../rds-privatelink-monitoring-5.png | Bin 0 -> 255600 bytes .../rds-privatelink-monitoring-6.png | Bin 0 -> 304714 bytes 9 files changed, 282 insertions(+) create mode 100644 docs/monitoring/getting-started/quickstart-rds-privatelink.md create mode 100644 static/assets/rds-privatelink-monitoring/rds-privatelink-monitoring-1.png create mode 100644 static/assets/rds-privatelink-monitoring/rds-privatelink-monitoring-2.png create mode 100644 static/assets/rds-privatelink-monitoring/rds-privatelink-monitoring-3.png create mode 100644 static/assets/rds-privatelink-monitoring/rds-privatelink-monitoring-4.png create mode 100644 static/assets/rds-privatelink-monitoring/rds-privatelink-monitoring-5.png create mode 100644 static/assets/rds-privatelink-monitoring/rds-privatelink-monitoring-6.png diff --git a/docs/monitoring/getting-started/quickstart-rds-privatelink.md b/docs/monitoring/getting-started/quickstart-rds-privatelink.md new file mode 100644 index 00000000..c66fb32e --- /dev/null +++ b/docs/monitoring/getting-started/quickstart-rds-privatelink.md @@ -0,0 +1,280 @@ +--- +title: Quick start for Amazon RDS / Aurora over AWS PrivateLink +sidebar_label: Quick start for Amazon RDS (AWS PrivateLink) +sidebar_position: 9 +keywords: + - "PostgresAI for Amazon RDS" + - "Postgres monitoring for RDS" + - "Amazon RDS AWS PrivateLink" + - "private RDS monitoring" + - "Aurora monitoring Grafana" +--- + +# Quick start guide for Amazon RDS / Aurora over AWS PrivateLink + +Set up PostgresAI monitoring for a **private** Amazon RDS or Aurora database — one that has no +public endpoint — using the guided setup in [PostgresAI Console](https://console.postgres.ai/). +PostgresAI reaches your database over **AWS PrivateLink**, so **no inbound port is ever opened** on +your account: the connection is outbound-only, from your VPC to PostgresAI. + +:::info Available on the Scale plan and Enterprise only +Private-RDS monitoring over **AWS PrivateLink** is available on the **Scale** plan and on +**Enterprise**. Consulting clients get it packaged as part of their engagement. On lower plans +(Hobby, Express, Starter), monitor RDS by exposing a publicly reachable database port to PostgresAI +instead (see [Cloud installation](/docs/monitoring/getting-started/installation-cloud)). See +[Pricing](/pricing) for the full feature comparison. +::: + +## Overview + +This flow connects a database that lives entirely inside your VPC: + +1. You create a least-privilege, **read-only** monitoring role on your RDS instance. +2. You launch a one-click CloudFormation stack **in your own AWS account**. It publishes your RDS + over **AWS PrivateLink** (an internal Network Load Balancer plus a VPC endpoint service) and + allowlists only the PostgresAI principal. +3. You paste the resulting endpoint-service name back into PostgresAI Console. +4. PostgresAI provisions a dedicated monitoring VM, creates an interface endpoint to your service, + and starts collecting metrics. + +The collector is **read-only and metadata-only** — it reads statistics, normalized query text, and +wait events. It never reads your data or raw query parameters. See +[data privacy details](/docs/monitoring/#data-privacy-metadata-only). + +:::caution Amazon RDS (single instance) only +The one-click CloudFormation template publishes a **single-instance Amazon RDS** database. Aurora +clusters and multi-instance setups are not yet supported by this flow. +::: + +## Prerequisites + +1. A private Amazon RDS for PostgreSQL instance (PostgreSQL 14+), with no public access required. +2. A [PostgresAI Console](https://console.postgres.ai/) account on the **Scale** plan (or + Enterprise). Sign up with Google, LinkedIn, GitHub, or GitLab. +3. An organization in PostgresAI Console. + [Create one](https://console.postgres.ai/addorg) if you don't have one yet. You must be an + **organization admin** to provision RDS monitoring. +4. A payment method on file. In your organization, open **Billing**, click **Edit payment + methods**, and add a card in the Stripe portal. +5. AWS permissions to launch a CloudFormation stack in the account and Region where your RDS runs + (it creates an internal NLB and a VPC endpoint service), and the **master database user** to run + the one-time preparation SQL. + +## Step 1. Start the guided setup + +In PostgresAI Console, navigate to **Checkup — Getting started**. On the **RDS / Aurora** card, +click **Start guided setup**. + +[![PostgresAI Console: Getting started page with the RDS / Aurora "Start guided setup" card](/assets/rds-privatelink-monitoring/rds-privatelink-monitoring-1.png)](/assets/rds-privatelink-monitoring/rds-privatelink-monitoring-1.png) + +## Step 2. Choose the Scale (or Enterprise) plan + +AWS PrivateLink monitoring runs on the full monitoring stack, which is available on **Scale** and +**Enterprise**. On the plan page, click **Choose Scale** (or **Contact sales** for Enterprise). +Consulting clients already have it enabled and can skip this step. + +See [Pricing](/pricing) for the full list of options with feature comparison. + +[![Choose the PostgresAI plan: Scale includes private RDS via AWS PrivateLink](/assets/rds-privatelink-monitoring/rds-privatelink-monitoring-2.png)](/assets/rds-privatelink-monitoring/rds-privatelink-monitoring-2.png) + +## Step 3. Create the read-only monitoring role + +The **Set up RDS monitoring over AWS PrivateLink** wizard opens. In **Step 1**, click **Generate +database-preparation SQL**. PostgresAI shows a one-time script that creates the least-privilege, +**read-only, metadata-only** `postgres_ai_mon` role, grants `pg_monitor`, and creates the +`postgres_ai` schema with a few read-only helper views. The role's password is shown **once** — copy +it now; you will need it at the deploy step. + +[![Set up RDS monitoring over AWS PrivateLink: the four-step in-console wizard](/assets/rds-privatelink-monitoring/rds-privatelink-monitoring-3.png)](/assets/rds-privatelink-monitoring/rds-privatelink-monitoring-3.png) + +Run it once as the **master user**, for example: + +```bash +psql "host= port=5432 dbname= sslmode=require" +``` + +Then paste the SQL shown in the console (Console also offers a **Copy SQL** button). + +:::tip Review the SQL and run it against the right database +Read through the generated SQL before you run it — it is short, and only creates a read-only role, +the `postgres_ai` schema, and helper views; it grants no write access and touches no table data. +Make sure you connect to the **correct logical database** — the one you actually want monitored +(typically your application database, not the default `postgres`) — because the role and helper +objects are created in whichever database you run the script against. +::: + +:::note On RDS, some optional grants are skipped +PostgresAI generates this role with `include_optional = false` on the RDS / AWS PrivateLink path. A +few optional grants (for example, `pg_stat_file` and `pg_ls_dir`) require superuser, which the RDS +master user does not have. They are not needed for monitoring, and the role is created without them. +::: + +To review the exact statements at any time, run: + +```bash +npx postgresai@0.15.0 prepare-db --print-sql +``` + +This confirms the minimal, read-only nature of the permissions. + +## Step 4. Launch and fill the CloudFormation stack + +Back in the wizard, in **Step 2** select your **AWS Region** (it scopes the stack-launch link, and +it must match the Region your RDS runs in). In **Step 3**, click **Launch stack in AWS console**. +This opens the AWS **Quick create stack** page in your own account, pre-filled with the PostgresAI +principal to allowlist. The launch link carries only non-secret parameters. + +Review the template (it is intentionally published and line-by-line auditable), then fill in the +typed parameters: + +- **Stack name** — for example `postgresai-rds-privatelink`. +- **RDS DB instance identifier** — your RDS instance's identifier, taken from the RDS console (a + **single-instance** Amazon RDS, not an Aurora cluster). +- **RDS port** — default `5432`. +- **VPC of the RDS** — the VPC your RDS instance runs in (a typed `AWS::EC2::VPC::Id` dropdown). +- **Subnets (the RDS's AZs)** — pick one subnet per Availability Zone your RDS can run in. **For a + Multi-AZ instance, select the subnets for _all_ of its AZs** so the internal load balancer can + follow the database if it fails over. They must be in the VPC above and able to reach the RDS (no + NAT gateway or special egress is required — it stays inside the VPC). +- **PostgresAI principal ARN** — pre-filled; leave it as-is unless instructed otherwise. + +[![AWS CloudFormation Quick create stack: the Your RDS parameters (identifier, port, VPC, subnets)](/assets/rds-privatelink-monitoring/rds-privatelink-monitoring-4.png)](/assets/rds-privatelink-monitoring/rds-privatelink-monitoring-4.png) + +A filled-in example — note that **all** of the RDS's subnets are selected for failover coverage: + +[![CloudFormation parameters filled in: DB identifier, VPC, and all AZ subnets selected](/assets/rds-privatelink-monitoring/rds-privatelink-monitoring-5.png)](/assets/rds-privatelink-monitoring/rds-privatelink-monitoring-5.png) + +The stack creates an **internal** Network Load Balancer in front of your RDS primary (its target IP +is kept current by a small failover Lambda) and a **VPC endpoint service** — the AWS PrivateLink +provider — that allows **only** the PostgresAI principal. **No inbound security-group rule or public +database port is created**; the path is outbound-only from your VPC to PostgresAI. + +:::caution Keep everything in the same AWS Region +Your RDS instance, the Network Load Balancer, and the VPC endpoint service must all be in the +**same AWS Region** — AWS PrivateLink does not cross Regions. Make sure the Region you selected in +PostgresAI Console matches the Region of your RDS. +::: + +## Step 5. Copy the endpoint-service name + +When the stack reaches **CREATE_COMPLETE**, open its **Outputs** tab and copy the +**`VpceServiceName`** value — it looks like `com.amazonaws.vpce..vpce-svc-0abc…`. + +[![CloudFormation stack Outputs tab with the VpceServiceName value highlighted](/assets/rds-privatelink-monitoring/rds-privatelink-monitoring-6.png)](/assets/rds-privatelink-monitoring/rds-privatelink-monitoring-6.png) + +:::tip +The **`RevokeAccessHint`** output tells you exactly how to cut PostgresAI off later (drop the role, +remove the principal from the endpoint-service permissions, or delete the stack). +::: + +## Step 6. Paste it back and deploy + +Back in PostgresAI Console (wizard **Step 4**), paste the **`VpceServiceName`** into the +**VPC Endpoint Service name** field and your **RDS endpoint** hostname into the **RDS endpoint** +field, then click **Deploy**. + +## Step 7. Wait for deployment + +PostgresAI provisions a dedicated monitoring VM, creates an interface endpoint to your endpoint +service over **AWS PrivateLink**, and connects to your database as the read-only role. + +The connection is verified automatically before monitoring is reported as active: PostgresAI +confirms it can reach the database, that the monitoring role works, and that the database belongs to +your organization. Once all checks pass, the console shows **Monitoring active — this database is +now being monitored.** + +While waiting, you can set up the CLI tools: + +```bash +# Install CLI +npm i -g postgresai + +# Authenticate +postgresai auth + +# Set up MCP for your AI coding tool (Cursor, Claude Code, etc.) +postgresai mcp install +``` + +:::note Deployment, Grafana, and Issues are the same across providers +The installation-progress, Grafana sign-in, and first-Issues screens are identical for every +PostgresAI monitoring setup. See the [Supabase quick start](/docs/monitoring/getting-started/quickstart-supabase) +(steps 5–8) for screenshots of those steps. +::: + +## Step 8. Open Grafana dashboards + +Once monitoring is active, open the Grafana URL from the console. You can sign in with the Grafana +credentials shown after deployment, or click **Sign in with PostgresAI** for passwordless access. + +Start with **01. Single node performance overview (high-level)** for a high-level health check of +your RDS / Aurora database. Key panels to check first: + +1. **Active session history (ASH)** — wait events over time (similar to RDS Performance Insights) +2. **Sessions** — active, idle, and idle in transaction connections +3. **TPS** — transactions per second +4. **QPS** — queries per second + +## Step 9. Review first issues + +After about 30 minutes, PostgresAI generates the first automated issue reports. Navigate to +**Issues** in PostgresAI Console to see detected problems and recommended actions. + +Common issues detected automatically include: + +- **Redundant indexes** — duplicate indexes wasting storage +- **Unused indexes** — indexes that are never scanned +- **Invalid indexes** — indexes that failed to build +- **Autovacuum tuning** — recommended configuration changes +- **Minor version updates** — available PostgreSQL updates + +See [How to work with issues](/docs/postgresai-howtos/how-to-work-with-issues) for details on +managing issues, assigning team members, and integrating with AI coding tools. + +## Next steps + +- [Dashboard guide](/docs/monitoring/dashboards/) — complete dashboard reference +- [PostgresAI CLI](/docs/postgresai-howtos/postgresai-cli) — CLI setup and commands +- [MCP integration](/docs/postgresai-howtos/how-to-install-mcp) — set up MCP for Cursor, Claude + Code, or other AI coding tools + +## FAQ + +### Does PostgresAI open any inbound ports on my account? + +No. The connection uses **AWS PrivateLink** and is outbound-only: your VPC endpoint service exposes +the database to the PostgresAI principal you allowlist, with no inbound security-group rule and no +public database port. To cut PostgresAI off, drop the monitoring role, remove the PostgresAI +principal from the endpoint-service permissions, or delete the CloudFormation stack (see the +`RevokeAccessHint` stack output). + +### What database role is created and what permissions does it have? + +The `postgres_ai_mon` role is created with read-only, metadata-only access (`pg_monitor` plus the +`postgres_ai` helper schema). On RDS, optional superuser-only grants are skipped +(`include_optional = false`). To review the exact SQL statements at any time: + +```bash +npx postgresai@0.15.0 prepare-db --print-sql +``` + +### What data is collected from my database? + +Only database metadata — no actual data or raw query parameters. Query text is collected +**normalized** (parameters stripped) from `pg_stat_statements`. To review exactly what metrics are +collected, examine the metric definitions: + +- **Prometheus sink metrics**: + [metrics.yml (pgwatch-prometheus)](https://gitlab.com/postgres-ai/postgresai/-/blob/0.15.0/config/pgwatch-prometheus/metrics.yml) +- **PostgreSQL sink metrics** (including normalized queries): + [metrics.yml (pgwatch-postgres)](https://gitlab.com/postgres-ai/postgresai/-/blob/0.15.0/config/pgwatch-postgres/metrics.yml) + +See also: [data privacy details](/docs/monitoring/#data-privacy-metadata-only). + +### Why is private-RDS monitoring limited to the Scale plan? + +The **AWS PrivateLink** path provisions dedicated infrastructure (a monitoring VM and an interface +endpoint) and is part of the full monitoring stack, available on the **Scale** plan and +**Enterprise**. Consulting clients get it packaged with their engagement. On lower plans, monitor +RDS by exposing a publicly reachable database port instead — see +[Cloud installation](/docs/monitoring/getting-started/installation-cloud). diff --git a/sidebars.js b/sidebars.js index 2d73c409..6833b671 100644 --- a/sidebars.js +++ b/sidebars.js @@ -20,6 +20,7 @@ module.exports = { "monitoring/getting-started/installation-helm", "monitoring/getting-started/installation-cloud", "monitoring/getting-started/quickstart-supabase", + "monitoring/getting-started/quickstart-rds-privatelink", "monitoring/getting-started/upgrade", ], }, diff --git a/src/pages/pricing/index.tsx b/src/pages/pricing/index.tsx index 738fa2b3..3ca1fc70 100644 --- a/src/pages/pricing/index.tsx +++ b/src/pages/pricing/index.tsx @@ -387,6 +387,7 @@ const features: FeatureRow[] = [ { category: 'Monitoring', feature: '', values: [] }, { feature: 'Full monitoring stack', values: [false, false, true, true, true] }, + { feature: 'Private RDS monitoring over AWS PrivateLink', values: [false, false, false, true, true] }, { feature: 'Monitoring retention', values: ['—', '—', '7 days', '6 months', 'Custom'] }, { feature: 'Monitoring data for the past, ready for RCAs', values: [false, false, true, true, true] }, { feature: 'Trend analysis and risk detection', values: [false, false, false, true, true] }, diff --git a/static/assets/rds-privatelink-monitoring/rds-privatelink-monitoring-1.png b/static/assets/rds-privatelink-monitoring/rds-privatelink-monitoring-1.png new file mode 100644 index 0000000000000000000000000000000000000000..5477a9b17bd5fe13e1697e4a4333793d52872a6a GIT binary patch literal 191312 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 k2eg){rIpkIFO9=L?hM`P-SSczM*g;t8MY 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