This is an automated email from the ASF dual-hosted git repository. wu-sheng pushed a commit to branch fix/bundled-templates in repository https://gitbox.apache.org/repos/asf/skywalking-horizon-ui.git
commit 965750fcf826ea04d909f6067f0305d362f697bd Author: Wu Sheng <[email protected]> AuthorDate: Tue Jun 23 22:43:38 2026 +0800 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. --- 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 | 28 +++- .../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 | 22 ++- .../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, 822 insertions(+), 746 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..dd30ba7 100644 --- a/apps/bff/src/bundled_templates/layers/clickhouse.json +++ b/apps/bff/src/bundled_templates/layers/clickhouse.json @@ -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", 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..23aa1dc 100644 --- a/apps/bff/src/bundled_templates/layers/elasticsearch.json +++ b/apps/bff/src/bundled_templates/layers/elasticsearch.json @@ -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 } ]
