Skip to content

Conversation

amotl
Copy link
Member

@amotl amotl commented Aug 24, 2025

Copy link

coderabbitai bot commented Aug 24, 2025

Warning

Rate limit exceeded

@amotl has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 14 minutes and 41 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 64d6116 and 5dcfd59.

📒 Files selected for processing (2)
  • docs/integrate/telegraf/index.md (2 hunks)
  • docs/integrate/telegraf/tutorial.md (1 hunks)

Walkthrough

Adds a new Telegraf tutorial and restructures the Telegraf integration index into a grid/card layout, splitting Overview items, inserting an architecture diagram item, replacing the Learn link with two cards (tutorial and blog), adding a toctree for the tutorial, and updating the example Telegraf output config.

Changes

Cohort / File(s) Summary
Telegraf docs layout & content
docs/integrate/telegraf/index.md
Converted Overview to a grid layout with separate grid items (including architecture image); expanded Synopsis Telegraf output snippet to include table, table_create, and key_separator; replaced single Learn link with a two-card Learn grid (Tutorial + Blog); added toctree and seealso.
New tutorial page
docs/integrate/telegraf/tutorial.md
Added tutorial guiding users through prerequisites, Docker/Podman CrateDB deployment on a demo network, CLI shortcuts for cross-platform access, generating/updating Telegraf config (input filter and CrateDB output with table_create=true), running Telegraf, flush_interval notes, and verification via the crash CLI.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor User
  participant Docker
  participant CrateDB
  participant Telegraf
  participant CLI as crash CLI

  Note over User,Docker: Setup & deploy
  User->>Docker: create cratedb-demo network & start CrateDB container
  Docker->>CrateDB: run CrateDB

  Note over User,Telegraf: Configure & start Telegraf
  User->>Telegraf: generate config (inputs + output filter cratedb)
  Telegraf->>CrateDB: write metrics (table, table_create, key_separator)
  Note over Telegraf,CrateDB: flush_interval determines timing

  Note over User,CLI: Verify ingestion
  User->>CLI: query `doc.metrics` via crash
  CLI->>CrateDB: execute query
  CrateDB-->>CLI: return rows
  CLI-->>User: show results
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related issues

Suggested labels

sanding-1200, new content, cross linking

Suggested reviewers

  • bmunkholm
  • kneth
  • karynzv
  • surister
  • hammerhead

Poem

I nibble docs and tidy the trail,
Cards and grids set out the scale.
Telegraf hums, metrics in store,
CrateDB listens — data galore.
Hop forth, readers — learn and explore! 🐇✨

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch telegraf

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.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

‼️ IMPORTANT
Auto-reply has been disabled for this repository in the CodeRabbit settings. The CodeRabbit bot will not respond to your replies unless it is explicitly tagged.

  • 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.
  • 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 the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

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 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

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (8)
docs/integrate/telegraf/tutorial.md (6)

1-3: Adopt the documented “-learn” anchor naming convention for tutorials

Per previous restructuring, tutorial pages use the “-learn” suffix (e.g., azure-functions-learn). Consider renaming the anchor to keep anchors predictable across integrations.

Apply this minimal change here:

-(telegraf-tutorial)=
+(telegraf-learn)=
# Load data into CrateDB using Telegraf

…and update inbound refs (see index.md suggestion below).


59-63: Pin container image versions for reproducibility

Using floating tags can break the tutorial when upstream images change defaults. Recommend pinning explicit versions (and optionally --pull=always for the config-generation step).

Example:

-docker run --rm docker.io/telegraf \
+docker run --rm --pull=always docker.io/telegraf:<version> \
  --input-filter cpu \
  --output-filter cratedb \
  config > telegraf.conf

Likewise consider pinning docker.io/crate:<version> above and the Telegraf runtime image below.


20-23: Consider lowering the default heap or mention adjustability

CRATE_HEAP_SIZE=2g may exceed available RAM on small laptops/CI. Either reduce to 1g or add a short note that users should adjust to their environment.


41-45: Clarify persistence for Windows Command prompt

You advise persisting for Linux/macOS and PowerShell, but not for cmd.exe. Add a note that doskey is session-scoped and how to persist via Autorun or a startup script if desired.


4-7: Tighten phrasing

“agent/broker” and “system metrics measurement values” read awkwardly. Consider simplifying to “agent” and “system metrics.”

Example:

-The tutorial will walk you through starting the [Telegraf] agent/broker
-and CrateDB, and configuring Telegraf to submit system metrics measurement
-values to CrateDB.
+This tutorial walks you through starting the [Telegraf] agent and CrateDB,
+then configuring Telegraf to submit system metrics to CrateDB.

65-71: Explicitly configure the target table in Telegraf’s CrateDB output

By default, if you don’t set table, the plugin will fall back to each metric’s name (which can vary by version or input), so your verification query (SELECT * FROM doc.metrics;) may break. Please uncomment and pin the table name to "metrics":

 # Configuration for CrateDB to send metrics to.
 [[outputs.cratedb]]
   url = "postgres://crate@cratedb/doc?sslmode=disable"
-  # table = "metrics"
+  table = "metrics"
   # table_create = true

Or, if you’re using sed as above:

sed -i 's!# table = "metrics"!table = "metrics"!' telegraf.conf

Then update both verification steps (originally at lines 65–71 and again at 84–87) to match:

-crash --hosts cratedb -c "SELECT * FROM doc.metrics;"
+crash --hosts cratedb -c "SELECT * FROM doc.metrics LIMIT 5;"

If you’d rather do a simple count-based smoke test:

crash --hosts cratedb -c "SELECT count(*) FROM doc.metrics;"
docs/integrate/telegraf/index.md (2)

39-41: Avoid hotlinking external images (stability/licenses)

Embedding a remote image can break if the URL changes and may have licensing implications. Prefer vendoring the image in the repo or switching to a first-party asset.


51-55: If you adopt the “-learn” anchor, update the card link

Align the ref with the renamed tutorial anchor for consistency across integrations.

-:::{grid-item-card} Tutorial: Use Telegraf with CrateDB
-:link: telegraf-tutorial
+:::{grid-item-card} Tutorial: Use Telegraf with CrateDB
+:link: telegraf-learn
 :link-type: ref
 How to configure Telegraf to submit metrics to CrateDB.
 :::
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between fe57c50 and 9e0212d.

📒 Files selected for processing (2)
  • docs/integrate/telegraf/index.md (2 hunks)
  • docs/integrate/telegraf/tutorial.md (1 hunks)
🧰 Additional context used
🧠 Learnings (3)
📓 Common learnings
Learnt from: amotl
PR: crate/cratedb-guide#238
File: docs/integrate/azure-functions/learn.rst:1-1
Timestamp: 2025-08-09T16:19:43.966Z
Learning: In the CrateDB Guide documentation, main integration anchors (e.g., `azure-functions`) are intentionally placed in the `index.md` files of their respective integration folders, while detailed tutorials use the `-learn` suffix (e.g., `azure-functions-learn`) in their `learn.rst` or `learn.md` files. This is a deliberate architectural pattern for the documentation restructuring.
📚 Learning: 2025-08-09T16:19:43.966Z
Learnt from: amotl
PR: crate/cratedb-guide#238
File: docs/integrate/azure-functions/learn.rst:1-1
Timestamp: 2025-08-09T16:19:43.966Z
Learning: In the CrateDB Guide documentation, main integration anchors (e.g., `azure-functions`) are intentionally placed in the `index.md` files of their respective integration folders, while detailed tutorials use the `-learn` suffix (e.g., `azure-functions-learn`) in their `learn.rst` or `learn.md` files. This is a deliberate architectural pattern for the documentation restructuring.

Applied to files:

  • docs/integrate/telegraf/tutorial.md
📚 Learning: 2025-08-15T18:56:11.508Z
Learnt from: amotl
PR: crate/cratedb-guide#255
File: docs/integrate/influxdb/tutorial.md:120-123
Timestamp: 2025-08-15T18:56:11.508Z
Learning: In CrateDB integration tutorials, when using `ctk load table` with `--cluster-url="crate://userhost:port/schema/table"`, the verification query should reference the target schema.table combination specified in the cluster URL, not derive it from the source system's naming. For example, if loading from InfluxDB bucket/measurement `testdrive/demo` to CrateDB `doc/testdrive`, the verification query should be `SELECT * FROM doc.testdrive`.

Applied to files:

  • docs/integrate/telegraf/tutorial.md
🪛 LanguageTool
docs/integrate/telegraf/tutorial.md

[grammar] ~1-~1: There might be a mistake here.
Context: (telegraf-tutorial)= # Load data into CrateDB using Telegraf T...

(QB_NEW_EN)


[grammar] ~4-~4: There might be a mistake here.
Context: ...ugh starting the [Telegraf] agent/broker and CrateDB, and configuring Telegraf to...

(QB_NEW_EN)


[grammar] ~5-~5: There might be a mistake here.
Context: ...raf to submit system metrics measurement values to CrateDB. ## Prerequisites Do...

(QB_NEW_EN)


[grammar] ~29-~29: There might be a mistake here.
Context: ...{tab-set} :::{tab-item} Linux and macOS To make the settings persistent, add the...

(QB_NEW_EN)


[grammar] ~34-~34: There might be a mistake here.
Context: ....io/crate/cratedb-toolkit crash" ``` ::: :::{tab-item} Windows PowerShell To make...

(QB_NEW_EN)


[grammar] ~35-~35: There might be a mistake here.
Context: ...``` ::: :::{tab-item} Windows PowerShell To make the settings persistent, add the...

(QB_NEW_EN)


[grammar] ~40-~40: There might be a mistake here.
Context: ...te/cratedb-toolkit crash @Args } ::: :::{tab-item} Windows Commandshell d...

(QB_NEW_EN)


[style] ~53-~53: Consider replacing this word to strengthen your wording.
Context: ...ng it. Telegraf is a plugin-driven tool and has plugins to collect many different t...

(AND_THAT)


[grammar] ~56-~56: There might be a mistake here.
Context: ... send the collected data to CrateDB, use --output-filter cratedb. ```shell dock...

(QB_NEW_EN)


[grammar] ~65-~65: There might be a mistake here.
Context: ... a pgx/v4 connection string. Configure table_create = true to automatically l...

(QB_NEW_EN)


[grammar] ~66-~66: There might be a mistake here.
Context: ...ly let Telegraf create the metrics table if it doesn't exist. ```shell sed -i 's!...

(QB_NEW_EN)


[grammar] ~81-~81: There might be a mistake here.
Context: ...n CrateDB. To adjust the value, navigate to flush_interval = "10s" in `telegraf...

(QB_NEW_EN)

docs/integrate/telegraf/index.md

[grammar] ~27-~27: There might be a mistake here.
Context: ...Overview ::: ::::{grid} :::{grid-item} - IoT sensors: Collect critical stateful...

(QB_NEW_EN)


[grammar] ~39-~39: There might be a mistake here.
Context: ...k view of your apps. ::: :::{grid-item} ![Telegraf architecture overview](https:...

(QB_NEW_EN)


[grammar] ~40-~40: There might be a mistake here.
Context: ...-Diagram_06.01.2022v1.png){loading=lazy} ::: :::: :::{rubric} Learn ::: ::::{...

(QB_NEW_EN)


[grammar] ~46-~46: There might be a mistake here.
Context: ...ding=lazy} ::: :::: :::{rubric} Learn ::: ::::{grid} :::{grid-item-card} Tut...

(QB_NEW_EN)


[grammar] ~67-~67: There might be a mistake here.
Context: ...a with Grafana. ::: :::: :::{toctree} :maxdepth: 1 :hidden: Tutorial <tutorial...

(QB_NEW_EN)


[grammar] ~68-~68: There might be a mistake here.
Context: ...a. ::: :::: :::{toctree} :maxdepth: 1 :hidden: Tutorial ::: ```{se...

(QB_NEW_EN)


[grammar] ~69-~69: There might be a mistake here.
Context: ...::: :::{toctree} :maxdepth: 1 :hidden: Tutorial ::: ```{seealso} [C...

(QB_NEW_EN)


[grammar] ~70-~70: There might be a mistake here.
Context: ...maxdepth: 1 :hidden: Tutorial ::: ```{seealso} [CrateDB and Telegraf]...

(QB_NEW_EN)

🔇 Additional comments (2)
docs/integrate/telegraf/index.md (2)

67-71: Toctree looks good

Hidden toctree targets the local tutorial file, keeping sidebar navigation coherent. No changes needed.


25-44: Ensure the sphinx-design extension is enabled for grid directives

I did not find any explicit reference to sphinx_design in docs/conf.py, and the initial extensions list is imported from the parent theme (crate.theme.rtd.conf.cratedb_guide). Please verify that this theme includes the sphinx-design extension. If it does not, you’ll need to enable it locally by adding:

# In docs/conf.py, after importing the parent theme’s config:
if "sphinx_design" not in extensions:
    extensions += ["sphinx_design"]

This ensures the grid and grid-item directives build correctly.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (1)
docs/integrate/telegraf/tutorial.md (1)

71-84: Split Linux vs macOS for sed; BSD sed needs a different -i form.

The current “Linux and macOS” block will fail on macOS because BSD sed requires -i ''. Also, consider setting the table name explicitly to avoid relying on implicit defaults.

Apply this diff to split tabs and add an explicit table setting:

-:::{tab-item} Linux and macOS
-```shell
-sed -i 's!postgres://user:password@localhost/schema?sslmode=disable!postgres://crate@cratedb/doc?sslmode=disable!g' telegraf.conf
-sed -i 's!# table_create = false!table_create = true!' telegraf.conf
-```
-:::
+:::{tab-item} Linux
+```shell
+sed -i 's!postgres://user:password@localhost/schema?sslmode=disable!postgres://crate@cratedb/doc?sslmode=disable!g' telegraf.conf
+sed -i 's!# table_create = false!table_create = true!' telegraf.conf
+# (Optional) Set the table name explicitly
+sed -i 's!# table = "metrics"!table = "metrics"!' telegraf.conf
+```
+:::
+:::{tab-item} macOS
+```shell
+sed -i '' 's!postgres://user:password@localhost/schema?sslmode=disable!postgres://crate@cratedb/doc?sslmode=disable!g' telegraf.conf
+sed -i '' 's!# table_create = false!table_create = true!' telegraf.conf
+# (Optional) Set the table name explicitly
+sed -i '' 's!# table = "metrics"!table = "metrics"!' telegraf.conf
+```
+:::
 :::{tab-item} Windows PowerShell
 ```powershell
 (Get-Content telegraf.conf) -replace 'postgres://user:password@localhost/schema\?sslmode=disable','postgres://crate@cratedb/doc?sslmode=disable' |
   ForEach-Object { $_ -replace '# table_create = false','table_create = true' } |
   Set-Content telegraf.conf

:::


</blockquote></details>

</blockquote></details>

<details>
<summary>🧹 Nitpick comments (4)</summary><blockquote>

<details>
<summary>docs/integrate/telegraf/tutorial.md (3)</summary><blockquote>

`86-110`: **Good OS‑specific run commands; just fix CMD code fence language.**

The Windows Command block is CMD syntax, not generic shell. Change the fence for accurate highlighting and linters.


```diff
-:::{tab-item} Windows Command
-```shell
+:::{tab-item} Windows Command
+```cmd
 docker run --name=telegraf --rm -it --network=cratedb-demo ^
   --volume "%cd%\telegraf.conf:/etc/telegraf/telegraf.conf" ^
   docker.io/telegraf

:::


---

`117-120`: **Make the crash host explicit to avoid DNS/scheme ambiguity.**

Some environments won’t resolve bare hostnames or will default to HTTPS. Use the full URL and default CrateDB port.


```diff
-crash --hosts cratedb -c "SELECT * FROM doc.metrics LIMIT 5;"
+crash --hosts http://cratedb:4200 -c "SELECT * FROM doc.metrics LIMIT 5;"

9-11: If mentioning Podman, provide equivalents or drop the claim.

Right now only Docker commands are provided. Either add minimal Podman variants (network/create/run) or rephrase to “We use Docker. Podman can be used as a drop‑in replacement.”

If you want, I can add a compact Podman tab with podman network create, podman run --name cratedb ..., and volume syntax notes (SELinux :Z).

docs/integrate/telegraf/index.md (1)

54-69: Align connection host with the tutorial or document both options.

Here the snippet uses localhost, while the tutorial runs Telegraf in Docker with CrateDB on the same user‑defined network (host cratedb). This mismatch may confuse users copying snippets between pages.

Option A — switch to cratedb to mirror the tutorial:

-  url = "postgres://crate@localhost/doc?sslmode=disable"
+  # If Telegraf runs in the same Docker network as CrateDB:
+  url = "postgres://crate@cratedb/doc?sslmode=disable"

Option B — document both:

-  url = "postgres://crate@localhost/doc?sslmode=disable"
+  # Docker network:
+  # url = "postgres://crate@cratedb/doc?sslmode=disable"
+  # Host (Telegraf on the host talking to mapped ports):
+  url = "postgres://crate@localhost/doc?sslmode=disable"
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 9e0212d and 64d6116.

📒 Files selected for processing (2)
  • docs/integrate/telegraf/index.md (2 hunks)
  • docs/integrate/telegraf/tutorial.md (1 hunks)
🧰 Additional context used
🧠 Learnings (2)
📚 Learning: 2025-08-09T16:19:43.966Z
Learnt from: amotl
PR: crate/cratedb-guide#238
File: docs/integrate/azure-functions/learn.rst:1-1
Timestamp: 2025-08-09T16:19:43.966Z
Learning: In the CrateDB Guide documentation, main integration anchors (e.g., `azure-functions`) are intentionally placed in the `index.md` files of their respective integration folders, while detailed tutorials use the `-learn` suffix (e.g., `azure-functions-learn`) in their `learn.rst` or `learn.md` files. This is a deliberate architectural pattern for the documentation restructuring.

Applied to files:

  • docs/integrate/telegraf/tutorial.md
📚 Learning: 2025-08-15T18:56:11.508Z
Learnt from: amotl
PR: crate/cratedb-guide#255
File: docs/integrate/influxdb/tutorial.md:120-123
Timestamp: 2025-08-15T18:56:11.508Z
Learning: In CrateDB integration tutorials, when using `ctk load table` with `--cluster-url="crate://userhost:port/schema/table"`, the verification query should reference the target schema.table combination specified in the cluster URL, not derive it from the source system's naming. For example, if loading from InfluxDB bucket/measurement `testdrive/demo` to CrateDB `doc/testdrive`, the verification query should be `SELECT * FROM doc.testdrive`.

Applied to files:

  • docs/integrate/telegraf/tutorial.md
🪛 LanguageTool
docs/integrate/telegraf/index.md

[grammar] ~27-~27: There might be a mistake here.
Context: ...Overview ::: ::::{grid} :::{grid-item} - IoT sensors: Collect critical stateful...

(QB_NEW_EN)


[grammar] ~39-~39: There might be a mistake here.
Context: ...k view of your apps. ::: :::{grid-item} ![Telegraf architecture overview](https:...

(QB_NEW_EN)


[grammar] ~40-~40: There might be a mistake here.
Context: ...-Diagram_06.01.2022v1.png){loading=lazy} ::: :::: :::{rubric} Synopsis ::: Te...

(QB_NEW_EN)


[grammar] ~46-~46: There might be a mistake here.
Context: ...g=lazy} ::: :::: :::{rubric} Synopsis ::: Telegraf output plugin configuratio...

(QB_NEW_EN)


[grammar] ~72-~72: There might be a mistake here.
Context: ...separator = "" ``` :::{rubric} Learn ::: ::::{grid} :::{grid-item-card} Tut...

(QB_NEW_EN)


[grammar] ~93-~93: There might be a mistake here.
Context: ...a with Grafana. ::: :::: :::{toctree} :maxdepth: 1 :hidden: Tutorial <tutorial...

(QB_NEW_EN)


[grammar] ~94-~94: There might be a mistake here.
Context: ...a. ::: :::: :::{toctree} :maxdepth: 1 :hidden: Tutorial ::: ```{se...

(QB_NEW_EN)


[grammar] ~95-~95: There might be a mistake here.
Context: ...::: :::{toctree} :maxdepth: 1 :hidden: Tutorial ::: ```{seealso} [C...

(QB_NEW_EN)


[grammar] ~96-~96: There might be a mistake here.
Context: ...maxdepth: 1 :hidden: Tutorial ::: ```{seealso} [CrateDB and Telegraf]...

(QB_NEW_EN)

docs/integrate/telegraf/tutorial.md

[grammar] ~1-~1: There might be a mistake here.
Context: (telegraf-tutorial)= # Load data into CrateDB using Telegraf T...

(QB_NEW_EN)


[grammar] ~4-~4: There might be a mistake here.
Context: ...arting the [Telegraf] agent and CrateDB, then configuring Telegraf to submit syst...

(QB_NEW_EN)


[grammar] ~28-~28: There might be a mistake here.
Context: ...{tab-set} :::{tab-item} Linux and macOS To make the settings persistent, add the...

(QB_NEW_EN)


[grammar] ~34-~34: There might be a mistake here.
Context: ...cratedb-demo docker.io/telegraf" ``` ::: :::{tab-item} Windows PowerShell To make...

(QB_NEW_EN)


[grammar] ~35-~35: There might be a mistake here.
Context: ...``` ::: :::{tab-item} Windows PowerShell To make the settings persistent, add the...

(QB_NEW_EN)


[grammar] ~41-~41: There might be a mistake here.
Context: ...-demo docker.io/telegraf @Args } ::: :::{tab-item} Windows Commandshell d...

(QB_NEW_EN)


[style] ~55-~55: Consider replacing this word to strengthen your wording.
Context: ...ng it. Telegraf is a plugin-driven tool and has plugins to collect many different t...

(AND_THAT)


[grammar] ~58-~58: There might be a mistake here.
Context: ... send the collected data to CrateDB, use --output-filter cratedb. ```shell tele...

(QB_NEW_EN)


[grammar] ~70-~70: There might be a mistake here.
Context: ...table if it doesn't exist. ::::{tab-set} :::{tab-item} Linux and macOS ```shell s...

(QB_NEW_EN)


[grammar] ~76-~76: There might be a mistake here.
Context: ...le_create = true!' telegraf.conf ::: :::{tab-item} Windows PowerShellpowe...

(QB_NEW_EN)


[grammar] ~83-~83: There might be a mistake here.
Context: ... } | Set-Content telegraf.conf ``` ::: :::: Start Telegraf. ::::{tab-set} :::...

(QB_NEW_EN)


[grammar] ~88-~88: There might be a mistake here.
Context: ...::: :::: Start Telegraf. ::::{tab-set} :::{tab-item} Linux and macOS ```shell d...

(QB_NEW_EN)


[grammar] ~95-~95: There might be a mistake here.
Context: ...graf.conf \ docker.io/telegraf ::: :::{tab-item} Windows PowerShellpowe...

(QB_NEW_EN)


[grammar] ~102-~102: There might be a mistake here.
Context: ...raf.conf" ` docker.io/telegraf ::: :::{tab-item} Windows Commandshell d...

(QB_NEW_EN)


[grammar] ~109-~109: There might be a mistake here.
Context: ...raf.conf" ^ docker.io/telegraf ``` ::: :::: After 10 seconds, which is the de...

(QB_NEW_EN)


[grammar] ~114-~114: There might be a mistake here.
Context: ...n CrateDB. To adjust the value, navigate to flush_interval = "10s" in `telegraf...

(QB_NEW_EN)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Build docs
🔇 Additional comments (4)
docs/integrate/telegraf/tutorial.md (1)

28-46: Nice cross‑platform launcher shortcuts; clear and consistent.

The alias/function/doskey trio for crash/telegraf is tidy and mirrors prior guide patterns. This should reduce friction for users across shells.

docs/integrate/telegraf/index.md (3)

25-44: Overview grid layout reads better; good use of sphinx‑design.

The two‑column split with the architecture diagram works well and keeps the page scannable.


93-97: Confirm anchor/path naming aligns with the guide’s convention.

Earlier restructurings use “-learn” for tutorial anchors/files (e.g., azure-functions-learn). Here the file is “tutorial.md” and the anchor is telegraf-tutorial. If this is the new standard, all good—otherwise consider renaming for consistency.

Using prior learning: you noted the “-learn” suffix pattern across integration tutorials. Do we keep that, or is “tutorial” the new convention going forward?


61-69: Nice to see table/table_create/key_separator called out explicitly.

Calling out these options reduces guesswork for users migrating from other Telegraf outputs.

@amotl amotl added sanding-1200 Fine sanding. guidance Matters of layout, shape, and structure. cross linking Linking to different locations of the documentation. labels Aug 24, 2025
@amotl amotl marked this pull request as ready for review August 24, 2025 14:12
Copy link
Contributor

@bmunkholm bmunkholm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about making it work against Cloud instead (or as well - by default)

@amotl
Copy link
Member Author

amotl commented Aug 24, 2025

How about making it work against Cloud instead (or as well - by default)

Let's defer this to a future iteration to have an immediate improvement available, while a later edit can add this easily after validating it?

Rationale

Only a few tutorials from our pen made a start to consider cloud details the other day. While this was meant as a blueprint how to start documenting relevant details, we observe very little user testing on those aspects in general, nor contributions in the same area, despite asking for support so often.

Because other patches also don't take a particular focus,

... we'd suggest to merge early, and do relevant improvements on behalf of future iterations, sweepingly across all the tutorials, possibly on behalf of a special initiative. Contributions are very much welcome. 🍀

Thoughts

Make it work against CrateDB Cloud by default.

In general, the documentation shouldn't exclude specific audiences from experiencing a successful application of CrateDB within their relevant use case or problem they are solving, so it needs to strike the balance between Cloud use and standalone use. Because CrateDB isn't so popular on its own, we can't afford to leave non-Cloud users behind.

Because of unilateral product policies of the past, we are only slowly getting back on track in increasing interests about CrateDB within its native habitats again 1. Through relevant network effects, this will also increase interest in CrateDB Cloud products. It would be sad if we would cut off those delicate little plants of increased attention again, only because they don't fit into a hypothetic user journey.

Evaluating products on developer's workstations on hands-on data is a well-known and established user journey to evaluate new technologies, because users are absolutely safe that the data entrusted by their clients will never leave their premises. In this spirit, directing users to use CrateDB Cloud, will significantly decrease abilities of those audiences, which usually just don't have the time to do significant research, but expect to find relevant information on their fingertips, like the bunch of requests shared above demonstrate. CrateDB Cloud can be an option for some people as the preferred way for production hosting, because then it's our responsibility not to make it crash under load, but it's certainly not applicable for technology evaluations of the usual kind within existing software infrastructures.

In this particular case about Telegraf, where CrateDB would fit into the metrics store market landscape well, like others, we think it is mostly on-premise datacenter use where CrateDB could play out its strengths in this regard, as demonstrated through relevant conversations. It would be sad again to introduce category failures into our product policies again that would now even condensate on the documentation with a wrong bias, just because there is no collective awareness about relevant details yet, that there is no "one fits all" solution, also not about creating homogenity on the documentation while reality is different.

Footnotes

  1. With dlt-cratedb as the most recent member which joins the family, increasing interests into our tech in the last month significantly without having a particular focus on CrateDB Cloud, but of course it can be used with both variants of CrateDB. We are just using it as a textbook example how making CrateDB more popular would work better, by expanding the audiences instead of shrinking them.

@amotl amotl requested a review from bmunkholm August 24, 2025 21:50
@bmunkholm
Copy link
Contributor

I agree we should cater to both audiences, but as we decided to have a primary focus initially on Cloud users for getting started easily, we should add instructions for Cloud for those ingestion methods we currently have in focus as highly important. Incrementally improving seems a better approach to me that waiting for a big overhaul across the board.

@amotl
Copy link
Member Author

amotl commented Aug 25, 2025

Hi. Everything works which draws attention to the problem. Contributions are always welcome. I don't think we should block the patch though.

Copy link
Member

@kneth kneth left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have only a small change request

::::{tab-set}
:::{tab-item} Linux and macOS
```shell
sed -i 's!postgres://user:password@localhost/schema?sslmode=disable!postgres://crate@cratedb/doc?sslmode=disable!g' telegraf.conf
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BSD sed and GNU sed do not have the same semantics for option -i. I suggest to use -i '' to cover both cases.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@coderabbiai already suggested the same, thanks!

In docs/integrate/telegraf/tutorial.md, we recommend to...

71-84: Split Linux vs macOS for sed; BSD sed needs a different -i form.

The current “Linux and macOS” block will fail on macOS because BSD sed requires -i ''. Also, consider setting the table name explicitly to avoid relying on implicit defaults.

@amotl amotl merged commit 20bd4a5 into main Aug 26, 2025
3 checks passed
@amotl amotl deleted the telegraf branch August 26, 2025 22:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cross linking Linking to different locations of the documentation. guidance Matters of layout, shape, and structure. sanding-1200 Fine sanding.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants