From f742142ca38e729a954c55e43496d6c19b535a84 Mon Sep 17 00:00:00 2001 From: Zhenxu Date: Fri, 28 May 2021 14:35:27 +0800 Subject: [PATCH] Add UI templates (#7013) --- .../src/main/resources/oal/tcp.oal | 8 +- .../topology-endpoint-relation.yml | 81 ++++ .../topology-endpoint.yml | 195 +++++---- .../topology-instance.yml | 413 ++++++++++++------ .../topology-service-instance-relation.yml | 252 +++++++++++ .../topology-service-relation.yml | 252 +++++++++++ .../topology-service.yml | 167 +++++++ .../core/query/enumeration/TemplateType.java | 4 +- .../src/main/resources/query-protocol | 2 +- .../e2e/dashboard/TemplateType.java | 3 +- 10 files changed, 1137 insertions(+), 240 deletions(-) create mode 100644 oap-server/server-bootstrap/src/main/resources/ui-initialized-templates/topology-endpoint-relation.yml create mode 100644 oap-server/server-bootstrap/src/main/resources/ui-initialized-templates/topology-service-instance-relation.yml create mode 100644 oap-server/server-bootstrap/src/main/resources/ui-initialized-templates/topology-service-relation.yml create mode 100644 oap-server/server-bootstrap/src/main/resources/ui-initialized-templates/topology-service.yml diff --git a/oap-server/server-bootstrap/src/main/resources/oal/tcp.oal b/oap-server/server-bootstrap/src/main/resources/oal/tcp.oal index 006abd1e58..0ce8b6ca18 100644 --- a/oap-server/server-bootstrap/src/main/resources/oal/tcp.oal +++ b/oap-server/server-bootstrap/src/main/resources/oal/tcp.oal @@ -19,14 +19,14 @@ // TCP services' metrics service_throughput_received = from(Service.tcpInfo.receivedBytes).filter(type == RequestType.TCP).longAvg(); service_throughput_sent = from(Service.tcpInfo.sentBytes).filter(type == RequestType.TCP).longAvg(); -service_relation_client_received = from(ServiceRelation.tcpInfo.sentBytes).filter(type == RequestType.TCP).filter(detectPoint == DetectPoint.CLIENT).longAvg(); +service_relation_client_received = from(ServiceRelation.tcpInfo.receivedBytes).filter(type == RequestType.TCP).filter(detectPoint == DetectPoint.CLIENT).longAvg(); service_relation_client_sent = from(ServiceRelation.tcpInfo.sentBytes).filter(type == RequestType.TCP).filter(detectPoint == DetectPoint.CLIENT).longAvg(); -service_relation_server_received = from(ServiceRelation.tcpInfo.sentBytes).filter(type == RequestType.TCP).filter(detectPoint == DetectPoint.SERVER).longAvg(); +service_relation_server_received = from(ServiceRelation.tcpInfo.receivedBytes).filter(type == RequestType.TCP).filter(detectPoint == DetectPoint.SERVER).longAvg(); service_relation_server_sent = from(ServiceRelation.tcpInfo.sentBytes).filter(type == RequestType.TCP).filter(detectPoint == DetectPoint.SERVER).longAvg(); service_instance_throughput_received = from(ServiceInstance.tcpInfo.receivedBytes).filter(type == RequestType.TCP).longAvg(); service_instance_throughput_sent = from(ServiceInstance.tcpInfo.sentBytes).filter(type == RequestType.TCP).longAvg(); -service_instance_relation_client_received = from(ServiceInstanceRelation.tcpInfo.sentBytes).filter(type == RequestType.TCP).filter(detectPoint == DetectPoint.CLIENT).longAvg(); +service_instance_relation_client_received = from(ServiceInstanceRelation.tcpInfo.receivedBytes).filter(type == RequestType.TCP).filter(detectPoint == DetectPoint.CLIENT).longAvg(); service_instance_relation_client_sent = from(ServiceInstanceRelation.tcpInfo.sentBytes).filter(type == RequestType.TCP).filter(detectPoint == DetectPoint.CLIENT).longAvg(); -service_instance_relation_server_received = from(ServiceInstanceRelation.tcpInfo.sentBytes).filter(type == RequestType.TCP).filter(detectPoint == DetectPoint.SERVER).longAvg(); +service_instance_relation_server_received = from(ServiceInstanceRelation.tcpInfo.receivedBytes).filter(type == RequestType.TCP).filter(detectPoint == DetectPoint.SERVER).longAvg(); service_instance_relation_server_sent = from(ServiceInstanceRelation.tcpInfo.sentBytes).filter(type == RequestType.TCP).filter(detectPoint == DetectPoint.SERVER).longAvg(); diff --git a/oap-server/server-bootstrap/src/main/resources/ui-initialized-templates/topology-endpoint-relation.yml b/oap-server/server-bootstrap/src/main/resources/ui-initialized-templates/topology-endpoint-relation.yml new file mode 100644 index 0000000000..779ca3dccd --- /dev/null +++ b/oap-server/server-bootstrap/src/main/resources/ui-initialized-templates/topology-endpoint-relation.yml @@ -0,0 +1,81 @@ +# 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. + +templates: + - name: "Topology Endpoint Relation" + type: "TOPOLOGY_ENDPOINT_RELATION" + configuration: |- + { + "default":[ + { + "width":3, + "title":"Response Time", + "height":"200", + "entityType":"EndpointRelation", + "independentSelector":false, + "metricType":"REGULAR_VALUE", + "metricName":"endpoint_relation_resp_time", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"ms" + }, + { + "width":3, + "title":"Load", + "height":"200", + "entityType":"EndpointRelation", + "independentSelector":false, + "metricType":"REGULAR_VALUE", + "metricName":"endpoint_relation_cpm", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"CPM - Calls Per Minutes" + }, + { + "width":3, + "title":"Successful Rate", + "height":"200", + "entityType":"EndpointRelation", + "independentSelector":false, + "metricType":"REGULAR_VALUE", + "metricName":"endpoint_relation_sla", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"%", + "aggregation":"/", + "aggregationNum":"100" + }, + { + "width":3, + "title":"Service Response Time Percentile", + "height":"200", + "entityType":"EndpointRelation", + "independentSelector":false, + "metricType":"LABELED_VALUE", + "metricName":"endpoint_relation_percentile", + "queryMetricType":"readLabeledMetricsValues", + "chartType":"ChartLine", + "unit":"ms", + "metricLabels":"P50, P75, P90, P95, P99", + "labelsIndex":"0, 1, 2, 3, 4" + } + ], + "tcp":[] + } + # Activated as the TOPOLOGY_INSTANCE type, makes this templates added into the UI page automatically. + # False means providing a basic template, user needs to add it manually. + activated: true + # True means wouldn't show up on the dashboard. Only keeps the definition in the storage. + disabled: false diff --git a/oap-server/server-bootstrap/src/main/resources/ui-initialized-templates/topology-endpoint.yml b/oap-server/server-bootstrap/src/main/resources/ui-initialized-templates/topology-endpoint.yml index 4f23dc7a39..87d0d656db 100644 --- a/oap-server/server-bootstrap/src/main/resources/ui-initialized-templates/topology-endpoint.yml +++ b/oap-server/server-bootstrap/src/main/resources/ui-initialized-templates/topology-endpoint.yml @@ -26,103 +26,106 @@ templates: type: "TOPOLOGY_ENDPOINT" # Configuration could be defined through UI, and use `export` to format in the standard JSON. configuration: |- - [ - { - "width": "4", - "title": "Endpoint Load in Current Service", - "height": "280", - "entityType": "Endpoint", - "independentSelector": false, - "metricType": "REGULAR_VALUE", - "metricName": "endpoint_cpm", - "queryMetricType": "sortMetrics", - "chartType": "ChartSlow", - "parentService": true, - "unit": "CPM - calls per minute" - }, - { - "width": "4", - "title": "Slow Endpoints in Current Service", - "height": "280", - "entityType": "Endpoint", - "independentSelector": false, - "metricType": "REGULAR_VALUE", - "queryMetricType": "sortMetrics", - "chartType": "ChartSlow", - "metricName": "endpoint_avg", - "unit": "ms", - "parentService": true - }, - { - "width": "4", - "title": "Successful Rate in Current Service", - "height": "280", - "entityType": "Endpoint", - "independentSelector": false, - "metricType": "REGULAR_VALUE", - "metricName": "endpoint_sla", - "queryMetricType": "sortMetrics", - "chartType": "ChartSlow", - "aggregation": "/", - "aggregationNum": "100", - "parentService": true, - "unit": "%", - "sortOrder": "ASC" - }, - { - "width": 3, - "title": "Endpoint Load", - "height": 350, - "entityType": "Endpoint", - "independentSelector": false, - "metricType": "REGULAR_VALUE", - "metricName": "endpoint_cpm", - "queryMetricType": "readMetricsValues", - "chartType": "ChartLine" - }, - { - "width": 3, - "title": "Endpoint Avg Response Time", - "height": 350, - "entityType": "Endpoint", - "independentSelector": false, - "metricType": "REGULAR_VALUE", - "metricName": "endpoint_avg", - "queryMetricType": "readMetricsValues", - "chartType": "ChartLine", - "unit": "ms" - }, - { - "width": 3, - "title": "Endpoint Response Time Percentile", - "height": 350, - "entityType": "Endpoint", - "independentSelector": false, - "metricType": "LABELED_VALUE", - "metricName": "endpoint_percentile", - "queryMetricType": "readLabeledMetricsValues", - "chartType": "ChartLine", - "metricLabels": "P50, P75, P90, P95, P99", - "labelsIndex": "0, 1, 2, 3, 4", - "unit": "ms" - }, - { - "width": 3, - "title": "Endpoint Successful Rate", - "height": 350, - "entityType": "Endpoint", - "independentSelector": false, - "metricType": "REGULAR_VALUE", - "metricName": "endpoint_sla", - "queryMetricType": "readMetricsValues", - "chartType": "ChartLine", - "unit": "%", - "aggregation": "/", - "aggregationNum": "100" - } - ] + { + "default": [ + { + "width": "4", + "title": "Endpoint Load in Current Service", + "height": "280", + "entityType": "Endpoint", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "metricName": "endpoint_cpm", + "queryMetricType": "sortMetrics", + "chartType": "ChartSlow", + "parentService": true, + "unit": "CPM - calls per minute" + }, + { + "width": "4", + "title": "Slow Endpoints in Current Service", + "height": "280", + "entityType": "Endpoint", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "queryMetricType": "sortMetrics", + "chartType": "ChartSlow", + "metricName": "endpoint_avg", + "unit": "ms", + "parentService": true + }, + { + "width": "4", + "title": "Successful Rate in Current Service", + "height": "280", + "entityType": "Endpoint", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "metricName": "endpoint_sla", + "queryMetricType": "sortMetrics", + "chartType": "ChartSlow", + "aggregation": "/", + "aggregationNum": "100", + "parentService": true, + "unit": "%", + "sortOrder": "ASC" + }, + { + "width": 3, + "title": "Endpoint Load", + "height": 350, + "entityType": "Endpoint", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "metricName": "endpoint_cpm", + "queryMetricType": "readMetricsValues", + "chartType": "ChartLine" + }, + { + "width": 3, + "title": "Endpoint Avg Response Time", + "height": 350, + "entityType": "Endpoint", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "metricName": "endpoint_avg", + "queryMetricType": "readMetricsValues", + "chartType": "ChartLine", + "unit": "ms" + }, + { + "width": 3, + "title": "Endpoint Response Time Percentile", + "height": 350, + "entityType": "Endpoint", + "independentSelector": false, + "metricType": "LABELED_VALUE", + "metricName": "endpoint_percentile", + "queryMetricType": "readLabeledMetricsValues", + "chartType": "ChartLine", + "metricLabels": "P50, P75, P90, P95, P99", + "labelsIndex": "0, 1, 2, 3, 4", + "unit": "ms" + }, + { + "width": 3, + "title": "Endpoint Successful Rate", + "height": 350, + "entityType": "Endpoint", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "metricName": "endpoint_sla", + "queryMetricType": "readMetricsValues", + "chartType": "ChartLine", + "unit": "%", + "aggregation": "/", + "aggregationNum": "100" + } + ], + "tcp": [ ] + } # Activated as the TOPOLOGY_ENDPOINT type, makes this templates added into the UI page automatically. # False means providing a basic template, user needs to add it manually. activated: true # True means wouldn't show up on the dashboard. Only keeps the definition in the storage. - disabled: false \ No newline at end of file + disabled: false diff --git a/oap-server/server-bootstrap/src/main/resources/ui-initialized-templates/topology-instance.yml b/oap-server/server-bootstrap/src/main/resources/ui-initialized-templates/topology-instance.yml index 18b44eb3eb..6bd3b35a98 100644 --- a/oap-server/server-bootstrap/src/main/resources/ui-initialized-templates/topology-instance.yml +++ b/oap-server/server-bootstrap/src/main/resources/ui-initialized-templates/topology-instance.yml @@ -26,143 +26,282 @@ templates: type: "TOPOLOGY_INSTANCE" # Configuration could be defined through UI, and use `export` to format in the standard JSON. configuration: |- - [ - { - "width": "4", - "title": "Service Instance Load", - "height": "150", - "entityType": "ServiceInstance", - "independentSelector": false, - "metricType": "REGULAR_VALUE", - "metricName": "service_instance_cpm", - "queryMetricType": "readMetricsValues", - "chartType": "ChartLine", - "unit": "CPM - calls per minute" - }, - { - "width": "4", - "title": "Service Instance Successful Rate", - "height": "150", - "entityType": "ServiceInstance", - "independentSelector": false, - "metricType": "REGULAR_VALUE", - "metricName": "service_instance_sla", - "queryMetricType": "readMetricsValues", - "chartType": "ChartLine", - "unit": "%", - "aggregation": "/", - "aggregationNum": "100" - }, - { - "width": "4", - "title": "Service Instance Latency", - "height": "150", - "entityType": "ServiceInstance", - "independentSelector": false, - "metricType": "REGULAR_VALUE", - "metricName": "service_instance_resp_time", - "queryMetricType": "readMetricsValues", - "chartType": "ChartLine", - "unit": "ms" - }, - { - "width": 3, - "title": "JVM CPU (Java Service)", - "height": "250", - "entityType": "ServiceInstance", - "independentSelector": false, - "metricType": "REGULAR_VALUE", - "metricName": "instance_jvm_cpu", - "queryMetricType": "readMetricsValues", - "chartType": "ChartLine", - "unit": "%", - "aggregation": "+", - "aggregationNum": "" - }, - { - "width": 3, - "title": "JVM Memory (Java Service)", - "height": "250", - "entityType": "ServiceInstance", - "independentSelector": false, - "metricType": "REGULAR_VALUE", - "metricName": "instance_jvm_memory_heap, instance_jvm_memory_heap_max,instance_jvm_memory_noheap, instance_jvm_memory_noheap_max", - "queryMetricType": "readMetricsValues", - "chartType": "ChartLine", - "unit": "MB", - "aggregation": "/", - "aggregationNum": "1048576" - }, - { - "width": 3, - "title": "JVM GC Time", - "height": "250", - "entityType": "ServiceInstance", - "independentSelector": false, - "metricType": "REGULAR_VALUE", - "metricName": "instance_jvm_young_gc_time, instance_jvm_old_gc_time", - "queryMetricType": "readMetricsValues", - "chartType": "ChartLine", - "unit": "ms" - }, - { - "width": 3, - "title": "JVM GC Count", - "height": "250", - "entityType": "ServiceInstance", - "independentSelector": false, - "metricType": "REGULAR_VALUE", - "queryMetricType": "readMetricsValues", - "chartType": "ChartBar", - "metricName": "instance_jvm_young_gc_count, instance_jvm_old_gc_count" - }, - { - "width": 3, - "title": "CLR CPU (.NET Service)", - "height": "250", - "entityType": "ServiceInstance", - "independentSelector": false, - "metricType": "REGULAR_VALUE", - "metricName": "instance_clr_cpu", - "queryMetricType": "readMetricsValues", - "chartType": "ChartLine", - "unit": "%" - }, - { - "width": 3, - "title": "CLR GC (.NET Service)", - "height": "250", - "entityType": "ServiceInstance", - "independentSelector": false, - "metricType": "REGULAR_VALUE", - "metricName": "instance_clr_gen0_collect_count, instance_clr_gen1_collect_count, instance_clr_gen2_collect_count", - "queryMetricType": "readMetricsValues", - "chartType": "ChartBar" - }, - { - "width": 3, - "title": "CLR Heap Memory (.NET Service)", - "height": "250", - "entityType": "ServiceInstance", - "independentSelector": false, - "metricType": "REGULAR_VALUE", - "metricName": "instance_clr_heap_memory", - "queryMetricType": "readMetricsValues", - "chartType": "ChartLine", - "unit": "MB" - }, - { - "width": 3, - "title": "CLR Thread (.NET Service)", - "height": "250", - "entityType": "ServiceInstance", - "independentSelector": false, - "metricType": "REGULAR_VALUE", - "queryMetricType": "readMetricsValues", - "chartType": "ChartLine", - "metricName": "instance_clr_available_completion_port_threads,instance_clr_available_worker_threads,instance_clr_max_completion_port_threads,instance_clr_max_worker_threads" - } - ] + { + "default": [ + { + "width": "4", + "title": "Service Instance Load", + "height": "150", + "entityType": "ServiceInstance", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "metricName": "service_instance_cpm", + "queryMetricType": "readMetricsValues", + "chartType": "ChartLine", + "unit": "CPM - calls per minute" + }, + { + "width": "4", + "title": "Service Instance Successful Rate", + "height": "150", + "entityType": "ServiceInstance", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "metricName": "service_instance_sla", + "queryMetricType": "readMetricsValues", + "chartType": "ChartLine", + "unit": "%", + "aggregation": "/", + "aggregationNum": "100" + }, + { + "width": "4", + "title": "Service Instance Latency", + "height": "150", + "entityType": "ServiceInstance", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "metricName": "service_instance_resp_time", + "queryMetricType": "readMetricsValues", + "chartType": "ChartLine", + "unit": "ms" + }, + { + "width": 3, + "title": "JVM CPU (Java Service)", + "height": "250", + "entityType": "ServiceInstance", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "metricName": "instance_jvm_cpu", + "queryMetricType": "readMetricsValues", + "chartType": "ChartLine", + "unit": "%", + "aggregation": "+", + "aggregationNum": "" + }, + { + "width": 3, + "title": "JVM Memory (Java Service)", + "height": "250", + "entityType": "ServiceInstance", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "metricName": "instance_jvm_memory_heap, instance_jvm_memory_heap_max,instance_jvm_memory_noheap, instance_jvm_memory_noheap_max", + "queryMetricType": "readMetricsValues", + "chartType": "ChartLine", + "unit": "MB", + "aggregation": "/", + "aggregationNum": "1048576" + }, + { + "width": 3, + "title": "JVM GC Time", + "height": "250", + "entityType": "ServiceInstance", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "metricName": "instance_jvm_young_gc_time, instance_jvm_old_gc_time", + "queryMetricType": "readMetricsValues", + "chartType": "ChartLine", + "unit": "ms" + }, + { + "width": 3, + "title": "JVM GC Count", + "height": "250", + "entityType": "ServiceInstance", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "queryMetricType": "readMetricsValues", + "chartType": "ChartBar", + "metricName": "instance_jvm_young_gc_count, instance_jvm_old_gc_count" + }, + { + "width": 3, + "title": "CLR CPU (.NET Service)", + "height": "250", + "entityType": "ServiceInstance", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "metricName": "instance_clr_cpu", + "queryMetricType": "readMetricsValues", + "chartType": "ChartLine", + "unit": "%" + }, + { + "width": 3, + "title": "CLR GC (.NET Service)", + "height": "250", + "entityType": "ServiceInstance", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "metricName": "instance_clr_gen0_collect_count, instance_clr_gen1_collect_count, instance_clr_gen2_collect_count", + "queryMetricType": "readMetricsValues", + "chartType": "ChartBar" + }, + { + "width": 3, + "title": "CLR Heap Memory (.NET Service)", + "height": "250", + "entityType": "ServiceInstance", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "metricName": "instance_clr_heap_memory", + "queryMetricType": "readMetricsValues", + "chartType": "ChartLine", + "unit": "MB" + }, + { + "width": 3, + "title": "CLR Thread (.NET Service)", + "height": "250", + "entityType": "ServiceInstance", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "queryMetricType": "readMetricsValues", + "chartType": "ChartLine", + "metricName": "instance_clr_available_completion_port_threads,instance_clr_available_worker_threads,instance_clr_max_completion_port_threads,instance_clr_max_worker_threads" + } + ], + "tcp": [ + { + "width": "4", + "title": "Service Instance Load", + "height": "150", + "entityType": "ServiceInstance", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "metricName": "service_instance_cpm", + "queryMetricType": "readMetricsValues", + "chartType": "ChartLine", + "unit": "PPM - packets per minute" + }, + { + "width": "4", + "title": "Service Instance Successful Rate", + "height": "150", + "entityType": "ServiceInstance", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "metricName": "service_instance_sla", + "queryMetricType": "readMetricsValues", + "chartType": "ChartLine", + "unit": "%", + "aggregation": "/", + "aggregationNum": "100" + }, + { + "width": "4", + "title": "Service Instance Latency", + "height": "150", + "entityType": "ServiceInstance", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "metricName": "service_instance_resp_time", + "queryMetricType": "readMetricsValues", + "chartType": "ChartLine", + "unit": "ms" + }, + { + "width": 3, + "title": "JVM CPU (Java Service)", + "height": "250", + "entityType": "ServiceInstance", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "metricName": "instance_jvm_cpu", + "queryMetricType": "readMetricsValues", + "chartType": "ChartLine", + "unit": "%", + "aggregation": "+", + "aggregationNum": "" + }, + { + "width": 3, + "title": "JVM Memory (Java Service)", + "height": "250", + "entityType": "ServiceInstance", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "metricName": "instance_jvm_memory_heap, instance_jvm_memory_heap_max,instance_jvm_memory_noheap, instance_jvm_memory_noheap_max", + "queryMetricType": "readMetricsValues", + "chartType": "ChartLine", + "unit": "MB", + "aggregation": "/", + "aggregationNum": "1048576" + }, + { + "width": 3, + "title": "JVM GC Time", + "height": "250", + "entityType": "ServiceInstance", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "metricName": "instance_jvm_young_gc_time, instance_jvm_old_gc_time", + "queryMetricType": "readMetricsValues", + "chartType": "ChartLine", + "unit": "ms" + }, + { + "width": 3, + "title": "JVM GC Count", + "height": "250", + "entityType": "ServiceInstance", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "queryMetricType": "readMetricsValues", + "chartType": "ChartBar", + "metricName": "instance_jvm_young_gc_count, instance_jvm_old_gc_count" + }, + { + "width": 3, + "title": "CLR CPU (.NET Service)", + "height": "250", + "entityType": "ServiceInstance", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "metricName": "instance_clr_cpu", + "queryMetricType": "readMetricsValues", + "chartType": "ChartLine", + "unit": "%" + }, + { + "width": 3, + "title": "CLR GC (.NET Service)", + "height": "250", + "entityType": "ServiceInstance", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "metricName": "instance_clr_gen0_collect_count, instance_clr_gen1_collect_count, instance_clr_gen2_collect_count", + "queryMetricType": "readMetricsValues", + "chartType": "ChartBar" + }, + { + "width": 3, + "title": "CLR Heap Memory (.NET Service)", + "height": "250", + "entityType": "ServiceInstance", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "metricName": "instance_clr_heap_memory", + "queryMetricType": "readMetricsValues", + "chartType": "ChartLine", + "unit": "MB" + }, + { + "width": 3, + "title": "CLR Thread (.NET Service)", + "height": "250", + "entityType": "ServiceInstance", + "independentSelector": false, + "metricType": "REGULAR_VALUE", + "queryMetricType": "readMetricsValues", + "chartType": "ChartLine", + "metricName": "instance_clr_available_completion_port_threads,instance_clr_available_worker_threads,instance_clr_max_completion_port_threads,instance_clr_max_worker_threads" + } + ] + } # Activated as the TOPOLOGY_INSTANCE type, makes this templates added into the UI page automatically. # False means providing a basic template, user needs to add it manually. activated: true diff --git a/oap-server/server-bootstrap/src/main/resources/ui-initialized-templates/topology-service-instance-relation.yml b/oap-server/server-bootstrap/src/main/resources/ui-initialized-templates/topology-service-instance-relation.yml new file mode 100644 index 0000000000..55bb28aa09 --- /dev/null +++ b/oap-server/server-bootstrap/src/main/resources/ui-initialized-templates/topology-service-instance-relation.yml @@ -0,0 +1,252 @@ +# 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. + +templates: + - name: "Topology Service Instance Relation" + type: "TOPOLOGY_SERVICE_INSTANCE_RELATION" + configuration: |- + { + "default":{ + "server":[ + { + "width":12, + "title":"Response Time", + "height":"200", + "entityType":"ServiceInstanceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_instance_relation_server_resp_time", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"ms" + }, + { + "width":12, + "title":"Load", + "height":200, + "entityType":"ServiceInstanceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_instance_relation_server_cpm", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"CPM - Calls Per Minute" + }, + { + "width":12, + "title":"Successful Rate", + "height":200, + "entityType":"ServiceInstanceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_instance_relation_server_call_sla", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"%", + "aggregation":"/", + "aggregationNum":"100" + }, + { + "width":12, + "title":"Response Time Percentile", + "height":200, + "entityType":"ServiceInstanceRelation", + "metricType":"LABELED_VALUE", + "metricName":"service_instance_relation_server_percentile", + "queryMetricType":"readLabeledMetricsValues", + "chartType":"ChartLine", + "unit":"ms", + "metricLabels":"P50, P75, P90, P95, P99", + "labelsIndex":"0, 1, 2, 3, 4" + } + ], + "client":[ + { + "width":12, + "title":"Response Time", + "height":"200", + "entityType":"ServiceInstanceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_instance_relation_client_resp_time", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"ms" + }, + { + "width":12, + "title":"Load", + "height":200, + "entityType":"ServiceInstanceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_instance_relation_client_cpm", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"CPM - Calls Per Minute" + }, + { + "width":12, + "title":"Successful Rate", + "height":200, + "entityType":"ServiceInstanceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_instance_relation_client_call_sla", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"%", + "aggregation":"/", + "aggregationNum":"100" + }, + { + "width":12, + "title":"Response Time Percentile", + "height":200, + "entityType":"ServiceInstanceRelation", + "metricType":"LABELED_VALUE", + "metricName":"service_instance_relation_client_percentile", + "queryMetricType":"readLabeledMetricsValues", + "chartType":"ChartLine", + "unit":"ms", + "metricLabels":"P50, P75, P90, P95, P99", + "labelsIndex":"0, 1, 2, 3, 4" + } + ] + }, + "tcp":{ + "server":[ + { + "width":12, + "title":"Response Time", + "height":"200", + "entityType":"ServiceInstanceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_instance_relation_server_resp_time", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"ms" + }, + { + "width":12, + "title":"Load", + "height":200, + "entityType":"ServiceInstanceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_instance_relation_server_cpm", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"CPM - Calls Per Minute" + }, + { + "width":12, + "title":"Successful Rate", + "height":200, + "entityType":"ServiceInstanceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_instance_relation_server_call_sla", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"%", + "aggregation":"/", + "aggregationNum":"100" + }, + { + "width":12, + "title":"Throughput", + "height":"200", + "entityType":"ServiceInstanceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_instance_relation_server_received,service_instance_relation_server_sent", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"bytes" + }, + { + "width":12, + "title":"Response Time Percentile", + "height":200, + "entityType":"ServiceInstanceRelation", + "metricType":"LABELED_VALUE", + "metricName":"service_instance_relation_server_percentile", + "queryMetricType":"readLabeledMetricsValues", + "chartType":"ChartLine", + "unit":"ms", + "metricLabels":"P50, P75, P90, P95, P99", + "labelsIndex":"0, 1, 2, 3, 4" + } + ], + "client":[ + { + "width":12, + "title":"Response Time", + "height":"200", + "entityType":"ServiceInstanceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_instance_relation_client_resp_time", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"ms" + }, + { + "width":12, + "title":"Load", + "height":200, + "entityType":"ServiceInstanceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_instance_relation_client_cpm", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"CPM - Calls Per Minute" + }, + { + "width":12, + "title":"Successful Rate", + "height":200, + "entityType":"ServiceInstanceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_instance_relation_client_call_sla", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"%", + "aggregation":"/", + "aggregationNum":"100" + }, + { + "width":12, + "title":"Throughput", + "height":"200", + "entityType":"ServiceInstanceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_instance_relation_client_received,service_instance_relation_client_sent", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"bytes" + }, + { + "width":12, + "title":"Response Time Percentile", + "height":200, + "entityType":"ServiceInstanceRelation", + "metricType":"LABELED_VALUE", + "metricName":"service_instance_relation_client_percentile", + "queryMetricType":"readLabeledMetricsValues", + "chartType":"ChartLine", + "unit":"ms", + "metricLabels":"P50, P75, P90, P95, P99", + "labelsIndex":"0, 1, 2, 3, 4" + } + ] + } + } + # Activated as the TOPOLOGY_INSTANCE type, makes this templates added into the UI page automatically. + # False means providing a basic template, user needs to add it manually. + activated: true + # True means wouldn't show up on the dashboard. Only keeps the definition in the storage. + disabled: false diff --git a/oap-server/server-bootstrap/src/main/resources/ui-initialized-templates/topology-service-relation.yml b/oap-server/server-bootstrap/src/main/resources/ui-initialized-templates/topology-service-relation.yml new file mode 100644 index 0000000000..efc5a61d56 --- /dev/null +++ b/oap-server/server-bootstrap/src/main/resources/ui-initialized-templates/topology-service-relation.yml @@ -0,0 +1,252 @@ +# 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. + +templates: + - name: "Topology Service Relation" + type: "TOPOLOGY_SERVICE_RELATION" + configuration: |- + { + "default":{ + "server":[ + { + "width":12, + "title":"Response Time", + "height":"200", + "entityType":"ServiceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_relation_server_resp_time", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"ms" + }, + { + "width":12, + "title":"Response Time Percentile", + "height":200, + "entityType":"ServiceRelation", + "metricType":"LABELED_VALUE", + "metricName":"service_relation_server_percentile", + "queryMetricType":"readLabeledMetricsValues", + "chartType":"ChartLine", + "unit":"ms", + "metricLabels":"P50, P75, P90, P95, P99", + "labelsIndex":"0, 1, 2, 3, 4" + }, + { + "width":12, + "title":"Successful Rate", + "height":"200", + "entityType":"ServiceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_relation_server_call_sla", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"%", + "aggregation":"/", + "aggregationNum":"100" + }, + { + "width":12, + "title":"Load", + "height":"200", + "entityType":"ServiceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_relation_server_cpm", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"CPM - Calls Per Minute" + } + ], + "client":[ + { + "width":12, + "title":"Response Time", + "height":"200", + "entityType":"ServiceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_relation_client_resp_time", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"ms" + }, + { + "width":12, + "title":"Response Time Percentile", + "height":200, + "entityType":"ServiceRelation", + "metricType":"LABELED_VALUE", + "metricName":"service_relation_client_percentile", + "queryMetricType":"readLabeledMetricsValues", + "chartType":"ChartLine", + "unit":"ms", + "metricLabels":"P50, P75, P90, P95, P99", + "labelsIndex":"0, 1, 2, 3, 4" + }, + { + "width":12, + "title":"Successful Rate", + "height":"200", + "entityType":"ServiceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_relation_client_call_sla", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"%", + "aggregation":"/", + "aggregationNum":"100" + }, + { + "width":12, + "title":"Load", + "height":"200", + "entityType":"ServiceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_relation_client_cpm", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"CPM - Calls Per Minute" + } + ] + }, + "tcp":{ + "server":[ + { + "width":12, + "title":"Response Time", + "height":"200", + "entityType":"ServiceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_relation_server_resp_time", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"ms" + }, + { + "width":12, + "title":"Response Time Percentile", + "height":200, + "entityType":"ServiceRelation", + "metricType":"LABELED_VALUE", + "metricName":"service_relation_server_percentile", + "queryMetricType":"readLabeledMetricsValues", + "chartType":"ChartLine", + "unit":"ms", + "metricLabels":"P50, P75, P90, P95, P99", + "labelsIndex":"0, 1, 2, 3, 4" + }, + { + "width":12, + "title":"Successful Rate", + "height":"200", + "entityType":"ServiceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_relation_server_call_sla", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"%", + "aggregation":"/", + "aggregationNum":"100" + }, + { + "width":12, + "title":"Load", + "height":"200", + "entityType":"ServiceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_relation_server_cpm", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"PPM - Packets Per Minute" + }, + { + "width":12, + "title":"Throughput", + "height":"200", + "entityType":"ServiceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_relation_server_received,service_relation_server_sent", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"PPM - Packets Per Minutes" + } + ], + "client":[ + { + "width":12, + "title":"Response Time", + "height":"200", + "entityType":"ServiceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_relation_client_resp_time", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"ms" + }, + { + "width":12, + "title":"Response Time Percentile", + "height":200, + "entityType":"ServiceRelation", + "metricType":"LABELED_VALUE", + "metricName":"service_relation_client_percentile", + "queryMetricType":"readLabeledMetricsValues", + "chartType":"ChartLine", + "unit":"ms", + "metricLabels":"P50, P75, P90, P95, P99", + "labelsIndex":"0, 1, 2, 3, 4" + }, + { + "width":12, + "title":"Successful Rate", + "height":"200", + "entityType":"ServiceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_relation_client_call_sla", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"%", + "aggregation":"/", + "aggregationNum":"100" + }, + { + "width":12, + "title":"Load", + "height":"200", + "entityType":"ServiceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_relation_client_cpm", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"CPM - Calls Per Minute" + }, + { + "width":12, + "title":"Throughput", + "height":"200", + "entityType":"ServiceRelation", + "metricType":"REGULAR_VALUE", + "metricName":"service_relation_client_received,service_relation_client_sent", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"PPM - Packets Per Minutes" + } + ] + } + } + # Activated as the TOPOLOGY_INSTANCE type, makes this templates added into the UI page automatically. + # False means providing a basic template, user needs to add it manually. + activated: true + # True means wouldn't show up on the dashboard. Only keeps the definition in the storage. + disabled: false diff --git a/oap-server/server-bootstrap/src/main/resources/ui-initialized-templates/topology-service.yml b/oap-server/server-bootstrap/src/main/resources/ui-initialized-templates/topology-service.yml new file mode 100644 index 0000000000..5d894b25f7 --- /dev/null +++ b/oap-server/server-bootstrap/src/main/resources/ui-initialized-templates/topology-service.yml @@ -0,0 +1,167 @@ +# 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. + +templates: + - name: "Topology Service" + type: "TOPOLOGY_SERVICE" + configuration: |- + { + "default":[ + { + "width":12, + "title":"Service Apdex", + "height":"200", + "entityType":"Service", + "independentSelector":false, + "metricType":"REGULAR_VALUE", + "metricName":"service_apdex", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "aggregation":"/", + "aggregationNum":"10000" + }, + { + "width":12, + "title":"Service Avg Response Time", + "height":"200", + "entityType":"Service", + "independentSelector":false, + "metricType":"REGULAR_VALUE", + "metricName":"service_resp_time", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"ms" + }, + { + "width":12, + "title":"Successful Rate", + "height":"200", + "entityType":"Service", + "independentSelector":false, + "metricType":"REGULAR_VALUE", + "metricName":"service_sla", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"%", + "aggregation":"/", + "aggregationNum":"100" + }, + { + "width":12, + "title":"Service Load", + "height":"200", + "entityType":"Service", + "metricType":"REGULAR_VALUE", + "metricName":"service_cpm", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"CPM - Calls Per Minute" + }, + { + "width":12, + "title":"Response Time Percentile", + "height":"200", + "entityType":"Service", + "metricType":"LABELED_VALUE", + "metricName":"service_percentile", + "queryMetricType":"readLabeledMetricsValues", + "chartType":"ChartLine", + "metricLabels":"P50, P75, P90, P95, P99", + "labelsIndex":"0, 1, 2, 3, 4", + "unit":"ms" + } + ], + "tcp":[ + { + "width":12, + "title":"Service Apdex", + "height":"200", + "entityType":"Service", + "independentSelector":false, + "metricType":"REGULAR_VALUE", + "metricName":"service_apdex", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "aggregation":"/", + "aggregationNum":"10000" + }, + { + "width":12, + "title":"Response Time", + "height":"200", + "entityType":"Service", + "independentSelector":false, + "metricType":"REGULAR_VALUE", + "metricName":"service_resp_time", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"ms" + }, + { + "width":12, + "title":"Response Time Percentile", + "height":"200", + "entityType":"Service", + "metricType":"LABELED_VALUE", + "metricName":"service_percentile", + "queryMetricType":"readLabeledMetricsValues", + "chartType":"ChartLine", + "metricLabels":"P50, P75, P90, P95, P99", + "labelsIndex":"0, 1, 2, 3, 4", + "unit":"ms" + }, + { + "width":12, + "title":"Successful Rate", + "height":"200", + "entityType":"Service", + "independentSelector":false, + "metricType":"REGULAR_VALUE", + "metricName":"service_sla", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"%", + "aggregation":"/", + "aggregationNum":"100" + }, + { + "width":12, + "title":"Service Load", + "height":"200", + "entityType":"Service", + "metricType":"REGULAR_VALUE", + "metricName":"service_cpm", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"CPM - Calls Per Minute" + }, + { + "width":12, + "title":"Throughput", + "height":"200", + "entityType":"Service", + "metricType":"REGULAR_VALUE", + "metricName":"service_throughput_received,service_throughput_sent", + "queryMetricType":"readMetricsValues", + "chartType":"ChartLine", + "unit":"PPM - Packets Per Minutes" + } + ] + } + # Activated as the TOPOLOGY_INSTANCE type, makes this templates added into the UI page automatically. + # False means providing a basic template, user needs to add it manually. + activated: true + # True means wouldn't show up on the dashboard. Only keeps the definition in the storage. + disabled: false diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/enumeration/TemplateType.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/enumeration/TemplateType.java index 2d21c1348a..cbc06bb924 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/enumeration/TemplateType.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/enumeration/TemplateType.java @@ -24,7 +24,9 @@ public enum TemplateType { TOPOLOGY_INSTANCE, TOPOLOGY_ENDPOINT, TOPOLOGY_SERVICE_RELATION, - TOPOLOGY_SERVICE_INSTANCE_RELATION; + TOPOLOGY_SERVICE_INSTANCE_RELATION, + TOPOLOGY_ENDPOINT_RELATION, + ; public static TemplateType forName(String name) { return Enum.valueOf(TemplateType.class, name.toUpperCase()); diff --git a/oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol b/oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol index 84c635180b..9257b02872 160000 --- a/oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol +++ b/oap-server/server-query-plugin/query-graphql-plugin/src/main/resources/query-protocol @@ -1 +1 @@ -Subproject commit 84c635180b8dde4210865f655b83d101c68fe741 +Subproject commit 9257b0287282cd7a1096167710d3fdb9e2e6fc61 diff --git a/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/dashboard/TemplateType.java b/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/dashboard/TemplateType.java index 7893d78a98..6a5a5d740e 100644 --- a/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/dashboard/TemplateType.java +++ b/test/e2e/e2e-data/src/main/java/org/apache/skywalking/e2e/dashboard/TemplateType.java @@ -24,7 +24,8 @@ public enum TemplateType { TOPOLOGY_INSTANCE, TOPOLOGY_ENDPOINT, TOPOLOGY_SERVICE_RELATION, - TOPOLOGY_SERVICE_INSTANCE_RELATION; + TOPOLOGY_SERVICE_INSTANCE_RELATION, + TOPOLOGY_ENDPOINT_RELATION; public static TemplateType forName(String name) { return Enum.valueOf(TemplateType.class, name.toUpperCase()); -- GitLab