Repository: GreptimeTeam/docs
Pull request #1627: docs: add explain analyze verbose example
Author: login: evenyag
Created: 2025-04-03T11:56:18Z | Merged: 2025-04-09T00:20:01Z

## What's Changed in this PR

Add SQL example for `EXPLAIN VERBOSE`.

Updates all other examples in the document.

fixes https://github.com/GreptimeTeam/docs/issues/1596


## Checklist

- [ ] Please confirm that all corresponding versions of the documents have been revised.
- [ ] Please ensure that the content in `sidebars.ts` matches the current document structure when you changed the document structure.
- [ ] This change requires follow-up update in localized docs.



Diff:
diff --git a/docs/reference/sql/explain.md b/docs/reference/sql/explain.md
index c2212462a0..933a91c3d3 100644
--- a/docs/reference/sql/explain.md
+++ b/docs/reference/sql/explain.md
@@ -10,51 +10,85 @@ description: Provides information on the SQL EXPLAIN statement to obtain the exe
 ## Syntax
 
 ```sql
-EXPLAIN [ANALYZE] SELECT ...
+EXPLAIN [ANALYZE] [VERBOSE] SELECT ...
 ```
 
 The `ANALYZE` clause will execute the statement and measure time spent at each plan node and the total rows of the output etc.
 
+The `VERBOSE` clause will provide more detailed information about the execution plan.
+
 ## Examples
 
 Explains the following query:
 
 ```sql
-EXPLAIN SELECT * FROM monitor where host='host1';
+EXPLAIN SELECT * FROM monitor where host='host1'\G
 ```
 
+Example:
+
 ```sql
-| plan_type     | plan                                                                                                                                                                                                                                                         
-| logical_plan  | Projection: monitor.host, monitor.ts, monitor.cpu, monitor.memory
-  Filter: monitor.host = Utf8("host1")
-    TableScan: monitor projection=[host, ts, cpu, memory], partial_filters=[monitor.host = Utf8("host1")]                                           |
-| physical_plan | ProjectionExec: expr=[host@0 as host, ts@1 as ts, cpu@2 as cpu, memory@3 as memory]
-  CoalesceBatchesExec: target_batch_size=4096
-    FilterExec: host@0 = host1
-      RepartitionExec: partitioning=RoundRobinBatch(10)
-        ExecutionPlan(PlaceHolder)
+*************************** 1. row ***************************
+plan_type: logical_plan
+     plan: MergeScan [is_placeholder=false]
+*************************** 2. row ***************************
+plan_type: physical_plan
+     plan: MergeScanExec: peers=[4612794875904(1074, 0), ]
 ```
 
 The column `plan_type` indicates whether it's a`logical_plan` or `physical_plan`. And the column `plan` explains the plan in detail.
 
+The `MergeScan` plan merges the results from multiple regions. The `peers` array in the `MergeScanExec` physical plan contains the IDs of the regions that the plan will scan.
+
 Explains the execution of the plan by `ANALYZE`:
 
 ```sql
-EXPLAIN ANALYZE SELECT * FROM monitor where host='host1';
+EXPLAIN ANALYZE SELECT * FROM monitor where host='host1'\G
+```
+
+Example:
+
+```sql
+*************************** 1. row ***************************
+stage: 0
+ node: 0
+ plan:  MergeScanExec: peers=[4612794875904(1074, 0), ] metrics=[output_rows: 0, greptime_exec_read_cost: 0, finish_time: 3301415, first_consume_time: 3299166, ready_time: 3104209, ]
+
+*************************** 2. row ***************************
+stage: 1
+ node: 0
+ plan:  SeqScan: region=4612794875904(1074, 0), partition_count=0 (0 memtable ranges, 0 file 0 ranges) metrics=[output_rows: 0, mem_used: 0, build_parts_cost: 1, build_reader_cost: 1, elapsed_await: 1, elapsed_poll: 21250, scan_cost: 1, yield_cost: 1, ]
+
+*************************** 3. row ***************************
+stage: NULL
+ node: NULL
+ plan: Total rows: 0
+```
+
+The `EXPLAIN ANALYZE` command provides metrics about the execution of each stage. The `SeqScan` plan scans the data from a single region.
+
+Explains the verbose information of the plan execution:
+```sql
+EXPLAIN ANALYZE VERBOSE SELECT * FROM monitor where host='host1';
 ```
 
+Example:
+
 ```sql
-| plan_type         | plan
-| Plan with Metrics | CoalescePartitionsExec, metrics=[output_rows=1, elapsed_compute=79.167µs, spill_count=0, spilled_bytes=0, mem_used=0]
-  ProjectionExec: expr=[host@0 as host, ts@1 as ts, cpu@2 as cpu, memory@3 as memory], metrics=[output_rows=1, elapsed_compute=17.176µs, spill_count=0, spilled_bytes=0, mem_used=0]
-    CoalesceBatchesExec: target_batch_size=4096, metrics=[output_rows=1, elapsed_compute=14.248µs, spill_count=0, spilled_bytes=0, mem_used=0]
-      CoalesceBatchesExec: target_batch_size=4096, metrics=[output_rows=1, elapsed_compute=17.21µs, spill_count=0, spilled_bytes=0, mem_used=0]
-        FilterExec: host@0 = host1, metrics=[output_rows=1, elapsed_compute=541.801µs, spill_count=0, spilled_bytes=0, mem_used=0]
-          CoalesceBatchesExec: target_batch_size=4096, metrics=[output_rows=3, elapsed_compute=43.004µs, spill_count=0, spilled_bytes=0, mem_used=0]
-            RepartitionExec: partitioning=RoundRobinBatch(10), metrics=[fetch_time=5.832958ms, repart_time=10ns, send_time=2.467µs]
-              RepartitionExec: partitioning=RoundRobinBatch(10), metrics=[fetch_time=386.585µs, repart_time=1ns, send_time=7.833µs]
-                ExecutionPlan(PlaceHolder), metrics=[]
-                
+*************************** 1. row ***************************
+stage: 0
+ node: 0
+ plan:  MergeScanExec: peers=[4612794875904(1074, 0), ] metrics=[output_rows: 0, greptime_exec_read_cost: 0, finish_time: 3479084, first_consume_time: 3476000, ready_time: 3209041, ]
+
+*************************** 2. row ***************************
+stage: 1
+ node: 0
+ plan:  SeqScan: region=4612794875904(1074, 0), partition_count=0 (0 memtable ranges, 0 file 0 ranges), projection=["host", "ts", "cpu", "memory"], filters=[host = Utf8("host1")], metrics_per_partition: [[partition=0, {prepare_scan_cost=579.75µs, build_reader_cost=0ns, scan_cost=0ns, convert_cost=0ns, yield_cost=0ns, total_cost=789.708µs, num_rows=0, num_batches=0, num_mem_ranges=0, num_file_ranges=0, build_parts_cost=0ns, rg_total=0, rg_fulltext_filtered=0, rg_inverted_filtered=0, rg_minmax_filtered=0, rg_bloom_filtered=0, rows_before_filter=0, rows_fulltext_filtered=0, rows_inverted_filtered=0, rows_bloom_filtered=0, rows_precise_filtered=0, num_sst_record_batches=0, num_sst_batches=0, num_sst_rows=0, first_poll=785.041µs}]] metrics=[output_rows: 0, mem_used: 0, build_parts_cost: 1, build_reader_cost: 1, elapsed_await: 1, elapsed_poll: 17208, scan_cost: 1, yield_cost: 1, ]
+
+*************************** 3. row ***************************
+stage: NULL
+ node: NULL
+ plan: Total rows: 0
 ```
 
-TODO: explains the output of `ANALYZE`.
+The `EXPLAIN ANALYZE VERBOSE` command provides the detail metrics about the execution of scan plans.
diff --git a/i18n/zh/docusaurus-plugin-content-docs/current/reference/sql/explain.md b/i18n/zh/docusaurus-plugin-content-docs/current/reference/sql/explain.md
index b549366f82..408c4a5be1 100644
--- a/i18n/zh/docusaurus-plugin-content-docs/current/reference/sql/explain.md
+++ b/i18n/zh/docusaurus-plugin-content-docs/current/reference/sql/explain.md
@@ -10,49 +10,86 @@ description: EXPLAIN 用于提供语句的执行计划，ANALYZE 子句将执行
 ## Syntax
 
 ```sql
-EXPLAIN [ANALYZE] SELECT ...
+EXPLAIN [ANALYZE] [VERBOSE] SELECT ...
 ```
 
 `ANALYZE` 子句将执行语句并测量每个计划节点花费的时间以及输出的总行数等。
 
+`VERBOSE` 子句可以进一步提供执行计划时详细的信息。
+
 ## 示例
 
+Explain 以下的查询：
+
 ```sql
-EXPLAIN SELECT * FROM monitor where host='host1';
+EXPLAIN SELECT * FROM monitor where host='host1'\G
 ```
 
+样例输出：
+
 ```sql
-| plan_type     | plan                                                                                                                                                                                                                                                         
-| logical_plan  | Projection: monitor.host, monitor.ts, monitor.cpu, monitor.memory
-  Filter: monitor.host = Utf8("host1")
-    TableScan: monitor projection=[host, ts, cpu, memory], partial_filters=[monitor.host = Utf8("host1")]                                           |
-| physical_plan | ProjectionExec: expr=[host@0 as host, ts@1 as ts, cpu@2 as cpu, memory@3 as memory]
-  CoalesceBatchesExec: target_batch_size=4096
-    FilterExec: host@0 = host1
-      RepartitionExec: partitioning=RoundRobinBatch(10)
-        ExecutionPlan(PlaceHolder)
+*************************** 1. row ***************************
+plan_type: logical_plan
+     plan: MergeScan [is_placeholder=false]
+*************************** 2. row ***************************
+plan_type: physical_plan
+     plan: MergeScanExec: peers=[4612794875904(1074, 0), ]
 ```
 
 `plan_type` 列指示了是 `logical_plan` 还是 `physical_plan`，`plan` 列详细说明了执行计划。
 
+`MergeScan` 计划负责合并多个 region 的查询结果。物理计划 `MergeScanExec` 中的 `peers` 数组包含了将要扫描的 region 的 ID。
+
 使用 `ANALYZE` 解释执行计划：
 
 ```sql
-EXPLAIN ANALYZE SELECT * FROM monitor where host='host1';
+EXPLAIN ANALYZE SELECT * FROM monitor where host='host1'\G
+```
+
+样例输出：
+
+```sql
+*************************** 1. row ***************************
+stage: 0
+ node: 0
+ plan:  MergeScanExec: peers=[4612794875904(1074, 0), ] metrics=[output_rows: 0, greptime_exec_read_cost: 0, finish_time: 3301415, first_consume_time: 3299166, ready_time: 3104209, ]
+
+*************************** 2. row ***************************
+stage: 1
+ node: 0
+ plan:  SeqScan: region=4612794875904(1074, 0), partition_count=0 (0 memtable ranges, 0 file 0 ranges) metrics=[output_rows: 0, mem_used: 0, build_parts_cost: 1, build_reader_cost: 1, elapsed_await: 1, elapsed_poll: 21250, scan_cost: 1, yield_cost: 1, ]
+
+*************************** 3. row ***************************
+stage: NULL
+ node: NULL
+ plan: Total rows: 0
+```
+
+`EXPLAIN ANALYZE` 语句提供了每个执行阶段的指标。`SeqScan` 计划会扫描一个 region 的数据。
+
+获取查询执行更详细的信息：
+
+```sql
+EXPLAIN ANALYZE VERBOSE SELECT * FROM monitor where host='host1';
 ```
 
+样例输出：
+
 ```sql
-| plan_type         | plan
-| Plan with Metrics | CoalescePartitionsExec, metrics=[output_rows=1, elapsed_compute=79.167µs, spill_count=0, spilled_bytes=0, mem_used=0]
-  ProjectionExec: expr=[host@0 as host, ts@1 as ts, cpu@2 as cpu, memory@3 as memory], metrics=[output_rows=1, elapsed_compute=17.176µs, spill_count=0, spilled_bytes=0, mem_used=0]
-    CoalesceBatchesExec: target_batch_size=4096, metrics=[output_rows=1, elapsed_compute=14.248µs, spill_count=0, spilled_bytes=0, mem_used=0]
-      CoalesceBatchesExec: target_batch_size=4096, metrics=[output_rows=1, elapsed_compute=17.21µs, spill_count=0, spilled_bytes=0, mem_used=0]
-        FilterExec: host@0 = host1, metrics=[output_rows=1, elapsed_compute=541.801µs, spill_count=0, spilled_bytes=0, mem_used=0]
-          CoalesceBatchesExec: target_batch_size=4096, metrics=[output_rows=3, elapsed_compute=43.004µs, spill_count=0, spilled_bytes=0, mem_used=0]
-            RepartitionExec: partitioning=RoundRobinBatch(10), metrics=[fetch_time=5.832958ms, repart_time=10ns, send_time=2.467µs]
-              RepartitionExec: partitioning=RoundRobinBatch(10), metrics=[fetch_time=386.585µs, repart_time=1ns, send_time=7.833µs]
-                ExecutionPlan(PlaceHolder), metrics=[]
-                
+*************************** 1. row ***************************
+stage: 0
+ node: 0
+ plan:  MergeScanExec: peers=[4612794875904(1074, 0), ] metrics=[output_rows: 0, greptime_exec_read_cost: 0, finish_time: 3479084, first_consume_time: 3476000, ready_time: 3209041, ]
+
+*************************** 2. row ***************************
+stage: 1
+ node: 0
+ plan:  SeqScan: region=4612794875904(1074, 0), partition_count=0 (0 memtable ranges, 0 file 0 ranges), projection=["host", "ts", "cpu", "memory"], filters=[host = Utf8("host1")], metrics_per_partition: [[partition=0, {prepare_scan_cost=579.75µs, build_reader_cost=0ns, scan_cost=0ns, convert_cost=0ns, yield_cost=0ns, total_cost=789.708µs, num_rows=0, num_batches=0, num_mem_ranges=0, num_file_ranges=0, build_parts_cost=0ns, rg_total=0, rg_fulltext_filtered=0, rg_inverted_filtered=0, rg_minmax_filtered=0, rg_bloom_filtered=0, rows_before_filter=0, rows_fulltext_filtered=0, rows_inverted_filtered=0, rows_bloom_filtered=0, rows_precise_filtered=0, num_sst_record_batches=0, num_sst_batches=0, num_sst_rows=0, first_poll=785.041µs}]] metrics=[output_rows: 0, mem_used: 0, build_parts_cost: 1, build_reader_cost: 1, elapsed_await: 1, elapsed_poll: 17208, scan_cost: 1, yield_cost: 1, ]
+
+*************************** 3. row ***************************
+stage: NULL
+ node: NULL
+ plan: Total rows: 0
 ```
 
-<!-- TODO: explains the output of `ANALYZE`. -->
+`EXPLAIN ANALYZE VERBOSE` 语句会展示计划执行阶段更详细的指标信息。


Reviews:
user: login: nicecui
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-04-07T03:25:47Z
user: login: fengjiachun
body: The en part LGTM
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-04-07T03:30:47Z
user: login: evenyag
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-04-07T08:27:21Z
user: login: nicecui
body: LGTM, please add the zh doc
state: COMMENTED
author_association: COLLABORATOR
submitted_at: 2025-04-08T04:35:35Z
user: login: nicecui
state: APPROVED
author_association: COLLABORATOR
submitted_at: 2025-04-09T00:19:55Z

Review comments:
diff_hunk: @@ -10,51 +10,85 @@ description: Provides information on the SQL EXPLAIN statement to obtain the exe
 ## Syntax
 
 ```sql
-EXPLAIN [ANALYZE] SELECT ...
+EXPLAIN [ANALYZE] [VERBOSE] SELECT ...
 ```
 
 The `ANALYZE` clause will execute the statement and measure time spent at each plan node and the total rows of the output etc.
 
+The `VERBOSE` clause will provide more detailed information about the execution plan.
+
 ## Examples
 
 Explains the following query:
 
 ```sql
-EXPLAIN SELECT * FROM monitor where host='host1';
+EXPLAIN SELECT * FROM monitor where host='host1'\G
 ```
 
+Example:
+
 ```sql
-| plan_type     | plan                                                                                                                                                                                                                                                         
-| logical_plan  | Projection: monitor.host, monitor.ts, monitor.cpu, monitor.memory
-  Filter: monitor.host = Utf8("host1")
-    TableScan: monitor projection=[host, ts, cpu, memory], partial_filters=[monitor.host = Utf8("host1")]                                           |
-| physical_plan | ProjectionExec: expr=[host@0 as host, ts@1 as ts, cpu@2 as cpu, memory@3 as memory]
-  CoalesceBatchesExec: target_batch_size=4096
-    FilterExec: host@0 = host1
-      RepartitionExec: partitioning=RoundRobinBatch(10)
-        ExecutionPlan(PlaceHolder)
+*************************** 1. row ***************************
+plan_type: logical_plan
+     plan: MergeScan [is_placeholder=false]
+*************************** 2. row ***************************
+plan_type: physical_plan
+     plan: MergeScanExec: peers=[4612794875904(1074, 0), ]
 ```
 
 The column `plan_type` indicates whether it's a`logical_plan` or `physical_plan`. And the column `plan` explains the plan in detail.
 
+The `MergeScan` plan merges the results from multiple regions. The `peers` array in the `MergeScanExec` physical plan contains the IDs of the regions that the plan will scan.
+
 Explains the execution of the plan by `ANALYZE`:
 
 ```sql
-EXPLAIN ANALYZE SELECT * FROM monitor where host='host1';
+EXPLAIN ANALYZE SELECT * FROM monitor where host='host1'\G
+```
+
+Example:
+
+```sql
+*************************** 1. row ***************************
+stage: 0
+ node: 0
+ plan:  MergeScanExec: peers=[4612794875904(1074, 0), ] metrics=[output_rows: 0, greptime_exec_read_cost: 0, finish_time: 3301415, first_consume_time: 3299166, ready_time: 3104209, ]
+
+*************************** 2. row ***************************
+stage: 1
+ node: 0
+ plan:  SeqScan: region=4612794875904(1074, 0), partition_count=0 (0 memtable ranges, 0 file 0 ranges) metrics=[output_rows: 0, mem_used: 0, build_parts_cost: 1, build_reader_cost: 1, elapsed_await: 1, elapsed_poll: 21250, scan_cost: 1, yield_cost: 1, ]
+
+*************************** 3. row ***************************
+stage: NULL
+ node: NULL
+ plan: Total rows: 0
+```
+
+The `EXPLAIN ANALYZE` command provides metrics about the execution of each stage. The `SeqScan` plan scans the data from a single region.
+
+Explains the verbose information of the plan execution.
path: docs/reference/sql/explain.md
user: login: nicecui
body: ```suggestion
Explains the verbose information of the plan execution:
```
created_at: 2025-04-07T03:25:39Z
author_association: COLLABORATOR
path: docs/reference/sql/explain.md
user: login: evenyag
body: I'll update the zh part later.
created_at: 2025-04-07T08:27:20Z
author_association: CONTRIBUTOR

PR comments:
user: login: coderabbitai[bot]
created_at: 2025-04-03T11:56:26Z
body: <!-- This is an auto-generated comment: summarize by coderabbit.ai -->
<!-- This is an auto-generated comment: skip review by coderabbit.ai -->

> [!IMPORTANT]
> ## Review skipped
> 
> Auto reviews are disabled on this repository.
> 
> Please check the settings in the CodeRabbit UI or the `.coderabbit.yaml` file in this repository. To trigger a single review, invoke the `@coderabbitai review` command.
> 
> You can disable this status message by setting the `reviews.review_status` to `false` in the CodeRabbit configuration file.

<!-- end of auto-generated comment: skip review by coderabbit.ai -->
<!-- tips_start -->

---

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

<details>
<summary>❤️ Share</summary>

- [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai)
- [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai)
- [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai)
- [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)

</details>

<details>
<summary>🪧 Tips</summary>

### Chat

There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=GreptimeTeam/docs&utm_content=1627):

- Review comments: Directly reply to a review comment made by CodeRabbit. Example:
  - `I pushed a fix in commit <commit_id>, please review it.`
  - `Generate unit testing code for this file.`
  - `Open a follow-up GitHub issue for this discussion.`
- Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples:
  - `@coderabbitai generate unit testing code for this file.`
  -	`@coderabbitai modularize this function.`
- PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
  - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.`
  - `@coderabbitai read src/utils.ts and generate unit testing code.`
  - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.`
  - `@coderabbitai help me debug CodeRabbit configuration file.`

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

### CodeRabbit Commands (Invoked using PR comments)

- `@coderabbitai pause` to pause the reviews on a PR.
- `@coderabbitai resume` to resume the paused reviews.
- `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
- `@coderabbitai full review` to do a full review from scratch and review all the files again.
- `@coderabbitai summary` to regenerate the summary of the PR.
- `@coderabbitai generate docstrings` to [generate docstrings](https://docs.coderabbit.ai/finishing-touches/docstrings) for this PR.
- `@coderabbitai resolve` resolve all the CodeRabbit review comments.
- `@coderabbitai plan` to trigger planning for file edits and PR creation.
- `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository.
- `@coderabbitai help` to get help.

### Other keywords and placeholders

- Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed.
- Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description.
- Add `@coderabbitai` anywhere in the PR title to generate the title automatically.

### CodeRabbit Configuration File (`.coderabbit.yaml`)

- You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository.
- Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) for more information.
- If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json`

### Documentation and Community

- Visit our [Documentation](https://docs.coderabbit.ai) for detailed information on how to use CodeRabbit.
- Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback.
- Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.

</details>

<!-- tips_end -->
author_association: CONTRIBUTOR
user: login: cloudflare-workers-and-pages[bot]
created_at: 2025-04-03T12:01:53Z
body: ## Deploying greptime-docs with &nbsp;<a href="https://pages.dev"><img alt="Cloudflare Pages" src="https://user-images.githubusercontent.com/23264/106598434-9e719e00-654f-11eb-9e59-6167043cfa01.png" width="16"></a> &nbsp;Cloudflare Pages

<table><tr><td><strong>Latest commit:</strong> </td><td>
<code>2e2a0fb</code>
</td></tr>
<tr><td><strong>Status:</strong></td><td>&nbsp;✅&nbsp; Deploy successful!</td></tr>
<tr><td><strong>Preview URL:</strong></td><td>
<a href='https://b34590c2.greptime-docs.pages.dev'>https://b34590c2.greptime-docs.pages.dev</a>
</td></tr>
<tr><td><strong>Branch Preview URL:</strong></td><td>
<a href='https://docs-explain-verbose.greptime-docs.pages.dev'>https://docs-explain-verbose.greptime-docs.pages.dev</a>
</td></tr>
</table>

[View logs](https://dash.cloudflare.com/baee2593068c89990bf86c4ea1c28258/pages/view/greptime-docs/b34590c2-2563-43c8-8b95-edaca662caa2)

author_association: NONE