Skip to content

fix: Jaeger keeps at most 50 000 traces, and retention and sampling are listed in one table - #450

Merged
HardMax71 merged 1 commit into
mainfrom
max/380-retention-in-one-place
Oct 22, 2026
Merged

HardMax71 merged 1 commit into
mainfrom
max/380-retention-in-one-place

Conversation

@HardMax71

@HardMax71 HardMax71 commented Oct 22, 2026 •

Copy link
Copy Markdown
Owner

Summary

Closes #380. #430 already removed the four admin monitoring fields and the unused Settings fields, and #381 moved the e2e settings tests off them. What's left is Jaeger: it keeps traces in memory with its built-in cap of 100 000. Prod keeps about 12 600 traces a day at roughly 2.3 KB each, so the cap needs about 260 MiB against a 256m limit, and Jaeger would be OOM-killed after about a week and lose every trace.

Changes

Jaeger gets --set=extensions.jaeger_storage.backends.some_storage.memory.max_traces=50000 on top of its built-in config: about 4 days in roughly 145 MiB. deployment.md gets one Retention and sampling table pointing at all four values: VictoriaMetrics, Loki, Jaeger and the collector's tail sampling. Small fix found while verifying #449: the OTel SDK's Transient error ... retrying line, printed without a level when a release restarts the collector, now counts as a warning, so it no longer sends an error-lines mail.

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Refactoring (no functional changes)
  • CI/CD or tooling changes

Test Plan

  • Backend unit tests pass (cd backend && uv run pytest tests/unit)
  • Frontend unit tests pass (cd frontend && npm run test)
  • Backend E2E tests pass (docker compose exec -T backend sh -c 'uv sync --group test --no-dev --frozen --no-install-project --no-build && pytest tests/e2e')
  • Frontend E2E tests pass (cd frontend && npm run test:e2e)
  • API spec and client regenerated if routes or schemas changed (./deploy.sh openapi, then ./deploy.sh types), never edited by hand
  • Manual testing performed

Validation: jaeger:2.20.0 starts with the flag and refuses a misspelled key, so the value applies. The retry line goes from error to warning through the collector, and the 164 earlier sample lines keep their levels.

Checklist

  • My code follows the project's style guidelines
  • I have run pre-commit run --all-files and all checks pass
  • I have added tests that prove my fix/feature works
  • I have updated documentation if needed
  • My changes don't introduce new warnings

Summary by cubic

Caps Jaeger's in-memory trace storage at 50 000 traces, down from the built-in 100 000, so prod Jaeger no longer gets OOM-killed after about a week and loses every trace. Consolidates the retention and sampling settings for VictoriaMetrics, Loki, Jaeger, and the collector's tail sampling into one "Retention and sampling" table in deployment.md and links it from tracing.md.

Bug Fixes

  • The OTel SDK's Transient error ... retrying line, printed without a level, now counts as a warning, so a release restart no longer triggers an error-lines mail.

Written for commit ab737b1. Summary will update on new commits.

View guided diff Turn on auto-fix

@github-actions github-actions Bot added documentation Improvements or additions to documentation area: observability Metrics, dashboards, alerts, logs, traces, OTel collector area: deploy Compose, deploy.sh, images, release workflow, production host labels Oct 22, 2026
@HardMax71
HardMax71 enabled auto-merge (squash) October 22, 2026 16:56
@coderabbitai

coderabbitai Bot commented Oct 22, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 881482c3-90b0-4761-a312-58585f344ed6
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@sonarqubecloud

Copy link
Copy Markdown

@codecov-commenter

codecov-commenter commented Oct 22, 2026 •

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.
❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Flag Coverage Δ
backend-e2e 82.04% <ø> (-0.10%) ⬇️
backend-unit 77.87% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Components Coverage Δ
Backend 94.73% <ø> (ø)
Frontend 92.19% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@HardMax71
HardMax71 merged commit 9e791b6 into main Oct 22, 2026
22 checks passed
@HardMax71
HardMax71 deleted the max/380-retention-in-one-place branch October 22, 2026 17:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: deploy Compose, deploy.sh, images, release workflow, production host area: observability Metrics, dashboards, alerts, logs, traces, OTel collector documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feature]: retention and sampling of metrics, logs and traces belong to the observability containers, not the backend's settings

2 participants