Update log collector docs for the fluentd to fluent-bit migration (EV-6164)#2815
Update log collector docs for the fluentd to fluent-bit migration (EV-6164)#2815hjiawei wants to merge 3 commits into
Conversation
✅ Deploy Preview for calico-docs-preview-next ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview succeeded!Built without sensitive environment variables
To edit notification comments on pull requests, go to your Netlify project configuration. |
There was a problem hiding this comment.
Pull request overview
Updates the next-version Calico Enterprise and Calico Cloud documentation to reflect the migration from the Fluentd log collector to Fluent Bit (calico-fluent-bit in calico-system), including updated filtering configuration examples, monitoring/metrics guidance, and component naming/namespace changes.
Changes:
- Replace Fluentd-specific resource names, namespaces, and architecture references with Fluent Bit equivalents across Enterprise and Cloud docs.
- Rewrite flow/DNS log filtering docs from Fluentd
<filter>syntax to Fluent Bit YAML filter lists, including the ConfigMap rename tofluent-bit-filtersand upgrade notes. - Update Prometheus monitoring docs and alert examples to Fluent Bit metrics and ServiceMonitor manifests, including new/different alert signals.
Reviewed changes
Copilot reviewed 27 out of 27 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| calico-enterprise/reference/component-resources/configure-resources.mdx | Updates LogCollector resource-override examples and verification commands to Fluent Bit. |
| calico-enterprise/reference/clis/calicoctl/cluster/diags.mdx | Updates diags output example to include calico-fluent-bit pods in calico-system. |
| calico-enterprise/reference/architecture/overview.mdx | Replaces Fluentd architecture section/link with Fluent Bit. |
| calico-enterprise/operations/monitor/prometheus/byo-prometheus.mdx | Updates BYO Prometheus scraping instructions for Fluent Bit and new ServiceMonitor reference. |
| calico-enterprise/operations/monitor/metrics/elasticsearch-and-fluentd-metrics.mdx | Retitles and updates alert examples from Fluentd metrics to Fluent Bit metrics. |
| calico-enterprise/operations/license-options.mdx | Updates license-expiration behavior text to reference Fluent Bit collector scale-down. |
| calico-enterprise/operations/comms/index.mdx | Updates certificates/services table entries to Fluent Bit-related names/namespaces. |
| calico-enterprise/observability/review-unused-network-policies.mdx | Updates example output to Fluent Bit-related policy naming. |
| calico-enterprise/observability/packetcapture.mdx | Updates packet capture retrieval steps to use calico-node pods in calico-system. |
| calico-enterprise/observability/kube-audit.mdx | Updates wording to reflect audit logs being consumed by Fluent Bit collector. |
| calico-enterprise/observability/elastic/overview.mdx | Updates Elastic logging overview to reference Fluent Bit installation/behavior. |
| calico-enterprise/observability/elastic/flow/filtering.mdx | Rewrites flow log filtering from Fluentd to Fluent Bit YAML list format; renames filters ConfigMap. |
| calico-enterprise/observability/elastic/dns/filtering-dns.mdx | Rewrites DNS log filtering docs to Fluent Bit YAML list format; renames filters ConfigMap and adds upgrade note. |
| calico-enterprise/_includes/content/_default-install.mdx | Updates default install table to mention Fluent Bit for log collection. |
| calico-enterprise/_includes/components/ReqsSys.js | Updates system requirements table wording for log storage. |
| calico-cloud/reference/component-resources/configure-resources.mdx | Updates LogCollector resource-override examples and verification commands to Fluent Bit. |
| calico-cloud/operations/monitor/prometheus/byo-prometheus.mdx | Updates BYO Prometheus scraping instructions for Fluent Bit and new ServiceMonitor reference. |
| calico-cloud/operations/monitor/metrics/elasticsearch-and-fluentd-metrics.mdx | Retitles and updates alert examples from Fluentd metrics to Fluent Bit metrics. |
| calico-cloud/operations/comms/index.mdx | Updates certificates/services table entries to Fluent Bit-related names/namespaces. |
| calico-cloud/observability/packetcapture.mdx | Updates packet capture retrieval steps to use calico-node pods in calico-system. |
| calico-cloud/observability/kube-audit.mdx | Updates wording to reflect audit logs being consumed by Fluent Bit collector. |
| calico-cloud/observability/elastic/overview.mdx | Updates Elastic logging overview to reference Fluent Bit installation/behavior. |
| calico-cloud/observability/elastic/flow/filtering.mdx | Rewrites flow log filtering from Fluentd to Fluent Bit YAML list format; renames filters ConfigMap. |
| calico-cloud/observability/elastic/dns/filtering-dns.mdx | Rewrites DNS log filtering docs to Fluent Bit YAML list format; renames filters ConfigMap and adds upgrade note. |
| calico-cloud/get-started/operator-checklist.mdx | Updates operator checklist steps/output to Fluent Bit pods/namespace and per-node component list. |
| calico-cloud/get-started/cc-arch-diagram.mdx | Updates Cloud architecture diagram table entries (component name + metrics port) for Fluent Bit. |
| calico-cloud/_includes/components/ReqsSys.js | Updates system requirements table wording for log storage. |
5e860df to
f923e00
Compare
af96fd7 to
9c9143a
Compare
…-6164) Calico Enterprise removes the fluentd log collector in favour of Fluent Bit (calico-fluent-bit in calico-system; tigera/operator#4910). Update the next-version Calico Enterprise and Calico Cloud docs to match: - Rewrite "Filter flow logs" / "Filter DNS logs": examples move from fluentd <filter> syntax to Fluent Bit YAML filter lists, the ConfigMap is renamed fluentd-filters -> fluent-bit-filters, and an upgrade note explains that old fluentd-syntax filters are not translated (the operator raises a tigera status warning naming the offending key). - Metrics pages: Fluent Bit's built-in Prometheus endpoint (port 2020, /api/v2/metrics/prometheus, fluentbit_* metrics); the fluentd buffer-space alert becomes fluentbit_output_chunk_available_capacity_percent plus a dropped-chunks alert on fluentbit_output_retries_failed_total. - BYO Prometheus: the fluent-bit tab needs no client TLS (plain HTTP behind the allow-calico-fluent-bit policy); ServiceMonitor sample is fluent-bit-metrics-service-monitor.yaml. - Sweep of remaining pages: tigera-fluentd namespace -> calico-system, fluentd-node -> calico-fluent-bit (labels, secrets, packet capture retrieval via calico-node, diags output, resource override examples now use calicoFluentBitDaemonSet, architecture/overview descriptions, cc-arch-diagram ports, operator checklist). Not touched: versioned docs, releases.json (historical), and the generated installation API reference (regenerates from the operator release). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Document the fluentd -> Fluent Bit migration (tigera/operator#4910) in the next-version Calico Enterprise release notes: - New feature entry for the Fluent Bit log collector. - Deprecated: the fluentdDaemonSet override, superseded by calicoFluentBitDaemonSet. - Upgrade notes with the breaking changes: tigera-fluentd namespace/resource rename to calico-system, fluentd-filters -> fluent-bit-filters ConfigMap, fluentbit_* Prometheus metrics on port 2020, and the new S3 archive key layout, plus the non-breaking moves to filesystem buffering and the larger syslog packet-size default. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The operator now folds a user-supplied CA from a splunk-ca ConfigMap into the log collector's trusted bundle, the same way syslog-ca works for syslog, so Splunk HEC endpoints with self-signed certificates can be used. Add the step to the Splunk archiving instructions and a release-note line. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
9c9143a to
c43021e
Compare
tianfeng92
left a comment
There was a problem hiding this comment.
Went through all of the command changes and verified them. LGTM!
Left some neat.
| | | NAME | AVAILABLE | PROGRESSING | DEGRADED | SINCE | | ||
| | --- | ----------------------------- | --------- | ----------- | -------- | ----- | | ||
| | 1 | apiserver | TRUE | FALSE | FALSE | 10m | | ||
| | 1 | `apiserver` | TRUE | FALSE | FALSE | 10m | |
There was a problem hiding this comment.
Any reason to add ` to quote here? Seems to be redundant format.
| $[prodname] packet capture is implemented in a Kubernetes-native way so you can troubleshoot service/application connectivity issues and performance issues. You can start a packet capture in the web console Service Graph, or using the CLI. | ||
|
|
||
| Packet capture integration with **Service Graph** makes it very easy to capture traffic for a specific namespace, service, replica set, daemonset, statefulset, or pod. Just right-click on an endpoint to start or schedule a capture, and then download capture files to your favorite visualization tool like Wireshark. | ||
| Packet capture integration with **Service Graph** makes it very easy to capture traffic for a specific namespace, service, replica set, DaemonSet, StatefulSet, or pod. Just right-click on an endpoint to start or schedule a capture, and then download capture files to your favorite visualization tool like Wireshark. |
There was a problem hiding this comment.
| Packet capture integration with **Service Graph** makes it very easy to capture traffic for a specific namespace, service, replica set, DaemonSet, StatefulSet, or pod. Just right-click on an endpoint to start or schedule a capture, and then download capture files to your favorite visualization tool like Wireshark. | |
| Packet capture integration with **Service Graph** makes it very easy to capture traffic for a specific namespace, service, ReplicaSet, DaemonSet, StatefulSet, or pod. Just right-click on an endpoint to start or schedule a capture, and then download capture files to your favorite visualization tool like Wireshark. |
| ### Packet capture in Service Graph | ||
|
|
||
| 1. Select an endpoint from the service graph (for example, namespace, service, replica set, daemonset, statefulset, or pod), right-click, and select **Initiate packet capture**. | ||
| 1. Select an endpoint from the service graph (for example, namespace, service, replica set, DaemonSet, StatefulSet, or pod), right-click, and select **Initiate packet capture**. |
There was a problem hiding this comment.
| 1. Select an endpoint from the service graph (for example, namespace, service, replica set, DaemonSet, StatefulSet, or pod), right-click, and select **Initiate packet capture**. | |
| 1. Select an endpoint from the service graph (for example, namespace, service, ReplicaSet, DaemonSet, StatefulSet, or pod), right-click, and select **Initiate packet capture**. |
| $[prodname] packet capture is implemented in a Kubernetes-native way so you can troubleshoot service/application connectivity issues and performance issues. You can start a packet capture in the web console Service Graph, or using the CLI. | ||
|
|
||
| Packet capture integration with **Service Graph** makes it very easy to capture traffic for a specific namespace, service, replica set, daemonset, statefulset, or pod. Just right-click on an endpoint to start or schedule a capture, and then download capture files to your favorite visualization tool like Wireshark. | ||
| Packet capture integration with **Service Graph** makes it very easy to capture traffic for a specific namespace, service, replica set, DaemonSet, StatefulSet, or pod. Just right-click on an endpoint to start or schedule a capture, and then download capture files to your favorite visualization tool like Wireshark. |
There was a problem hiding this comment.
| Packet capture integration with **Service Graph** makes it very easy to capture traffic for a specific namespace, service, replica set, DaemonSet, StatefulSet, or pod. Just right-click on an endpoint to start or schedule a capture, and then download capture files to your favorite visualization tool like Wireshark. | |
| Packet capture integration with **Service Graph** makes it very easy to capture traffic for a specific namespace, service, ReplicaSet, DaemonSet, StatefulSet, or pod. Just right-click on an endpoint to start or schedule a capture, and then download capture files to your favorite visualization tool like Wireshark. |
| ### Packet capture in Service Graph | ||
|
|
||
| 1. Select an endpoint from the service graph (for example, namespace, service, replica set, daemonset, statefulset, or pod), right-click, and select **Initiate packet capture**. | ||
| 1. Select an endpoint from the service graph (for example, namespace, service, replica set, DaemonSet, StatefulSet, or pod), right-click, and select **Initiate packet capture**. |
There was a problem hiding this comment.
| 1. Select an endpoint from the service graph (for example, namespace, service, replica set, DaemonSet, StatefulSet, or pod), right-click, and select **Initiate packet capture**. | |
| 1. Select an endpoint from the service graph (for example, namespace, service, ReplicaSet, DaemonSet, StatefulSet, or pod), right-click, and select **Initiate packet capture**. |
| * *Breaking change:* S3 archive object keys change from Fluentd's flat layout (`<bucketPath>/flows20260101_<n>.gz`) to directory-style keys (`<bucketPath>/flows/20260101_<uuid>.gz`), and non-cluster-host flows are archived under a separate `non_cluster_flows/` directory. Update downstream tooling that relies on the old key patterns. | ||
| * Log buffering moves from Fluentd's in-memory buffers to Fluent Bit filesystem storage under `/var/log/calico/calico-fluent-bit/` on each node. Buffered-but-unsent chunks now survive pod restarts, and node disk usage grows accordingly (capped per output by `storage.total_limit_size`). | ||
| * Syslog forwarding no longer applies Fluentd's 1024-byte packet-size default. When `spec.additionalStores.syslog.packetSize` is unset, Fluent Bit uses a 2048-byte default for the RFC5424 messages the operator renders, which reduces truncation of longer log lines. Set `packetSize` to cap the message size explicitly; messages larger than the cap are truncated. | ||
|
|
There was a problem hiding this comment.
Possibly missing following breaking changes:
- Windows DaemonSet rename — tigera-fluentd-windows → calico-fluent-bit-windows. The rename bullet only names the Linux resources; Windows users grep/monitor by the old name too.
- Metrics service rename — fluentd-metrics/fluentd-metrics-windows → single calico-fluent-bit-metrics service with label k8s-app: calico-fluent-bit. Anyone with a custom ServiceMonitor/scrape config needs the new service name and label, not just new metric names/port (the current bullet only says dashboards/alerts).
- EKS log forwarder init container removed — old deployment had an eks-log-forwarder-startup init container; the new one has only the main container. Resource overrides in eksLogForwarderDeployment targeting the init container name silently stop applying. Niche (EKS + overrides), but it's a silent behavior change.

Description
Calico Enterprise replaces the fluentd log collector with Fluent Bit (
calico-fluent-bitincalico-system; tigera/operator#4910, tigera/calico-private#12538). This updates the next-version Calico Enterprise and Calico Cloud docs to match:<filter>syntax to Fluent Bit YAML filter lists; the user-filters ConfigMap is renamedfluentd-filters→fluent-bit-filters; an upgrade note explains that old fluentd-syntax filters are not read or translated and that the operator raises atigera statuswarning naming any key that fails to parse.fluentbit_output_chunk_available_capacity_percent, plus a new dropped-chunks alert onfluentbit_output_retries_failed_total. (File path kept for URL stability — happy to rename + add a redirect if preferred.)/api/v2/metrics/prometheus, guarded by theallow-calico-fluent-bitpolicy) and points at the newfluent-bit-metrics-service-monitor.yamlsample.tigera-fluentd→calico-system, daemonset/label/secret renames, packet capture retrieval via the calico-node pod,calicoFluentBitDaemonSetresource-override examples, diags output, architecture overviews, Calico Cloud arch diagram ports and operator checklist.Not touched: versioned docs,
releases.json(historical), and the generated installation API reference (_api.mdxregenerates from the operator release — until then the#fluentbitdaemonsetanchor is dangling, which the build ignores peronBrokenAnchors: ignore).Validation:
yarn build-nextreports exactly the same three broken links asmain— this PR introduces no new ones. Every resource/label/metric name was verified against the operator branch (hjiawei/operator:fluent-bit-deploy) or upstream Fluent Bit docs.Should land together with the calico-private/operator PRs for the release that ships the migration.
🤖 Generated with Claude Code