diff --git a/apm-dist/src/main/assembly/binary.xml b/apm-dist/src/main/assembly/binary.xml index 13e77e606fcbba0dac386be6d45edbad9703ae7c..2470656cbc806e1d50edce271142f4504fb24446 100644 --- a/apm-dist/src/main/assembly/binary.xml +++ b/apm-dist/src/main/assembly/binary.xml @@ -64,9 +64,9 @@ envoy-metrics-rules/*.yaml meter-analyzer-config/*.yaml zabbix-rules/*.yaml - openapi-definitions/* + openapi-definitions/** otel-oc-rules/* - ui-initialized-templates/* + ui-initialized-templates/** lal/* log-mal-rules/* diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/management/ui/template/UITemplateInitializer.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/management/ui/template/UITemplateInitializer.java index 1b4c84e2197e479e9850612d66656723a02dd253..b5c7867256974c7fd0c7e2b8144a7d1cb4eac084 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/management/ui/template/UITemplateInitializer.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/management/ui/template/UITemplateInitializer.java @@ -25,12 +25,14 @@ import java.io.File; import java.io.IOException; import java.util.List; import java.util.Locale; +import java.util.Objects; import org.apache.skywalking.oap.server.core.CoreModule; import org.apache.skywalking.oap.server.core.analysis.Layer; import org.apache.skywalking.oap.server.core.query.input.DashboardSetting; import org.apache.skywalking.oap.server.core.query.type.DashboardConfiguration; import org.apache.skywalking.oap.server.library.module.ModuleManager; import org.apache.skywalking.oap.server.library.util.ResourceUtils; +import org.apache.skywalking.oap.server.library.util.StringUtil; /** * UITemplateInitializer load the template from the config file in json format. It depends on the UI implementation only. @@ -41,9 +43,13 @@ public class UITemplateInitializer { public static Layer[] SUPPORTED_LAYER = new Layer[] { Layer.MESH, Layer.GENERAL, + Layer.OS_LINUX, + Layer.MESH_CP, + Layer.MESH_DP, Layer.K8S, Layer.BROWSER, - Layer.SO11Y_OAP + Layer.SO11Y_OAP, + Layer.VIRTUAL_DATABASE }; private final UITemplateManagementService uiTemplateManagementService; private final ObjectMapper mapper; @@ -73,26 +79,29 @@ public class UITemplateInitializer { "File: " + template.getName() + " should be only one dashboard setting json object."); } JsonNode configNode = jsonNode.get(0).get("configuration"); - String inId = configNode.get("id").textValue(); - String inName = configNode.get("name").textValue(); - - verifyNameConflict(template, inId, inName); + String inId = jsonNode.get(0).get("id").textValue(); + String inNameKey = StringUtil.join('_', configNode.get("layer").textValue(), configNode.get("entity").textValue(), configNode.get("name").textValue()); + verifyNameConflict(template, inId, inNameKey); DashboardSetting setting = new DashboardSetting(); setting.setId(inId); setting.setConfiguration(configNode.toString()); - uiTemplateManagementService.addOrUpdate(setting); + uiTemplateManagementService.addIfNotExist(setting); } - private void verifyNameConflict(File template, String inId, String inName) throws IOException { + private void verifyNameConflict(File template, String inId, String inNameKey) throws IOException { List configurations = uiTemplateManagementService.getAllTemplates(false); for (DashboardConfiguration config : configurations) { - JsonNode jsonNode = mapper.readTree(config.getConfiguration()); - String id = jsonNode.get("id").textValue(); - if (jsonNode.get("name").textValue().equals(inName) && !id.equals(inId)) { + JsonNode configNode = mapper.readTree(config.getConfiguration()); + String id = config.getId(); + String nameKey = StringUtil.join( + '_', configNode.get("layer").textValue(), configNode.get("entity").textValue(), + configNode.get("name").textValue() + ); + if (Objects.equals(nameKey, inNameKey) && !id.equals(inId)) { throw new IllegalArgumentException( - "File: " + template.getName() + " name: " + inName + " conflict with exist configuration id: " + id); + "File: " + template.getName() + " layer_entity_name: " + inNameKey + " conflict with exist configuration id: " + id); } } } diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/management/ui/template/UITemplateManagementService.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/management/ui/template/UITemplateManagementService.java index 7fe250ea1159681f7252ee804c628e4d9436140c..0a31705b1be49dccc164b8c9487cfcc8c61e4124 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/management/ui/template/UITemplateManagementService.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/management/ui/template/UITemplateManagementService.java @@ -69,12 +69,10 @@ public class UITemplateManagementService implements Service { return getUITemplateManagementDAO().disableTemplate(id); } - public TemplateChangeStatus addOrUpdate(DashboardSetting setting) throws IOException { + public void addIfNotExist(DashboardSetting setting) throws IOException { DashboardConfiguration configuration = getUITemplateManagementDAO().getTemplate(setting.getId()); if (configuration == null) { - return getUITemplateManagementDAO().addTemplate(setting); - } else { - return getUITemplateManagementDAO().changeTemplate(setting); + getUITemplateManagementDAO().addTemplate(setting); } } } diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/browser/browser-root.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/browser/browser-root.json new file mode 100644 index 0000000000000000000000000000000000000000..78d5742d1e8fc3a4b8d4a3d847132227414fc3f0 --- /dev/null +++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/browser/browser-root.json @@ -0,0 +1,59 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +[ + { + "id": "Browser-Root", + "configuration": { + "children": [ + { + "x": 0, + "y": 0, + "w": 24, + "h": 51, + "i": "0", + "type": "Widget", + "widget": { + "title": "" + }, + "graph": { + "type": "ServiceList", + "dashboardName": "Browser-App", + "fontSize": 12, + "showXAxis": false, + "showYAxis": false, + "showGroup": true + }, + "standard": {}, + "metrics": [ + "browser_app_pv" + ], + "metricTypes": [ + "readMetricsValues" + ], + "metricConfig": [], + "moved": false + } + ], + "layer": "BROWSER", + "entity": "All", + "name": "Browser-Root", + "id": "Browser-Root", + "isRoot": true + } + } +] diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/general/general-endpoint.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/general/general-endpoint.json index e2e3de79e2815bfa25471404d28a0583c63692a4..1cbcb42be9f2fc71ab9cce6b9feb86b36cae72c2 100644 --- a/oap-server/server-starter/src/main/resources/ui-initialized-templates/general/general-endpoint.json +++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/general/general-endpoint.json @@ -38,7 +38,7 @@ "metricTypes": [ "" ], - "activedTabIndex": 1, + "activedTabIndex": 0, "children": [ { "name": "Overview", @@ -51,15 +51,13 @@ "i": "0", "type": "Widget", "widget": { - "title": "Successful Rate in Current Service" + "title": "Successful Rate in Current Service (%)" }, "graph": { "type": "TopList", "topN": "10" }, "standard": { - "unit": "%", - "divide": "100" }, "metrics": [ "endpoint_sla" @@ -67,7 +65,12 @@ "metricTypes": [ "sortMetrics" ], - "moved": false + "moved": false, + "metricConfig": [ + { + "calculation": "percentage" + } + ] }, { "x": 8, @@ -77,14 +80,13 @@ "i": "1", "type": "Widget", "widget": { - "title": "Slow Endpoints in Current Service" + "title": "Slow Endpoints in Current Service (ms)" }, "graph": { "type": "TopList", "topN": "10" }, "standard": { - "unit": "ms" }, "metrics": [ "endpoint_resp_time" @@ -102,7 +104,7 @@ "i": "2", "type": "Widget", "widget": { - "title": "Endpoint Load in Current Service", + "title": "Endpoint Load in Current Service (CPM)", "tips": "For HTTP 1/2, gRPC, RPC services, this means Calls Per Minute (CPM), for TCP services, this means Packets Per Minute (PPM)" }, "graph": { @@ -110,7 +112,6 @@ "topN": "10" }, "standard": { - "unit": "CPM" }, "metrics": [ "endpoint_cpm" @@ -128,7 +129,7 @@ "i": "3", "type": "Widget", "widget": { - "title": "Endpoint Response Time Percentile" + "title": "Endpoint Response Time Percentile (ms)" }, "graph": { "type": "Line", @@ -139,9 +140,6 @@ "showYAxis": true }, "standard": { - "unit": "ms", - "metricLabels": "P50, P75, P90, P95, P99", - "labelsIndex": "0,1,2,3,4" }, "metrics": [ "endpoint_percentile" @@ -149,7 +147,13 @@ "metricTypes": [ "readLabeledMetricsValues" ], - "moved": false + "moved": false, + "metricConfig": [ + { + "label": "P50, P75, P90, P95, P99", + "labelsIndex": "0, 1, 2, 3, 4" + } + ] }, { "x": 8, @@ -159,7 +163,7 @@ "i": "4", "type": "Widget", "widget": { - "title": "Endpoint Avg Response Time" + "title": "Endpoint Avg Response Time (ms)" }, "graph": { "type": "Line", @@ -170,7 +174,6 @@ "showYAxis": true }, "standard": { - "unit": "ms" }, "metrics": [ "endpoint_resp_time" @@ -188,7 +191,7 @@ "i": "5", "type": "Widget", "widget": { - "title": "Message Queue Avg Consuming Latency", + "title": "Message Queue Avg Consuming Latency (ms)", "tips": "The avg latency of message consuming. Latency = timestamp(received) - timestamp(producing)" }, "graph": { @@ -200,7 +203,6 @@ "showYAxis": true }, "standard": { - "unit": "ms" }, "metrics": [ "endpoint_mq_consume_latency" @@ -246,7 +248,7 @@ "i": "7", "type": "Widget", "widget": { - "title": "Endpoint Successful Rate" + "title": "Endpoint Successful Rate (%)" }, "graph": { "type": "Line", @@ -257,8 +259,6 @@ "showYAxis": true }, "standard": { - "unit": "%", - "divide": "100" }, "metrics": [ "endpoint_sla" @@ -276,7 +276,7 @@ "i": "8", "type": "Widget", "widget": { - "title": "Endpoint Load" + "title": "Endpoint Load (CPM)" }, "graph": { "type": "Line", @@ -387,7 +387,6 @@ "layer": "GENERAL", "entity": "Endpoint", "name": "General-Endpoint", - "id": "General-Endpoint", "isRoot": false } } diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/general/general-instance.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/general/general-instance.json index f1361c67f4d80bdfde7be2f3ec7912f1a2aa9c53..74d21d22fad433d8a3335face9d838761bd659c2 100644 --- a/oap-server/server-starter/src/main/resources/ui-initialized-templates/general/general-instance.json +++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/general/general-instance.json @@ -40,20 +40,20 @@ "metricTypes": [ "" ], - "activedTabIndex": 2, + "activedTabIndex": 0, "children": [ { "name": "Overview", "children": [ { - "x": 18, - "y": 0, - "w": 6, + "x": 0, + "y": 14, + "w": 12, "h": 13, "i": "0", "type": "Widget", "widget": { - "title": "Service Instance Latency" + "title": "Service Instance Latency (ms)" }, "graph": { "type": "Line", @@ -77,13 +77,12 @@ { "x": 12, "y": 0, - "w": 6, - "h": 13, + "w": 12, + "h": 14, "i": "1", "type": "Widget", "widget": { - "title": "Service Instance Successful Rate", - "tips": "" + "title": "Service Instance Successful Rate (%)" }, "graph": { "type": "Line", @@ -94,8 +93,6 @@ "showYAxis": true }, "standard": { - "unit": "%", - "divide": "100" }, "metrics": [ "service_instance_sla" @@ -103,39 +100,22 @@ "metricTypes": [ "readMetricsValues" ], - "moved": false - }, - { - "x": 6, - "y": 0, - "w": 6, - "h": 13, - "i": "2", - "type": "Widget", - "widget": { - "title": "Title" - }, - "graph": {}, - "standard": { - "unit": "%" - }, - "metrics": [ - "" - ], - "metricTypes": [ - "" - ], - "moved": false + "moved": false, + "metricConfig": [ + { + "calculation": "percentage" + } + ] }, { "x": 0, "y": 0, - "w": 6, - "h": 13, + "w": 12, + "h": 14, "i": "3", "type": "Widget", "widget": { - "title": "Service Instance Load", + "title": "Service Instance Load (CPM)", "tips": "For HTTP 1/2, gRPC, RPC services, this means Calls Per Minute (CPM), for TCP services, this means Packets Per Minute (PPM)" }, "graph": { @@ -147,7 +127,6 @@ "showYAxis": true }, "standard": { - "unit": "CPM" }, "metrics": [ "service_instance_cpm" @@ -158,9 +137,9 @@ "moved": false }, { - "x": 0, - "y": 13, - "w": 6, + "x": 12, + "y": 14, + "w": 12, "h": 13, "i": "10", "type": "Widget", @@ -247,7 +226,7 @@ "i": "5", "type": "Widget", "widget": { - "title": "JVM Memory (Java Service)" + "title": "JVM Memory (MB)" }, "graph": { "type": "Line", @@ -258,8 +237,6 @@ "showYAxis": true }, "standard": { - "unit": "MB", - "divide": "1048576" }, "metrics": [ "instance_jvm_memory_noheap_max", @@ -370,7 +347,7 @@ "i": "14", "type": "Widget", "widget": { - "title": "JVM CPU" + "title": "JVM CPU (%)" }, "graph": { "type": "Line", @@ -381,7 +358,6 @@ "showYAxis": true }, "standard": { - "unit": "%" }, "metrics": [ "instance_jvm_cpu" @@ -428,7 +404,7 @@ "i": "6", "type": "Widget", "widget": { - "title": "JVM GC Time" + "title": "JVM GC Time (ms)" }, "graph": { "type": "Line", @@ -439,7 +415,6 @@ "showYAxis": true }, "standard": { - "unit": "ms" }, "metrics": [ "instance_jvm_young_gc_time", @@ -535,8 +510,6 @@ "showYAxis": true }, "standard": { - "unit": "MB", - "divide": "1048576" }, "metrics": [ "instance_clr_heap_memory" @@ -592,7 +565,6 @@ "showYAxis": true }, "standard": { - "unit": "%" }, "metrics": [ "instance_clr_cpu" @@ -611,7 +583,6 @@ "layer": "GENERAL", "entity": "ServiceInstance", "name": "General-Instance", - "id": "General-Instance", "isRoot": false } } diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/general/general-root.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/general/general-root.json index 20b75b7af8935189779f79f9038a57cfd008a5d7..1f580abbe2b2f822cdf331f14b3a85b187fdc09a 100644 --- a/oap-server/server-starter/src/main/resources/ui-initialized-templates/general/general-root.json +++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/general/general-root.json @@ -156,7 +156,6 @@ "layer": "GENERAL", "entity": "All", "name": "General-Root", - "id": "General-Root", "isRoot": true } } diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/general/general-service.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/general/general-service.json index cb998affd3f57c2753d34a89262ab55598dbcadc..49019428a20d16bec880e5734c2724904cb42e9c 100644 --- a/oap-server/server-starter/src/main/resources/ui-initialized-templates/general/general-service.json +++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/general/general-service.json @@ -38,7 +38,7 @@ "metricTypes": [ "" ], - "activedTabIndex": 3, + "activedTabIndex": 0, "children": [ { "name": "Overview", @@ -46,7 +46,7 @@ { "x": 0, "y": 0, - "w": 7, + "w": 8, "h": 5, "i": "0", "type": "Widget", @@ -56,11 +56,9 @@ "graph": { "type": "Card", "fontSize": 14, - "textAlign": "center", - "showUint": true + "textAlign": "center" }, "standard": { - "divide": "10000" }, "metrics": [ "service_apdex" @@ -68,12 +66,17 @@ "metricTypes": [ "readMetricsValue" ], - "moved": false + "moved": false, + "metricConfig": [ + { + "calculation": "apdex" + } + ] }, { - "x": 7, + "x": 8, "y": 0, - "w": 9, + "w": 8, "h": 5, "i": "1", "type": "Widget", @@ -84,14 +87,9 @@ "type": "Card", "fontSize": 14, "textAlign": "center", - "showUint": true + "showUnit": true }, "standard": { - "0": "1", - "1": "0", - "2": "0", - "divide": "100", - "unit": "%" }, "metrics": [ "service_sla" @@ -99,7 +97,13 @@ "metricTypes": [ "readMetricsValue" ], - "moved": false + "moved": false, + "metricConfig": [ + { + "calculation": "percentage", + "unit": "%" + } + ] }, { "x": 16, @@ -116,11 +120,9 @@ "type": "Card", "fontSize": 14, "textAlign": "center", - "showUint": true + "showUnit": true }, "standard": { - "divide": 100, - "unit": "CPM" }, "metrics": [ "service_cpm" @@ -128,7 +130,12 @@ "metricTypes": [ "readMetricsValue" ], - "moved": false + "moved": false, + "metricConfig": [ + { + "unit": "CPM" + } + ] }, { "x": 0, @@ -138,7 +145,7 @@ "i": "3", "type": "Widget", "widget": { - "title": "Service Avg Response Time" + "title": "Service Avg Response Time (ms)" }, "graph": { "type": "Line", @@ -149,7 +156,6 @@ "showYAxis": true }, "standard": { - "unit": "ms" }, "metrics": [ "service_resp_time" @@ -157,7 +163,11 @@ "metricTypes": [ "readMetricsValues" ], - "moved": false + "moved": false, + "metricConfig": [ + { + } + ] }, { "x": 6, @@ -178,7 +188,6 @@ "showYAxis": true }, "standard": { - "divide": "10000" }, "metrics": [ "service_apdex" @@ -186,7 +195,12 @@ "metricTypes": [ "readMetricsValues" ], - "moved": false + "moved": false, + "metricConfig": [ + { + "calculation": "apdex" + } + ] }, { "x": 12, @@ -196,7 +210,7 @@ "i": "5", "type": "Widget", "widget": { - "title": "Service Response Time Percentile" + "title": "Service Response Time Percentile (ms)" }, "graph": { "type": "Line", @@ -207,9 +221,6 @@ "showYAxis": true }, "standard": { - "unit": "ms", - "metricLabels": "P50, P75, P90, P95, P99", - "labelsIndex": "0, 1, 2, 3, 4" }, "metrics": [ "service_percentile" @@ -217,7 +228,13 @@ "metricTypes": [ "readLabeledMetricsValues" ], - "moved": false + "moved": false, + "metricConfig": [ + { + "label": "P50, P75, P90, P95, P99", + "labelsIndex": "0, 1, 2, 3, 4" + } + ] }, { "x": 18, @@ -227,7 +244,7 @@ "i": "6", "type": "Widget", "widget": { - "title": "Successful Rate" + "title": "Successful Rate (%)" }, "graph": { "type": "Line", @@ -247,17 +264,22 @@ "metricTypes": [ "readMetricsValues" ], - "moved": false + "moved": false, + "metricConfig": [ + { + "calculation": "percentage" + } + ] }, { "x": 0, "y": 16, - "w": 6, + "w": 8, "h": 11, "i": "7", "type": "Widget", "widget": { - "title": "Service Load", + "title": "Service Load (CPM)", "tips": "For HTTP 1/2, gRPC, RPC services, this means Calls Per Minute (CPM)" }, "graph": { @@ -269,8 +291,6 @@ "showYAxis": true }, "standard": { - "divide": 1, - "unit": "CPM" }, "metrics": [ "service_cpm" @@ -281,9 +301,9 @@ "moved": false }, { - "x": 6, + "x": 8, "y": 16, - "w": 6, + "w": 8, "h": 11, "i": "9", "type": "Widget", @@ -299,8 +319,6 @@ "showYAxis": true }, "standard": { - "divide": 1, - "unit": "" }, "metrics": [ "service_mq_consume_count" @@ -311,14 +329,14 @@ "moved": false }, { - "x": 12, + "x": 16, "y": 16, - "w": 6, + "w": 8, "h": 11, "i": "10", "type": "Widget", "widget": { - "title": "Message Queue Avg Consuming Latency", + "title": "Message Queue Avg Consuming Latency (ms)", "tips": "The avg latency of message consuming. Latency = timestamp(received) - timestamp(producing)" }, "graph": { @@ -330,8 +348,6 @@ "showYAxis": true }, "standard": { - "divide": "1", - "unit": "ms" }, "metrics": [ "service_mq_consume_latency" @@ -340,6 +356,93 @@ "readMetricsValues" ], "moved": false + }, + { + "x": 0, + "y": 27, + "w": 8, + "h": 14, + "i": "11", + "type": "Widget", + "widget": { + "title": "", + "tips": "For HTTP 1/2, gRPC, RPC services, this means Calls Per Minute (CPM)," + }, + "graph": { + "type": "TopList" + }, + "standard": {}, + "metrics": [ + "service_instance_cpm" + ], + "metricTypes": [ + "sortMetrics" + ], + "metricConfig": [ + { + "sortOrder": "DES", + "calculation": "percentage" + } + ], + "moved": false + }, + { + "x": 8, + "y": 27, + "w": 8, + "h": 14, + "i": "12", + "type": "Widget", + "widget": { + "title": "Slow Service Instance (ms)" + }, + "graph": { + "type": "TopList", + "topN": "10" + }, + "standard": {}, + "metrics": [ + "service_instance_resp_time" + ], + "metricTypes": [ + "sortMetrics" + ], + "metricConfig": [ + { + "sortOrder": "DES", + "calculation": "percentage" + } + ], + "moved": false + }, + { + "x": 16, + "y": 27, + "w": 8, + "h": 14, + "i": "13", + "type": "Widget", + "widget": { + "title": "Service Instance Successful Rate (%)" + }, + "graph": { + "type": "TopList", + "topN": "10" + }, + "standard": {}, + "metrics": [ + "service_instance_sla" + ], + "metricTypes": [ + "sortMetrics" + ], + "metricConfig": [ + { + "sortOrder": "ASC", + "calculation": "percentage" + } + ], + "moved": false } ] }, @@ -530,8 +633,7 @@ ], "layer": "GENERAL", "entity": "Service", - "name": "General-Service", - "id": "General-Service" + "name": "General-Service" } } ] diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh/mesh-endpoint.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh/mesh-endpoint.json index 62f2146341ed1c9876ad330338a6707b3cb79f6d..46f286fbf6e3933e69ed842e7bd0b5ef171b61ca 100644 --- a/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh/mesh-endpoint.json +++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh/mesh-endpoint.json @@ -38,7 +38,7 @@ "metricTypes": [ "" ], - "activedTabIndex": 2, + "activedTabIndex": 0, "children": [ { "name": "Overview", @@ -51,15 +51,13 @@ "i": "0", "type": "Widget", "widget": { - "title": "Successful Rate in Current Service" + "title": "Successful Rate in Current Service (%)" }, "graph": { "type": "TopList", "topN": "10" }, "standard": { - "unit": "%", - "divide": "100" }, "metrics": [ "endpoint_sla" @@ -77,14 +75,13 @@ "i": "1", "type": "Widget", "widget": { - "title": "Slow Endpoints in Current Service" + "title": "Slow Endpoints in Current Service (ms)" }, "graph": { "type": "TopList", "topN": "10" }, "standard": { - "unit": "ms" }, "metrics": [ "endpoint_resp_time" @@ -102,7 +99,7 @@ "i": "2", "type": "Widget", "widget": { - "title": "Endpoint Load in Current Service", + "title": "Endpoint Load in Current Service (CPM / PPM)", "tips": "For HTTP 1/2, gRPC, RPC services, this means Calls Per Minute (CPM), for TCP services, this means Packets Per Minute (PPM)" }, "graph": { @@ -110,7 +107,6 @@ "topN": "10" }, "standard": { - "unit": "CPM" }, "metrics": [ "endpoint_cpm" @@ -128,7 +124,7 @@ "i": "3", "type": "Widget", "widget": { - "title": "Endpoint Response Time Percentile" + "title": "Endpoint Response Time Percentile (ms)" }, "graph": { "type": "Line", @@ -149,7 +145,13 @@ "metricTypes": [ "readLabeledMetricsValues" ], - "moved": false + "moved": false, + "metricConfig": [ + { + "label": "P50, P75, P90, P95, P99", + "labelsIndex": "0,1,2,3,4" + } + ] }, { "x": 8, @@ -159,7 +161,7 @@ "i": "4", "type": "Widget", "widget": { - "title": "Endpoint Avg Response Time" + "title": "Endpoint Avg Response Time (ms)" }, "graph": { "type": "Line", @@ -170,7 +172,6 @@ "showYAxis": true }, "standard": { - "unit": "ms" }, "metrics": [ "endpoint_resp_time" @@ -180,65 +181,6 @@ ], "moved": false }, - { - "x": 16, - "y": 26, - "w": 8, - "h": 13, - "i": "5", - "type": "Widget", - "widget": { - "title": "Message Queue Avg Consuming Latency", - "tips": "The avg latency of message consuming. Latency = timestamp(received) - timestamp(producing)" - }, - "graph": { - "type": "Line", - "step": false, - "smooth": false, - "showSymbol": false, - "showXAxis": true, - "showYAxis": true - }, - "standard": { - "unit": "ms" - }, - "metrics": [ - "endpoint_mq_consume_latency" - ], - "metricTypes": [ - "readMetricsValues" - ], - "moved": false - }, - { - "x": 8, - "y": 26, - "w": 8, - "h": 13, - "i": "6", - "type": "Widget", - "widget": { - "title": "Message Queue Consuming Count", - "tips": "The number of consumed messages." - }, - "graph": { - "type": "Line", - "step": false, - "smooth": false, - "showSymbol": false, - "showXAxis": true, - "showYAxis": true - }, - "standard": { - }, - "metrics": [ - "endpoint_mq_consume_count" - ], - "metricTypes": [ - "readMetricsValues" - ], - "moved": false - }, { "x": 0, "y": 26, @@ -247,7 +189,7 @@ "i": "7", "type": "Widget", "widget": { - "title": "Endpoint Successful Rate" + "title": "Endpoint Successful Rate (%)" }, "graph": { "type": "Line", @@ -258,8 +200,6 @@ "showYAxis": true }, "standard": { - "unit": "%", - "divide": "100" }, "metrics": [ "endpoint_sla" @@ -277,7 +217,7 @@ "i": "8", "type": "Widget", "widget": { - "title": "Endpoint Load" + "title": "Endpoint Load (CPM / PPM)" }, "graph": { "type": "Line", @@ -287,8 +227,7 @@ "showXAxis": true, "showYAxis": true }, - "standard": { - }, + "standard": {}, "metrics": [ "endpoint_cpm" ], @@ -358,7 +297,6 @@ "layer": "MESH", "entity": "Endpoint", "name": "Mesh-Endpoint", - "id": "Mesh-Endpoint", "isRoot": false } } diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh/mesh-instance.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh/mesh-instance.json index 155ed1a04940e43b8b13edde987bcc18f0a8fe1d..30103a896ce1990c83de369a4583ef875829bf72 100644 --- a/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh/mesh-instance.json +++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh/mesh-instance.json @@ -44,14 +44,14 @@ "name": "Overview", "children": [ { - "x": 18, - "y": 0, - "w": 6, - "h": 13, + "x": 11, + "y": 14, + "w": 13, + "h": 14, "i": "0", "type": "Widget", "widget": { - "title": "Service Instance Latency" + "title": "Service Instance Latency (ms)" }, "graph": { "type": "Line", @@ -62,7 +62,6 @@ "showYAxis": true }, "standard": { - "unit": "ms" }, "metrics": [ "service_instance_resp_time" @@ -73,15 +72,14 @@ "moved": false }, { - "x": 12, - "y": 0, - "w": 6, - "h": 13, + "x": 0, + "y": 14, + "w": 11, + "h": 14, "i": "1", "type": "Widget", "widget": { - "title": "Service Instance Successful Rate", - "tips": "" + "title": "Service Instance Successful Rate (%)" }, "graph": { "type": "Line", @@ -92,8 +90,6 @@ "showYAxis": true }, "standard": { - "unit": "%", - "divide": "100" }, "metrics": [ "service_instance_sla" @@ -104,36 +100,44 @@ "moved": false }, { - "x": 6, + "x": 11, "y": 0, - "w": 6, - "h": 13, + "w": 13, + "h": 14, "i": "2", "type": "Widget", "widget": { - "title": "Title" + "title": "Service Throughput (Bytes)" + }, + "graph": { + "type": "Line", + "step": false, + "smooth": false, + "showSymbol": false, + "showXAxis": true, + "showYAxis": true }, - "graph": {}, "standard": { - "unit": "%" }, "metrics": [ - "" + "service_throughput_received", + "service_throughput_sent" ], "metricTypes": [ - "" + "readMetricsValues", + "readMetricsValues" ], "moved": false }, { "x": 0, "y": 0, - "w": 6, - "h": 13, + "w": 11, + "h": 14, "i": "3", "type": "Widget", "widget": { - "title": "Service Instance Load", + "title": "Service Instance Load (CPM / PPM)", "tips": "For HTTP 1/2, gRPC, RPC services, this means Calls Per Minute (CPM), for TCP services, this means Packets Per Minute (PPM)" }, "graph": { @@ -145,7 +149,6 @@ "showYAxis": true }, "standard": { - "unit": "CPM / PPM" }, "metrics": [ "service_instance_cpm" @@ -188,8 +191,7 @@ ], "layer": "MESH", "entity": "ServiceInstance", - "name": "Mesh-Instance", - "id": "Mesh-Instance" + "name": "Mesh-Instance" } } ] diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh/mesh-service.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh/mesh-service.json index 288c1b7d673b783516b14128b24bfc2b7eb112fc..18d3191c2692657dfb142631fba3d1062a430f64 100644 --- a/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh/mesh-service.json +++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh/mesh-service.json @@ -24,7 +24,7 @@ "x": 0, "y": 0, "w": 24, - "h": 52, + "h": 51, "i": "0", "type": "Tab", "widget": { @@ -38,7 +38,7 @@ "metricTypes": [ "" ], - "activedTabIndex": 4, + "activedTabIndex": 0, "children": [ { "name": "Overview", @@ -46,7 +46,7 @@ { "x": 0, "y": 0, - "w": 7, + "w": 8, "h": 5, "i": "0", "type": "Widget", @@ -56,24 +56,26 @@ "graph": { "type": "Card", "fontSize": 14, - "textAlign": "center", - "showUint": true - }, - "standard": { - "divide": "10000" + "textAlign": "center" }, + "standard": {}, "metrics": [ "service_apdex" ], "metricTypes": [ "readMetricsValue" ], - "moved": false + "moved": false, + "metricConfig": [ + { + "calculation": "apdex" + } + ] }, { - "x": 7, + "x": 8, "y": 0, - "w": 9, + "w": 8, "h": 5, "i": "1", "type": "Widget", @@ -84,19 +86,22 @@ "type": "Card", "fontSize": 14, "textAlign": "center", - "showUint": true - }, - "standard": { - "divide": "100", - "unit": "%" + "showUnit": true }, + "standard": {}, "metrics": [ "service_sla" ], "metricTypes": [ "readMetricsValue" ], - "moved": false + "moved": false, + "metricConfig": [ + { + "calculation": "percentage", + "unit": "%" + } + ] }, { "x": 16, @@ -113,29 +118,31 @@ "type": "Card", "fontSize": 14, "textAlign": "center", - "showUint": true - }, - "standard": { - "divide": 100, - "unit": "CPM / PPM" + "showUnit": true }, + "standard": {}, "metrics": [ "service_cpm" ], "metricTypes": [ "readMetricsValue" ], - "moved": false + "moved": false, + "metricConfig": [ + { + "unit": "CPM / PPM" + } + ] }, { "x": 0, "y": 5, - "w": 6, - "h": 11, + "w": 8, + "h": 12, "i": "3", "type": "Widget", "widget": { - "title": "Service Avg Response Time" + "title": "Service Avg Response Time (ms)" }, "graph": { "type": "Line", @@ -145,9 +152,7 @@ "showXAxis": true, "showYAxis": true }, - "standard": { - "unit": "ms" - }, + "standard": {}, "metrics": [ "service_resp_time" ], @@ -157,10 +162,10 @@ "moved": false }, { - "x": 6, - "y": 5, - "w": 6, - "h": 11, + "x": 8, + "y": 17, + "w": 8, + "h": 12, "i": "4", "type": "Widget", "widget": { @@ -174,26 +179,29 @@ "showXAxis": true, "showYAxis": true }, - "standard": { - "divide": "10000" - }, + "standard": {}, "metrics": [ "service_apdex" ], "metricTypes": [ "readMetricsValues" ], - "moved": false + "moved": false, + "metricConfig": [ + { + "calculation": "apdex" + } + ] }, { - "x": 12, + "x": 8, "y": 5, - "w": 6, - "h": 11, + "w": 8, + "h": 12, "i": "5", "type": "Widget", "widget": { - "title": "Service Response Time Percentile" + "title": "Service Response Time Percentile (ms)" }, "graph": { "type": "Line", @@ -203,28 +211,30 @@ "showXAxis": true, "showYAxis": true }, - "standard": { - "unit": "ms", - "metricLabels": "P50, P75, P90, P95, P99", - "labelsIndex": "0, 1, 2, 3, 4" - }, + "standard": {}, "metrics": [ "service_percentile" ], "metricTypes": [ "readLabeledMetricsValues" ], - "moved": false + "moved": false, + "metricConfig": [ + { + "label": "P50, P75, P90, P95, P99", + "labelsIndex": "0, 1, 2, 3, 4" + } + ] }, { - "x": 18, - "y": 5, - "w": 6, - "h": 11, + "x": 0, + "y": 17, + "w": 8, + "h": 12, "i": "6", "type": "Widget", "widget": { - "title": "Successful Rate" + "title": "Successful Rate (%)" }, "graph": { "type": "Line", @@ -234,10 +244,7 @@ "showXAxis": true, "showYAxis": true }, - "standard": { - "divide": 100, - "unit": "%" - }, + "standard": {}, "metrics": [ "service_sla" ], @@ -247,14 +254,14 @@ "moved": false }, { - "x": 0, - "y": 16, - "w": 6, - "h": 11, + "x": 16, + "y": 17, + "w": 8, + "h": 12, "i": "7", "type": "Widget", "widget": { - "title": "Service Load", + "title": "Service Load (CPM / PPM)", "tips": "For HTTP 1/2, gRPC, RPC services, this means Calls Per Minute (CPM), for TCP services, this means Packets Per Minute (PPM)" }, "graph": { @@ -265,10 +272,7 @@ "showXAxis": true, "showYAxis": true }, - "standard": { - "unit": "CPM / PPM", - "divide": 1 - }, + "standard": {}, "metrics": [ "service_cpm" ], @@ -278,25 +282,114 @@ "moved": false }, { - "x": 6, - "y": 16, - "w": 6, - "h": 11, + "x": 16, + "y": 5, + "w": 8, + "h": 12, "i": "8", "type": "Widget", "widget": { - "title": "Service Throughput", + "title": "Service Throughput (Bytes)", "tips": "This metrics is only avaible for TCP services" }, - "graph": {}, - "standard": { - "unit": "Bytes" + "graph": { + "type": "Line", + "step": false, + "smooth": false, + "showSymbol": false, + "showXAxis": true, + "showYAxis": true }, + "standard": {}, "metrics": [ - "" + "service_throughput_received", + "service_throughput_sent" ], "metricTypes": [ - "" + "readMetricsValues", + "readMetricsValues" + ], + "moved": false + }, + { + "x": 0, + "y": 29, + "w": 8, + "h": 14, + "i": "9", + "type": "Widget", + "widget": { + "title": "Service Instances Load (CPM / PPM)" + }, + "graph": { + "type": "TopList", + "topN": "10" + }, + "standard": {}, + "metrics": [ + "service_instance_cpm" + ], + "metricTypes": [ + "sortMetrics" + ], + "metricConfig": [ + { + "calculation": "percentage" + } + ], + "moved": false + }, + { + "x": 8, + "y": 29, + "w": 8, + "h": 14, + "i": "10", + "type": "Widget", + "widget": { + "title": "Slow Service Instance (ms)" + }, + "graph": { + "type": "TopList" + }, + "standard": {}, + "metrics": [ + "service_instance_resp_time" + ], + "metricTypes": [ + "sortMetrics" + ], + "metricConfig": [ + { + "calculation": "percentage" + } + ], + "moved": false + }, + { + "x": 16, + "y": 29, + "w": 8, + "h": 14, + "i": "11", + "type": "Widget", + "widget": { + "title": "Service Instance Successful Rate (%)" + }, + "graph": { + "type": "TopList" + }, + "standard": {}, + "metrics": [ + "service_instance_sla" + ], + "metricTypes": [ + "sortMetrics" + ], + "metricConfig": [ + { + "calculation": "percentage" + } ], "moved": false } @@ -309,7 +402,7 @@ "x": 0, "y": 0, "w": 24, - "h": 49, + "h": 48, "i": "0", "type": "Widget", "widget": { @@ -420,8 +513,7 @@ ], "layer": "MESH", "entity": "Service", - "name": "Mesh-Service", - "id": "Mesh-Service" + "name": "Mesh-Service" } } ] diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh_cp/mesh-control-plane-root.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh_cp/mesh-control-plane-root.json new file mode 100644 index 0000000000000000000000000000000000000000..ed2d9aefe694efa4eb8dcf2b86544c736e26daca --- /dev/null +++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh_cp/mesh-control-plane-root.json @@ -0,0 +1,57 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +[ + { + "id": "Mesh-Control-Plane-Root", + "configuration": { + "children": [ + { + "x": 0, + "y": 0, + "w": 24, + "h": 51, + "i": "0", + "type": "Widget", + "widget": { + "title": "" + }, + "graph": { + "type": "ServiceList", + "dashboardName": "Mesh-Control-Plane-Service", + "fontSize": 12, + "showXAxis": false, + "showYAxis": false, + "showGroup": true + }, + "standard": {}, + "metrics": [ + "" + ], + "metricTypes": [ + "" + ], + "moved": false + } + ], + "layer": "MESH_CP", + "entity": "All", + "name": "Mesh-Control-Plane-Root", + "isRoot": true + } + } +] diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh_cp/mesh-control-plane-service.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh_cp/mesh-control-plane-service.json new file mode 100644 index 0000000000000000000000000000000000000000..13503cc962137d20c20e4b3c523387316e7a15cd --- /dev/null +++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh_cp/mesh-control-plane-service.json @@ -0,0 +1,345 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +[ + { + "id": "Mesh-Control-Plane-Service", + "configuration": { + "children": [ + { + "x": 12, + "y": 0, + "w": 6, + "h": 12, + "i": "0", + "type": "Widget", + "widget": { + "title": "CPU" + }, + "graph": { + "type": "Area", + "opacity": 0.4, + "showXAxis": true, + "showYAxis": true + }, + "standard": { + "unit": "%" + }, + "metrics": [ + "meter_istio_cpu" + ], + "metricTypes": [ + "readMetricsValues" + ], + "moved": false + }, + { + "x": 18, + "y": 0, + "w": 6, + "h": 12, + "i": "1", + "type": "Widget", + "widget": { + "title": "Goroutines" + }, + "graph": { + "type": "Area", + "opacity": 0.4, + "showXAxis": true, + "showYAxis": true + }, + "standard": {}, + "metrics": [ + "meter_istio_go_goroutines" + ], + "metricTypes": [ + "readMetricsValues" + ], + "moved": false + }, + { + "x": 0, + "y": 0, + "w": 6, + "h": 12, + "i": "2", + "type": "Widget", + "widget": { + "title": "Istio Versions" + }, + "graph": { + "type": "Area", + "opacity": 0.4, + "showXAxis": true, + "showYAxis": true + }, + "standard": {}, + "metrics": [ + "meter_istio_pilot_version" + ], + "metricTypes": [ + "readLabeledMetricsValues" + ], + "moved": false + }, + { + "x": 6, + "y": 0, + "w": 6, + "h": 12, + "i": "3", + "type": "Widget", + "widget": { + "title": "Memory" + }, + "graph": { + "type": "Area", + "opacity": 0.4, + "showXAxis": true, + "showYAxis": true + }, + "standard": { + "0": "1", + "1": "0", + "2": "4", + "3": "8", + "4": "5", + "5": "7", + "6": "6", + "unit": "MB", + "divide": "1048576" + }, + "metrics": [ + "meter_istio_go_stack_inuse", + "meter_istio_virtual_memory", + "meter_istio_go_alloc", + "meter_istio_resident_memory", + "meter_istio_go_heap_inuse" + ], + "metricTypes": [ + "readMetricsValues", + "readMetricsValues", + "readMetricsValues", + "readMetricsValues", + "readMetricsValues" + ], + "moved": false + }, + { + "x": 8, + "y": 12, + "w": 8, + "h": 14, + "i": "4", + "type": "Widget", + "widget": { + "title": "Pilot Errors" + }, + "graph": { + "type": "Area", + "opacity": 0.4, + "showXAxis": true, + "showYAxis": true + }, + "standard": {}, + "metrics": [ + "meter_istio_pilot_xds_cds_reject", + "meter_istio_pilot_xds_eds_reject", + "meter_istio_pilot_xds_rds_reject", + "meter_istio_pilot_xds_lds_reject", + "meter_istio_pilot_xds_write_timeout" + ], + "metricTypes": [ + "readMetricsValues", + "readMetricsValues", + "readMetricsValues", + "readMetricsValues", + "readMetricsValues" + ], + "moved": false + }, + { + "x": 16, + "y": 12, + "w": 8, + "h": 14, + "i": "5", + "type": "Widget", + "widget": { + "title": "Proxy Push Time" + }, + "graph": { + "type": "Area", + "opacity": 0.4, + "showXAxis": true, + "showYAxis": true + }, + "standard": { + "unit": "%" + }, + "metrics": [ + "meter_istio_pilot_proxy_push_percentile" + ], + "metricTypes": [ + "readLabeledMetricsValues" + ], + "moved": false + }, + { + "x": 0, + "y": 12, + "w": 8, + "h": 14, + "i": "6", + "type": "Widget", + "widget": { + "title": "Pilot pushes" + }, + "graph": { + "type": "Bar", + "showBackground": true + }, + "standard": {}, + "metrics": [ + "meter_istio_pilot_xds_pushes" + ], + "metricTypes": [ + "readLabeledMetricsValues" + ], + "moved": false + }, + { + "x": 12, + "y": 40, + "w": 12, + "h": 14, + "i": "7", + "type": "Widget", + "widget": { + "title": "Sidecar Injection" + }, + "graph": { + "type": "Area", + "opacity": 0.4, + "showXAxis": true, + "showYAxis": true + }, + "standard": {}, + "metrics": [ + "meter_istio_sidecar_injection_success_total" + ], + "metricTypes": [ + "readMetricsValues" + ], + "moved": false + }, + { + "x": 12, + "y": 26, + "w": 12, + "h": 14, + "i": "8", + "type": "Widget", + "widget": { + "title": "ADS Monitoring" + }, + "graph": { + "type": "Area", + "opacity": 0.4, + "showXAxis": true, + "showYAxis": true + }, + "standard": {}, + "metrics": [ + "meter_istio_pilot_xds", + "meter_istio_pilot_services", + "meter_istio_pilot_virt_services" + ], + "metricTypes": [ + "readMetricsValues", + "readMetricsValues", + "readMetricsValues" + ], + "moved": false + }, + { + "x": 0, + "y": 40, + "w": 12, + "h": 14, + "i": "9", + "type": "Widget", + "widget": { + "title": "Configuration Validation" + }, + "graph": { + "type": "Line", + "step": false, + "smooth": false, + "showSymbol": false, + "showXAxis": true, + "showYAxis": true + }, + "standard": {}, + "metrics": [ + "meter_istio_galley_validation_passed", + "meter_istio_galley_validation_failed" + ], + "metricTypes": [ + "readMetricsValues", + "readMetricsValues" + ], + "moved": false + }, + { + "x": 0, + "y": 26, + "w": 12, + "h": 14, + "i": "10", + "type": "Widget", + "widget": { + "title": "Conflicts" + }, + "graph": { + "type": "Bar", + "showBackground": true + }, + "standard": {}, + "metrics": [ + "meter_istio_pilot_conflict_ol_tcp_tcp", + "meter_istio_pilot_conflict_il", + "meter_istio_pilot_conflict_ol_tcp_http", + "meter_istio_pilot_conflict_ol_http_tcp" + ], + "metricTypes": [ + "readMetricsValues", + "readMetricsValues", + "readMetricsValues", + "readMetricsValues" + ], + "moved": false + } + ], + "name": "Mesh-Control-Plane-Service", + "layer": "MESH_CP", + "entity": "Service", + "isRoot": false + } + } +] diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh_dp/mesh-data-plane-instance.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh_dp/mesh-data-plane-instance.json new file mode 100644 index 0000000000000000000000000000000000000000..bdf44fcb4dda0d61b85ed9c41e020ce7f83e8562 --- /dev/null +++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh_dp/mesh-data-plane-instance.json @@ -0,0 +1,318 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +[ + { + "id": "Mesh-Data-Plane-Instance", + "configuration": { + "children": [ + { + "x": 18, + "y": 13, + "w": 6, + "h": 13, + "i": "0", + "type": "Widget", + "widget": { + "title": "Upstream Request Active" + }, + "graph": { + "type": "Line", + "step": false, + "smooth": false, + "showSymbol": false, + "showXAxis": true, + "showYAxis": true + }, + "standard": {}, + "metrics": [ + "envoy_cluster_up_rq_active" + ], + "metricTypes": [ + "readLabeledMetricsValues", + "readMetricsValues" + ], + "moved": false + }, + { + "x": 6, + "y": 0, + "w": 6, + "h": 13, + "i": "1", + "type": "Widget", + "widget": { + "title": "Connections Used" + }, + "graph": { + "type": "Line", + "step": false, + "smooth": false, + "showSymbol": false, + "showXAxis": true, + "showYAxis": true + }, + "standard": {}, + "metrics": [ + "envoy_total_connections_used", + "envoy_parent_connections_used" + ], + "metricTypes": [ + "readMetricsValues", + "readMetricsValues" + ], + "moved": false + }, + { + "x": 0, + "y": 13, + "w": 6, + "h": 13, + "i": "2", + "type": "Widget", + "widget": { + "title": "Membership Healthy" + }, + "graph": { + "type": "Line", + "step": false, + "smooth": false, + "showSymbol": false, + "showXAxis": true, + "showYAxis": true + }, + "standard": {}, + "metrics": [ + "envoy_cluster_membership_healthy" + ], + "metricTypes": [ + "readLabeledMetricsValues" + ], + "moved": false + }, + { + "x": 12, + "y": 13, + "w": 6, + "h": 13, + "i": "3", + "type": "Widget", + "widget": { + "title": "Upstream Connection Increase" + }, + "graph": { + "type": "Line", + "step": false, + "smooth": false, + "showSymbol": false, + "showXAxis": true, + "showYAxis": true + }, + "standard": {}, + "metrics": [ + "envoy_cluster_up_cx_incr" + ], + "metricTypes": [ + "readLabeledMetricsValues" + ], + "moved": false + }, + { + "x": 6, + "y": 26, + "w": 6, + "h": 13, + "i": "4", + "type": "Widget", + "widget": { + "title": "Upstream Request Pending Active" + }, + "graph": { + "type": "Line", + "step": false, + "smooth": false, + "showSymbol": false, + "showXAxis": true, + "showYAxis": true + }, + "standard": {}, + "metrics": [ + "envoy_cluster_up_rq_pending_active" + ], + "metricTypes": [ + "readLabeledMetricsValues" + ], + "moved": false + }, + { + "x": 0, + "y": 0, + "w": 6, + "h": 13, + "i": "5", + "type": "Widget", + "widget": { + "title": "Heap Memory Used" + }, + "graph": { + "type": "Line", + "step": false, + "smooth": false, + "showSymbol": false, + "showXAxis": true, + "showYAxis": true + }, + "standard": { + "unit": "MB", + "divide": "1048576" + }, + "metrics": [ + "envoy_memory_allocated_max", + "envoy_heap_memory_used", + "envoy_memory_allocated", + "envoy_memory_physical_size", + "envoy_memory_physical_size_max", + "envoy_heap_memory_max_used" + ], + "metricTypes": [ + "readMetricsValues", + "readMetricsValues", + "readMetricsValues", + "readMetricsValues", + "readMetricsValues", + "readMetricsValues" + ], + "moved": false + }, + { + "x": 18, + "y": 0, + "w": 6, + "h": 13, + "i": "6", + "type": "Widget", + "widget": { + "title": "Envoy Bug Failure" + }, + "graph": { + "type": "Line", + "step": false, + "smooth": false, + "showSymbol": false, + "showXAxis": true, + "showYAxis": true + }, + "standard": {}, + "metrics": [ + "envoy_bug_failures" + ], + "metricTypes": [ + "readMetricsValues" + ], + "moved": false + }, + { + "x": 12, + "y": 0, + "w": 6, + "h": 13, + "i": "7", + "type": "Widget", + "widget": { + "title": "Concurrency" + }, + "graph": { + "type": "Line", + "step": false, + "smooth": false, + "showSymbol": false, + "showXAxis": true, + "showYAxis": true + }, + "standard": {}, + "metrics": [ + "envoy_worker_threads_max", + "envoy_worker_threads" + ], + "metricTypes": [ + "readMetricsValues", + "readMetricsValues" + ], + "moved": false + }, + { + "x": 6, + "y": 13, + "w": 6, + "h": 13, + "i": "8", + "type": "Widget", + "widget": { + "title": "Upstream Connection Active" + }, + "graph": { + "type": "Line", + "step": false, + "smooth": false, + "showSymbol": false, + "showXAxis": true, + "showYAxis": true + }, + "standard": {}, + "metrics": [ + "envoy_cluster_up_cx_active" + ], + "metricTypes": [ + "readLabeledMetricsValues" + ], + "moved": false + }, + { + "x": 0, + "y": 26, + "w": 6, + "h": 13, + "i": "9", + "type": "Widget", + "widget": { + "title": "Upstream Request Increase" + }, + "graph": { + "type": "Line", + "step": false, + "smooth": false, + "showSymbol": false, + "showXAxis": true, + "showYAxis": true + }, + "standard": {}, + "metrics": [ + "envoy_cluster_up_rq_incr" + ], + "metricTypes": [ + "readLabeledMetricsValues" + ], + "moved": false + } + ], + "name": "Mesh-Data-Plane-Instance", + "layer": "MESH_DP", + "entity": "ServiceInstance", + "isRoot": false + } + } +] diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh_dp/mesh-data-plane-root.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh_dp/mesh-data-plane-root.json new file mode 100644 index 0000000000000000000000000000000000000000..cc4f9a86655f468a8899f513c8b796a9a93ab850 --- /dev/null +++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh_dp/mesh-data-plane-root.json @@ -0,0 +1,58 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +[ + { + "id": "Mesh-Data-Plane-Root", + "configuration": { + "children": [ + { + "x": 0, + "y": 0, + "w": 24, + "h": 51, + "i": "0", + "type": "Widget", + "widget": { + "title": "" + }, + "graph": { + "type": "ServiceList", + "dashboardName": "Mesh-Data-Plane-Service", + "fontSize": 12, + "showXAxis": false, + "showYAxis": false, + "showGroup": true + }, + "standard": {}, + "metrics": [ + "" + ], + "metricTypes": [ + "" + ], + "metricConfig": [], + "moved": false + } + ], + "layer": "MESH_DP", + "entity": "All", + "name": "Mesh-Data-Plane-Root", + "isRoot": true + } + } +] diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh_dp/mesh-data-plane-service.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh_dp/mesh-data-plane-service.json new file mode 100644 index 0000000000000000000000000000000000000000..a9a5ba253538229b3df726f286f84b029a0a5c4a --- /dev/null +++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh_dp/mesh-data-plane-service.json @@ -0,0 +1,55 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +[ + { + "id": "Mesh-Data-Plane-Service", + "configuration": { + "children": [ + { + "x": 0, + "y": 0, + "w": 24, + "h": 52, + "i": "0", + "type": "Widget", + "widget": { + "title": "" + }, + "graph": { + "type": "InstanceList", + "dashboardName": "Mesh-Data-Plane-Instance", + "fontSize": 12 + }, + "standard": {}, + "metrics": [ + "" + ], + "metricTypes": [ + "" + ], + "moved": false + } + ], + "layer": "MESH_DP", + "entity": "Service", + "name": "Mesh-Data-Plane-Service", + "id": "Mesh-Data-Plane-Service", + "isRoot": false + } + } +] diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/os_linux/linux-root.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/os_linux/linux-root.json new file mode 100644 index 0000000000000000000000000000000000000000..63c42078a0ed801908f5d00d708f44f360194098 --- /dev/null +++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/os_linux/linux-root.json @@ -0,0 +1,57 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +[ + { + "id": "Linux-Root", + "configuration": { + "children": [ + { + "x": 0, + "y": 0, + "w": 24, + "h": 51, + "i": "0", + "type": "Widget", + "widget": { + "title": "" + }, + "graph": { + "type": "ServiceList", + "dashboardName": "Linux-Service", + "fontSize": 12, + "showXAxis": false, + "showYAxis": false, + "showGroup": true + }, + "standard": {}, + "metrics": [ + "meter_vm_cpu_total_percentage" + ], + "metricTypes": [ + "readMetricsValues" + ], + "moved": false + } + ], + "layer": "OS_LINUX", + "entity": "All", + "name": "Linux-Root", + "isRoot": true + } + } +] diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/os_linux/linux-service.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/os_linux/linux-service.json new file mode 100644 index 0000000000000000000000000000000000000000..1f564e0107c4ac9c5ef6902274d220bf94d0bebe --- /dev/null +++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/os_linux/linux-service.json @@ -0,0 +1,388 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +[ + { + "id": "Linux-Service", + "configuration": { + "children": [ + { + "x": 16, + "y": 32, + "w": 8, + "h": 13, + "i": "0", + "type": "Widget", + "widget": { + "title": "Filefd Allocated" + }, + "graph": { + "type": "Line", + "step": false, + "smooth": false, + "showSymbol": false, + "showXAxis": true, + "showYAxis": true + }, + "standard": {}, + "metrics": [ + "meter_vm_filefd_allocated" + ], + "metricTypes": [ + "readMetricsValues" + ], + "moved": false + }, + { + "x": 8, + "y": 32, + "w": 8, + "h": 13, + "i": "1", + "type": "Widget", + "widget": { + "title": "Network Status" + }, + "graph": { + "type": "Line", + "opacity": 0.4, + "showXAxis": true, + "showYAxis": true + }, + "standard": { + "divide": "1024" + }, + "metrics": [ + "meter_vm_tcp_curr_estab", + "meter_vm_tcp_tw", + "meter_vm_tcp_alloc", + "meter_vm_sockets_used", + "meter_vm_udp_inuse" + ], + "metricTypes": [ + "readMetricsValues", + "readMetricsValues", + "readMetricsValues", + "readMetricsValues", + "readMetricsValues" + ], + "moved": false + }, + { + "x": 0, + "y": 32, + "w": 8, + "h": 13, + "i": "2", + "type": "Widget", + "widget": { + "title": "Network Bandwidth Usage" + }, + "graph": { + "type": "Area", + "opacity": 0.4, + "showXAxis": true, + "showYAxis": true + }, + "standard": { + "unit": "KB/s", + "divide": "1024" + }, + "metrics": [ + "meter_vm_network_receive", + "meter_vm_network_transmit" + ], + "metricTypes": [ + "readMetricsValues", + "readMetricsValues" + ], + "moved": false + }, + { + "x": 16, + "y": 19, + "w": 8, + "h": 13, + "i": "3", + "type": "Widget", + "widget": { + "title": "Disk R/W" + }, + "graph": { + "type": "Line", + "opacity": 0.4, + "showXAxis": true, + "showYAxis": true + }, + "standard": { + "unit": "KB/s - OTEL, ops - Zabbix", + "divide": "1024" + }, + "metrics": [ + "meter_vm_disk_read", + "meter_vm_disk_written" + ], + "metricTypes": [ + "readMetricsValues", + "readMetricsValues" + ], + "moved": false + }, + { + "x": 8, + "y": 19, + "w": 8, + "h": 13, + "i": "4", + "type": "Widget", + "widget": { + "title": "File System Mountpoint Usage" + }, + "graph": { + "type": "Line", + "fontSize": 14, + "textAlign": "center", + "showUint": true + }, + "standard": { + "unit": "%" + }, + "metrics": [ + "meter_vm_filesystem_percentage" + ], + "metricTypes": [ + "readLabeledMetricsValues" + ], + "moved": false + }, + { + "x": 0, + "y": 6, + "w": 8, + "h": 13, + "i": "5", + "type": "Widget", + "widget": { + "title": "CPU Average Used" + }, + "graph": { + "type": "Line", + "step": false, + "smooth": false, + "showSymbol": false, + "showXAxis": true, + "showYAxis": true + }, + "standard": { + "unit": "%" + }, + "metrics": [ + "meter_vm_cpu_average_used" + ], + "metricTypes": [ + "readLabeledMetricsValues" + ], + "moved": false + }, + { + "x": 16, + "y": 6, + "w": 8, + "h": 13, + "i": "6", + "type": "Widget", + "widget": { + "title": "Memory RAM" + }, + "graph": { + "type": "Area", + "opacity": 0.4, + "showXAxis": true, + "showYAxis": true + }, + "standard": { + "unit": "MB", + "divide": "1048576" + }, + "metrics": [ + "meter_vm_memory_used", + "meter_vm_memory_total", + "meter_vm_memory_available" + ], + "metricTypes": [ + "readMetricsValues", + "readMetricsValues", + "readMetricsValues" + ], + "moved": false + }, + { + "x": 8, + "y": 6, + "w": 8, + "h": 13, + "i": "7", + "type": "Widget", + "widget": { + "title": "CPU Load" + }, + "graph": { + "type": "Line", + "step": false, + "smooth": false, + "showSymbol": false, + "showXAxis": true, + "showYAxis": true + }, + "standard": { + "0": "1", + "1": "0", + "2": "0", + "divide": "100" + }, + "metrics": [ + "meter_vm_cpu_load5", + "meter_vm_cpu_load1", + "meter_vm_cpu_load15" + ], + "metricTypes": [ + "readMetricsValues", + "readMetricsValues", + "readMetricsValues" + ], + "moved": false + }, + { + "x": 0, + "y": 19, + "w": 8, + "h": 13, + "i": "8", + "type": "Widget", + "widget": { + "title": "Memory Swap" + }, + "graph": { + "type": "Area", + "opacity": 0.4, + "showXAxis": true, + "showYAxis": true + }, + "standard": { + "unit": "MB", + "divide": "1048576" + }, + "metrics": [ + "meter_vm_memory_swap_free", + "meter_vm_memory_swap_total" + ], + "metricTypes": [ + "readMetricsValues", + "readMetricsValues" + ], + "moved": false + }, + { + "x": 16, + "y": 0, + "w": 8, + "h": 6, + "i": "9", + "type": "Widget", + "widget": { + "title": "Memory Swap Usage" + }, + "graph": { + "type": "Card", + "fontSize": 14, + "textAlign": "center", + "showUint": true + }, + "standard": { + "unit": "%" + }, + "metrics": [ + "meter_vm_memory_swap_percentage" + ], + "metricTypes": [ + "readMetricsValue" + ], + "moved": false + }, + { + "x": 8, + "y": 0, + "w": 8, + "h": 6, + "i": "10", + "type": "Widget", + "widget": { + "title": "Memory RAM Usage" + }, + "graph": { + "type": "Card", + "fontSize": 14, + "textAlign": "center", + "showUint": true + }, + "standard": { + "unit": "MB", + "divide": "1048576" + }, + "metrics": [ + "meter_vm_memory_used" + ], + "metricTypes": [ + "readMetricsValue" + ], + "moved": false + }, + { + "x": 0, + "y": 0, + "w": 8, + "h": 6, + "i": "11", + "type": "Widget", + "widget": { + "title": "CPU Usage" + }, + "graph": { + "type": "Card", + "fontSize": 14, + "textAlign": "center", + "showUint": true + }, + "standard": { + "unit": "%" + }, + "metrics": [ + "meter_vm_cpu_total_percentage" + ], + "metricTypes": [ + "readMetricsValue" + ], + "moved": false + } + ], + "name": "Linux-Service", + "layer": "OS_LINUX", + "entity": "Service", + "isRoot": false + } + } +] diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/virtual_database/virtual-database-root.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/virtual_database/virtual-database-root.json new file mode 100644 index 0000000000000000000000000000000000000000..1b09cfa1c83efc60ae4ab3f0ebaee35b34162554 --- /dev/null +++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/virtual_database/virtual-database-root.json @@ -0,0 +1,58 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +[ + { + "id": "Virtual-Database-Root", + "configuration": { + "children": [ + { + "x": 0, + "y": 0, + "w": 24, + "h": 52, + "i": "0", + "type": "Widget", + "widget": { + "title": "Virtual Database" + }, + "graph": { + "type": "ServiceList", + "dashboardName": "Virtual-Database-Service", + "fontSize": 12, + "showXAxis": false, + "showYAxis": false, + "showGroup": true + }, + "standard": {}, + "metrics": [ + "database_access_resp_time" + ], + "metricTypes": [ + "readMetricsValues" + ], + "moved": false + } + ], + "layer": "VIRTUAL_DATABASE", + "entity": "All", + "name": "Virtual-Database-Root", + "id": "Virtual-Database-Root", + "isRoot": true + } + } +] diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/virtual_database/virtual-database-service.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/virtual_database/virtual-database-service.json new file mode 100644 index 0000000000000000000000000000000000000000..8a9d6ccb75d40048d208f58a9205ddeb077ea88e --- /dev/null +++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/virtual_database/virtual-database-service.json @@ -0,0 +1,225 @@ +[ + { + "id": "Virtual-Database-Service", + "configuration": { + "children": [ + { + "x": 18, + "y": 13, + "w": 6, + "h": 14, + "i": "0", + "type": "Widget", + "widget": { + "title": "Un-Health Databases (Successful Rate)" + }, + "graph": { + "type": "TopList" + }, + "standard": { + "unit": "%", + "divide": "100", + "metricLabels": "P50,P75,P90,P95,P99", + "labelsIndex": "0,1,2,3,4" + }, + "metrics": [ + "database_access_sla" + ], + "metricTypes": [ + "sortMetrics" + ], + "moved": false + }, + { + "x": 12, + "y": 13, + "w": 6, + "h": 14, + "i": "1", + "type": "Widget", + "widget": { + "title": "All Database Loads" + }, + "graph": { + "type": "TopList" + }, + "standard": { + "unit": "%", + "divide": "100", + "metricLabels": "P50,P75,P90,P95,P99", + "labelsIndex": "0,1,2,3,4" + }, + "metrics": [ + "database_access_cpm" + ], + "metricTypes": [ + "sortMetrics" + ], + "moved": false + }, + { + "x": 0, + "y": 13, + "w": 12, + "h": 14, + "i": "2", + "type": "Widget", + "widget": { + "title": "Slow Statements" + }, + "graph": { + "type": "Line", + "step": false, + "smooth": false, + "showSymbol": false, + "showXAxis": true, + "showYAxis": true + }, + "standard": { + "unit": "%", + "divide": "100", + "metricLabels": "P50,P75,P90,P95,P99", + "labelsIndex": "0,1,2,3,4" + }, + "metrics": [ + "top_n_database_statement" + ], + "metricTypes": [ + "readSampledRecords" + ], + "moved": false + }, + { + "x": 6, + "y": 0, + "w": 6, + "h": 13, + "i": "3", + "type": "Widget", + "widget": { + "title": "Database Access Successful Rate" + }, + "graph": { + "type": "Line", + "step": false, + "smooth": false, + "showSymbol": false, + "showXAxis": true, + "showYAxis": true + }, + "standard": { + "0": "1", + "1": "0", + "2": "0", + "unit": "%", + "divide": "100" + }, + "metrics": [ + "database_access_sla" + ], + "metricTypes": [ + "readMetricsValues" + ], + "moved": false + }, + { + "x": 12, + "y": 0, + "w": 6, + "h": 13, + "i": "4", + "type": "Widget", + "widget": { + "title": "Database Traffic" + }, + "graph": { + "type": "Line", + "step": false, + "smooth": false, + "showSymbol": false, + "showXAxis": true, + "showYAxis": true + }, + "standard": { + "0": "1", + "unit": "CPM - calls per minute", + "divide": "1" + }, + "metrics": [ + "database_access_cpm" + ], + "metricTypes": [ + "readMetricsValues" + ], + "moved": false + }, + { + "x": 18, + "y": 0, + "w": 6, + "h": 13, + "i": "5", + "type": "Widget", + "widget": { + "title": "Database Access Latency Percentile" + }, + "graph": { + "type": "Line", + "step": false, + "smooth": false, + "showSymbol": false, + "showXAxis": true, + "showYAxis": true + }, + "standard": { + "unit": "ms", + "metricLabels": "P50, P75, P90, P95, P99" + }, + "metrics": [ + "database_access_percentile" + ], + "metricTypes": [ + "readLabeledMetricsValues" + ], + "moved": false + }, + { + "x": 0, + "y": 0, + "w": 6, + "h": 13, + "i": "6", + "type": "Widget", + "widget": { + "title": "Database Avg Response Time" + }, + "graph": { + "type": "Line", + "step": false, + "smooth": false, + "showSymbol": false, + "showXAxis": true, + "showYAxis": true + }, + "standard": { + "unit": "%", + "divide": "100", + "metricLabels": "P50,P75,P90,P95,P99", + "labelsIndex": "0,1,2,3,4" + }, + "metrics": [ + "database_access_resp_time" + ], + "metricTypes": [ + "readMetricsValues" + ], + "moved": false + } + ], + "name": "Virtual-Database-Service", + "layer": "VIRTUAL_DATABASE", + "entity": "Service", + "isRoot": false + } + } +] diff --git a/oap-server/server-starter/src/test/java/org/apache/skywalking/oap/server/starter/UITemplateCheckerTest.java b/oap-server/server-starter/src/test/java/org/apache/skywalking/oap/server/starter/UITemplateCheckerTest.java index d986d83ace59bd5065d42d3beacce9ecc88ae648..b61ec68994180d674a197f4f3e09aa15dfa2c6eb 100644 --- a/oap-server/server-starter/src/test/java/org/apache/skywalking/oap/server/starter/UITemplateCheckerTest.java +++ b/oap-server/server-starter/src/test/java/org/apache/skywalking/oap/server/starter/UITemplateCheckerTest.java @@ -55,10 +55,7 @@ public class UITemplateCheckerTest { } JsonNode configNode = jsonNode.get(0).get("configuration"); - String inId = configNode.get("id").textValue(); - Assert.assertEquals( - "File: " + template + " has invalid id", jsonNode.get(0).get("id").textValue(), inId); - + String inId = jsonNode.get(0).get("id").textValue(); String inName = configNode.get("name").textValue(); String inLayer = configNode.get("layer").textValue(); String inEntity = configNode.get("entity").textValue(); diff --git a/skywalking-ui b/skywalking-ui index 355fe215a3b973bc67d6b2f316e7f336dada3a3e..61d182b986681f09b3f9fce8af698165f4403450 160000 --- a/skywalking-ui +++ b/skywalking-ui @@ -1 +1 @@ -Subproject commit 355fe215a3b973bc67d6b2f316e7f336dada3a3e +Subproject commit 61d182b986681f09b3f9fce8af698165f4403450