Skip to content

docs(observability): add OpenTelemetry export guide and group log export destinations - #3063

Merged
ctauchen merged 12 commits into
tigera:mainfrom
tianfeng92:docs-otel-collector
Nov 6, 2026
Merged

ctauchen merged 12 commits into
tigera:mainfrom
tianfeng92:docs-otel-collector

Conversation

@tianfeng92

@tianfeng92 tianfeng92 commented Oct 7, 2026 •

Copy link
Copy Markdown
Contributor

Product Version(s):
Calico Enterprise 3.24 EP3 (next)

Issue:
EV-7414
EV-7418

Link to docs preview:

What

  • New page observability/opentelemetry: export flow, DNS, and audit logs and component metrics over OTLP through the operator-managed OpenTelemetry Collector (LogCollector spec.openTelemetry).
  • "Archive logs" moves from observability/elastic/ to observability/, next to the new page, and gets an OpenTelemetry tab. OpenTelemetry is added to the destination lists in the logs overview and the install options table.
  • Removes "only Splunk Enterprise is supported": the operator posts to any Splunk HTTP Event Collector endpoint, which Splunk Cloud Platform also provides.

Why
The openTelemetry API is in the operator reference with no user guide. Export destinations also sat under the Elasticsearch section although they don't depend on it.

Behavior change
/calico-enterprise/3.24/observability/elastic/archive-storage moves to /calico-enterprise/3.24/observability/archive-storage at EP3. A commented redirect is in static/_redirects; uncomment it when EP3 publishes.

Test plan

  • Built next locally on the first commit: no broken links. Later builds were killed by the OOM killer on my machine, so this PR's preview build is the full link check.

  • Checked every relative link, landing-page card, and sidebar entry in the changed files points to an existing page.

  • Reviewed the changed pages on a local dev server.

  • CNX-T6268 (1.0): on a 3.24 EP3 management and managed cluster pair, exported both clusters to an OTLP receiver with debug output. Neither logs (resource attribute service.name only) nor metrics (prometheus and prometheus_replica labels are the same in both clusters) carry a cluster identifier. The page now says so.

  • EV-7414: on the same managed cluster, with an exporter whose endpoint does not resolve, log-collector-otel stayed Available, otelcol_exporter_queue_size rose at once, otelcol_exporter_send_failed_* first appeared in Prometheus about 5 minutes later, and the Collector logged Exporting failed at info. Changing logs.types replaced all 5 calico-fluent-bit pods while the Collector pod kept running. The 60%/80% memory thresholds, the single Fluent Bit retry, and the Collector ServiceMonitor were checked in the operator source.

  • EV-7418: with the managed cluster on v3.23.2, kubectl apply --server-side rejected spec.openTelemetry and kubectl patch --type=merge warned and dropped it; after upgrading to EP3 the same config exported. Server dry-runs of an unknown LogCollector field on Kubernetes 1.36 showed kubectl apply and kubectl replace reject it too, and only kubectl patch warns. The page now states the minimum release and this behavior.

SME review:

  • An SME has approved this change.

DOCS review:

  • A member of the docs team has approved this change.

Merge checklist:

  • Deploy preview inspected wherever changes were made
  • Build completed successfully
  • Test have passed

Copilot AI balanced review requested due to automatic review settings October 7, 2026 21:18
@netlify

netlify Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for calico-docs-preview-next ready!

Name Link
🔨 Latest commit bd76770
🔍 Latest deploy log https://app.netlify.com/projects/calico-docs-preview-next/deploys/6aee04fa56e4464295a245ff
😎 Deploy Preview https://deploy-preview-3063--calico-docs-preview-next.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

Copilot AI left a comment

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.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@netlify

netlify Bot commented Oct 7, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview succeeded!

Built without sensitive environment variables

Name Link
🔨 Latest commit bd76770
🔍 Latest deploy log https://app.netlify.com/projects/tigera/deploys/6aee04faecf0861fc2838dbf
😎 Deploy Preview https://deploy-preview-3063--tigera.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 94 (🟢 up 5 from production)
Accessibility: 98 (no change from production)
Best Practices: 83 (🔴 down 9 from production)
SEO: 100 (no change from production)
PWA: -
View the detailed breakdown and full score reports
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@tianfeng92
tianfeng92 marked this pull request as ready for review October 7, 2026 21:25
@tianfeng92
tianfeng92 requested a review from a team as a code owner October 7, 2026 21:25
tianfeng92 and others added 7 commits October 27, 2026 09:32
…enTelemetry

Document the LogCollector openTelemetry section: exporting flow, DNS,
and audit logs and federated component metrics over OTLP, exporter auth
headers and per-exporter TLS, Collector resource overrides, and how to
turn export off.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…h logs section

The page covers metrics as well as logs and isn't tied to Elasticsearch,
so it belongs at the top level of observability.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…try to them

Move Archive logs out of observability/elastic/ next to the OpenTelemetry
guide, add OpenTelemetry to the destination lists and as a tab on the
Archive logs page, and add a commented redirect for 3.24 EP3.

Drop the "only Splunk Enterprise is supported" note: the operator posts to
any Splunk HTTP Event Collector endpoint, which Splunk Cloud Platform also
provides.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… identifier

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…sters, and restarts

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
tianfeng92 and others added 2 commits October 27, 2026 09:40
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rt and what older clusters do with the field

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@ctauchen ctauchen left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Sorry for the slow turnaround on this one, Tian. It sat with me far longer than it should have.

I've been through the new page against the operator API reference on the branch, and it holds up field by field. The test plan covers the two tickets well. Three small fixes and one question below.

The one thing that needs doing first is a rebase. The branch is 52 commits behind main and conflicts on the archive page. Main added a content_type: unclassified line to the old file in the meantime, so when you resolve the conflict, keep that line on the moved page. Everything else in the PR should rebase cleanly.

For more information, see [Configure Prometheus](../operations/monitor/prometheus/configure-prometheus.mdx).
- Your backend must accept OTLP over `https`, using either gRPC or HTTP.
The Collector never sends telemetry or credentials over plain HTTP.
- If an exporter's endpoint is a domain name rather than an IP address, your license must also include egress access control.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Say what happens without the feature: "Without that feature, the operator skips the egress rule for that exporter, and the Collector's network policy blocks the export."

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done. I also added a line saying where the user sees it: the operator sets the log-collector-otel TigeraStatus to DEGRADED and names the exporter.

- If an exporter's endpoint is a domain name rather than an IP address, your license must also include egress access control.
The operator restricts the Collector's outbound traffic to your exporters with a network policy, and it can only write a rule for a domain name when that feature is available.
Without that feature, the operator skips the egress rule for that exporter, and the Collector's network policy blocks the export.
The `log-collector-otel` TigeraStatus then shows `DEGRADED` and names the exporter.

tianfeng92 and others added 3 commits November 6, 2026 09:32
…ctor edit sentence, and OpenTelemetry page wording

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts:
#	calico-enterprise/observability/archive-storage.mdx
@ctauchen
ctauchen merged commit 0dfed2b into tigera:main Nov 6, 2026
11 checks passed
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.

3 participants