You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2026/09/14 12:38:27 UTC
(skywalking-horizon-ui) 01/01: feat(layer): show the Envoy AI Gateway layer as Agent Router
This is an automated email from the ASF dual-hosted git repository.
wu-sheng pushed a commit to branch feat/agent-router-rename
in repository https://gitbox.apache.org/repos/asf/skywalking-horizon-ui.git
commit b85fac7e3ec197d00bad3d1d4c3738a0fe231fdd
Author: Wu Sheng <wu...@foxmail.com>
AuthorDate: Mon Sep 14 20:38:19 2026 +0800
feat(layer): show the Envoy AI Gateway layer as Agent Router
Envoy AI Gateway joined the Agentic AI Foundation as Agent Router, with the
same code, APIs and signals. The bundled ENVOY_AI_GATEWAY template now names
the layer "Agent Router" and its services "Agent Routers" in every locale.
The layer key, the meter_envoy_ai_gw_* metrics, the widgets and the SkyWalking
setup-guide link are unchanged; those names belong to OAP. The dashboard page
notes the former name, and the changelog tells operators whose OAP already
stores the template how to adopt the new name.
---
.../bundled_templates/layers/envoy_ai_gateway.i18n.de.json | 4 ++--
.../bundled_templates/layers/envoy_ai_gateway.i18n.es.json | 4 ++--
.../bundled_templates/layers/envoy_ai_gateway.i18n.fr.json | 4 ++--
.../bundled_templates/layers/envoy_ai_gateway.i18n.ja.json | 4 ++--
.../bundled_templates/layers/envoy_ai_gateway.i18n.ko.json | 4 ++--
.../bundled_templates/layers/envoy_ai_gateway.i18n.pt.json | 4 ++--
.../layers/envoy_ai_gateway.i18n.zh-CN.json | 4 ++--
.../bff/src/bundled_templates/layers/envoy_ai_gateway.json | 4 ++--
docs/changelog/1.1.0.md | 2 ++
docs/dashboards/envoy_ai_gateway.md | 14 +++++++-------
docs/menu.yml | 2 +-
docs/operate/infra-3d-map.md | 2 +-
12 files changed, 27 insertions(+), 25 deletions(-)
diff --git a/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.de.json b/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.de.json
index aa09535a..0306f361 100644
--- a/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.de.json
+++ b/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.de.json
@@ -1,5 +1,5 @@
{
- "alias": "Envoy AI Gateway",
+ "alias": "Agent Router",
"group": "Gateways",
"layer-header": {
"columns": [
@@ -149,7 +149,7 @@
]
},
"slots": {
- "services": "AI Gateways",
+ "services": "Agent Router",
"instances": "Knoten"
}
}
diff --git a/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.es.json b/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.es.json
index ac831676..971e0464 100644
--- a/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.es.json
+++ b/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.es.json
@@ -17,10 +17,10 @@
},
"slots": {
"instances": "Nodos",
- "services": "AI Gateways"
+ "services": "Agent Routers"
},
"group": "Gateways",
- "alias": "Envoy AI Gateway",
+ "alias": "Agent Router",
"dashboards": {
"service": [
{
diff --git a/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.fr.json b/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.fr.json
index 475c2d6a..6600ad00 100644
--- a/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.fr.json
+++ b/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.fr.json
@@ -1,5 +1,5 @@
{
- "alias": "Envoy AI Gateway",
+ "alias": "Agent Router",
"group": "Passerelles",
"layer-header": {
"columns": [
@@ -149,7 +149,7 @@
]
},
"slots": {
- "services": "Passerelles AI",
+ "services": "Agent Routers",
"instances": "Nœuds"
}
}
diff --git a/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.ja.json b/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.ja.json
index 72288614..ed61464c 100644
--- a/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.ja.json
+++ b/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.ja.json
@@ -1,5 +1,5 @@
{
- "alias": "Envoy AI Gateway",
+ "alias": "Agent Router",
"group": "ゲートウェイ",
"layer-header": {
"columns": [
@@ -149,7 +149,7 @@
]
},
"slots": {
- "services": "AI ゲートウェイ",
+ "services": "Agent Router",
"instances": "ノード"
}
}
diff --git a/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.ko.json b/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.ko.json
index 7bf61096..a0a3a0ac 100644
--- a/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.ko.json
+++ b/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.ko.json
@@ -1,5 +1,5 @@
{
- "alias": "Envoy AI Gateway",
+ "alias": "Agent Router",
"group": "게이트웨이",
"layer-header": {
"columns": [
@@ -149,7 +149,7 @@
]
},
"slots": {
- "services": "AI 게이트웨이",
+ "services": "Agent Router",
"instances": "노드"
}
}
diff --git a/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.pt.json b/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.pt.json
index a03d6e60..6caf2d13 100644
--- a/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.pt.json
+++ b/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.pt.json
@@ -1,8 +1,8 @@
{
- "alias": "Envoy AI Gateway",
+ "alias": "Agent Router",
"group": "Gateways",
"slots": {
- "services": "AI Gateways",
+ "services": "Agent Routers",
"instances": "Nós"
},
"layer-header": {
diff --git a/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.zh-CN.json b/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.zh-CN.json
index 7c6f851f..63984328 100644
--- a/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.zh-CN.json
+++ b/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.i18n.zh-CN.json
@@ -1,8 +1,8 @@
{
- "alias": "Envoy AI Gateway",
+ "alias": "Agent Router",
"group": "网关",
"slots": {
- "services": "AI Gateway",
+ "services": "Agent Router",
"instances": "节点"
},
"layer-header": {
diff --git a/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.json b/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.json
index 11754c9c..8aa38e80 100644
--- a/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.json
+++ b/apps/bff/src/bundled_templates/layers/envoy_ai_gateway.json
@@ -1,11 +1,11 @@
{
"key": "ENVOY_AI_GATEWAY",
- "alias": "Envoy AI Gateway",
+ "alias": "Agent Router",
"group": "Gateways",
"color": "var(--sw-pink)",
"documentLink": "https://skywalking.apache.org/docs/main/next/en/setup/backend/backend-envoy-ai-gateway-monitoring/",
"aliases": {
- "services": "AI Gateways",
+ "services": "Agent Routers",
"instances": "Nodes"
},
"components": {
diff --git a/docs/changelog/1.1.0.md b/docs/changelog/1.1.0.md
index e540f2c5..fc015a65 100644
--- a/docs/changelog/1.1.0.md
+++ b/docs/changelog/1.1.0.md
@@ -196,6 +196,8 @@ The **3D Infra Map** opens framed on the tiers that hold services. A deployment
**The BanyanDB layer has a Trace Sampling page.** BanyanDB 0.11 can run a chain of sampler plugins during trace merge and finalization, dropping whole traces after their fragments have landed — tail sampling inside the storage tier. The new page is an extension page under Cluster, with its own sidebar row, and it reads the `meter_banyandb_trace_sampling_*` families OAP collects from the plugin chain: the committed drop ratio and the trace outcomes behind it, per-plugin `Decide` rate and [...]
+**The Envoy AI Gateway layer is now called Agent Router.** Envoy AI Gateway joined the Agentic AI Foundation as [Agent Router](https://theagentrouter.ai/), with the same code and APIs, so the bundled layer template now shows **Agent Router** in the sidebar and **Agent Routers** as its service label, in every language. Only the display names changed: the layer key `ENVOY_AI_GATEWAY`, the `meter_envoy_ai_gw_*` metrics and every widget stay as they were. An OAP that already stores this laye [...]
+
### Fixes
**A compared service that failed to refresh was drawn as though it had.** In Compare, each entity keeps its last good reading when its own read fails — deliberately, so one failure does not blank its siblings — but the retained series was then plotted across the CURRENT axis and ran to the right-hand edge beside the fresh ones. Ten-minute-old latency sat next to live latency with nothing to tell them apart. Each series is now placed at the buckets it was actually read for, so a stale one [...]
diff --git a/docs/dashboards/envoy_ai_gateway.md b/docs/dashboards/envoy_ai_gateway.md
index bb4dff9f..f78b8918 100644
--- a/docs/dashboards/envoy_ai_gateway.md
+++ b/docs/dashboards/envoy_ai_gateway.md
@@ -14,11 +14,11 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
-# Envoy AI Gateway
+# Agent Router
-The **ENVOY_AI_GATEWAY** layer monitors [Envoy AI Gateway](https://aigateway.envoyproxy.io/) deployments — the Envoy-based gateway that fronts LLM providers and models, routing chat / completion traffic to OpenAI, Anthropic, and other backends. SkyWalking turns the gateway's OpenTelemetry GenAI signals into request, latency, token, and streaming-quality metrics, broken down by provider and model, and lands them here.
+The **ENVOY_AI_GATEWAY** layer monitors [Agent Router](https://theagentrouter.ai/) deployments (formerly Envoy AI Gateway, renamed when it joined the Agentic AI Foundation) — the Envoy-based gateway that fronts LLM providers and models, routing chat / completion traffic to OpenAI, Anthropic, and other backends. SkyWalking turns the gateway's OpenTelemetry GenAI signals into request, latency, token, and streaming-quality metrics, broken down by provider and model, and lands them here.
-In Horizon's sidebar this layer is grouped under **Gateways**. Its services are listed as **AI Gateways** and its instances as **Nodes**. The ENVOY_AI_GATEWAY layer enables the Service (AI Gateway) and Instance (Node) dashboards plus the Logs sub-tab. It does **not** ship an Endpoint dashboard, a topology / service-map view, or a Traces tab — the gateway is monitored entirely through its GenAI meter families, which carry no per-endpoint scope or call graph.
+In Horizon's sidebar this layer is grouped under **Gateways**. Its services are listed as **Agent Routers** and its instances as **Nodes**. The ENVOY_AI_GATEWAY layer enables the Service (Agent Router) and Instance (Node) dashboards plus the Logs sub-tab. It does **not** ship an Endpoint dashboard, a topology / service-map view, or a Traces tab — the gateway is monitored entirely through its GenAI meter families, which carry no per-endpoint scope or call graph.
This page is the **operator reference** for the bundled ENVOY_AI_GATEWAY dashboard: what you see on each scope and what each widget means.
@@ -26,7 +26,7 @@ This page is the **operator reference** for the bundled ENVOY_AI_GATEWAY dashboa
## Service list
-Before opening a gateway, the layer landing page lists every AI Gateway with four sortable columns, sorted by traffic (**RPM**) by default:
+Before opening a gateway, the layer landing page lists every Agent Router with four sortable columns, sorted by traffic (**RPM**) by default:
- **RPM** — requests per minute across the gateway (`meter_envoy_ai_gw_request_cpm`).
@@ -38,7 +38,7 @@ Before opening a gateway, the layer landing page lists every AI Gateway with fou
## Service dashboard
-The primary drill-down for one selected AI Gateway. Beyond the headline request and token widgets, it breaks traffic down by GenAI provider and model and exposes streaming-quality timings (TTFT / TPOT). The Model Context Protocol (MCP) widgets only appear when the gateway actually serves MCP traffic.
+The primary drill-down for one selected Agent Router. Beyond the headline request and token widgets, it breaks traffic down by GenAI provider and model and exposes streaming-quality timings (TTFT / TPOT). The Model Context Protocol (MCP) widgets only appear when the gateway actually serves MCP traffic.
**Requests, latency, and tokens**
@@ -110,7 +110,7 @@ For one selected **Node** of the gateway. The same request, latency, token, and
## Requirements
-The ENVOY_AI_GATEWAY dashboard is a pure consumer of what OAP reports — it invents no data, and a widget with no backing data simply reads `no data`. To populate it, OAP needs the Envoy AI Gateway GenAI meter families, derived from the gateway's OpenTelemetry GenAI signals:
+The ENVOY_AI_GATEWAY dashboard is a pure consumer of what OAP reports — it invents no data, and a widget with no backing data simply reads `no data`. To populate it, OAP needs the Agent Router GenAI meter families, derived from the gateway's OpenTelemetry GenAI signals:
- **Gateway (service) metrics** — the `meter_envoy_ai_gw_*` family at service scope: request load (`meter_envoy_ai_gw_request_cpm`), latency average and percentile (`meter_envoy_ai_gw_request_latency_avg`, `meter_envoy_ai_gw_request_latency_percentile`), input / output token rates (`meter_envoy_ai_gw_input_token_rate`, `meter_envoy_ai_gw_output_token_rate`), and the streaming-quality timings (`meter_envoy_ai_gw_ttft_*`, `meter_envoy_ai_gw_tpot_*`).
@@ -120,4 +120,4 @@ The ENVOY_AI_GATEWAY dashboard is a pure consumer of what OAP reports — it inv
- **Node (instance) metrics** — the `meter_envoy_ai_gw_instance_*` family for the per-node widgets (request load, latency, tokens, percentile, TTFT, TPOT).
-Each metric is queried at its own OAP scope; OAP does not roll a metric up across scopes, so a node-scope metric is empty until that level of data is reported. For how to enable the upstream collector, see the [Envoy AI Gateway monitoring](https://skywalking.apache.org/docs/main/next/en/setup/backend/backend-envoy-ai-gateway-monitoring/) setup docs.
+Each metric is queried at its own OAP scope; OAP does not roll a metric up across scopes, so a node-scope metric is empty until that level of data is reported. The layer key `ENVOY_AI_GATEWAY` and the `meter_envoy_ai_gw_*` metric names keep the old name, and so does the SkyWalking setup guide; the rename left the gateway's configuration and signals unchanged. For how to enable the upstream collector, see the SkyWalking [Envoy AI Gateway monitoring](https://skywalking.apache.org/docs/main [...]
diff --git a/docs/menu.yml b/docs/menu.yml
index bfd50b6a..935f58ba 100644
--- a/docs/menu.yml
+++ b/docs/menu.yml
@@ -148,7 +148,7 @@ catalog:
catalog:
- name: "APISIX"
path: "/dashboards/apisix"
- - name: "Envoy AI Gateway"
+ - name: "Agent Router"
path: "/dashboards/envoy_ai_gateway"
- name: "Kong"
path: "/dashboards/kong"
diff --git a/docs/operate/infra-3d-map.md b/docs/operate/infra-3d-map.md
index f916968b..055b6a6a 100644
--- a/docs/operate/infra-3d-map.md
+++ b/docs/operate/infra-3d-map.md
@@ -41,7 +41,7 @@ Horizon ships four bundled tiers:
|---|---|---|
| **Apps** (top) | The application surfaces and their direct dependencies as the app sees them | General (agent) services, Browser/RUM, iOS, mini-programs, and the Virtual* targets (database / cache / MQ / gateway / GenAI) |
| **Middleware** | The data and messaging services, gateways, and self-observability | MySQL, PostgreSQL, Redis, MongoDB, Elasticsearch, Kafka, RocketMQ, RabbitMQ, Pulsar, APISIX, Nginx, Kong, Flink, the SkyWalking SO11Y components, and cloud-managed data services |
-| **Service Mesh** | The mesh that fronts the apps | Istio managed services, Istio data plane (Envoy sidecars), Istio control plane, Cilium, Envoy AI Gateway |
+| **Service Mesh** | The mesh that fronts the apps | Istio managed services, Istio data plane (Envoy sidecars), Istio control plane, Cilium, Agent Router |
| **Infra** (bottom) | The platform the rest runs on | Kubernetes cluster + service, Linux/Windows hosts, virtual machines, EKS |
Every layer OAP reports is placed onto exactly one tier. A layer that