Skip to content

Multitenancy support: basic CPU/Memory limits, tenant identifiers, limiter extensions#3583

Open
jmacd wants to merge 7 commits into
open-telemetry:mainfrom
jmacd:jmacd/tenancy2
Open

Multitenancy support: basic CPU/Memory limits, tenant identifiers, limiter extensions#3583
jmacd wants to merge 7 commits into
open-telemetry:mainfrom
jmacd:jmacd/tenancy2

Conversation

@jmacd

@jmacd jmacd commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Change Summary

Replaces #3389, incorporating the feedback.

This is better aligned with dataflow engine Policies framework.

Major renaming:

  • tenant_token instead of tenant_descriptor
  • extractors instead of actions

The existing document was split into two parts, the -tenants.md and -limiters.md documents.

A new document on memory management policies is added, and a new overview links to the other three.

What issue does this PR close?

jmacd and others added 6 commits June 30, 2026 15:15
Copyedits and clarifications:
- add Scope, Engine tenancy support, and Cardinality limits sections
- add a paragraph on limiter-bucket condition evaluation
- fix "over cardinality" typo and "share a pipeline" -> "share pipeline"

Rename agent-multitenancy-design.md -> multitenancy-design.md and
agent-multitenancy-diagram.svg -> multitenancy-diagram.svg, updating
the diagram embed reference.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@jmacd
jmacd requested a review from a team as a code owner July 24, 2026 22:35
Copilot AI review requested due to automatic review settings July 24, 2026 22:35
@github-actions github-actions Bot added documentation Improvements or additions to documentation lang:rust Pull requests that update Rust code size/XL labels Jul 24, 2026
@opentelemetry-pr-dashboard

opentelemetry-pr-dashboard Bot commented Jul 24, 2026

Copy link
Copy Markdown

Pull request dashboard status

Status last refreshed: 2026-07-25 22:03:13 UTC.

  • Waiting on: Author
  • Next step: Investigate required status check failures.

This automated status or its linked feedback items may be incorrect. If something looks wrong, please report it with the result you expected. If you believe this pull request is incorrectly routed as waiting on the author, comment /dashboard route:reviewers to route it from waiting on the author to waiting on reviewers. If the last refreshed time above predates your latest reply or push, the dashboard hasn't processed it yet.

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.

Pull request overview

Adds a set of design documents for multitenancy in the OTAP dataflow engine, covering tenant identification (“tenant tokens”), limiter policy configuration, and memory-management concepts, plus supporting diagrams.

Changes:

  • Introduces a multitenancy overview doc and three focused design docs: tenant identity, limiter policies, and memory management.
  • Adds two SVG diagrams to illustrate tenant-token request flow and regulated memory accounting.
  • Documents example YAML configuration patterns for CPU/memory policies and conditional tenant-based limiter behavior.

Reviewed changes

Copilot reviewed 4 out of 6 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
rust/otap-dataflow/docs/multitenancy-tenant.md New design doc for tenant token extraction, propagation, and condition lookup model.
rust/otap-dataflow/docs/multitenancy-tenant-diagram.svg Diagram for request-context/token resolution and limiter flow.
rust/otap-dataflow/docs/multitenancy-overview.md New overview doc linking to the detailed multitenancy design docs; includes CPU policy examples.
rust/otap-dataflow/docs/multitenancy-memory.md New design doc for memory regulation concepts and example configuration.
rust/otap-dataflow/docs/multitenancy-memory-diagram.svg Diagram illustrating regulated vs unaccounted memory and configured limits.
rust/otap-dataflow/docs/multitenancy-limiters.md New design doc for rate/resource limiter policy schema, tenancy conditions, and operational behavior.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread rust/otap-dataflow/docs/multitenancy-tenant.md Outdated
Comment thread rust/otap-dataflow/docs/multitenancy-tenant.md Outdated
Comment thread rust/otap-dataflow/docs/multitenancy-memory.md Outdated
Comment thread rust/otap-dataflow/docs/multitenancy-overview.md Outdated
Comment thread rust/otap-dataflow/docs/multitenancy-overview.md Outdated
Comment thread rust/otap-dataflow/docs/multitenancy-limiters.md Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@codecov

codecov Bot commented Jul 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 86.75%. Comparing base (474998a) to head (1a04763).
⚠️ Report is 97 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3583      +/-   ##
==========================================
+ Coverage   86.23%   86.75%   +0.51%     
==========================================
  Files         739      784      +45     
  Lines      292355   319867   +27512     
==========================================
+ Hits       252116   277502   +25386     
- Misses      39715    41841    +2126     
  Partials      524      524              
Components Coverage Δ
otap-dataflow 87.79% <ø> (+0.50%) ⬆️
query_engine 89.57% <ø> (-0.01%) ⬇️
otel-arrow-go 52.45% <ø> (ø)
quiver 92.20% <ø> (+0.01%) ⬆️
🚀 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation lang:rust Pull requests that update Rust code size/XL

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

Design and implement logical retained-work memory budgeting Pipeline physical resource limits

2 participants