Skip to content

updates for v5.0#2541

Merged
edsiper merged 19 commits intomasterfrom
updates-5.0
Apr 9, 2026
Merged

updates for v5.0#2541
edsiper merged 19 commits intomasterfrom
updates-5.0

Conversation

@edsiper
Copy link
Copy Markdown
Member

@edsiper edsiper commented Apr 9, 2026

  • Document new things in v5
  • Add little missing pieces of features added

Summary by CodeRabbit

  • New Features

    • Added OAuth 2.0 bearer token validation for HTTP-based inputs and client credentials support for HTTP output.
    • Introduced unified HTTP server configuration model with standardized http_server.* settings across plugins.
    • Added mutual TLS support for input plugins via tls.verify_client_cert.
    • Added new fluentbit_logs internal logs input plugin.
    • Added new configuration parameters and options across multiple input/output plugins.
  • Documentation

    • Published v5.0 "What's new" page and comprehensive upgrade notes for users migrating from v4.2 series.

@edsiper edsiper requested review from a team and eschabell as code owners April 9, 2026 23:34
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 9, 2026

📝 Walkthrough

Walkthrough

This PR updates Fluent Bit documentation for v5.0 release, adding comprehensive guides covering new features (shared HTTP listener configuration, OAuth 2.0 support, mutual TLS, fluentbit_logs input), parameter documentation for multiple plugins, and upgrade notes directing users from v4.2 to v5.0 resources.

Changes

Cohort / File(s) Summary
v5.0 Documentation Onboarding
README.md, SUMMARY.md, installation/whats-new-in-fluent-bit-v5.0.md, installation/upgrade-notes.md
Added v5.0 release overview and upgrade guidance including shared HTTP listener configuration, mutual TLS (tls.verify_client_cert), OAuth 2.0 bearer token validation/client credentials, new fluentbit_logs input plugin, OpenTelemetry improvements, processor enhancements (cumulative-to-delta, TDA), and monitoring metric changes.
Configuration Documentation
administration/configuring-fluent-bit/yaml/service-section.md, administration/configuring-fluent-bit/yaml/pipeline-section.md
Clarified service section controls only built-in HTTP server; documented shared http_server.* configuration keys for HTTP-based inputs and shared OAuth 2.0 settings (oauth2.*) for both inputs and outputs with backward-compatible legacy aliases.
HTTP-Based Input Plugins
pipeline/inputs/http.md, pipeline/inputs/elasticsearch.md, pipeline/inputs/opentelemetry.md, pipeline/inputs/prometheus-remote-write.md, pipeline/inputs/splunk.md
Added http_server.max_connections configuration parameter (maximum concurrent connections; 0 = unlimited) to all HTTP-based input plugins documentation.
Other Input Plugins
pipeline/inputs/dummy.md, pipeline/inputs/windows-event-log.md, pipeline/inputs/windows-event-log-winevtlog.md, pipeline/inputs/windows-exporter-metrics.md
Added test-only test_hang_on_exit parameter to dummy input; added interval_nsec, string_inserts, use_ansi parameters to winlog; added reconnect parameters (reconnect.base_ms, reconnect.max_ms, reconnect.multiplier, reconnect.jitter_pct, reconnect.max_retries) to windows-event-log-winevtlog; changed windows-exporter-metrics default scrape_interval from 5 to 1 and added enable_collector parameter.
Filter Plugins
pipeline/filters/modify.md, pipeline/filters/parser.md
Added alternative rule operation spellings (Hard_Rename, Move_To_Start, Move_To_End) to modify filter; added deprecated Unescape_key parameter to parser filter.
Output Plugins
pipeline/outputs/forward.md, pipeline/outputs/stackdriver.md, pipeline/outputs/treasure-data.md
Renamed Forward output parameters from PascalCase to snake_case with new parameters (fluentd_compat, retain_metadata_in_forward_mode, add_option); added stackdriver_agent and test_log_entry_format parameters to Stackdriver; added Region (classic-mode spelling) parameter to Treasure Data.
Processor Documentation
pipeline/processors/sampling.md
Added sampling_settings.legacy_reconcile parameter for tail sampling to enable legacy reconciliation path (default false).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

Suggested labels

5.0

Suggested reviewers

  • eschabell
  • patrick-stephens

Poem

🐰 V5's new features, now clearly explained,
Shared HTTP listeners, OAuth validated with care,
Configuration guides hop across every page,
Parameters documented with precision and grace—
The docs are now ready to guide users on stage! 📚✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'updates for v5.0' is vague and generic, using non-descriptive language that fails to convey the specific nature or scope of the documentation changes. Revise the title to be more descriptive and specific, such as 'Document Fluent Bit v5.0 features, configuration options, and upgrade guidance' to better reflect the comprehensive documentation updates.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch updates-5.0

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

Comment @coderabbitai help to get the list of available commands and usage tips.

edsiper added 19 commits April 9, 2026 17:35
Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Signed-off-by: Eduardo Silva <edsiper@gmail.com>
Copy link
Copy Markdown
Contributor

@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: 9

🧹 Nitpick comments (4)
pipeline/filters/parser.md (1)

19-19: Use lowercase parameter name for consistency.

The parameter name Unescape_key uses Title_Case, which is inconsistent with the other parameters in this table (key_name, parser, preserve_key, reserve_data) that all use lowercase. Based on learnings, parameter tables should document the canonical lowercase key names.

Additionally, the default value _deprecated_ is an unusual placeholder that may confuse readers. Consider using a clearer representation such as "N/A" or simply noting it in the description.

📝 Proposed fix for consistency
-| `Unescape_key` | Deprecated. This option is retained only for backward compatibility and should not be used in new configurations. | _deprecated_ |
+| `unescape_key` | Deprecated. This option is retained only for backward compatibility and should not be used in new configurations. | N/A |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pipeline/filters/parser.md` at line 19, Update the parameter row that
currently uses `Unescape_key` to the canonical lowercase name `unescape_key` and
replace the confusing default `_deprecated_` with a clearer marker such as "N/A"
(or remove the default and note deprecation in the description); ensure the
table entry and any inline references (search for `Unescape_key` and
`unescape_key`) are updated so naming and the default/deprecation note match the
other parameters like `key_name`, `parser`, `preserve_key`, and `reserve_data`.
pipeline/inputs/windows-event-log-winevtlog.md (1)

27-31: LGTM! Well-documented reconnection parameters.

The new reconnection parameters are clearly documented with sensible defaults that implement exponential backoff with jitter. The parameter naming is consistent with the existing remote.* parameters in this file.

Optional: Minor clarity improvements

Consider these small enhancements to help users understand when and how these parameters apply:

  1. Add context earlier: Lines 27-30 could briefly mention these apply to "subscription failures" (currently only mentioned in line 31), helping users understand when reconnection happens.

  2. Clarify jitter calculation: Line 30's description could specify whether jitter_pct applies as ±20% variation or +20% variation to make the behavior more explicit.

  3. Add usage example: Consider adding a configuration example showing these reconnect parameters in use, especially for users troubleshooting unstable Windows Event Log subscriptions.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pipeline/inputs/windows-event-log-winevtlog.md` around lines 27 - 31, Add a
short leading sentence before the reconnect parameter table stating these
settings apply to "subscription failures" so readers know when reconnection is
attempted; clarify the `reconnect.jitter_pct` description to state whether it is
applied as ± (plus-or-minus) or only + (e.g., "±20% variation") and update the
`reconnect.jitter_pct` line accordingly; and add a small example configuration
snippet below the table demonstrating the five parameters (reconnect.base_ms,
reconnect.max_ms, reconnect.multiplier, reconnect.jitter_pct,
reconnect.max_retries) in use so users can copy/adapt it when troubleshooting
unstable Windows Event Log subscriptions.
pipeline/outputs/forward.md (2)

30-30: Clarify the incompatibility statement.

The phrase "Incompatible with time_as_integer true" could be clearer. Consider rewording to "Incompatible with time_as_integer set to true and with tags set dynamically..." to avoid ambiguity about whether you're referring to a code snippet or describing a parameter value.

✏️ Suggested rewording
-| `compress` | Set to `gzip` to enable gzip compression. Incompatible with `time_as_integer true` and tags set dynamically using the [Rewrite Tag](../filters/rewrite-tag.md) filter. Requires Fluentd server `v0.14.7` or later. | _none_ |
+| `compress` | Set to `gzip` to enable gzip compression. Incompatible with `time_as_integer` set to `true` and with tags set dynamically using the [Rewrite Tag](../filters/rewrite-tag.md) filter. Requires Fluentd server `v0.14.7` or later. | _none_ |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pipeline/outputs/forward.md` at line 30, Reword the incompatibility sentence
for clarity: change the phrase referencing time_as_integer to explicitly say
"Incompatible with time_as_integer set to true" and likewise make the other
clause explicit by saying "and with tags set dynamically using the Rewrite Tag
filter"; update the line describing the `compress` option so it reads something
like: "`compress` set to `gzip` is incompatible with `time_as_integer` set to
`true` and with tags set dynamically using the [Rewrite
Tag](../filters/rewrite-tag.md) filter" while keeping the note about Fluentd
server `v0.14.7` or later and the existing `_none_` default.

31-32: Consider adding more detail to new parameter descriptions.

The descriptions for fluentd_compat and retain_metadata_in_forward_mode are brief. Users might benefit from understanding:

  • For fluentd_compat: What specific format differences exist? When should this be enabled?
  • For retain_metadata_in_forward_mode: What metadata is affected? What's the impact of enabling/disabling this?
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pipeline/outputs/forward.md` around lines 31 - 32, The two parameter
descriptions are too terse; update the table entries for `fluentd_compat` and
`retain_metadata_in_forward_mode` in forward.md to include concrete details: for
`fluentd_compat` explain which fields/encoding differ (e.g., tag/record vs.
nested payload, timestamp format, and expected Fluentd buffer/transport
behavior) and give guidance on when to enable it (compatibility with Fluentd
collectors or legacy pipelines); for `retain_metadata_in_forward_mode` list the
specific metadata preserved (e.g., source, hostname, tags, original timestamp,
labels) and state the impact of enabling vs disabling (increased payload size
and retention of original provenance vs possible loss of context and smaller
messages). Ensure both descriptions remain concise and user-focused so readers
know trade-offs and when to toggle each setting.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@administration/configuring-fluent-bit/yaml/pipeline-section.md`:
- Line 176: The short description for the `oauth2.jwt_header` option uses the
abbreviation JWT without expansion; update the text so the first occurrence
reads "JSON Web Token (JWT)" — e.g., change "JWT header claim name" to "JSON Web
Token (JWT) header claim name" while keeping the rest (supported values `kid`,
`x5t`, default `kid`) unchanged and leave the symbols `oauth2.jwt_header`,
`kid`, and `x5t` intact.

In `@installation/upgrade-notes.md`:
- Line 41: Rewrite the possessive phrasing in the sentence that mentions Fluent
Bit v5.0 and the fluentbit_logs input plugin: replace "which mirrors Fluent
Bit's own internal log stream" with a non-possessive form such as "which mirrors
the internal log stream of Fluent Bit" (or "which mirrors Fluent Bit internal
log stream") so the sentence reads without a possessive.
- Line 37: The sentence uses "terminate TLS" which triggers the Vale style rule;
update the wording to avoid "terminate" (for example, change to "If you perform
TLS termination in Fluent Bit" or "If Fluent Bit terminates TLS" or "If you
handle TLS termination in Fluent Bit") and keep the rest of the sentence intact
so it reads: "If you perform TLS termination in Fluent Bit and need mutual TLS
(mTLS), add tls.verify_client_cert on together with the usual tls.crt_file and
tls.key_file settings." Make this change in the installation/upgrade-notes.md
content that currently contains "If you terminate TLS directly in Fluent Bit..."
so the lint rule is satisfied.

In `@installation/whats-new-in-fluent-bit-v5.0.md`:
- Line 124: The sentence "The [topological data analysis processor] adds a
metrics processor for topology-based analysis workflows." uses wording flagged
by the linter; change it to a neutral phrasing (for example, "The [topological
data analysis processor] adds a metrics processor to support topology-based
analysis workflows.") and apply the same neutral-wording change to the other
similar occurrence mentioned in the comment (the lines matching the same
phrasing around the second occurrence).
- Line 120: Update the sentence to use neutral phrasing and hyphenate the
compound adjective: change "The [cumulative to delta
processor](../pipeline/processors/cumulative-to-delta.md) converts cumulative
monotonic metrics to delta values, which is useful when scraping
Prometheus-style metrics but exporting to backends that expect deltas." to a
more neutral form that hyphenates the processor name (e.g., "The
[cumulative-to-delta processor](../pipeline/processors/cumulative-to-delta.md)
converts cumulative-monotonic metrics to delta values when scraping
Prometheus-style metrics for backends that expect deltas."), ensuring the
compound adjective(s) like "cumulative-to-delta" and "cumulative-monotonic" are
hyphenated and the tone is factual rather than evaluative.

In `@pipeline/inputs/windows-exporter-metrics.md`:
- Line 62: Update the documentation to explicitly document the breaking change
that the default `metrics` list no longer includes `memory`, `paging_file`, and
`process`; add a clear upgrade note and example showing how to restore the old
v4.x defaults by appending those collectors to the `metrics` value (reference
the `metrics` key shown in the diff), and add a small clarifying sentence near
the existing `scrape_interval` discussion (where `memory`, `paging_file`, and
`process` are mentioned) stating these collectors are disabled by default and
must be enabled via `metrics` or `enable_collector`.
- Line 38: Update the docs to clarify how the new enable_collector parameter
interacts with the existing metrics parameter: state whether both can be used
together, which takes precedence (e.g., explain precedence logic in the
collector selection code path), and whether enable_collector replaces or
complements metrics; add concise usage examples for enable_collector (single and
multiple entries) and show combined examples with metrics if supported;
explicitly update the "Selecting specific collectors" section to include
enable_collector examples and a short note referencing the enable_collector and
metrics behavior so readers understand when to use each.
- Line 37: Update the `scrape_interval` documentation to call out the breaking
change: state that the default was reduced from `5` to `1` second and that this
increases scrape frequency by 5x, potentially raising CPU, network, and storage
usage; add a short warning sentence next to the `scrape_interval` row and
include a link/reference to the upgrade guide for mitigation steps (throttling,
increased retention, or reverting to a higher interval). Ensure the text
mentions the `scrape_interval` setting name and suggests immediate checks for
high-cardinality metrics and resource planning when upgrading to v5.0.

In `@pipeline/outputs/treasure-data.md`:
- Around line 13-14: Update the docs to make allowed values for the classic-mode
`Region` parameter consistent with the canonical `region` parameter: change the
`Region` allowed values from lowercase `us`, `jp` to uppercase `US`, `JP` so
they match the default `US` and the `region` entry; ensure both `region` and
`Region` rows list identical allowed values (`US`, `JP`) and the same default
`US`.

---

Nitpick comments:
In `@pipeline/filters/parser.md`:
- Line 19: Update the parameter row that currently uses `Unescape_key` to the
canonical lowercase name `unescape_key` and replace the confusing default
`_deprecated_` with a clearer marker such as "N/A" (or remove the default and
note deprecation in the description); ensure the table entry and any inline
references (search for `Unescape_key` and `unescape_key`) are updated so naming
and the default/deprecation note match the other parameters like `key_name`,
`parser`, `preserve_key`, and `reserve_data`.

In `@pipeline/inputs/windows-event-log-winevtlog.md`:
- Around line 27-31: Add a short leading sentence before the reconnect parameter
table stating these settings apply to "subscription failures" so readers know
when reconnection is attempted; clarify the `reconnect.jitter_pct` description
to state whether it is applied as ± (plus-or-minus) or only + (e.g., "±20%
variation") and update the `reconnect.jitter_pct` line accordingly; and add a
small example configuration snippet below the table demonstrating the five
parameters (reconnect.base_ms, reconnect.max_ms, reconnect.multiplier,
reconnect.jitter_pct, reconnect.max_retries) in use so users can copy/adapt it
when troubleshooting unstable Windows Event Log subscriptions.

In `@pipeline/outputs/forward.md`:
- Line 30: Reword the incompatibility sentence for clarity: change the phrase
referencing time_as_integer to explicitly say "Incompatible with time_as_integer
set to true" and likewise make the other clause explicit by saying "and with
tags set dynamically using the Rewrite Tag filter"; update the line describing
the `compress` option so it reads something like: "`compress` set to `gzip` is
incompatible with `time_as_integer` set to `true` and with tags set dynamically
using the [Rewrite Tag](../filters/rewrite-tag.md) filter" while keeping the
note about Fluentd server `v0.14.7` or later and the existing `_none_` default.
- Around line 31-32: The two parameter descriptions are too terse; update the
table entries for `fluentd_compat` and `retain_metadata_in_forward_mode` in
forward.md to include concrete details: for `fluentd_compat` explain which
fields/encoding differ (e.g., tag/record vs. nested payload, timestamp format,
and expected Fluentd buffer/transport behavior) and give guidance on when to
enable it (compatibility with Fluentd collectors or legacy pipelines); for
`retain_metadata_in_forward_mode` list the specific metadata preserved (e.g.,
source, hostname, tags, original timestamp, labels) and state the impact of
enabling vs disabling (increased payload size and retention of original
provenance vs possible loss of context and smaller messages). Ensure both
descriptions remain concise and user-focused so readers know trade-offs and when
to toggle each setting.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: c131b9cb-c9c4-4bb8-807b-5d999954cbb4

📥 Commits

Reviewing files that changed from the base of the PR and between 3cac0d1 and 9f49035.

📒 Files selected for processing (21)
  • README.md
  • SUMMARY.md
  • administration/configuring-fluent-bit/yaml/pipeline-section.md
  • administration/configuring-fluent-bit/yaml/service-section.md
  • installation/upgrade-notes.md
  • installation/whats-new-in-fluent-bit-v5.0.md
  • pipeline/filters/modify.md
  • pipeline/filters/parser.md
  • pipeline/inputs/dummy.md
  • pipeline/inputs/elasticsearch.md
  • pipeline/inputs/http.md
  • pipeline/inputs/opentelemetry.md
  • pipeline/inputs/prometheus-remote-write.md
  • pipeline/inputs/splunk.md
  • pipeline/inputs/windows-event-log-winevtlog.md
  • pipeline/inputs/windows-event-log.md
  • pipeline/inputs/windows-exporter-metrics.md
  • pipeline/outputs/forward.md
  • pipeline/outputs/stackdriver.md
  • pipeline/outputs/treasure-data.md
  • pipeline/processors/sampling.md

| `oauth2.jwt_key_file` | PEM private key file used with `private_key_jwt`. | _none_ |
| `oauth2.jwt_cert_file` | Certificate file used to derive the `kid` or `x5t` header value for `private_key_jwt`. | _none_ |
| `oauth2.jwt_aud` | Audience to use in `private_key_jwt` assertions. Defaults to `oauth2.token_url` when unset. | _none_ |
| `oauth2.jwt_header` | JWT header claim name used for the thumbprint. Supported values: `kid`, `x5t`. | `kid` |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Expand JWT once in this description to clear lint warning.

Suggested update:

Suggested edit
-| `oauth2.jwt_header` | JWT header claim name used for the thumbprint. Supported values: `kid`, `x5t`. | `kid` |
+| `oauth2.jwt_header` | JSON Web Token (`JWT`) header claim name used for the thumbprint. Supported values: `kid`, `x5t`. | `kid` |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
| `oauth2.jwt_header` | JWT header claim name used for the thumbprint. Supported values: `kid`, `x5t`. | `kid` |
| `oauth2.jwt_header` | JSON Web Token (`JWT`) header claim name used for the thumbprint. Supported values: `kid`, `x5t`. | `kid` |
🧰 Tools
🪛 GitHub Actions: Lint PRs

[warning] 176-176: vale (reviewdog) [FluentBit.Acronyms] Spell out 'JWT', if it's unfamiliar to the audience.

🪛 GitHub Check: runner / vale

[warning] 176-176:
[vale] reported by reviewdog 🐶
[FluentBit.Acronyms] Spell out 'JWT', if it's unfamiliar to the audience.

Raw Output:
{"message": "[FluentBit.Acronyms] Spell out 'JWT', if it's unfamiliar to the audience.", "location": {"path": "administration/configuring-fluent-bit/yaml/pipeline-section.md", "range": {"start": {"line": 176, "column": 25}}}, "severity": "INFO"}

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@administration/configuring-fluent-bit/yaml/pipeline-section.md` at line 176,
The short description for the `oauth2.jwt_header` option uses the abbreviation
JWT without expansion; update the text so the first occurrence reads "JSON Web
Token (JWT)" — e.g., change "JWT header claim name" to "JSON Web Token (JWT)
header claim name" while keeping the rest (supported values `kid`, `x5t`,
default `kid`) unchanged and leave the symbols `oauth2.jwt_header`, `kid`, and
`x5t` intact.


Input plugins that support TLS now also support `tls.verify_client_cert`. Enable this option to require and validate the client certificate presented by the sender.

If you terminate TLS directly in Fluent Bit and need mutual TLS (`mTLS`), add `tls.verify_client_cert on` together with the usual `tls.crt_file` and `tls.key_file` settings.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Replace “terminate” to satisfy style lint.

Line 37 currently triggers the Vale rule. Suggested wording:

Suggested edit
-If you terminate TLS directly in Fluent Bit and need mutual TLS (`mTLS`), add `tls.verify_client_cert on` together with the usual `tls.crt_file` and `tls.key_file` settings.
+If you run TLS directly in Fluent Bit and need mutual TLS (`mTLS`), add `tls.verify_client_cert on` together with the usual `tls.crt_file` and `tls.key_file` settings.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
If you terminate TLS directly in Fluent Bit and need mutual TLS (`mTLS`), add `tls.verify_client_cert on` together with the usual `tls.crt_file` and `tls.key_file` settings.
If you run TLS directly in Fluent Bit and need mutual TLS (`mTLS`), add `tls.verify_client_cert on` together with the usual `tls.crt_file` and `tls.key_file` settings.
🧰 Tools
🪛 GitHub Actions: Lint PRs

[warning] 37-37: vale (reviewdog) [FluentBit.WordList] Use 'stop', 'exit', 'cancel', or 'end' instead of 'terminate'.

🪛 GitHub Check: runner / vale

[warning] 37-37:
[vale] reported by reviewdog 🐶
[FluentBit.WordList] Use 'stop', 'exit', 'cancel', or 'end' instead of 'terminate'.

Raw Output:
{"message": "[FluentBit.WordList] Use 'stop', 'exit', 'cancel', or 'end' instead of 'terminate'.", "location": {"path": "installation/upgrade-notes.md", "range": {"start": {"line": 37, "column": 8}}}, "severity": "INFO"}

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@installation/upgrade-notes.md` at line 37, The sentence uses "terminate TLS"
which triggers the Vale style rule; update the wording to avoid "terminate" (for
example, change to "If you perform TLS termination in Fluent Bit" or "If Fluent
Bit terminates TLS" or "If you handle TLS termination in Fluent Bit") and keep
the rest of the sentence intact so it reads: "If you perform TLS termination in
Fluent Bit and need mutual TLS (mTLS), add tls.verify_client_cert on together
with the usual tls.crt_file and tls.key_file settings." Make this change in the
installation/upgrade-notes.md content that currently contains "If you terminate
TLS directly in Fluent Bit..." so the lint rule is satisfied.


### New internal logs input

Fluent Bit `v5.0` adds the `fluentbit_logs` input plugin, which mirrors Fluent Bit's own internal log stream back into the data pipeline as structured log records.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Rewrite possessive form to satisfy style lint.

Line 41 triggers the possessive rule; switch to a non-possessive phrasing.

Suggested edit
-Fluent Bit `v5.0` adds the `fluentbit_logs` input plugin, which mirrors Fluent Bit's own internal log stream back into the data pipeline as structured log records.
+Fluent Bit `v5.0` adds the `fluentbit_logs` input plugin, which mirrors the internal log stream of Fluent Bit back into the data pipeline as structured log records.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Fluent Bit `v5.0` adds the `fluentbit_logs` input plugin, which mirrors Fluent Bit's own internal log stream back into the data pipeline as structured log records.
Fluent Bit `v5.0` adds the `fluentbit_logs` input plugin, which mirrors the internal log stream of Fluent Bit back into the data pipeline as structured log records.
🧰 Tools
🪛 GitHub Actions: Lint PRs

[warning] 41-41: vale (reviewdog) [FluentBit.Possessives] Rewrite 'Bit's' to not use 's.

🪛 GitHub Check: runner / vale

[warning] 41-41:
[vale] reported by reviewdog 🐶
[FluentBit.Possessives] Rewrite 'Bit's' to not use 's.

Raw Output:
{"message": "[FluentBit.Possessives] Rewrite 'Bit's' to not use 's.", "location": {"path": "installation/upgrade-notes.md", "range": {"start": {"line": 41, "column": 80}}}, "severity": "WARNING"}

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@installation/upgrade-notes.md` at line 41, Rewrite the possessive phrasing in
the sentence that mentions Fluent Bit v5.0 and the fluentbit_logs input plugin:
replace "which mirrors Fluent Bit's own internal log stream" with a
non-possessive form such as "which mirrors the internal log stream of Fluent
Bit" (or "which mirrors Fluent Bit internal log stream") so the sentence reads
without a possessive.


### New cumulative-to-delta processor

The [cumulative to delta processor](../pipeline/processors/cumulative-to-delta.md) converts cumulative monotonic metrics to delta values, which is useful when scraping Prometheus-style metrics but exporting to backends that expect deltas.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Use neutral phrasing and keep compound adjective hyphenated.

Current wording trips style checks. Suggested rewrite:

Suggested edit
-The [cumulative to delta processor](../pipeline/processors/cumulative-to-delta.md) converts cumulative monotonic metrics to delta values, which is useful when scraping Prometheus-style metrics but exporting to backends that expect deltas.
+The [cumulative-to-delta processor](../pipeline/processors/cumulative-to-delta.md) converts cumulative monotonic metrics to delta values for deployments that scrape Prometheus-style metrics but export to backends that expect deltas.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
The [cumulative to delta processor](../pipeline/processors/cumulative-to-delta.md) converts cumulative monotonic metrics to delta values, which is useful when scraping Prometheus-style metrics but exporting to backends that expect deltas.
The [cumulative-to-delta processor](../pipeline/processors/cumulative-to-delta.md) converts cumulative monotonic metrics to delta values for deployments that scrape Prometheus-style metrics but export to backends that expect deltas.
🧰 Tools
🪛 GitHub Actions: Lint PRs

[warning] 120-120: vale (reviewdog) [FluentBit.Simplicity] Avoid words like "useful" that imply ease of use, because the user may find this action difficult.

🪛 GitHub Check: runner / vale

[warning] 120-120:
[vale] reported by reviewdog 🐶
[FluentBit.Simplicity] Avoid words like "useful" that imply ease of use, because the user may find this action difficult.

Raw Output:
{"message": "[FluentBit.Simplicity] Avoid words like "useful" that imply ease of use, because the user may find this action difficult.", "location": {"path": "installation/whats-new-in-fluent-bit-v5.0.md", "range": {"start": {"line": 120, "column": 148}}}, "severity": "WARNING"}

🪛 LanguageTool

[grammar] ~120-~120: Use a hyphen to join words.
Context: ...tive-to-delta processor The [cumulative to delta processor](../pipeline/processors/...

(QB_NEW_EN_HYPHEN)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@installation/whats-new-in-fluent-bit-v5.0.md` at line 120, Update the
sentence to use neutral phrasing and hyphenate the compound adjective: change
"The [cumulative to delta
processor](../pipeline/processors/cumulative-to-delta.md) converts cumulative
monotonic metrics to delta values, which is useful when scraping
Prometheus-style metrics but exporting to backends that expect deltas." to a
more neutral form that hyphenates the processor name (e.g., "The
[cumulative-to-delta processor](../pipeline/processors/cumulative-to-delta.md)
converts cumulative-monotonic metrics to delta values when scraping
Prometheus-style metrics for backends that expect deltas."), ensuring the
compound adjective(s) like "cumulative-to-delta" and "cumulative-monotonic" are
hyphenated and the tone is factual rather than evaluative.


### New topological data analysis processor

The [topological data analysis processor](../pipeline/processors/tda.md) adds a metrics processor for topology-based analysis workflows.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Replace flagged terms to satisfy lint rules.

Two wording tweaks should remove current warnings:

Suggested edit
-The [topological data analysis processor](../pipeline/processors/tda.md) adds a metrics processor for topology-based analysis workflows.
+The [topological data analysis processor](../pipeline/processors/tda.md) adds a metrics processor for shape-based analysis workflows.
-- [Amazon Kinesis Data Firehose](../pipeline/outputs/firehose.md): `snappy` added alongside existing codecs
-- [Amazon S3](../pipeline/outputs/s3.md): `snappy` added alongside existing codecs
+- [Amazon Kinesis Data Firehose](../pipeline/outputs/firehose.md): `snappy` added alongside existing compression algorithms
+- [Amazon S3](../pipeline/outputs/s3.md): `snappy` added alongside existing compression algorithms

Also applies to: 147-148

🧰 Tools
🪛 GitHub Actions: Lint PRs

[warning] 124-124: vale (reviewdog) [FluentBit.Terms] Use 'placement' instead of 'topology'.

🪛 GitHub Check: runner / vale

[warning] 124-124:
[vale] reported by reviewdog 🐶
[FluentBit.Terms] Use 'placement' instead of 'topology'.

Raw Output:
{"message": "[FluentBit.Terms] Use 'placement' instead of 'topology'.", "location": {"path": "installation/whats-new-in-fluent-bit-v5.0.md", "range": {"start": {"line": 124, "column": 103}}}, "severity": "INFO"}

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@installation/whats-new-in-fluent-bit-v5.0.md` at line 124, The sentence "The
[topological data analysis processor] adds a metrics processor for
topology-based analysis workflows." uses wording flagged by the linter; change
it to a neutral phrasing (for example, "The [topological data analysis
processor] adds a metrics processor to support topology-based analysis
workflows.") and apply the same neutral-wording change to the other similar
occurrence mentioned in the comment (the lines matching the same phrasing around
the second occurrence).

| Key | Description | Default |
|------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------|
| `scrape_interval` | The rate in seconds at which metrics are collected from the Windows host. | `5` |
| `scrape_interval` | The rate in seconds at which metrics are collected from the Windows host. | `1` |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Document the breaking change impact of the new default.

The default scrape_interval has been reduced from 5 to 1 second, resulting in 5x more frequent metric collection. This breaking change could significantly increase resource usage, metric volume, network bandwidth, and storage costs for existing deployments upgrading to v5.0.

Consider adding a note in this section (or referencing the upgrade guide) to alert users about this behavioral change and its potential performance impact.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pipeline/inputs/windows-exporter-metrics.md` at line 37, Update the
`scrape_interval` documentation to call out the breaking change: state that the
default was reduced from `5` to `1` second and that this increases scrape
frequency by 5x, potentially raising CPU, network, and storage usage; add a
short warning sentence next to the `scrape_interval` row and include a
link/reference to the upgrade guide for mitigation steps (throttling, increased
retention, or reverting to a higher interval). Ensure the text mentions the
`scrape_interval` setting name and suggests immediate checks for
high-cardinality metrics and resource planning when upgrading to v5.0.

|------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------|
| `scrape_interval` | The rate in seconds at which metrics are collected from the Windows host. | `5` |
| `scrape_interval` | The rate in seconds at which metrics are collected from the Windows host. | `1` |
| `enable_collector` | Enable one collector by name. This key can be specified multiple times to build an allow-list of collectors to run. | _none_ |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Clarify the relationship between enable_collector and metrics parameters.

Both enable_collector (new) and metrics (line 62) appear to control which collectors are enabled, but their relationship is unclear:

  • Can both be used together? If so, which takes precedence?
  • Is enable_collector meant to replace metrics, or do they serve different purposes?
  • Why have two mechanisms for the same goal?

Please document the interaction between these parameters and provide usage examples for enable_collector. The "Selecting specific collectors" section (line 357+) currently only demonstrates the metrics parameter.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pipeline/inputs/windows-exporter-metrics.md` at line 38, Update the docs to
clarify how the new enable_collector parameter interacts with the existing
metrics parameter: state whether both can be used together, which takes
precedence (e.g., explain precedence logic in the collector selection code
path), and whether enable_collector replaces or complements metrics; add concise
usage examples for enable_collector (single and multiple entries) and show
combined examples with metrics if supported; explicitly update the "Selecting
specific collectors" section to include enable_collector examples and a short
note referencing the enable_collector and metrics behavior so readers understand
when to use each.

| `collector.tcp.scrape_interval` | The rate in seconds at which `tcp` metrics are collected. Values greater than `0` override the global default. Otherwise, the global default is used. | `0` |
| `collector.cache.scrape_interval` | The rate in seconds at which `cache` metrics are collected. Values greater than `0` override the global default. Otherwise, the global default is used. | `0` |
| `metrics` | Specify which metrics are collected. Comma-separated list of collector names. | `"cpu,cpu_info,os,net,logical_disk,cs,cache,thermalzone,logon,system,service,memory,paging_file,process,tcp"` |
| `metrics` | Specify which metrics are collected. Comma-separated list of collector names. | `"cpu,cpu_info,os,net,logical_disk,cs,cache,thermalzone,logon,system,service,tcp"` |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Document the breaking change: memory, paging_file, and process removed from defaults.

The default metrics list no longer includes memory, paging_file, and process collectors. This is a breaking change for users upgrading from v4.x who relied on these metrics being collected automatically.

Impacts:

  • Memory metrics are commonly used for monitoring and will no longer be collected by default
  • Existing dashboards and alerts depending on these metrics will break unless users explicitly add them

Potential confusion:
Lines 57-59 document scrape_interval options for memory, paging_file, and process, but these collectors are no longer enabled by default. Consider adding a note indicating that these collectors must be explicitly enabled via the metrics or enable_collector parameter.

Recommendation:
Add an upgrade note or example showing how to restore the v4.x default behavior:

metrics: "cpu,cpu_info,os,net,logical_disk,cs,cache,thermalzone,logon,system,service,tcp,memory,paging_file,process"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pipeline/inputs/windows-exporter-metrics.md` at line 62, Update the
documentation to explicitly document the breaking change that the default
`metrics` list no longer includes `memory`, `paging_file`, and `process`; add a
clear upgrade note and example showing how to restore the old v4.x defaults by
appending those collectors to the `metrics` value (reference the `metrics` key
shown in the diff), and add a small clarifying sentence near the existing
`scrape_interval` discussion (where `memory`, `paging_file`, and `process` are
mentioned) stating these collectors are disabled by default and must be enabled
via `metrics` or `enable_collector`.

Comment on lines 13 to +14
| `region` | Set the service region. Allowed values: `US`, `JP`. | `US` |
| `Region` | Classic-mode spelling of `region`. Allowed values: `us`, `jp`. | `US` |
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Verify the Region/region parameter definitions in the Treasure Data output plugin source code

# Search for parameter definitions related to region in the TD output plugin
rg -i -C5 'region|Region' --type=c --type=h -g '*td*' -g '*treasure*'

# Also search in Go files if the plugin is written in Go
rg -i -C5 'region|Region' --type=go -g '*td*' -g '*treasure*'

Repository: fluent/fluent-bit-docs

Length of output: 2329


🏁 Script executed:

# Search for other output plugins with region or similar dual parameter documentation
rg 'region|Region' pipeline/outputs/*.md | head -50

# Look for patterns where classic/YAML parameters have different allowed values
rg -B2 -A2 'Classic-mode spelling' pipeline/outputs/*.md

Repository: fluent/fluent-bit-docs

Length of output: 6223


🏁 Script executed:

# Check if there are other examples of parameters documented twice (classic and YAML versions)
# with different allowed values in parameter tables
rg -B3 -A3 '\| `[A-Z].*` \|.*Classic' pipeline/outputs/*.md | head -100

Repository: fluent/fluent-bit-docs

Length of output: 946


Fix inconsistent allowed values for the Region parameter.

The documentation shows Region with allowed values us, jp (lowercase) but a default value of US (uppercase). The allowed values should match the default, or vice versa. Based on the pattern in other plugins (such as S3 and OpenSearch, where both lowercase and Title_Case aliases use identical values), the allowed values for Region should likely be US, JP to match both the default and the canonical region parameter.

Current documentation

| region | Set the service region. Allowed values: US, JP. | US |
| Region | Classic-mode spelling of region. Allowed values: us, jp. | US |

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@pipeline/outputs/treasure-data.md` around lines 13 - 14, Update the docs to
make allowed values for the classic-mode `Region` parameter consistent with the
canonical `region` parameter: change the `Region` allowed values from lowercase
`us`, `jp` to uppercase `US`, `JP` so they match the default `US` and the
`region` entry; ensure both `region` and `Region` rows list identical allowed
values (`US`, `JP`) and the same default `US`.

@edsiper edsiper merged commit 20eda88 into master Apr 9, 2026
7 of 8 checks passed
@edsiper edsiper deleted the updates-5.0 branch April 9, 2026 23:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant