This is an automated email from the ASF dual-hosted git repository.
wu-sheng pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-horizon-ui.git
The following commit(s) were added to refs/heads/main by this push:
new 1618a72 fix(templates): single-value metrics render as cards, not
flat lines (#71)
1618a72 is described below
commit 1618a7268be70325293af319dba413bfd85f2f46
Author: 吴晟 Wu Sheng <[email protected]>
AuthorDate: Tue Jun 23 23:36:07 2026 +0800
fix(templates): single-value metrics render as cards, not flat lines (#71)
* fix(templates): single-value metrics render as cards, not flat lines
Auditing the bundled layer dashboards against their booster-ui originals
(the templates horizon was ported from) surfaced a mis-port class: a
widget whose MQE collapses the window to one number (a latest(...) total)
was rendered as type:"line" — a lone dot that misreads as a time series,
and where a total was merged with an average into one widget, two scales
shared one axis. The Virtual GenAI Input/Output Token + Estimated Cost
tiles were the most visible case.
Split each affected widget into a single-value card (the total) plus a
trend line (the average), matching booster's original Card/Line split and
the "widget type follows MQE shape" rule. Audited all 46 bundled
templates one-by-one against booster; 6 had the mis-port: virtual_genai
(provider+model), elasticsearch, clickhouse, rabbitmq, rocketmq, apisix.
Every changed dashboard row still tiles to exactly full width (12 cols);
some pre-existing partial rows were closed in passing. The index-keyed
i18n overlays were realigned across all 7 locales; i18n:validate clean.
* fix(templates): close pre-existing layout gaps in clickhouse +
elasticsearch
Span/rowSpan-only reflow so every dashboard section dense-packs the 12-col
grid with no empty cells, and single-value cards align to their row-mates'
height (rs1 cards beside rs2 line charts were both a gap and a height
mismatch; rs2 is the standard card height). No widgets added, removed, or
reordered — the index-keyed i18n overlays are untouched (i18n:validate
clean).
---
CHANGELOG.md | 4 +
.../bundled_templates/layers/apisix.i18n.de.json | 12 +-
.../bundled_templates/layers/apisix.i18n.es.json | 8 +-
.../bundled_templates/layers/apisix.i18n.fr.json | 8 +-
.../bundled_templates/layers/apisix.i18n.ja.json | 8 +-
.../bundled_templates/layers/apisix.i18n.ko.json | 8 +-
.../bundled_templates/layers/apisix.i18n.pt.json | 8 +-
.../layers/apisix.i18n.zh-CN.json | 7 +-
apps/bff/src/bundled_templates/layers/apisix.json | 21 ++-
.../layers/clickhouse.i18n.de.json | 18 ++-
.../layers/clickhouse.i18n.es.json | 10 +-
.../layers/clickhouse.i18n.fr.json | 10 +-
.../layers/clickhouse.i18n.ja.json | 10 +-
.../layers/clickhouse.i18n.ko.json | 10 +-
.../layers/clickhouse.i18n.pt.json | 10 +-
.../layers/clickhouse.i18n.zh-CN.json | 6 +-
.../src/bundled_templates/layers/clickhouse.json | 36 +++--
.../layers/elasticsearch.i18n.de.json | 10 +-
.../layers/elasticsearch.i18n.es.json | 6 +-
.../layers/elasticsearch.i18n.fr.json | 6 +-
.../layers/elasticsearch.i18n.ja.json | 6 +-
.../layers/elasticsearch.i18n.ko.json | 6 +-
.../layers/elasticsearch.i18n.pt.json | 6 +-
.../layers/elasticsearch.i18n.zh-CN.json | 3 +-
.../bundled_templates/layers/elasticsearch.json | 30 ++--
.../bundled_templates/layers/rabbitmq.i18n.de.json | 44 +++---
.../bundled_templates/layers/rabbitmq.i18n.es.json | 28 ++--
.../bundled_templates/layers/rabbitmq.i18n.fr.json | 28 ++--
.../bundled_templates/layers/rabbitmq.i18n.ja.json | 28 ++--
.../bundled_templates/layers/rabbitmq.i18n.ko.json | 28 ++--
.../bundled_templates/layers/rabbitmq.i18n.pt.json | 28 ++--
.../layers/rabbitmq.i18n.zh-CN.json | 16 +--
.../bff/src/bundled_templates/layers/rabbitmq.json | 85 ++++++++----
.../bundled_templates/layers/rocketmq.i18n.de.json | 74 +++++-----
.../bundled_templates/layers/rocketmq.i18n.es.json | 48 ++++---
.../bundled_templates/layers/rocketmq.i18n.fr.json | 48 ++++---
.../bundled_templates/layers/rocketmq.i18n.ja.json | 48 ++++---
.../bundled_templates/layers/rocketmq.i18n.ko.json | 48 ++++---
.../bundled_templates/layers/rocketmq.i18n.pt.json | 48 ++++---
.../layers/rocketmq.i18n.zh-CN.json | 24 ++--
.../bff/src/bundled_templates/layers/rocketmq.json | 152 +++++++++++----------
.../layers/virtual_genai.i18n.de.json | 122 +++++------------
.../layers/virtual_genai.i18n.es.json | 54 ++++----
.../layers/virtual_genai.i18n.fr.json | 54 ++++----
.../layers/virtual_genai.i18n.ja.json | 54 ++++----
.../layers/virtual_genai.i18n.ko.json | 54 ++++----
.../layers/virtual_genai.i18n.pt.json | 54 ++++----
.../layers/virtual_genai.i18n.zh-CN.json | 36 ++---
.../bundled_templates/layers/virtual_genai.json | 114 ++++++++++------
49 files changed, 830 insertions(+), 754 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9e43cb5..6711334 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -19,6 +19,10 @@ The version line is shared by every package in the monorepo
(apps + shared packa
- **Shareable trace links are unified.** Native and Zipkin traces both open
from a single `?traceId=` link under the layer's trace tab; the viewer
auto-selects native vs Zipkin by the trace-ID shape, so
`/layer/<layer>/trace?traceId=…` always opens the right one.
- **Trace filters are searchable, on-theme dropdowns.** The native Service /
Instance / Endpoint pickers and the Zipkin Service / Remote service / Span name
pickers use a dark type-to-filter dropdown that reopens correctly after a pick.
+### Bundled layer dashboards
+
+- **Single-value metrics now render as cards, not flat lines, on several layer
dashboards.** Widgets whose expression collapses the window to one number (a
`latest(...)` total) had been mis-ported as line charts — drawn as a lone dot
that misreads as a time series and shares one axis with an unrelated average
trend. Each is now split into a proper single-value **card** (the total) plus a
trend **line** (the average), matching the metric's shape, the way booster-ui
rendered them. Affects [...]
+
## 0.7.0
### Browser errors & source maps
diff --git a/apps/bff/src/bundled_templates/layers/apisix.i18n.de.json
b/apps/bff/src/bundled_templates/layers/apisix.i18n.de.json
index 6eac7f1..163642e 100644
--- a/apps/bff/src/bundled_templates/layers/apisix.i18n.de.json
+++ b/apps/bff/src/bundled_templates/layers/apisix.i18n.de.json
@@ -113,14 +113,18 @@
]
},
{
- "title": "etcd",
+ "title": "etcd erreichbar",
+ "expressions": [
+ null
+ ]
+ },
+ {
+ "title": "etcd Indizes",
"expressions": [
- null,
null
],
"expressionLabels": [
- "indizes",
- "erreichbar"
+ "indizes"
]
},
{
diff --git a/apps/bff/src/bundled_templates/layers/apisix.i18n.es.json
b/apps/bff/src/bundled_templates/layers/apisix.i18n.es.json
index 24a6c76..e7248fa 100644
--- a/apps/bff/src/bundled_templates/layers/apisix.i18n.es.json
+++ b/apps/bff/src/bundled_templates/layers/apisix.i18n.es.json
@@ -75,10 +75,12 @@
]
},
{
- "title": "etcd",
+ "title": "etcd accesible"
+ },
+ {
+ "title": "etcd índices",
"expressionLabels": [
- "índices",
- "accesible"
+ "índices"
]
},
{
diff --git a/apps/bff/src/bundled_templates/layers/apisix.i18n.fr.json
b/apps/bff/src/bundled_templates/layers/apisix.i18n.fr.json
index 6802d66..743abe3 100644
--- a/apps/bff/src/bundled_templates/layers/apisix.i18n.fr.json
+++ b/apps/bff/src/bundled_templates/layers/apisix.i18n.fr.json
@@ -70,10 +70,12 @@
]
},
{
- "title": "etcd",
+ "title": "etcd joignable"
+ },
+ {
+ "title": "etcd index",
"expressionLabels": [
- "index",
- "joignable"
+ "index"
]
},
{
diff --git a/apps/bff/src/bundled_templates/layers/apisix.i18n.ja.json
b/apps/bff/src/bundled_templates/layers/apisix.i18n.ja.json
index da995f6..3bdd1a5 100644
--- a/apps/bff/src/bundled_templates/layers/apisix.i18n.ja.json
+++ b/apps/bff/src/bundled_templates/layers/apisix.i18n.ja.json
@@ -70,10 +70,12 @@
]
},
{
- "title": "etcd",
+ "title": "etcd 到達可能"
+ },
+ {
+ "title": "etcd インデックス",
"expressionLabels": [
- "インデックス",
- "到達可能"
+ "インデックス"
]
},
{
diff --git a/apps/bff/src/bundled_templates/layers/apisix.i18n.ko.json
b/apps/bff/src/bundled_templates/layers/apisix.i18n.ko.json
index 9f8cdcd..21faceb 100644
--- a/apps/bff/src/bundled_templates/layers/apisix.i18n.ko.json
+++ b/apps/bff/src/bundled_templates/layers/apisix.i18n.ko.json
@@ -70,10 +70,12 @@
]
},
{
- "title": "etcd",
+ "title": "etcd 도달 가능"
+ },
+ {
+ "title": "etcd 인덱스",
"expressionLabels": [
- "인덱스",
- "도달 가능"
+ "인덱스"
]
},
{
diff --git a/apps/bff/src/bundled_templates/layers/apisix.i18n.pt.json
b/apps/bff/src/bundled_templates/layers/apisix.i18n.pt.json
index 7fc9c4f..c1e1ec9 100644
--- a/apps/bff/src/bundled_templates/layers/apisix.i18n.pt.json
+++ b/apps/bff/src/bundled_templates/layers/apisix.i18n.pt.json
@@ -75,10 +75,12 @@
]
},
{
- "title": "etcd",
+ "title": "etcd acessível"
+ },
+ {
+ "title": "etcd índices",
"expressionLabels": [
- "índices",
- "acessível"
+ "índices"
]
},
{
diff --git a/apps/bff/src/bundled_templates/layers/apisix.i18n.zh-CN.json
b/apps/bff/src/bundled_templates/layers/apisix.i18n.zh-CN.json
index 3c02505..3cfffe1 100644
--- a/apps/bff/src/bundled_templates/layers/apisix.i18n.zh-CN.json
+++ b/apps/bff/src/bundled_templates/layers/apisix.i18n.zh-CN.json
@@ -36,8 +36,11 @@
"expressionLabels": ["capacity", "free"]
},
{
- "title": "etcd",
- "expressionLabels": ["indexes", "reachable"]
+ "title": "etcd 可达"
+ },
+ {
+ "title": "etcd 索引",
+ "expressionLabels": ["indexes"]
},
{
"title": "未匹配流量",
diff --git a/apps/bff/src/bundled_templates/layers/apisix.json
b/apps/bff/src/bundled_templates/layers/apisix.json
index a3527db..501c103 100644
--- a/apps/bff/src/bundled_templates/layers/apisix.json
+++ b/apps/bff/src/bundled_templates/layers/apisix.json
@@ -204,19 +204,28 @@
"span": 4,
"rowSpan": 2
},
+ {
+ "id": "etcd_total",
+ "title": "etcd Reachable",
+ "tip": "0 represents etcd unreachable, 1 represents etcd connected.",
+ "type": "card",
+ "expressions": [
+ "latest(meter_apisix_instance_etcd_reachable)"
+ ],
+ "span": 3,
+ "rowSpan": 2
+ },
{
"id": "etcd",
- "title": "etcd",
+ "title": "etcd Indexes",
"type": "line",
"expressions": [
- "meter_apisix_instance_etcd_indexes",
- "latest(meter_apisix_instance_etcd_reachable)"
+ "meter_apisix_instance_etcd_indexes"
],
"expressionLabels": [
- "indexes",
- "reachable"
+ "indexes"
],
- "span": 6,
+ "span": 3,
"rowSpan": 2
},
{
diff --git a/apps/bff/src/bundled_templates/layers/clickhouse.i18n.de.json
b/apps/bff/src/bundled_templates/layers/clickhouse.i18n.de.json
index 5e705f1..b5388fb 100644
--- a/apps/bff/src/bundled_templates/layers/clickhouse.i18n.de.json
+++ b/apps/bff/src/bundled_templates/layers/clickhouse.i18n.de.json
@@ -129,20 +129,28 @@
]
},
{
- "title": "Zookeeper-Aktivität",
+ "title": "Zookeeper Bytes (b/s)",
"expressions": [
- null,
- null,
null,
null
],
"expressionLabels": [
- "sitzungen",
- "watches",
"bytes ges.",
"bytes empf."
]
},
+ {
+ "title": "Zookeeper-Sessions",
+ "expressions": [
+ null
+ ]
+ },
+ {
+ "title": "Zookeeper Watches",
+ "expressions": [
+ null
+ ]
+ },
{
"title": "Keeper Alive Conns",
"expressions": [
diff --git a/apps/bff/src/bundled_templates/layers/clickhouse.i18n.es.json
b/apps/bff/src/bundled_templates/layers/clickhouse.i18n.es.json
index 0644d69..0478dea 100644
--- a/apps/bff/src/bundled_templates/layers/clickhouse.i18n.es.json
+++ b/apps/bff/src/bundled_templates/layers/clickhouse.i18n.es.json
@@ -143,14 +143,18 @@
]
},
{
- "title": "Actividad de Zookeeper",
+ "title": "Zookeeper Bytes (b/s)",
"expressionLabels": [
- "sesiones",
- "watches",
"bytes enviados",
"bytes recibidos"
]
},
+ {
+ "title": "Sesiones de Zookeeper"
+ },
+ {
+ "title": "Zookeeper Watches"
+ },
{
"title": "Conexiones keeper vivas"
},
diff --git a/apps/bff/src/bundled_templates/layers/clickhouse.i18n.fr.json
b/apps/bff/src/bundled_templates/layers/clickhouse.i18n.fr.json
index b24343a..51a19bf 100644
--- a/apps/bff/src/bundled_templates/layers/clickhouse.i18n.fr.json
+++ b/apps/bff/src/bundled_templates/layers/clickhouse.i18n.fr.json
@@ -83,14 +83,18 @@
]
},
{
- "title": "Activité Zookeeper",
+ "title": "Zookeeper Bytes (b/s)",
"expressionLabels": [
- "sessions",
- "watches",
"octets envoyés",
"octets reçus"
]
},
+ {
+ "title": "Sessions Zookeeper"
+ },
+ {
+ "title": "Zookeeper Watches"
+ },
{
"title": "Connexions Keeper actives"
},
diff --git a/apps/bff/src/bundled_templates/layers/clickhouse.i18n.ja.json
b/apps/bff/src/bundled_templates/layers/clickhouse.i18n.ja.json
index 2b5e40a..075e9e3 100644
--- a/apps/bff/src/bundled_templates/layers/clickhouse.i18n.ja.json
+++ b/apps/bff/src/bundled_templates/layers/clickhouse.i18n.ja.json
@@ -83,14 +83,18 @@
]
},
{
- "title": "Zookeeper アクティビティ",
+ "title": "Zookeeper バイト (b/s)",
"expressionLabels": [
- "セッション",
- "watch",
"送信バイト",
"受信バイト"
]
},
+ {
+ "title": "Zookeeper セッション"
+ },
+ {
+ "title": "Zookeeper Watch"
+ },
{
"title": "Keeper Alive 接続"
},
diff --git a/apps/bff/src/bundled_templates/layers/clickhouse.i18n.ko.json
b/apps/bff/src/bundled_templates/layers/clickhouse.i18n.ko.json
index 3e24535..f1deb64 100644
--- a/apps/bff/src/bundled_templates/layers/clickhouse.i18n.ko.json
+++ b/apps/bff/src/bundled_templates/layers/clickhouse.i18n.ko.json
@@ -83,14 +83,18 @@
]
},
{
- "title": "Zookeeper 활동",
+ "title": "Zookeeper 바이트 (b/s)",
"expressionLabels": [
- "세션",
- "watch",
"전송 바이트",
"수신 바이트"
]
},
+ {
+ "title": "Zookeeper 세션"
+ },
+ {
+ "title": "Zookeeper Watches"
+ },
{
"title": "Keeper 활성 연결"
},
diff --git a/apps/bff/src/bundled_templates/layers/clickhouse.i18n.pt.json
b/apps/bff/src/bundled_templates/layers/clickhouse.i18n.pt.json
index 98e9a95..a591667 100644
--- a/apps/bff/src/bundled_templates/layers/clickhouse.i18n.pt.json
+++ b/apps/bff/src/bundled_templates/layers/clickhouse.i18n.pt.json
@@ -87,14 +87,18 @@
]
},
{
- "title": "Atividade do Zookeeper",
+ "title": "Zookeeper Bytes (b/s)",
"expressionLabels": [
- "sessões",
- "watches",
"bytes enviados",
"bytes recebidos"
]
},
+ {
+ "title": "Sessões do Zookeeper"
+ },
+ {
+ "title": "Zookeeper Watches"
+ },
{
"title": "Conexões ativas do Keeper"
},
diff --git a/apps/bff/src/bundled_templates/layers/clickhouse.i18n.zh-CN.json
b/apps/bff/src/bundled_templates/layers/clickhouse.i18n.zh-CN.json
index 06374bd..4026a88 100644
--- a/apps/bff/src/bundled_templates/layers/clickhouse.i18n.zh-CN.json
+++ b/apps/bff/src/bundled_templates/layers/clickhouse.i18n.zh-CN.json
@@ -45,9 +45,11 @@
"expressionLabels": ["fetch", "send"]
},
{
- "title": "Zookeeper 活动",
- "expressionLabels": ["sessions", "watches", "bytes sent", "bytes recv"]
+ "title": "Zookeeper 字节 (b/s)",
+ "expressionLabels": ["bytes sent", "bytes recv"]
},
+ { "title": "Zookeeper 会话" },
+ { "title": "Zookeeper Watches" },
{ "title": "Keeper 活跃连接" },
{ "title": "Keeper 未完成请求" }
],
diff --git a/apps/bff/src/bundled_templates/layers/clickhouse.json
b/apps/bff/src/bundled_templates/layers/clickhouse.json
index 0a017a6..bdc553b 100644
--- a/apps/bff/src/bundled_templates/layers/clickhouse.json
+++ b/apps/bff/src/bundled_templates/layers/clickhouse.json
@@ -55,7 +55,7 @@
"latest(aggregate_labels(meter_clickhouse_file_open,sum))"
],
"span": 3,
- "rowSpan": 1
+ "rowSpan": 2
},
{
"id": "qps",
@@ -203,23 +203,41 @@
},
{
"id": "zk",
- "title": "Zookeeper Activity",
+ "title": "Zookeeper Bytes (b/s)",
"type": "line",
"expressions": [
- "latest(aggregate_labels(meter_clickhouse_zookeeper_session,sum))",
- "latest(aggregate_labels(meter_clickhouse_zookeeper_watch,sum))",
"aggregate_labels(meter_clickhouse_zookeeper_bytes_sent,sum)",
"aggregate_labels(meter_clickhouse_zookeeper_bytes_received,sum)"
],
"expressionLabels": [
- "sessions",
- "watches",
"bytes sent",
"bytes recv"
],
"span": 6,
"rowSpan": 2
},
+ {
+ "id": "zk_sessions",
+ "title": "Zookeeper Sessions",
+ "type": "card",
+ "expressions": [
+ "latest(aggregate_labels(meter_clickhouse_zookeeper_session,sum))"
+ ],
+ "span": 3,
+ "rowSpan": 1,
+ "format": "int"
+ },
+ {
+ "id": "zk_watches",
+ "title": "Zookeeper Watches",
+ "type": "card",
+ "expressions": [
+ "latest(aggregate_labels(meter_clickhouse_zookeeper_watch,sum))"
+ ],
+ "span": 3,
+ "rowSpan": 1,
+ "format": "int"
+ },
{
"id": "keeper_alive",
"title": "Keeper Alive Conns",
@@ -252,7 +270,7 @@
"latest(meter_clickhouse_instance_uptime)/3600/24"
],
"span": 3,
- "rowSpan": 1
+ "rowSpan": 2
},
{
"id": "version",
@@ -262,7 +280,7 @@
"latest(meter_clickhouse_instance_version)"
],
"span": 3,
- "rowSpan": 1
+ "rowSpan": 2
},
{
"id": "cpu",
@@ -408,7 +426,7 @@
"latest(meter_clickhouse_instance_file_open)"
],
"span": 4,
- "rowSpan": 1
+ "rowSpan": 2
},
{
"id": "insert_io",
diff --git a/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.de.json
b/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.de.json
index fc3f001..57d513f 100644
--- a/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.de.json
+++ b/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.de.json
@@ -265,17 +265,21 @@
null
]
},
+ {
+ "title": "Gelöschte Dokumente",
+ "expressions": [
+ null
+ ]
+ },
{
"title": "Dokumente",
"expressions": [
- null,
null,
null
],
"expressionLabels": [
"alle",
- "primary",
- "gelöscht"
+ "primary"
]
},
{
diff --git a/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.es.json
b/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.es.json
index 3a7ae9b..193bd5d 100644
--- a/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.es.json
+++ b/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.es.json
@@ -152,12 +152,14 @@
{
"title": "Tamaño del índice (primario)"
},
+ {
+ "title": "Documentos eliminados"
+ },
{
"title": "Documentos",
"expressionLabels": [
"todos",
- "primario",
- "eliminados"
+ "primario"
]
},
{
diff --git a/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.fr.json
b/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.fr.json
index 943e38c..c99b0af 100644
--- a/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.fr.json
+++ b/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.fr.json
@@ -153,12 +153,14 @@
{
"title": "Taille d'index (primaires)"
},
+ {
+ "title": "Documents supprimés"
+ },
{
"title": "Documents",
"expressionLabels": [
"tous",
- "primaire",
- "supprimés"
+ "primaire"
]
},
{
diff --git a/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.ja.json
b/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.ja.json
index 7217738..6e2fc69 100644
--- a/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.ja.json
+++ b/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.ja.json
@@ -153,12 +153,14 @@
{
"title": "インデックスサイズ (primary)"
},
+ {
+ "title": "削除済みドキュメント"
+ },
{
"title": "ドキュメント",
"expressionLabels": [
"全件",
- "primary",
- "削除"
+ "primary"
]
},
{
diff --git a/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.ko.json
b/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.ko.json
index b91f4a3..93c66ea 100644
--- a/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.ko.json
+++ b/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.ko.json
@@ -153,12 +153,14 @@
{
"title": "인덱스 크기 (primary)"
},
+ {
+ "title": "삭제된 문서"
+ },
{
"title": "문서",
"expressionLabels": [
"전체",
- "primary",
- "deleted"
+ "primary"
]
},
{
diff --git a/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.pt.json
b/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.pt.json
index 596f3c6..e32e56b 100644
--- a/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.pt.json
+++ b/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.pt.json
@@ -158,12 +158,14 @@
{
"title": "Tamanho do índice (primário)"
},
+ {
+ "title": "Documentos removidos"
+ },
{
"title": "Documentos",
"expressionLabels": [
"todos",
- "primário",
- "removidos"
+ "primário"
]
},
{
diff --git
a/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.zh-CN.json
b/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.zh-CN.json
index 773e1d0..6569d76 100644
--- a/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.zh-CN.json
+++ b/apps/bff/src/bundled_templates/layers/elasticsearch.i18n.zh-CN.json
@@ -81,9 +81,10 @@
},
{ "title": "索引大小(全部分片)" },
{ "title": "索引大小(主分片)" },
+ { "title": "已删除文档" },
{
"title": "文档数",
- "expressionLabels": ["all", "primary", "deleted"]
+ "expressionLabels": ["all", "primary"]
},
{
"title": "每请求平均搜索耗时(s)",
diff --git a/apps/bff/src/bundled_templates/layers/elasticsearch.json
b/apps/bff/src/bundled_templates/layers/elasticsearch.json
index 8a49d21..f6f3bf2 100644
--- a/apps/bff/src/bundled_templates/layers/elasticsearch.json
+++ b/apps/bff/src/bundled_templates/layers/elasticsearch.json
@@ -90,7 +90,7 @@
"expressions": [
"latest(meter_elasticsearch_cluster_primary_shards_total)"
],
- "span": 3,
+ "span": 4,
"rowSpan": 1
},
{
@@ -155,7 +155,7 @@
"expressions": [
"latest(meter_elasticsearch_cluster_breakers_tripped)"
],
- "span": 3,
+ "span": 4,
"rowSpan": 1
},
{
@@ -166,7 +166,7 @@
"expressions": [
"avg(meter_elasticsearch_cluster_cpu_usage_avg)"
],
- "span": 3,
+ "span": 4,
"rowSpan": 1
},
{
@@ -361,7 +361,7 @@
"avg(meter_elasticsearch_node_open_file_count)"
],
"span": 6,
- "rowSpan": 1
+ "rowSpan": 2
}
],
"endpoint": [
@@ -402,7 +402,7 @@
"expressions": [
"latest(meter_elasticsearch_index_indices_store_size_bytes_total)/1024/1024/1024"
],
- "span": 3,
+ "span": 4,
"rowSpan": 1,
"format": "decimal",
"unit": "GB"
@@ -414,26 +414,34 @@
"expressions": [
"latest(meter_elasticsearch_index_indices_store_size_bytes_primary)/1024/1024/1024"
],
- "span": 3,
+ "span": 4,
"rowSpan": 1,
"format": "decimal",
"unit": "GB"
},
+ {
+ "id": "docs_total",
+ "title": "Deleted Documents",
+ "type": "card",
+ "expressions": [
+ "latest(meter_elasticsearch_index_indices_deleted_docs_primary)"
+ ],
+ "span": 4,
+ "rowSpan": 1
+ },
{
"id": "docs",
"title": "Documents",
"type": "line",
"expressions": [
"meter_elasticsearch_index_indices_docs_total",
- "meter_elasticsearch_index_indices_docs_primary",
- "latest(meter_elasticsearch_index_indices_deleted_docs_primary)"
+ "meter_elasticsearch_index_indices_docs_primary"
],
"expressionLabels": [
"all",
- "primary",
- "deleted"
+ "primary"
],
- "span": 6,
+ "span": 12,
"rowSpan": 2
},
{
diff --git a/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.de.json
b/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.de.json
index a6b7f20..4a6f818 100644
--- a/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.de.json
+++ b/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.de.json
@@ -148,27 +148,33 @@
]
},
{
- "title": "Verbindungen / Publisher / Consumer",
+ "title": "Verbindungen",
"expressions": [
- null,
- null,
null
- ],
- "expressionLabels": [
- "verbindungen",
- "publisher",
- "consumers"
]
},
{
- "title": "Channels + Queues",
+ "title": "Publisher",
+ "expressions": [
+ null
+ ]
+ },
+ {
+ "title": "Consumer",
+ "expressions": [
+ null
+ ]
+ },
+ {
+ "title": "Channels",
+ "expressions": [
+ null
+ ]
+ },
+ {
+ "title": "Queues",
"expressions": [
- null,
null
- ],
- "expressionLabels": [
- "channels",
- "queues"
]
},
{
@@ -177,10 +183,15 @@
null
]
},
+ {
+ "title": "Zugewiesen gesamt (MB)",
+ "expressions": [
+ null
+ ]
+ },
{
"title": "Speicher (MB)",
"expressions": [
- null,
null,
null,
null
@@ -188,8 +199,7 @@
"expressionLabels": [
"genutzt",
"ungenutzt",
- "resident",
- "gesamt"
+ "resident"
]
},
{
diff --git a/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.es.json
b/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.es.json
index 0bf7e4f..255b31f 100644
--- a/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.es.json
+++ b/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.es.json
@@ -92,30 +92,32 @@
"title": "Mensajes sin reconocer"
},
{
- "title": "Conexiones / publicadores / consumidores",
- "expressionLabels": [
- "conexiones",
- "publicadores",
- "consumidores"
- ]
+ "title": "Conexiones"
},
{
- "title": "Canales + colas",
- "expressionLabels": [
- "canales",
- "colas"
- ]
+ "title": "Publicadores"
+ },
+ {
+ "title": "Consumidores"
+ },
+ {
+ "title": "Canales"
+ },
+ {
+ "title": "Colas"
},
{
"title": "% asignado en uso"
},
+ {
+ "title": "Total asignado (MB)"
+ },
{
"title": "Memoria (MB)",
"expressionLabels": [
"en uso",
"sin uso",
- "residente",
- "total"
+ "residente"
]
},
{
diff --git a/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.fr.json
b/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.fr.json
index a65c08f..40cd379 100644
--- a/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.fr.json
+++ b/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.fr.json
@@ -94,30 +94,32 @@
"title": "Messages non acquittés"
},
{
- "title": "Connexions / Publishers / Consumers",
- "expressionLabels": [
- "connexions",
- "publishers",
- "consumers"
- ]
+ "title": "Connexions"
},
{
- "title": "Canaux + files",
- "expressionLabels": [
- "canaux",
- "files"
- ]
+ "title": "Publishers"
+ },
+ {
+ "title": "Consumers"
+ },
+ {
+ "title": "Canaux"
+ },
+ {
+ "title": "Files"
},
{
"title": "Alloué utilisé %"
},
+ {
+ "title": "Total alloué (Mo)"
+ },
{
"title": "Mémoire (Mo)",
"expressionLabels": [
"utilisé",
"inutilisé",
- "résidente",
- "total"
+ "résidente"
]
},
{
diff --git a/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.ja.json
b/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.ja.json
index 040a7a7..1393f43 100644
--- a/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.ja.json
+++ b/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.ja.json
@@ -94,30 +94,32 @@
"title": "未確認メッセージ"
},
{
- "title": "接続 / Publisher / Consumer",
- "expressionLabels": [
- "接続",
- "パブリッシャー",
- "コンシューマー"
- ]
+ "title": "接続"
},
{
- "title": "Channel + キュー",
- "expressionLabels": [
- "channel",
- "キュー"
- ]
+ "title": "パブリッシャー"
+ },
+ {
+ "title": "コンシューマー"
+ },
+ {
+ "title": "Channel"
+ },
+ {
+ "title": "キュー"
},
{
"title": "アロケート使用率 %"
},
+ {
+ "title": "アロケート合計 (MB)"
+ },
{
"title": "メモリ (MB)",
"expressionLabels": [
"使用中",
"未使用",
- "常駐",
- "合計"
+ "常駐"
]
},
{
diff --git a/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.ko.json
b/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.ko.json
index 0ee233f..4168aaf 100644
--- a/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.ko.json
+++ b/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.ko.json
@@ -94,30 +94,32 @@
"title": "확인되지 않은 메시지"
},
{
- "title": "연결 / 게시자 / 소비자",
- "expressionLabels": [
- "연결",
- "게시자",
- "소비자"
- ]
+ "title": "연결"
},
{
- "title": "채널 + 큐",
- "expressionLabels": [
- "채널",
- "큐"
- ]
+ "title": "게시자"
+ },
+ {
+ "title": "소비자"
+ },
+ {
+ "title": "채널"
+ },
+ {
+ "title": "큐"
},
{
"title": "할당 사용 %"
},
+ {
+ "title": "할당 총량 (MB)"
+ },
{
"title": "메모리 (MB)",
"expressionLabels": [
"사용",
"미사용",
- "resident",
- "전체"
+ "resident"
]
},
{
diff --git a/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.pt.json
b/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.pt.json
index cc0a62a..3018ca4 100644
--- a/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.pt.json
+++ b/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.pt.json
@@ -98,30 +98,32 @@
"title": "Mensagens não reconhecidas"
},
{
- "title": "Conexões / publishers / consumidores",
- "expressionLabels": [
- "conexões",
- "publishers",
- "consumidores"
- ]
+ "title": "Conexões"
},
{
- "title": "Channels + filas",
- "expressionLabels": [
- "channels",
- "filas"
- ]
+ "title": "Publishers"
+ },
+ {
+ "title": "Consumidores"
+ },
+ {
+ "title": "Channels"
+ },
+ {
+ "title": "Filas"
},
{
"title": "% alocado em uso"
},
+ {
+ "title": "Total alocado (MB)"
+ },
{
"title": "Memória (MB)",
"expressionLabels": [
"em uso",
"sem uso",
- "residente",
- "total"
+ "residente"
]
},
{
diff --git a/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.zh-CN.json
b/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.zh-CN.json
index deffec4..78fea46 100644
--- a/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.zh-CN.json
+++ b/apps/bff/src/bundled_templates/layers/rabbitmq.i18n.zh-CN.json
@@ -49,18 +49,16 @@
{ "title": "入站消息" },
{ "title": "出站消息" },
{ "title": "未确认消息" },
- {
- "title": "连接 / Publisher / Consumer",
- "expressionLabels": ["connections", "publishers", "consumers"]
- },
- {
- "title": "Channel + 队列",
- "expressionLabels": ["channels", "queues"]
- },
+ { "title": "连接" },
+ { "title": "Publisher" },
+ { "title": "Consumer" },
+ { "title": "Channel" },
+ { "title": "队列" },
{ "title": "已分配使用率 %" },
+ { "title": "已分配总量(MB)" },
{
"title": "内存(MB)",
- "expressionLabels": ["used", "unused", "resident", "total"]
+ "expressionLabels": ["used", "unused", "resident"]
},
{ "title": "按类型分配(MB)" },
{
diff --git a/apps/bff/src/bundled_templates/layers/rabbitmq.json
b/apps/bff/src/bundled_templates/layers/rabbitmq.json
index 3427ec7..b0c35a2 100644
--- a/apps/bff/src/bundled_templates/layers/rabbitmq.json
+++ b/apps/bff/src/bundled_templates/layers/rabbitmq.json
@@ -200,7 +200,7 @@
"expressions": [
"latest(meter_rabbitmq_node_queue_messages_ready)"
],
- "span": 4,
+ "span": 3,
"rowSpan": 1
},
{
@@ -210,7 +210,7 @@
"expressions": [
"latest(meter_rabbitmq_node_incoming_messages)"
],
- "span": 4,
+ "span": 3,
"rowSpan": 1
},
{
@@ -220,7 +220,7 @@
"expressions": [
"latest(meter_rabbitmq_node_outgoing_messages_total)"
],
- "span": 4,
+ "span": 3,
"rowSpan": 1
},
{
@@ -230,40 +230,58 @@
"expressions": [
"latest(meter_rabbitmq_node_unacknowledged_messages)"
],
- "span": 4,
+ "span": 3,
"rowSpan": 1
},
{
"id": "conns",
- "title": "Connections / Publishers / Consumers",
- "type": "line",
+ "title": "Connections",
+ "type": "card",
"expressions": [
- "latest(meter_rabbitmq_node_connections_total)",
- "latest(meter_rabbitmq_node_publisher_total)",
- "latest(meter_rabbitmq_node_consumer_total)"
+ "latest(meter_rabbitmq_node_connections_total)"
],
- "expressionLabels": [
- "connections",
- "publishers",
- "consumers"
+ "span": 3,
+ "rowSpan": 1
+ },
+ {
+ "id": "publishers",
+ "title": "Publishers",
+ "type": "card",
+ "expressions": [
+ "latest(meter_rabbitmq_node_publisher_total)"
],
- "span": 4,
- "rowSpan": 2
+ "span": 3,
+ "rowSpan": 1
+ },
+ {
+ "id": "consumers",
+ "title": "Consumers",
+ "type": "card",
+ "expressions": [
+ "latest(meter_rabbitmq_node_consumer_total)"
+ ],
+ "span": 3,
+ "rowSpan": 1
},
{
"id": "channels",
- "title": "Channels + Queues",
- "type": "line",
+ "title": "Channels",
+ "type": "card",
"expressions": [
- "latest(meter_rabbitmq_node_channel_total)",
- "latest(meter_rabbitmq_node_queue_total)"
+ "latest(meter_rabbitmq_node_channel_total)"
],
- "expressionLabels": [
- "channels",
- "queues"
+ "span": 3,
+ "rowSpan": 1
+ },
+ {
+ "id": "queues",
+ "title": "Queues",
+ "type": "card",
+ "expressions": [
+ "latest(meter_rabbitmq_node_queue_total)"
],
"span": 4,
- "rowSpan": 2
+ "rowSpan": 1
},
{
"id": "memory_pct",
@@ -276,6 +294,17 @@
"span": 4,
"rowSpan": 1
},
+ {
+ "id": "memory_bytes_total",
+ "title": "Allocated Total (MB)",
+ "type": "card",
+ "unit": "MB",
+ "expressions": [
+ "latest(meter_rabbitmq_node_allocated_total_bytes)/1024/1024"
+ ],
+ "span": 4,
+ "rowSpan": 1
+ },
{
"id": "memory_bytes",
"title": "Memory (MB)",
@@ -284,16 +313,14 @@
"expressions": [
"meter_rabbitmq_node_allocated_used_bytes/1024/1024",
"meter_rabbitmq_node_allocated_unused_bytes/1024/1024",
- "meter_rabbitmq_node_process_resident_memory_bytes/1024/1024",
- "latest(meter_rabbitmq_node_allocated_total_bytes)/1024/1024"
+ "meter_rabbitmq_node_process_resident_memory_bytes/1024/1024"
],
"expressionLabels": [
"used",
"unused",
- "resident",
- "total"
+ "resident"
],
- "span": 8,
+ "span": 6,
"rowSpan": 2
},
{
@@ -324,7 +351,7 @@
"single used",
"single unused"
],
- "span": 6,
+ "span": 12,
"rowSpan": 2
}
]
diff --git a/apps/bff/src/bundled_templates/layers/rocketmq.i18n.de.json
b/apps/bff/src/bundled_templates/layers/rocketmq.i18n.de.json
index d619ba8..1b5f667 100644
--- a/apps/bff/src/bundled_templates/layers/rocketmq.i18n.de.json
+++ b/apps/bff/src/bundled_templates/layers/rocketmq.i18n.de.json
@@ -72,37 +72,38 @@
]
},
{
- "title": "CommitLog Disk-Verhältnis (%)",
+ "title": "Max. CommitLog-Disk-Ratio (%)",
"expressions": [
- null,
null
- ],
- "expressionLabels": [
- "aktuell",
- "max"
]
},
{
- "title": "ThreadPool Queue-Head-Wartezeit (ms)",
+ "title": "Topics",
"expressions": [
- null,
null
- ],
- "expressionLabels": [
- "pull",
- "senden"
]
},
{
- "title": "Topics",
+ "title": "Broker",
"expressions": [
null
]
},
{
- "title": "Broker",
+ "title": "CommitLog Disk-Verhältnis (%)",
+ "expressions": [
+ null
+ ]
+ },
+ {
+ "title": "ThreadPool Queue-Head-Wartezeit (ms)",
"expressions": [
+ null,
null
+ ],
+ "expressionLabels": [
+ "pull",
+ "senden"
]
}
],
@@ -134,42 +135,49 @@
],
"endpoint": [
{
- "title": "Producer / Consumer-Group TPS",
+ "title": "Max. Producer-Nachrichtengröße (MB)",
"expressions": [
- null,
null
- ],
- "expressionLabels": [
- "producer",
- "consumer group"
]
},
{
- "title": "Nachrichtengröße (MB)",
+ "title": "Max. Consumer-Nachrichtengröße (MB)",
"expressions": [
- null,
null
- ],
- "expressionLabels": [
- "erzeugt",
- "verbraucht"
]
},
{
- "title": "Max. Nachrichtengröße (MB)",
+ "title": "Consumer-Group-Anzahl",
+ "expressions": [
+ null
+ ]
+ },
+ {
+ "title": "Broker-Anzahl",
+ "expressions": [
+ null
+ ]
+ },
+ {
+ "title": "Producer / Consumer-Group TPS",
"expressions": [
null,
null
],
"expressionLabels": [
"producer",
- "consumer"
+ "consumer group"
]
},
{
- "title": "Consumer-Latenz (s)",
+ "title": "Nachrichtengröße (MB)",
"expressions": [
+ null,
null
+ ],
+ "expressionLabels": [
+ "erzeugt",
+ "verbraucht"
]
},
{
@@ -191,13 +199,7 @@
]
},
{
- "title": "Consumer-Group-Anzahl",
- "expressions": [
- null
- ]
- },
- {
- "title": "Broker-Anzahl",
+ "title": "Consumer-Latenz (s)",
"expressions": [
null
]
diff --git a/apps/bff/src/bundled_templates/layers/rocketmq.i18n.es.json
b/apps/bff/src/bundled_templates/layers/rocketmq.i18n.es.json
index c061534..46337b8 100644
--- a/apps/bff/src/bundled_templates/layers/rocketmq.i18n.es.json
+++ b/apps/bff/src/bundled_templates/layers/rocketmq.i18n.es.json
@@ -47,11 +47,16 @@
"title": "Latencia máxima del consumidor"
},
{
- "title": "Ratio de disco de CommitLog (%)",
- "expressionLabels": [
- "actual",
- "máx"
- ]
+ "title": "Ratio máximo de disco de CommitLog (%)"
+ },
+ {
+ "title": "Topics"
+ },
+ {
+ "title": "Brokers"
+ },
+ {
+ "title": "Ratio de disco de CommitLog (%)"
},
{
"title": "Espera en cabeza de cola del ThreadPool (ms)",
@@ -59,12 +64,6 @@
"pull",
"envío"
]
- },
- {
- "title": "Topics"
- },
- {
- "title": "Brokers"
}
],
"instance": [
@@ -82,6 +81,18 @@
}
],
"endpoint": [
+ {
+ "title": "Tamaño máx. de mensaje del productor (MB)"
+ },
+ {
+ "title": "Tamaño máx. de mensaje del consumidor (MB)"
+ },
+ {
+ "title": "Conteo de grupos de consumo"
+ },
+ {
+ "title": "Conteo de brokers"
+ },
{
"title": "TPS de grupos productor / consumidor",
"expressionLabels": [
@@ -96,16 +107,6 @@
"consumidos"
]
},
- {
- "title": "Tamaño máximo de mensaje (MB)",
- "expressionLabels": [
- "productor",
- "consumidor"
- ]
- },
- {
- "title": "Latencia del consumidor (s)"
- },
{
"title": "Offsets productor / consumidor",
"expressionLabels": [
@@ -118,10 +119,7 @@
"tip": "Offset del productor menos offset del grupo de consumo — el
lag del topic."
},
{
- "title": "Conteo de grupos de consumo"
- },
- {
- "title": "Conteo de brokers"
+ "title": "Latencia del consumidor (s)"
}
]
},
diff --git a/apps/bff/src/bundled_templates/layers/rocketmq.i18n.fr.json
b/apps/bff/src/bundled_templates/layers/rocketmq.i18n.fr.json
index 8e83c74..b813534 100644
--- a/apps/bff/src/bundled_templates/layers/rocketmq.i18n.fr.json
+++ b/apps/bff/src/bundled_templates/layers/rocketmq.i18n.fr.json
@@ -49,11 +49,16 @@
"title": "Latence consumer max"
},
{
- "title": "Ratio disque du CommitLog (%)",
- "expressionLabels": [
- "courant",
- "max"
- ]
+ "title": "Ratio disque CommitLog max (%)"
+ },
+ {
+ "title": "Topics"
+ },
+ {
+ "title": "Brokers"
+ },
+ {
+ "title": "Ratio disque du CommitLog (%)"
},
{
"title": "Attente en tête de file du ThreadPool (ms)",
@@ -61,12 +66,6 @@
"pull",
"envoi"
]
- },
- {
- "title": "Topics"
- },
- {
- "title": "Brokers"
}
],
"instance": [
@@ -84,6 +83,18 @@
}
],
"endpoint": [
+ {
+ "title": "Taille max. de message producteur (Mo)"
+ },
+ {
+ "title": "Taille max. de message consommateur (Mo)"
+ },
+ {
+ "title": "Nombre de groupes de consumers"
+ },
+ {
+ "title": "Nombre de brokers"
+ },
{
"title": "TPS par groupe producteur / consommateur",
"expressionLabels": [
@@ -98,16 +109,6 @@
"consommé"
]
},
- {
- "title": "Taille de message max (Mo)",
- "expressionLabels": [
- "producteur",
- "consommateur"
- ]
- },
- {
- "title": "Latence des consumers (s)"
- },
{
"title": "Offsets producer / consumer",
"expressionLabels": [
@@ -120,10 +121,7 @@
"tip": "Offset producer moins offset du groupe consumer — le lag du
topic."
},
{
- "title": "Nombre de groupes de consumers"
- },
- {
- "title": "Nombre de brokers"
+ "title": "Latence des consumers (s)"
}
]
},
diff --git a/apps/bff/src/bundled_templates/layers/rocketmq.i18n.ja.json
b/apps/bff/src/bundled_templates/layers/rocketmq.i18n.ja.json
index afbc123..e28a457 100644
--- a/apps/bff/src/bundled_templates/layers/rocketmq.i18n.ja.json
+++ b/apps/bff/src/bundled_templates/layers/rocketmq.i18n.ja.json
@@ -49,11 +49,16 @@
"title": "最大コンシューマーレイテンシ"
},
{
- "title": "CommitLog ディスク比率 (%)",
- "expressionLabels": [
- "現在",
- "最大"
- ]
+ "title": "最大 CommitLog ディスク比率 (%)"
+ },
+ {
+ "title": "Topic"
+ },
+ {
+ "title": "Broker"
+ },
+ {
+ "title": "CommitLog ディスク比率 (%)"
},
{
"title": "ThreadPool キュー先頭待ち (ms)",
@@ -61,12 +66,6 @@
"プル",
"送信"
]
- },
- {
- "title": "Topic"
- },
- {
- "title": "Broker"
}
],
"instance": [
@@ -84,6 +83,18 @@
}
],
"endpoint": [
+ {
+ "title": "最大プロデューサーメッセージサイズ (MB)"
+ },
+ {
+ "title": "最大コンシューマーメッセージサイズ (MB)"
+ },
+ {
+ "title": "コンシューマーグループ数"
+ },
+ {
+ "title": "Broker 数"
+ },
{
"title": "プロデューサー / コンシューマーグループ TPS",
"expressionLabels": [
@@ -98,16 +109,6 @@
"消費"
]
},
- {
- "title": "最大メッセージサイズ (MB)",
- "expressionLabels": [
- "プロデューサー",
- "コンシューマー"
- ]
- },
- {
- "title": "コンシューマーレイテンシ (s)"
- },
{
"title": "プロデューサー / コンシューマーオフセット",
"expressionLabels": [
@@ -120,10 +121,7 @@
"tip": "プロデューサーオフセット − コンシューマーグループオフセット — Topic のラグ。"
},
{
- "title": "コンシューマーグループ数"
- },
- {
- "title": "Broker 数"
+ "title": "コンシューマーレイテンシ (s)"
}
]
},
diff --git a/apps/bff/src/bundled_templates/layers/rocketmq.i18n.ko.json
b/apps/bff/src/bundled_templates/layers/rocketmq.i18n.ko.json
index b6d92de..e0ae3cb 100644
--- a/apps/bff/src/bundled_templates/layers/rocketmq.i18n.ko.json
+++ b/apps/bff/src/bundled_templates/layers/rocketmq.i18n.ko.json
@@ -49,11 +49,16 @@
"title": "최대 소비자 지연 시간"
},
{
- "title": "CommitLog 디스크 비율 (%)",
- "expressionLabels": [
- "current",
- "최대"
- ]
+ "title": "최대 CommitLog 디스크 비율 (%)"
+ },
+ {
+ "title": "Topic"
+ },
+ {
+ "title": "Broker"
+ },
+ {
+ "title": "CommitLog 디스크 비율 (%)"
},
{
"title": "스레드풀 큐 헤드 대기 (ms)",
@@ -61,12 +66,6 @@
"pull",
"전송"
]
- },
- {
- "title": "Topic"
- },
- {
- "title": "Broker"
}
],
"instance": [
@@ -84,6 +83,18 @@
}
],
"endpoint": [
+ {
+ "title": "최대 프로듀서 메시지 크기 (MB)"
+ },
+ {
+ "title": "최대 컨슈머 메시지 크기 (MB)"
+ },
+ {
+ "title": "소비자 그룹 수"
+ },
+ {
+ "title": "브로커 수"
+ },
{
"title": "생산자 / 소비자 그룹 TPS",
"expressionLabels": [
@@ -98,16 +109,6 @@
"consumed"
]
},
- {
- "title": "최대 메시지 크기 (MB)",
- "expressionLabels": [
- "생산자",
- "소비자"
- ]
- },
- {
- "title": "소비자 지연 시간 (s)"
- },
{
"title": "생산자 / 소비자 오프셋",
"expressionLabels": [
@@ -120,10 +121,7 @@
"tip": "생산자 오프셋에서 소비자 그룹 오프셋을 뺀 값 — 토픽 랙입니다."
},
{
- "title": "소비자 그룹 수"
- },
- {
- "title": "브로커 수"
+ "title": "소비자 지연 시간 (s)"
}
]
},
diff --git a/apps/bff/src/bundled_templates/layers/rocketmq.i18n.pt.json
b/apps/bff/src/bundled_templates/layers/rocketmq.i18n.pt.json
index 01de24f..0858ecc 100644
--- a/apps/bff/src/bundled_templates/layers/rocketmq.i18n.pt.json
+++ b/apps/bff/src/bundled_templates/layers/rocketmq.i18n.pt.json
@@ -54,11 +54,16 @@
"title": "Latência máxima do consumidor"
},
{
- "title": "Ratio de disco do CommitLog (%)",
- "expressionLabels": [
- "atual",
- "máx"
- ]
+ "title": "Razão máxima de disco do CommitLog (%)"
+ },
+ {
+ "title": "Topics"
+ },
+ {
+ "title": "Brokers"
+ },
+ {
+ "title": "Ratio de disco do CommitLog (%)"
},
{
"title": "Espera na cabeça da fila do ThreadPool (ms)",
@@ -66,12 +71,6 @@
"pull",
"send"
]
- },
- {
- "title": "Topics"
- },
- {
- "title": "Brokers"
}
],
"instance": [
@@ -89,6 +88,18 @@
}
],
"endpoint": [
+ {
+ "title": "Tamanho máx. de mensagem do produtor (MB)"
+ },
+ {
+ "title": "Tamanho máx. de mensagem do consumidor (MB)"
+ },
+ {
+ "title": "Quantidade de consumer groups"
+ },
+ {
+ "title": "Quantidade de brokers"
+ },
{
"title": "TPS de grupos produtor / consumidor",
"expressionLabels": [
@@ -103,16 +114,6 @@
"consumidas"
]
},
- {
- "title": "Tamanho máximo da mensagem (MB)",
- "expressionLabels": [
- "produtor",
- "consumidor"
- ]
- },
- {
- "title": "Latência do consumidor (s)"
- },
{
"title": "Offsets produtor / consumidor",
"expressionLabels": [
@@ -125,10 +126,7 @@
"tip": "Offset do produtor menos offset do consumer group — o lag do
topic."
},
{
- "title": "Quantidade de consumer groups"
- },
- {
- "title": "Quantidade de brokers"
+ "title": "Latência do consumidor (s)"
}
]
}
diff --git a/apps/bff/src/bundled_templates/layers/rocketmq.i18n.zh-CN.json
b/apps/bff/src/bundled_templates/layers/rocketmq.i18n.zh-CN.json
index 9be509e..41db9b6 100644
--- a/apps/bff/src/bundled_templates/layers/rocketmq.i18n.zh-CN.json
+++ b/apps/bff/src/bundled_templates/layers/rocketmq.i18n.zh-CN.json
@@ -29,16 +29,14 @@
"expressionLabels": ["produced", "consumed"]
},
{ "title": "最大消费延迟" },
- {
- "title": "CommitLog 磁盘占比(%)",
- "expressionLabels": ["current", "max"]
- },
+ { "title": "最大 CommitLog 磁盘占比(%)" },
+ { "title": "Topic" },
+ { "title": "Broker" },
+ { "title": "CommitLog 磁盘占比(%)" },
{
"title": "线程池队列头等待(ms)",
"expressionLabels": ["pull", "send"]
- },
- { "title": "Topic" },
- { "title": "Broker" }
+ }
],
"instance": [
{ "title": "生产 TPS" },
@@ -47,6 +45,10 @@
{ "title": "Consumer 消息大小(MB)" }
],
"endpoint": [
+ { "title": "最大生产者消息大小(MB)" },
+ { "title": "最大消费者消息大小(MB)" },
+ { "title": "Consumer Group 数量" },
+ { "title": "Broker 数量" },
{
"title": "Producer / Consumer Group TPS",
"expressionLabels": ["producer", "consumer group"]
@@ -55,11 +57,6 @@
"title": "消息大小(MB)",
"expressionLabels": ["produced", "consumed"]
},
- {
- "title": "最大消息大小(MB)",
- "expressionLabels": ["producer", "consumer"]
- },
- { "title": "消费延迟(s)" },
{
"title": "Producer / Consumer Offset",
"expressionLabels": ["producer", "consumer group"]
@@ -68,8 +65,7 @@
"title": "积压消息",
"tip": "Producer offset 减去 Consumer-group offset — 即 Topic 的 Lag。"
},
- { "title": "Consumer Group 数量" },
- { "title": "Broker 数量" }
+ { "title": "消费延迟(s)" }
]
}
}
diff --git a/apps/bff/src/bundled_templates/layers/rocketmq.json
b/apps/bff/src/bundled_templates/layers/rocketmq.json
index 03cf735..dd1a265 100644
--- a/apps/bff/src/bundled_templates/layers/rocketmq.json
+++ b/apps/bff/src/bundled_templates/layers/rocketmq.json
@@ -130,40 +130,19 @@
"expressions": [
"latest(meter_rocketmq_cluster_max_consumer_latency)"
],
- "span": 4,
+ "span": 3,
"rowSpan": 1
},
{
- "id": "commitlog_ratio",
- "title": "CommitLog Disk Ratio (%)",
- "type": "line",
+ "id": "commitlog_ratio_total",
+ "title": "Max CommitLog Disk Ratio (%)",
+ "type": "card",
"unit": "%",
"expressions": [
- "meter_rocketmq_cluster_commitLog_disk_ratio",
"latest(meter_rocketmq_cluster_max_commitLog_disk_ratio)"
],
- "expressionLabels": [
- "current",
- "max"
- ],
- "span": 4,
- "rowSpan": 2
- },
- {
- "id": "queue_wait",
- "title": "ThreadPool Queue Head Wait (ms)",
- "type": "line",
- "unit": "ms",
- "expressions": [
- "meter_rocketmq_cluster_pull_threadPool_queue_head_wait_time",
- "meter_rocketmq_cluster_send_threadPool_queue_head_wait_time"
- ],
- "expressionLabels": [
- "pull",
- "send"
- ],
- "span": 4,
- "rowSpan": 2
+ "span": 3,
+ "rowSpan": 1
},
{
"id": "topic_count",
@@ -186,6 +165,33 @@
"span": 3,
"rowSpan": 1,
"format": "int"
+ },
+ {
+ "id": "commitlog_ratio",
+ "title": "CommitLog Disk Ratio (%)",
+ "type": "line",
+ "unit": "%",
+ "expressions": [
+ "meter_rocketmq_cluster_commitLog_disk_ratio"
+ ],
+ "span": 6,
+ "rowSpan": 2
+ },
+ {
+ "id": "queue_wait",
+ "title": "ThreadPool Queue Head Wait (ms)",
+ "type": "line",
+ "unit": "ms",
+ "expressions": [
+ "meter_rocketmq_cluster_pull_threadPool_queue_head_wait_time",
+ "meter_rocketmq_cluster_send_threadPool_queue_head_wait_time"
+ ],
+ "expressionLabels": [
+ "pull",
+ "send"
+ ],
+ "span": 6,
+ "rowSpan": 2
}
],
"instance": [
@@ -233,6 +239,48 @@
}
],
"endpoint": [
+ {
+ "id": "max_msg_producer_total",
+ "title": "Max Producer Msg Size (MB)",
+ "type": "card",
+ "unit": "MB",
+ "expressions": [
+ "latest(meter_rocketmq_topic_max_producer_message_size)/1024/1024"
+ ],
+ "span": 3,
+ "rowSpan": 1
+ },
+ {
+ "id": "max_msg_consumer_total",
+ "title": "Max Consumer Msg Size (MB)",
+ "type": "card",
+ "unit": "MB",
+ "expressions": [
+ "latest(meter_rocketmq_topic_max_consumer_message_size)/1024/1024"
+ ],
+ "span": 3,
+ "rowSpan": 1
+ },
+ {
+ "id": "consumer_groups",
+ "title": "Consumer Group Count",
+ "type": "card",
+ "expressions": [
+ "latest(meter_rocketmq_topic_consumer_group_count)"
+ ],
+ "span": 3,
+ "rowSpan": 1
+ },
+ {
+ "id": "brokers",
+ "title": "Broker Count",
+ "type": "card",
+ "expressions": [
+ "latest(meter_rocketmq_topic_broker_count)"
+ ],
+ "span": 3,
+ "rowSpan": 1
+ },
{
"id": "tps",
"title": "Producer / Consumer Group TPS",
@@ -264,33 +312,6 @@
"span": 6,
"rowSpan": 2
},
- {
- "id": "max_msg",
- "title": "Max Message Size (MB)",
- "type": "line",
- "unit": "MB",
- "expressions": [
- "latest(meter_rocketmq_topic_max_producer_message_size)/1024/1024",
- "latest(meter_rocketmq_topic_max_consumer_message_size)/1024/1024"
- ],
- "expressionLabels": [
- "producer",
- "consumer"
- ],
- "span": 6,
- "rowSpan": 2
- },
- {
- "id": "consumer_latency",
- "title": "Consumer Latency (s)",
- "type": "line",
- "unit": "s",
- "expressions": [
- "meter_rocketmq_topic_consumer_latency/1000"
- ],
- "span": 6,
- "rowSpan": 2
- },
{
"id": "offsets",
"title": "Producer / Consumer Offsets",
@@ -318,24 +339,15 @@
"rowSpan": 2
},
{
- "id": "consumer_groups",
- "title": "Consumer Group Count",
- "type": "card",
- "expressions": [
- "latest(meter_rocketmq_topic_consumer_group_count)"
- ],
- "span": 6,
- "rowSpan": 1
- },
- {
- "id": "brokers",
- "title": "Broker Count",
- "type": "card",
+ "id": "consumer_latency",
+ "title": "Consumer Latency (s)",
+ "type": "line",
+ "unit": "s",
"expressions": [
- "latest(meter_rocketmq_topic_broker_count)"
+ "meter_rocketmq_topic_consumer_latency/1000"
],
- "span": 6,
- "rowSpan": 1
+ "span": 12,
+ "rowSpan": 2
}
]
}
diff --git a/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.de.json
b/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.de.json
index 8a6c808..21f1a55 100644
--- a/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.de.json
+++ b/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.de.json
@@ -20,131 +20,73 @@
"dashboards": {
"service": [
{
- "title": "Aufrufe / min",
- "expressions": [
- null
- ]
+ "title": "Aufrufe / min"
},
{
- "title": "Mittlere Antwortzeit",
- "expressions": [
- null
- ]
+ "title": "Mittlere Antwortzeit"
},
{
- "title": "Erfolgsrate",
- "expressions": [
- null
- ]
+ "title": "Erfolgsrate"
},
{
- "title": "Latenz-Perzentil",
- "expressions": [
- null
- ]
+ "title": "Latenz-Perzentil"
},
{
- "title": "Input-Tokens",
- "expressions": [
- null,
- null
- ],
- "expressionLabels": [
- "summe",
- "mittel"
- ]
+ "title": "Input-Tokens"
},
{
- "title": "Output-Tokens",
- "expressions": [
- null,
- null
- ],
- "expressionLabels": [
- "summe",
- "mittel"
- ]
+ "title": "Output-Tokens"
},
{
- "title": "Geschätzte Kosten",
- "expressions": [
- null,
- null
- ],
- "expressionLabels": [
- "gesamt",
- "mittel"
- ]
+ "title": "Geschätzte Gesamtkosten"
+ },
+ {
+ "title": "Mittlere Input-Tokens"
+ },
+ {
+ "title": "Mittlere Output-Tokens"
+ },
+ {
+ "title": "Mittlere geschätzte Kosten"
}
],
"instance": [
{
- "title": "Aufrufe / min",
- "expressions": [
- null
- ]
+ "title": "Aufrufe / min"
},
{
- "title": "Mittlere Latenz",
- "expressions": [
- null
- ]
+ "title": "Mittlere Latenz"
},
{
- "title": "Erfolgsrate",
- "expressions": [
- null
- ]
+ "title": "Erfolgsrate"
},
{
- "title": "Latenz-Perzentil",
- "expressions": [
- null
- ]
+ "title": "Latenz-Perzentil"
},
{
"title": "TTFT",
- "expressions": [
- null,
- null
- ],
"expressionLabels": [
"mittel",
"perzentil"
]
},
{
- "title": "Input-Tokens",
- "expressions": [
- null,
- null
- ],
- "expressionLabels": [
- "summe",
- "mittel"
- ]
+ "title": "Input-Tokens"
},
{
- "title": "Output-Tokens",
- "expressions": [
- null,
- null
- ],
- "expressionLabels": [
- "summe",
- "mittel"
- ]
+ "title": "Output-Tokens"
},
{
- "title": "Geschätzte Kosten",
- "expressions": [
- null,
- null
- ],
- "expressionLabels": [
- "gesamt",
- "mittel"
- ]
+ "title": "Geschätzte Gesamtkosten"
+ },
+ {
+ "title": "Mittlere Input-Tokens"
+ },
+ {
+ "title": "Mittlere Output-Tokens"
+ },
+ {
+ "title": "Mittlere geschätzte Kosten"
}
]
},
diff --git a/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.es.json
b/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.es.json
index 49bbaf5..9090d00 100644
--- a/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.es.json
+++ b/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.es.json
@@ -31,25 +31,22 @@
"title": "Percentil de latencia"
},
{
- "title": "Tokens de entrada",
- "expressionLabels": [
- "suma",
- "media"
- ]
+ "title": "Tokens de entrada"
},
{
- "title": "Tokens de salida",
- "expressionLabels": [
- "suma",
- "media"
- ]
+ "title": "Tokens de salida"
},
{
- "title": "Coste estimado",
- "expressionLabels": [
- "total",
- "media"
- ]
+ "title": "Coste estimado total"
+ },
+ {
+ "title": "Tokens de entrada promedio"
+ },
+ {
+ "title": "Tokens de salida promedio"
+ },
+ {
+ "title": "Coste estimado promedio"
}
],
"instance": [
@@ -73,25 +70,22 @@
]
},
{
- "title": "Tokens de entrada",
- "expressionLabels": [
- "suma",
- "media"
- ]
+ "title": "Tokens de entrada"
},
{
- "title": "Tokens de salida",
- "expressionLabels": [
- "suma",
- "media"
- ]
+ "title": "Tokens de salida"
},
{
- "title": "Coste estimado",
- "expressionLabels": [
- "total",
- "media"
- ]
+ "title": "Coste estimado total"
+ },
+ {
+ "title": "Tokens de entrada promedio"
+ },
+ {
+ "title": "Tokens de salida promedio"
+ },
+ {
+ "title": "Coste estimado promedio"
}
]
},
diff --git a/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.fr.json
b/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.fr.json
index 14de186..b708dce 100644
--- a/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.fr.json
+++ b/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.fr.json
@@ -32,25 +32,22 @@
"title": "Centile de latence"
},
{
- "title": "Tokens entrants",
- "expressionLabels": [
- "somme",
- "moy"
- ]
+ "title": "Tokens entrants"
},
{
- "title": "Tokens sortants",
- "expressionLabels": [
- "somme",
- "moy"
- ]
+ "title": "Tokens sortants"
},
{
- "title": "Coût estimé",
- "expressionLabels": [
- "total",
- "moy"
- ]
+ "title": "Coût total estimé"
+ },
+ {
+ "title": "Tokens entrants moyens"
+ },
+ {
+ "title": "Tokens sortants moyens"
+ },
+ {
+ "title": "Coût estimé moyen"
}
],
"instance": [
@@ -74,25 +71,22 @@
]
},
{
- "title": "Tokens entrants",
- "expressionLabels": [
- "somme",
- "moy"
- ]
+ "title": "Tokens entrants"
},
{
- "title": "Tokens sortants",
- "expressionLabels": [
- "somme",
- "moy"
- ]
+ "title": "Tokens sortants"
},
{
- "title": "Coût estimé",
- "expressionLabels": [
- "total",
- "moy"
- ]
+ "title": "Coût total estimé"
+ },
+ {
+ "title": "Tokens entrants moyens"
+ },
+ {
+ "title": "Tokens sortants moyens"
+ },
+ {
+ "title": "Coût estimé moyen"
}
]
},
diff --git a/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.ja.json
b/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.ja.json
index 979f6c6..63f7996 100644
--- a/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.ja.json
+++ b/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.ja.json
@@ -32,25 +32,22 @@
"title": "レイテンシパーセンタイル"
},
{
- "title": "入力トークン",
- "expressionLabels": [
- "合計",
- "平均"
- ]
+ "title": "入力トークン"
},
{
- "title": "出力トークン",
- "expressionLabels": [
- "合計",
- "平均"
- ]
+ "title": "出力トークン"
},
{
- "title": "推定コスト",
- "expressionLabels": [
- "合計",
- "平均"
- ]
+ "title": "総推定コスト"
+ },
+ {
+ "title": "平均入力トークン"
+ },
+ {
+ "title": "平均出力トークン"
+ },
+ {
+ "title": "平均推定コスト"
}
],
"instance": [
@@ -74,25 +71,22 @@
]
},
{
- "title": "入力トークン",
- "expressionLabels": [
- "合計",
- "平均"
- ]
+ "title": "入力トークン"
},
{
- "title": "出力トークン",
- "expressionLabels": [
- "合計",
- "平均"
- ]
+ "title": "出力トークン"
},
{
- "title": "推定コスト",
- "expressionLabels": [
- "合計",
- "平均"
- ]
+ "title": "総推定コスト"
+ },
+ {
+ "title": "平均入力トークン"
+ },
+ {
+ "title": "平均出力トークン"
+ },
+ {
+ "title": "平均推定コスト"
}
]
},
diff --git a/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.ko.json
b/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.ko.json
index 73d58a9..f1fa971 100644
--- a/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.ko.json
+++ b/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.ko.json
@@ -32,25 +32,22 @@
"title": "지연 시간 백분위"
},
{
- "title": "입력 토큰",
- "expressionLabels": [
- "합계",
- "평균"
- ]
+ "title": "입력 토큰"
},
{
- "title": "출력 토큰",
- "expressionLabels": [
- "합계",
- "평균"
- ]
+ "title": "출력 토큰"
},
{
- "title": "추정 비용",
- "expressionLabels": [
- "전체",
- "평균"
- ]
+ "title": "총 추정 비용"
+ },
+ {
+ "title": "평균 입력 토큰"
+ },
+ {
+ "title": "평균 출력 토큰"
+ },
+ {
+ "title": "평균 추정 비용"
}
],
"instance": [
@@ -74,25 +71,22 @@
]
},
{
- "title": "입력 토큰",
- "expressionLabels": [
- "합계",
- "평균"
- ]
+ "title": "입력 토큰"
},
{
- "title": "출력 토큰",
- "expressionLabels": [
- "합계",
- "평균"
- ]
+ "title": "출력 토큰"
},
{
- "title": "추정 비용",
- "expressionLabels": [
- "전체",
- "평균"
- ]
+ "title": "총 추정 비용"
+ },
+ {
+ "title": "평균 입력 토큰"
+ },
+ {
+ "title": "평균 출력 토큰"
+ },
+ {
+ "title": "평균 추정 비용"
}
]
},
diff --git a/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.pt.json
b/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.pt.json
index 3fad95d..ad5027f 100644
--- a/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.pt.json
+++ b/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.pt.json
@@ -36,25 +36,22 @@
"title": "Percentil de latência"
},
{
- "title": "Tokens de entrada",
- "expressionLabels": [
- "soma",
- "média"
- ]
+ "title": "Tokens de entrada"
},
{
- "title": "Tokens de saída",
- "expressionLabels": [
- "soma",
- "média"
- ]
+ "title": "Tokens de saída"
},
{
- "title": "Custo estimado",
- "expressionLabels": [
- "total",
- "média"
- ]
+ "title": "Custo estimado total"
+ },
+ {
+ "title": "Tokens de entrada médios"
+ },
+ {
+ "title": "Tokens de saída médios"
+ },
+ {
+ "title": "Custo estimado médio"
}
],
"instance": [
@@ -78,25 +75,22 @@
]
},
{
- "title": "Tokens de entrada",
- "expressionLabels": [
- "soma",
- "média"
- ]
+ "title": "Tokens de entrada"
},
{
- "title": "Tokens de saída",
- "expressionLabels": [
- "soma",
- "média"
- ]
+ "title": "Tokens de saída"
},
{
- "title": "Custo estimado",
- "expressionLabels": [
- "total",
- "média"
- ]
+ "title": "Custo estimado total"
+ },
+ {
+ "title": "Tokens de entrada médios"
+ },
+ {
+ "title": "Tokens de saída médios"
+ },
+ {
+ "title": "Custo estimado médio"
}
]
}
diff --git
a/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.zh-CN.json
b/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.zh-CN.json
index fff745e..50cc899 100644
--- a/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.zh-CN.json
+++ b/apps/bff/src/bundled_templates/layers/virtual_genai.i18n.zh-CN.json
@@ -19,18 +19,12 @@
{ "title": "平均响应时间" },
{ "title": "成功率" },
{ "title": "延迟分位" },
- {
- "title": "输入 Token",
- "expressionLabels": ["sum", "avg"]
- },
- {
- "title": "输出 Token",
- "expressionLabels": ["sum", "avg"]
- },
- {
- "title": "预估成本",
- "expressionLabels": ["total", "avg"]
- }
+ { "title": "输入 Token" },
+ { "title": "输出 Token" },
+ { "title": "总预估成本" },
+ { "title": "平均输入 Token" },
+ { "title": "平均输出 Token" },
+ { "title": "平均预估成本" }
],
"instance": [
{ "title": "调用 / 分钟" },
@@ -41,18 +35,12 @@
"title": "TTFT",
"expressionLabels": ["avg", "percentile"]
},
- {
- "title": "输入 Token",
- "expressionLabels": ["sum", "avg"]
- },
- {
- "title": "输出 Token",
- "expressionLabels": ["sum", "avg"]
- },
- {
- "title": "预估成本",
- "expressionLabels": ["total", "avg"]
- }
+ { "title": "输入 Token" },
+ { "title": "输出 Token" },
+ { "title": "总预估成本" },
+ { "title": "平均输入 Token" },
+ { "title": "平均输出 Token" },
+ { "title": "平均预估成本" }
]
}
}
diff --git a/apps/bff/src/bundled_templates/layers/virtual_genai.json
b/apps/bff/src/bundled_templates/layers/virtual_genai.json
index 57da93b..ce9c7db 100644
--- a/apps/bff/src/bundled_templates/layers/virtual_genai.json
+++ b/apps/bff/src/bundled_templates/layers/virtual_genai.json
@@ -95,48 +95,63 @@
"rowSpan": 2
},
{
- "id": "input_tokens",
+ "id": "input_tokens_total",
"title": "Input Tokens",
+ "type": "card",
+ "expressions": [
+ "latest(gen_ai_provider_input_tokens_sum)"
+ ],
+ "span": 4,
+ "rowSpan": 2
+ },
+ {
+ "id": "output_tokens_total",
+ "title": "Output Tokens",
+ "type": "card",
+ "expressions": [
+ "latest(gen_ai_provider_output_tokens_sum)"
+ ],
+ "span": 4,
+ "rowSpan": 2
+ },
+ {
+ "id": "cost_total",
+ "title": "Total Estimated Cost",
+ "type": "card",
+ "expressions": [
+ "latest(gen_ai_provider_total_estimated_cost)/1000000"
+ ],
+ "span": 4,
+ "rowSpan": 2
+ },
+ {
+ "id": "input_tokens",
+ "title": "Average Input Tokens",
"type": "line",
"expressions": [
- "latest(gen_ai_provider_input_tokens_sum)",
"gen_ai_provider_input_tokens_avg"
],
- "expressionLabels": [
- "sum",
- "avg"
- ],
- "span": 6,
+ "span": 4,
"rowSpan": 2
},
{
"id": "output_tokens",
- "title": "Output Tokens",
+ "title": "Average Output Tokens",
"type": "line",
"expressions": [
- "latest(gen_ai_provider_output_tokens_sum)",
"gen_ai_provider_output_tokens_avg"
],
- "expressionLabels": [
- "sum",
- "avg"
- ],
- "span": 6,
+ "span": 4,
"rowSpan": 2
},
{
"id": "cost",
- "title": "Estimated Cost",
+ "title": "Average Estimated Cost",
"type": "line",
"expressions": [
- "latest(gen_ai_provider_total_estimated_cost)/1000000",
"gen_ai_provider_avg_estimated_cost/1000000"
],
- "expressionLabels": [
- "total",
- "avg"
- ],
- "span": 12,
+ "span": 4,
"rowSpan": 2
}
],
@@ -202,48 +217,63 @@
"rowSpan": 2
},
{
- "id": "input_tokens",
+ "id": "input_tokens_total",
"title": "Input Tokens",
+ "type": "card",
+ "expressions": [
+ "latest(gen_ai_model_input_tokens_sum)"
+ ],
+ "span": 4,
+ "rowSpan": 2
+ },
+ {
+ "id": "output_tokens_total",
+ "title": "Output Tokens",
+ "type": "card",
+ "expressions": [
+ "latest(gen_ai_model_output_tokens_sum)"
+ ],
+ "span": 4,
+ "rowSpan": 2
+ },
+ {
+ "id": "cost_total",
+ "title": "Total Estimated Cost",
+ "type": "card",
+ "expressions": [
+ "latest(gen_ai_model_total_estimated_cost)/1000000"
+ ],
+ "span": 4,
+ "rowSpan": 2
+ },
+ {
+ "id": "input_tokens",
+ "title": "Average Input Tokens",
"type": "line",
"expressions": [
- "latest(gen_ai_model_input_tokens_sum)",
"gen_ai_model_input_tokens_avg"
],
- "expressionLabels": [
- "sum",
- "avg"
- ],
- "span": 6,
+ "span": 4,
"rowSpan": 2
},
{
"id": "output_tokens",
- "title": "Output Tokens",
+ "title": "Average Output Tokens",
"type": "line",
"expressions": [
- "latest(gen_ai_model_output_tokens_sum)",
"gen_ai_model_output_tokens_avg"
],
- "expressionLabels": [
- "sum",
- "avg"
- ],
- "span": 6,
+ "span": 4,
"rowSpan": 2
},
{
"id": "cost",
- "title": "Estimated Cost",
+ "title": "Average Estimated Cost",
"type": "line",
"expressions": [
- "latest(gen_ai_model_total_estimated_cost)/1000000",
"gen_ai_model_avg_estimated_cost/1000000"
],
- "expressionLabels": [
- "total",
- "avg"
- ],
- "span": 12,
+ "span": 4,
"rowSpan": 2
}
]