docs: fix 1.6 cost catalog, unpriced cost field, and OTLP attribute names - #1163
Merged
Merged
Conversation
…ames - Describe the built-in model catalog (c3f27907) and how catalog sources combine: metadata catalogs compete as the base, newest wins, others are ignored; catalogs without metadata are overlays. - agw.ai.usage.cost.total is omitted, not 0, for unpriced requests (1.5 and 1.6). - Bedrock pages: the built-in catalog already tags Bedrock models. - OTLP access logs on main use semconv names; remove: [http.host] no longer matches, so the examples use server.address. Latest keeps the 1.5 names. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Art Berger <art.berger@solo.io>
Request spans on main use the OTel semconv HTTP names (#3182), so the old remove list (src.addr, http.version) and the TraceQL queries on span.http.path/span.http.status match nothing. Gate the attribute table, remove examples, and TraceQL rows; latest keeps the 1.5 names and gains the url.scheme and network.protocol.version rows it already emits. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Art Berger <art.berger@solo.io>
#3492 enabled AgentgatewayModel by default on main, so models/about.md no longer says it is disabled, and serve.md verifies the feature instead of running a helm upgrade. A virtual model whose target is on another router fails with 404 virtual_model_target_not_found (tested on the nightly), not virtual_model_not_resolved. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Art Berger <art.berger@solo.io>
artberger
force-pushed
the
adb-16-followups
branch
from
October 1, 2026 14:19
a9409db to
c09dd7e
Compare
artberger
marked this pull request as ready for review
October 1, 2026 14:22
kristin-kronstain-brown
approved these changes
Oct 1, 2026
|
|
||
| > [!WARNING] | ||
| > The `{{< reuse "agw-docs/snippets/agentgatewaymodel.md" >}}` API is experimental and disabled by default. The `v1alpha1` API is subject to change in a future release. To enable it, set the `agentgatewayModels.enabled=true` Helm value on the {{< reuse "agw-docs/snippets/agentgateway.md" >}} control plane. | ||
| > The `{{< reuse "agw-docs/snippets/agentgatewaymodel.md" >}}` API is enabled by default. It is a `v1alpha1` API, so it is subject to change in a future release. To turn it off, set the `agentgatewayModels.enabled=false` Helm value on the {{< reuse "agw-docs/snippets/agentgateway.md" >}} control plane. |
Collaborator
There was a problem hiding this comment.
The "experimental" wording now disagrees between pages. about.md drops "experimental", but the callouts in alias.md, failover.md, content-routing.md and load-balancing.md still use it.
Collaborator
Author
There was a problem hiding this comment.
Good catch. Fixed in 06a3d8a: the "experimental" word in the four Model-centric alternative callouts (alias.md, failover.md, content-routing.md, load-balancing.md) is now version-gated. Main drops it to match about.md, and latest (1.5) keeps it, because the API is still experimental and off by default there. Checked the built pages for latest and main.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Art Berger <art.berger@solo.io>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-ups found while reviewing and testing the 1.6 pr-tracker PRs. Each fix was tested live or checked in code, as listed under each item.
Built-in model catalog (main)
Since agentgateway/agentgateway#3191 (
c3f27907), the proxy always loads a built-in catalog (catalog/model-catalog.json). With no catalog configured,gpt-4o-miniwas priced on both standalone and Kubernetes (nightly), and the built-in catalog tags 234aws.bedrockmodels asruntimeormantle.cost-catalog-default.md, which is still correct for 1.4.x and 1.5.x and is also used by the archived1.4.xdir, where a version gate would render empty.NoCatalogstatus (main): a running proxy cannot report it, because the built-in catalog always loads.How catalog sources combine (new section, main)
This behavior is new in 1.6 (
from_catalogsinllm/catalog/mod.rs). I tested it in standalone:metadata.generatedAtis a candidate base. That includes the built-in catalog, everyagctl catalog importoutput, and the UI Refresh base costs button. Only the newest base is used.metadataare overlays, applied in order.The old "merged in order, later wins" sentence is kept for 1.5 only.
Important
Please have the dev team confirm that silently ignoring an older imported catalog is intended. If it isn't, the caution in the new section should change to point to an issue.
Unpriced requests omit the cost field (1.5 and 1.6)
When a request can't be priced, the access log leaves out
agw.ai.usage.cost.total. It is never0. I tested this on v1.5.0 and on main (missing model and tags-only entry), andlog.rsis the same in both versions. Fixed on K8s latest and main costs.md, and on the shared standalone cost asset.OTLP access-log attribute names (main)
Since agentgateway/agentgateway#3182, OTLP records use the OpenTelemetry semantic-convention names (
server.address,url.path,http.response.status_code, and so on). Stdout keepshttp.host,http.pathandhttp.status. The OTLP remove list matches the new names, soremove: [http.host]now removes nothing and gives no error. I tested this on standalone and K8s (nightly).export.md: the filter example output, the attributes YAML (remove: server.address) and its example output now have a version-gated pair. Latest keeps the 1.5 content.export.md: the example removesserver.address, with a short explanation.Trace span attribute names (main)
Request spans on main use the same semantic-convention names. Tested in docker standalone (
dd7a4b32vs v1.5.0) and on K8s nightly (d078aa12):client.address(IP only),http.request.method,server.address,url.path(without the query),network.protocol.version,http.response.status_code, and newurl.scheme,server.port,url.query.src.addr,http.method,http.host,http.path(with the query),http.version,http.status, and alsourl.schemeandnetwork.protocol.version, which the reference didn't list.remove: [src.addr, http.version]on main: removes nothing and gives no error, in both modes.remove: [client.address, network.protocol.version]works.http.*names on both versions (httpproxy.rs), so the policy child span table is unchanged.Changes:
traces/attribute-reference.md: gated pair of the core HTTP table. Latest adds the two missing rows. Main adds a short note on which names apply where.traces/setup.md: the TraceQL queries now usespan.url.pathandspan.http.response.status_codeon main, and theremoveexample is a gated pair.traces/setup.md: theremoveexample uses the new names.AgentgatewayModel default and virtual model error code (K8s main)
0dd07740) changed theagentgatewayModels.enableddefault totrue. On theagw-reviewnightly install, which has no override, the controller envAGW_ENABLE_AGENTGATEWAY_MODELSistrue.models/about.md: the warning and the known limitation no longer say "disabled by default" or "experimental". They say the API isv1alpha1, and the warning explains how to turn it off.models/serve.md: "Enable the AgentgatewayModel feature" became "Verify the AgentgatewayModel feature". The section runs the env check and explains how to turn the API back on, instead of running ahelm upgrade. The troubleshooting step that pointed to a nonexistent Helm step in Before you begin now links to that section. The generatedserve-modeldoc test no longer runs the Helm upgrade.agentgatewaymodel-enable.mdsnippet is unchanged, because it is still right for latest (1.5).virtual_model_target_not_found, notvirtual_model_not_resolved. Tested on the nightly with a Gateway-parent virtual model and an HTTPRoute-parent target. The virtual model still reportsAccepted: True, and the page now says so.virtual_model_not_resolvedfires only when a weighted pick fails (model_router.rs).Verification
hugobuild is clean.export.mdnow includes only theserver.addressblock.Not in this PR
llm/tracing.mdstill shows 1.5 names, but it is only consumed by parked.txtfiles and does not build.agentgateway.outbound.kind: Primary) is not documented on the attribute reference page.virtual.md"Without a health policy…" is fixed by [Automated] Draft docs (agentgateway): llm: automatically enable eviction for failover #1122 (now merged).alias.md,failover.md,content-routing.md,load-balancing.md) still call AgentgatewayModel "experimental". I left them, because they say nothing about the default.🤖 Generated with Claude Code