Uh oh!
There was an error while loading. Please reload this page.
docs: cover RateLimitPolicy, ttft_ms, runtime cooldown, on_all_filtered - #281
Conversation
…own / on_all_filtered (#268) Bring customer docs back in line with main after the post-#249 feature PRs: - rate-limits.md: rewrite around the three enforced layers (ApiKey inline, Model inline, RateLimitPolicy entities). Add scope/window reference, window-mapping table, two example policies, and the etcd-only provisioning path. - api-keys.md: add team_id / owner_id as bucket identifiers and drop the stale "ApiKey-only enforcement" framing. - models.md: document the cooldown config block (default_seconds, max_seconds, honor_retry_after, trigger_statuses, trigger_on_timeout, trigger_on_transport) alongside background_model_check, and surface the runtime-status linkage. - routing-and-failover.md: rewrite the runtime-filter description as a 4-step loop and document on_all_filtered (fail vs original_order). - errors-and-retries.md / headers-and-error-codes.md: add the 503 all_candidates_unavailable error, distinct from provider_unavailable. - usage-events-and-billing.md / metrics-and-logs.md: document the new ttft_ms field and the streaming-only contract. - resource-schemas.md / glossary.md / core-concepts.md / feature-matrix.md / admin-api-reference.md: add RateLimitPolicy to the resource maps, glossary, core concepts, feature matrix, and call out that it has no admin CRUD route today.
ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Free Run ID: 📒 Files selected for processing (4)
✅ Files skipped from review due to trivial changes (4)
📝 WalkthroughWalkthroughDocumentation-only updates: introduce ChangesRate limiting, routing, model behavior, and observability
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Note 🎁 Summarized by CodeRabbit FreeYour organization has reached its limit of developer seats under the Pro Plan. For new users, CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please add seats to your subscription by visiting https://app.coderabbit.ai/login.If you believe this is a mistake and have available seats, please assign one to the pull request author through the subscription management page using the link above. Comment |
- rate-limits.md: out-of-enum windows are rejected at etcd load by the JSON Schema, not coerced into an unrestricted policy - models.md: clarify that effective cooldown defaults come from accessor fallbacks, not from schema-level field defaults (every field is null until set) - routing-and-failover.md: detangle the cooldown-fallback step — drop the tautological "non-unhealthy cooldown target" phrasing and describe the actual condition (any cooldown candidate exists, then dispatch to all non-unhealthy targets) - usage-events-and-billing.md: ttft_ms is set on the first chunk carrying generated output, which includes tool-call deltas, not just text content
Uh oh!
There was an error while loading. Please reload this page.
Summary
The customer docs hadn't picked up several feature PRs that landed since the docs rebuild in #249. This PR closes those gaps:
api_key/model/team/member), window (second/minute/hour), andmax_requests/max_tokens. Loaded from etcd directly (no admin CRUD).cooldownconfig block androuting.on_all_filteredpolicy were undocumented; onlybackground_model_checkhad partial coverage.UsageEvent, streaming-only.#278 (etcd endpoint derivation on subsequent boot) is a pure internal fix with no operator-visible behavior change, so it's not included here.
Changes
docs/configuration/rate-limits.mddocs/configuration/api-keys.mdteam_id/owner_idbucket fields; drop stale "ApiKey-only enforcement" framingdocs/configuration/models.mdcooldownconfig block (defaults: 30s / 600s cap /[401, 408, 429, 500, 502, 503, 504]triggers / honorRetry-After)docs/configuration/routing-and-failover.mdon_all_filtered(failvsoriginal_order)docs/integration/errors-and-retries.md503 all_candidates_unavailablerow, distinct fromprovider_unavailabledocs/reference/headers-and-error-codes.mdall_candidates_unavailableto the error-type list and 503 status notedocs/cloud/usage-events-and-billing.mdlatency_msandttft_msdocs/operations/metrics-and-logs.mddocs/reference/resource-schemas.mdRateLimitPolicyto the resource map and field-shape notedocs/reference/admin-api-reference.mdRateLimitPolicydocs/reference/glossary.mdRateLimitPolicytermdocs/overview/core-concepts.mdteam_id/owner_idto ApiKey; new "Rate Limit Policy" concept sectiondocs/overview/feature-matrix.mdTest plan
models.md#cooldownrouting-and-failover.md#all-targets-filtered-policyrouting-and-failover.md#runtime-filteringrate-limits.md#rate-limit-policy-entitiesrate-limits.md#troubleshootingcore-concepts.md#rate-limit-policyadmin-api-reference.md#runtime-model-statuscrates/aisix-core/src/models/schema.rsand the structs incrates/aisix-core/src/models/{rate_limit_policy,model,routing}.rs503 all_candidates_unavailabletext matches whatcrates/aisix-proxy/src/error.rsemitsSummary by CodeRabbit