From a861e162f736529cd6a987fdbdab2eefe30ac7eb Mon Sep 17 00:00:00 2001 From: Lev Kokotov Date: Tue, 21 Oct 2025 14:52:53 -0700 Subject: [PATCH 1/2] Document EE --- docs/enterprise_edition/active_queries.md | 52 ++++++++++++++++++++++ docs/enterprise_edition/index.md | 22 +++++++++ docs/enterprise_edition/metrics.md | 10 +++++ docs/enterprise_edition/query_plans.md | 46 +++++++++++++++++++ docs/images/ee/activity.png | Bin 0 -> 43001 bytes docs/style.css | 4 ++ 6 files changed, 134 insertions(+) create mode 100644 docs/enterprise_edition/active_queries.md create mode 100644 docs/enterprise_edition/index.md create mode 100644 docs/enterprise_edition/metrics.md create mode 100644 docs/enterprise_edition/query_plans.md create mode 100644 docs/images/ee/activity.png diff --git a/docs/enterprise_edition/active_queries.md b/docs/enterprise_edition/active_queries.md new file mode 100644 index 0000000..5fcecd7 --- /dev/null +++ b/docs/enterprise_edition/active_queries.md @@ -0,0 +1,52 @@ +--- +icon: material/play-circle +--- +# Running queries + +PgDog EE provides a real time view into queries currently executing on PostgreSQL connections. It is accessible in two places: + +1. [`SHOW ACTIVE_QUERIES`](#admin-database) admin command +2. [Activity](#dashboard) view in the dashboard + +## How it works + +When a client sends a query to PgDog, it will first attempt to acquire a connection from the connection pool. Once acquired, it will register the query with the live query view. After the query finishes running, it's removed from the view. + +Only queries that are currently executing through PgDog are visible in this view. If your application doesn't connect to PgDog, it's queries won't appear here. + +### Admin database + +You can see which queries are actually running on each instance by connecting to the admin database and running the `SHOW ACTIVE_QUERIES` command: + +=== "Command" + ``` + SHOW ACTIVE_QUERIES; + ``` + +=== "Output" + ``` + query | protocol | database | user | running_time | + -------------------------------------------------------+----------+----------+-------+--------------+ + SELECT * FROM users WHERE id = $1 | extended | pgdog | pgdog | 15 | + SELECT pg_sleep(50) | simple | pgdog | pgdog | 5 | + INSERT INTO users (id, email) VALUES ($1, $2) | extended | pgdog | pgdog | 1 | + ``` + +The following information is available in the running queries view: + +| Column | Description | +|-|-| +| `query` | The SQL statement currently executing on a PostgreSQL connection. | +| `protocol` | What version of the query protocol is used. `simple` protocol injects parameters into text, while `extended` is used by prepared statements. | +| `database` | The name of the connection pool database. | +| `user` | The name of the user executing the query. | +| `running_time` | For how long (in ms) has the query been running. | + +### Dashboard + +If you're running multiple instances of PgDog, active queries from all instances are aggregated and sent to the Dashboard application. They are then made available in the Activity tab, in real-time, with query plans automatically attached for slow queries. + +
+ How PgDog works + Real-time view into running queries. +
diff --git a/docs/enterprise_edition/index.md b/docs/enterprise_edition/index.md new file mode 100644 index 0000000..e4a857b --- /dev/null +++ b/docs/enterprise_edition/index.md @@ -0,0 +1,22 @@ +--- +icon: material/office-building +--- + +# PgDog EE + +PgDog **E**nterprise **E**dition is a version of PgDog that contains additional features for at scale monitoring and deployment of sharded (and unsharded) PostgreSQL databases. + +Unlike PgDog itself, PgDog EE is closed source and available upon the purchase of a license. It comes with a hosted management dashboard which provides real-time visibility into PgDog's operations. + +## Features + +| Feature | Description | +|-|-| +| [Running queries](active_queries.md) | Instant view into queries running through PgDog. | +| [Query plans](query_plans.md) | Root cause slow queries in seconds with automatic PostgreSQL query plans. | +| Real-time metrics | All PgDog metrics, delivered with second-precision through a dedicated link. | +| Query blocker | Terminate all instances of a slow query with a button click and prevent them from running again. | + +## Get a demo + +If you'd like a demo PgDog EE, [get in touch](https://calendly.com/lev-pgdog/30min) with our sales team. PgDog EE comes with a [cloud](https://cloud.pgdog.dev) deployment managed by us, or can be deployed entirely on-prem. diff --git a/docs/enterprise_edition/metrics.md b/docs/enterprise_edition/metrics.md new file mode 100644 index 0000000..61c7e0b --- /dev/null +++ b/docs/enterprise_edition/metrics.md @@ -0,0 +1,10 @@ +# Real-time metrics + +PgDog EE collects and sends its own metrics to the Dashboard. This provides a real-time view into PgDog internals, without a delay that's typically present in other minotoring solutions. + +## How it works + + +Since metrics are just integers, they can be serialized and sent quickly and efficiently, via a dedicated connection, to the Dashboard. + +Real time metrics are pushed down to the web UI via a WebSocket connection. Meanwhile, per-minute aggregates are collected and stored in a dedicated database. diff --git a/docs/enterprise_edition/query_plans.md b/docs/enterprise_edition/query_plans.md new file mode 100644 index 0000000..4985286 --- /dev/null +++ b/docs/enterprise_edition/query_plans.md @@ -0,0 +1,46 @@ +--- +icon: material/chart-timeline +--- +# Query plans + +For any [running query](active_queries.md) exceeding a configurable time threshold, PgDog EE will ask Postgres for a query plan. The query plans are stored in their own view, accessible via two methods: + +1. [`SHOW QUERY_PLANS`](#admin-database) admin command +2. [Activity](active_queries.md#dashboard) view in the dashboard + +## How it works + +When a [running query](active_queries.md) exceeds a configurable threshold, PgDog EE will ask Postgres for its query plan by sending an `EXPLAIN` command via a dedicated connection. For prepared statements, PgDog automatically provides the parameters sent with the statement by the client. + +Since `EXPLAIN` itself is very quick, fetching and storing query plans is efficient and doesn't impact database performance. Nonetheless, to avoid planning queries unnecessarily, the plans are stored in an in-memory cache. Old plans are evicted automatically and recomputed. + +### Admin database + +The query plans are accessible by connecting to the admin database and running the `SHOW QUERY_PLANS` command: + +=== "Command" + ``` + SHOW QUERY_PLANS + ``` +=== "Output" + ``` + query | plan | database | user | age + -------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+----------+-------+--------- + select pg_sleep(50); | Result (cost=0.00..0.01 rows=1 width=4) | pgdog | pgdog | 6984139 + SELECT abalance FROM pgbench_accounts WHERE aid = $1; | Index Scan using pgbench_accounts_pkey on pgbench_accounts (cost=0.29..8.31 rows=1 width=4) Index Cond: (aid = 96934) | pgdog | pgdog | 7711 + (2 rows) + ``` + +The following information is available in this view: + +| Column | Description | +|-|-| +| `query` | The query for which the plan is prepared. | +| `plan` | The query plan fetched directly from PostgreSQL. | +| `database` | The name of the connection pool database. | +| `user` | The name of the user running the query. | +| `age` | How long ago the plan was fetched from Postgres (in ms). | + +### Dashboard + +The query plans are automatically attached to running queries and sent to the Dashboard via a dedicated connection. They can be viewed in real-time in the [Activity](active_queries.md#dashboard) tab. diff --git a/docs/images/ee/activity.png b/docs/images/ee/activity.png new file mode 100644 index 0000000000000000000000000000000000000000..efb04272b23dc54754b965075c3dbdb8cc85dd82 GIT binary patch literal 43001 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 literal 0 HcmV?d00001 diff --git a/docs/style.css b/docs/style.css index 57a5253..b739812 100644 --- a/docs/style.css +++ b/docs/style.css @@ -6,3 +6,7 @@ table { .md-header { --md-primary-fg-color: rgb(7, 81, 207); } + +.screenshot { + border-radius: 8px; +} From 9b5e1ecefb6deb6e03f800f2915ac01a2b973d7d Mon Sep 17 00:00:00 2001 From: Lev Kokotov Date: Tue, 21 Oct 2025 15:14:39 -0700 Subject: [PATCH 2/2] Save --- docs/enterprise_edition/active_queries.md | 4 ++-- docs/enterprise_edition/index.md | 4 ++-- docs/enterprise_edition/metrics.md | 17 ++++++++++++++--- docs/enterprise_edition/query_plans.md | 2 +- docs/images/ee/metrics.png | Bin 0 -> 75667 bytes tests/test_code_blocks.py | 2 -- 6 files changed, 19 insertions(+), 10 deletions(-) create mode 100644 docs/images/ee/metrics.png diff --git a/docs/enterprise_edition/active_queries.md b/docs/enterprise_edition/active_queries.md index 5fcecd7..65bd964 100644 --- a/docs/enterprise_edition/active_queries.md +++ b/docs/enterprise_edition/active_queries.md @@ -3,7 +3,7 @@ icon: material/play-circle --- # Running queries -PgDog EE provides a real time view into queries currently executing on PostgreSQL connections. It is accessible in two places: +PgDog EE provides a real-time view into queries currently executing on PostgreSQL connections. It is accessible in two places: 1. [`SHOW ACTIVE_QUERIES`](#admin-database) admin command 2. [Activity](#dashboard) view in the dashboard @@ -12,7 +12,7 @@ PgDog EE provides a real time view into queries currently executing on PostgreSQ When a client sends a query to PgDog, it will first attempt to acquire a connection from the connection pool. Once acquired, it will register the query with the live query view. After the query finishes running, it's removed from the view. -Only queries that are currently executing through PgDog are visible in this view. If your application doesn't connect to PgDog, it's queries won't appear here. +Only queries that are currently executing through PgDog are visible in this view. If your application doesn't connect to PgDog, its queries won't appear here. ### Admin database diff --git a/docs/enterprise_edition/index.md b/docs/enterprise_edition/index.md index e4a857b..94d778d 100644 --- a/docs/enterprise_edition/index.md +++ b/docs/enterprise_edition/index.md @@ -14,9 +14,9 @@ Unlike PgDog itself, PgDog EE is closed source and available upon the purchase o |-|-| | [Running queries](active_queries.md) | Instant view into queries running through PgDog. | | [Query plans](query_plans.md) | Root cause slow queries in seconds with automatic PostgreSQL query plans. | -| Real-time metrics | All PgDog metrics, delivered with second-precision through a dedicated link. | +| [Real-time metrics](metrics.md) | All PgDog metrics, delivered with second-precision through a dedicated link. | | Query blocker | Terminate all instances of a slow query with a button click and prevent them from running again. | ## Get a demo -If you'd like a demo PgDog EE, [get in touch](https://calendly.com/lev-pgdog/30min) with our sales team. PgDog EE comes with a [cloud](https://cloud.pgdog.dev) deployment managed by us, or can be deployed entirely on-prem. +If you'd like a demo of PgDog EE, [get in touch](https://calendly.com/lev-pgdog/30min) with our sales team. PgDog EE comes with a [cloud](https://cloud.pgdog.dev) deployment managed by us, or can be deployed entirely on-prem. diff --git a/docs/enterprise_edition/metrics.md b/docs/enterprise_edition/metrics.md index 61c7e0b..4e84981 100644 --- a/docs/enterprise_edition/metrics.md +++ b/docs/enterprise_edition/metrics.md @@ -1,10 +1,21 @@ +--- +icon: material/speedometer +--- # Real-time metrics -PgDog EE collects and sends its own metrics to the Dashboard. This provides a real-time view into PgDog internals, without a delay that's typically present in other minotoring solutions. +PgDog EE collects and sends its own metrics to the Dashboard. This provides a real-time view into PgDog internals, without a delay that's typically present in other monitoring solutions. ## How it works +Real-time metrics are available in both Open Source and Enterprise versions of PgDog. The [open source metrics](../features/metrics.md) are accessible via an OpenMetrics endpoint or via the admin database. -Since metrics are just integers, they can be serialized and sent quickly and efficiently, via a dedicated connection, to the Dashboard. +In PgDog EE, the same metrics are collected and sent via a dedicated uplink to the Dashboard. This provides an out-of-the-box experience for monitoring deployments, without delays typically introduced by other solutions. -Real time metrics are pushed down to the web UI via a WebSocket connection. Meanwhile, per-minute aggregates are collected and stored in a dedicated database. +
+ How PgDog works + Real-time metrics. +
+ +Since metrics are just integers, they can be serialized and sent efficiently. To deliver second-precision metrics, PgDog EE requires less than 1KB/second of bandwidth and basically no CPU or additional memory. + +Once the metrics reach the Dashboard, they are pushed down to the web UI via a WebSocket connection. At the same time, per-minute aggregates are computed in the background and stored in a separate Postgres database. This provides a historical view into database performance. diff --git a/docs/enterprise_edition/query_plans.md b/docs/enterprise_edition/query_plans.md index 4985286..8273dfc 100644 --- a/docs/enterprise_edition/query_plans.md +++ b/docs/enterprise_edition/query_plans.md @@ -20,7 +20,7 @@ The query plans are accessible by connecting to the admin database and running t === "Command" ``` - SHOW QUERY_PLANS + SHOW QUERY_PLANS; ``` === "Output" ``` diff --git a/docs/images/ee/metrics.png b/docs/images/ee/metrics.png new file mode 100644 index 0000000000000000000000000000000000000000..2542bb8586a1e60b6bef09d48fa480aae319fbff GIT binary patch literal 75667 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 literal 0 HcmV?d00001 diff --git a/tests/test_code_blocks.py b/tests/test_code_blocks.py index 2fb56d4..a2c7912 100644 --- a/tests/test_code_blocks.py +++ b/tests/test_code_blocks.py @@ -7,8 +7,6 @@ import sys import pglast -from regex import sub -from regex.regex import Regex, RegexFlag mdp = MarkdownIt() pattern = re.compile(