You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2023/08/15 03:17:31 UTC

[skywalking] branch master updated: Apply expressions in service mesh dashboards (#11161)

This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git


The following commit(s) were added to refs/heads/master by this push:
     new 068d5d0721 Apply expressions in service mesh dashboards (#11161)
068d5d0721 is described below

commit 068d5d0721f33bf7e7db21e593974eb3661e2eaa
Author: kezhenxu94 <ke...@apache.org>
AuthorDate: Tue Aug 15 11:17:26 2023 +0800

    Apply expressions in service mesh dashboards (#11161)
---
 apm-webapp/pom.xml                                 |   2 +-
 .../mesh/mesh-endpoint.json                        | 169 ++---
 .../mesh/mesh-instance-relation.json               | 570 ++++-------------
 .../mesh/mesh-instance.json                        |  81 +--
 .../ui-initialized-templates/mesh/mesh-root.json   |  62 +-
 .../mesh/mesh-service-relation.json                | 687 +++++----------------
 .../mesh/mesh-service.json                         | 223 +++----
 .../mesh_cp/mesh-control-plane-root.json           |  17 -
 .../mesh_cp/mesh-control-plane-service.json        | 207 +++----
 .../mesh_dp/mesh-data-plane-instance.json          | 145 ++---
 .../mesh_dp/mesh-data-plane-service.json           |  50 +-
 test/e2e-v2/cases/istio/als/e2e.yaml               |  88 +--
 .../cases/istio/als/expected/metrics-has-value.yml |  26 +-
 test/e2e-v2/cases/istio/metrics/e2e.yaml           |  76 +--
 .../expected/metrics-has-value-label.yml}          |  28 +-
 .../istio/metrics/expected/metrics-has-value.yml   |  26 +-
 16 files changed, 709 insertions(+), 1748 deletions(-)

diff --git a/apm-webapp/pom.xml b/apm-webapp/pom.xml
index 6e1592a500..e7cfa9ec93 100644
--- a/apm-webapp/pom.xml
+++ b/apm-webapp/pom.xml
@@ -116,7 +116,7 @@
                             <goal>npm</goal>
                         </goals>
                         <configuration>
-                            <arguments>install --registry=https://registry.npmjs.org/</arguments>
+                            <arguments>ci --registry=https://registry.npmjs.org/</arguments>
                         </configuration>
                     </execution>
                     <execution>
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 9f89e8391c..71f82ddcee 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
@@ -1,20 +1,3 @@
-/**
- * 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-Endpoint",
@@ -50,20 +33,6 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
-                    "endpoint_percentile"
-                  ],
-                  "metricTypes": [
-                    "readLabeledMetricsValues"
-                  ],
-                  "metricConfig": [
-                    {
-                      "label": "P50, P75, P90, P95, P99",
-                      "labelsIndex": "0,1,2,3,4"
-                    }
-                  ],
-                  "value": "1-0-3",
-                  "label": "Endpoint_Response_Percentile",
                   "associate": [
                     {
                       "widgetId": "1-0-10"
@@ -81,10 +50,13 @@
                       "widgetId": "1-0-9"
                     }
                   ],
-                  "filters": {
-                    "dataIndex": 13,
-                    "sourceId": "1-0-7"
-                  }
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "relabels(endpoint_percentile{_='0,1,2,3,4'},_='P50,P75,P90,P95,P99')"
+                  ],
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES"
+                  ]
                 },
                 {
                   "x": 11,
@@ -105,14 +77,6 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
-                    "endpoint_resp_time"
-                  ],
-                  "metricTypes": [
-                    "readMetricsValues"
-                  ],
-                  "value": "1-0-4",
-                  "label": "Endpoint_Avg_Response",
                   "associate": [
                     {
                       "widgetId": "1-0-3"
@@ -130,10 +94,10 @@
                       "widgetId": "1-0-9"
                     }
                   ],
-                  "filters": {
-                    "dataIndex": 13,
-                    "sourceId": "1-0-7"
-                  }
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "endpoint_resp_time"
+                  ]
                 },
                 {
                   "x": 0,
@@ -154,19 +118,6 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
-                    "endpoint_sla"
-                  ],
-                  "metricTypes": [
-                    "readMetricsValues"
-                  ],
-                  "metricConfig": [
-                    {
-                      "calculation": "percentage"
-                    }
-                  ],
-                  "value": "1-0-7",
-                  "label": "Endpoint_Successful_Rate",
                   "associate": [
                     {
                       "widgetId": "1-0-3"
@@ -183,6 +134,10 @@
                     {
                       "widgetId": "1-0-9"
                     }
+                  ],
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "endpoint_sla/100"
                   ]
                 },
                 {
@@ -193,7 +148,7 @@
                   "i": "8",
                   "type": "Widget",
                   "widget": {
-                    "title": "Endpoint Load  (calls or packets / min)",
+                    "title": "Endpoint Load  (calls / min)",
                     "name": "Endpoint_Load"
                   },
                   "graph": {
@@ -204,14 +159,6 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
-                    "endpoint_cpm"
-                  ],
-                  "metricTypes": [
-                    "readMetricsValues"
-                  ],
-                  "value": "1-0-8",
-                  "label": "Endpoint_Load",
                   "associate": [
                     {
                       "widgetId": "1-0-3"
@@ -229,10 +176,13 @@
                       "widgetId": "1-0-9"
                     }
                   ],
-                  "filters": {
-                    "dataIndex": 13,
-                    "sourceId": "1-0-7"
-                  }
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "endpoint_cpm"
+                  ],
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES"
+                  ]
                 },
                 {
                   "x": 0,
@@ -241,14 +191,8 @@
                   "h": 14,
                   "i": "9",
                   "type": "Widget",
-                  "metricTypes": [
-                    "readMetricsValues"
-                  ],
-                  "metrics": [
-                    "endpoint_sidecar_internal_req_latency_nanos"
-                  ],
                   "widget": {
-                    "title": "Proxy Sidecar Internal Latency in Nanoseconds (Request)",
+                    "title": "Proxy Sidecar Internal Latency in Nanoseconds",
                     "tips": "For more details to understand this metrics, refer to https://www.envoyproxy.io/docs/envoy/v1.22.0/api-v3/data/accesslog/v3/accesslog.proto.html#data-accesslog-v3-accesslogcommon",
                     "name": "Sidecar_Request_Latency"
                   },
@@ -260,8 +204,6 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "value": "1-0-9",
-                  "label": "Sidecar_Request_Latency",
                   "associate": [
                     {
                       "widgetId": "1-0-3"
@@ -279,60 +221,25 @@
                       "widgetId": "1-0-10"
                     }
                   ],
-                  "filters": {
-                    "dataIndex": 13,
-                    "sourceId": "1-0-7"
-                  }
-                },
-                {
-                  "x": 11,
-                  "y": 28,
-                  "w": 13,
-                  "h": 14,
-                  "i": "10",
-                  "type": "Widget",
-                  "metricTypes": [
-                    "readMetricsValues"
-                  ],
-                  "metrics": [
-                    "endpoint_sidecar_internal_resp_latency_nanos"
-                  ],
-                  "widget": {
-                    "title": "Proxy Sidecar Internal Latency in Nanoseconds (Response)",
-                    "tips": "For more details to understand this metrics, refer to https://www.envoyproxy.io/docs/envoy/v1.22.0/api-v3/data/accesslog/v3/accesslog.proto.html#data-accesslog-v3-accesslogcommon",
-                    "name": "Sidecar_Response_Latency"
-                  },
-                  "graph": {
-                    "type": "Line",
-                    "step": false,
-                    "smooth": false,
-                    "showSymbol": true,
-                    "showXAxis": true,
-                    "showYAxis": true
-                  },
-                  "value": "1-0-10",
-                  "label": "1-0-10",
-                  "associate": [
-                    {
-                      "widgetId": "1-0-3"
-                    },
-                    {
-                      "widgetId": "1-0-4"
-                    },
-                    {
-                      "widgetId": "1-0-7"
-                    },
+                  "metricMode": "Expression",
+                  "metricConfig": [
                     {
-                      "widgetId": "1-0-8"
+                      "label": "Request",
+                      "unit": "Nanosecond"
                     },
                     {
-                      "widgetId": "1-0-9"
+                      "label": "Response",
+                      "unit": "Nanosecond"
                     }
                   ],
-                  "filters": {
-                    "dataIndex": 13,
-                    "sourceId": "1-0-7"
-                  }
+                  "expressions": [
+                    "endpoint_sidecar_internal_req_latency_nanos",
+                    "endpoint_sidecar_internal_resp_latency_nanos"
+                  ],
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES",
+                    "TIME_SERIES_VALUES"
+                  ]
                 }
               ]
             },
diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh/mesh-instance-relation.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh/mesh-instance-relation.json
index 520531d8ce..d1b18e4f49 100644
--- a/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh/mesh-instance-relation.json
+++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh/mesh-instance-relation.json
@@ -1,27 +1,10 @@
-/**
- * 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-Instance-Relation",
     "configuration": {
       "children": [
         {
-          "x": 12,
+          "x": 6,
           "y": 0,
           "w": 6,
           "h": 12,
@@ -39,21 +22,6 @@
             "showXAxis": true,
             "showYAxis": true
           },
-          "metrics": [
-            "service_instance_relation_client_percentile"
-          ],
-          "metricTypes": [
-            "readLabeledMetricsValues"
-          ],
-          "metricConfig": [
-            {
-              "key": "P50, P75, P90, P95, P99",
-              "labelsIndex": "0,1,2,3,4",
-              "label": "P50, P75, P90, P95, P99"
-            }
-          ],
-          "value": "1",
-          "label": "Response_Percentile_Client",
           "associate": [
             {
               "widgetId": "10"
@@ -91,6 +59,13 @@
             {
               "widgetId": "14"
             }
+          ],
+          "metricMode": "Expression",
+          "expressions": [
+            "relabels(service_instance_relation_client_percentile{_='0,1,2,3,4'},_='P50,P75,P90,P95,P99')"
+          ],
+          "typesOfMQE": [
+            "TIME_SERIES_VALUES"
           ]
         },
         {
@@ -101,8 +76,8 @@
           "i": "2",
           "type": "Widget",
           "widget": {
-            "title": "Success Rate (Client) (%)",
-            "name": "Success_Rate_Client"
+            "title": "Success Rate (%)",
+            "name": "Success_Rate"
           },
           "graph": {
             "type": "Line",
@@ -112,19 +87,14 @@
             "showXAxis": true,
             "showYAxis": true
           },
-          "metrics": [
-            "service_instance_relation_client_call_sla"
-          ],
-          "metricTypes": [
-            "readMetricsValues"
-          ],
           "metricConfig": [
             {
-              "calculation": "percentage"
+              "label": "Client"
+            },
+            {
+              "label": "Server"
             }
           ],
-          "value": "2",
-          "label": "Success_Rate_Client",
           "associate": [
             {
               "widgetId": "1"
@@ -162,72 +132,15 @@
             {
               "widgetId": "14"
             }
-          ]
-        },
-        {
-          "x": 12,
-          "y": 12,
-          "w": 6,
-          "h": 12,
-          "i": "3",
-          "type": "Widget",
-          "widget": {
-            "title": "Load (Client) (calls or packets / min)",
-            "name": "Load_Client"
-          },
-          "graph": {
-            "type": "Line",
-            "step": false,
-            "smooth": false,
-            "showSymbol": true,
-            "showXAxis": true,
-            "showYAxis": true
-          },
-          "metrics": [
-            "service_instance_relation_client_cpm"
           ],
-          "metricTypes": [
-            "readMetricsValues"
+          "metricMode": "Expression",
+          "expressions": [
+            "service_instance_relation_client_call_sla/100",
+            "service_instance_relation_server_call_sla/100"
           ],
-          "value": "3",
-          "label": "Load_Client",
-          "associate": [
-            {
-              "widgetId": "1"
-            },
-            {
-              "widgetId": "2"
-            },
-            {
-              "widgetId": "10"
-            },
-            {
-              "widgetId": "4"
-            },
-            {
-              "widgetId": "5"
-            },
-            {
-              "widgetId": "6"
-            },
-            {
-              "widgetId": "7"
-            },
-            {
-              "widgetId": "8"
-            },
-            {
-              "widgetId": "9"
-            },
-            {
-              "widgetId": "11"
-            },
-            {
-              "widgetId": "12"
-            },
-            {
-              "widgetId": "14"
-            }
+          "typesOfMQE": [
+            "TIME_SERIES_VALUES",
+            "TIME_SERIES_VALUES"
           ]
         },
         {
@@ -238,8 +151,8 @@
           "i": "4",
           "type": "Widget",
           "widget": {
-            "title": "Response Time (Client) (ms)",
-            "name": "Response_Client"
+            "title": "Response Time (ms)",
+            "name": "Response_Time"
           },
           "graph": {
             "type": "Line",
@@ -249,14 +162,6 @@
             "showXAxis": true,
             "showYAxis": true
           },
-          "metrics": [
-            "service_instance_relation_client_resp_time"
-          ],
-          "metricTypes": [
-            "readMetricsValues"
-          ],
-          "value": "4",
-          "label": "Response_Client",
           "associate": [
             {
               "widgetId": "1"
@@ -294,10 +199,27 @@
             {
               "widgetId": "14"
             }
+          ],
+          "metricMode": "Expression",
+          "metricConfig": [
+            {
+              "label": "Client"
+            },
+            {
+              "label": "Server"
+            }
+          ],
+          "expressions": [
+            "service_instance_relation_client_resp_time",
+            "service_instance_relation_server_resp_time"
+          ],
+          "typesOfMQE": [
+            "TIME_SERIES_VALUES",
+            "TIME_SERIES_VALUES"
           ]
         },
         {
-          "x": 18,
+          "x": 12,
           "y": 0,
           "w": 6,
           "h": 12,
@@ -315,21 +237,6 @@
             "showXAxis": true,
             "showYAxis": true
           },
-          "metrics": [
-            "service_instance_relation_server_percentile"
-          ],
-          "metricTypes": [
-            "readLabeledMetricsValues"
-          ],
-          "metricConfig": [
-            {
-              "key": "P50, P75, P90, P95, P99",
-              "labelsIndex": "0,1,2,3,4",
-              "label": "P50, P75, P90, P95, P99"
-            }
-          ],
-          "value": "5",
-          "label": "Response_Percentile_Server",
           "associate": [
             {
               "widgetId": "1"
@@ -367,89 +274,25 @@
             {
               "widgetId": "14"
             }
-          ]
-        },
-        {
-          "x": 6,
-          "y": 12,
-          "w": 6,
-          "h": 12,
-          "i": "6",
-          "type": "Widget",
-          "widget": {
-            "title": "Success Rate (Server) (%)",
-            "name": "Success_Rate_Server"
-          },
-          "graph": {
-            "type": "Line",
-            "step": false,
-            "smooth": false,
-            "showSymbol": true,
-            "showXAxis": true,
-            "showYAxis": true
-          },
-          "metrics": [
-            "service_instance_relation_server_call_sla"
-          ],
-          "metricTypes": [
-            "readMetricsValues"
           ],
-          "metricConfig": [
-            {
-              "calculation": "percentage"
-            }
+          "metricMode": "Expression",
+          "expressions": [
+            "relabels(service_instance_relation_server_percentile{_='0,1,2,3,4'},_='P50,P75,P90,P95,P99')"
           ],
-          "value": "6",
-          "label": "Success_Rate_Server",
-          "associate": [
-            {
-              "widgetId": "1"
-            },
-            {
-              "widgetId": "2"
-            },
-            {
-              "widgetId": "3"
-            },
-            {
-              "widgetId": "4"
-            },
-            {
-              "widgetId": "5"
-            },
-            {
-              "widgetId": "10"
-            },
-            {
-              "widgetId": "7"
-            },
-            {
-              "widgetId": "8"
-            },
-            {
-              "widgetId": "9"
-            },
-            {
-              "widgetId": "11"
-            },
-            {
-              "widgetId": "12"
-            },
-            {
-              "widgetId": "14"
-            }
+          "typesOfMQE": [
+            "TIME_SERIES_VALUES"
           ]
         },
         {
           "x": 18,
-          "y": 12,
+          "y": 0,
           "w": 6,
           "h": 12,
           "i": "7",
           "type": "Widget",
           "widget": {
-            "title": "Load (Server) (calls or packets / min)",
-            "name": "Load_Server"
+            "title": "Load (calls / min)",
+            "name": "Load"
           },
           "graph": {
             "type": "Line",
@@ -459,14 +302,6 @@
             "showXAxis": true,
             "showYAxis": true
           },
-          "metrics": [
-            "service_instance_relation_server_cpm"
-          ],
-          "metricTypes": [
-            "readMetricsValues"
-          ],
-          "value": "7",
-          "label": "Load_Server",
           "associate": [
             {
               "widgetId": "1"
@@ -504,91 +339,36 @@
             {
               "widgetId": "14"
             }
-          ]
-        },
-        {
-          "x": 6,
-          "y": 0,
-          "w": 6,
-          "h": 12,
-          "i": "8",
-          "type": "Widget",
-          "widget": {
-            "title": "Response Time (Server) (ms)",
-            "name": "Response_Server"
-          },
-          "graph": {
-            "type": "Line",
-            "step": false,
-            "smooth": false,
-            "showSymbol": true,
-            "showXAxis": true,
-            "showYAxis": true
-          },
-          "metrics": [
-            "service_instance_relation_server_resp_time"
           ],
-          "metricTypes": [
-            "readMetricsValues"
-          ],
-          "value": "8",
-          "label": "Response_Server",
-          "associate": [
-            {
-              "widgetId": "1"
-            },
-            {
-              "widgetId": "2"
-            },
-            {
-              "widgetId": "3"
-            },
-            {
-              "widgetId": "4"
-            },
-            {
-              "widgetId": "5"
-            },
-            {
-              "widgetId": "6"
-            },
-            {
-              "widgetId": "7"
-            },
-            {
-              "widgetId": "10"
-            },
-            {
-              "widgetId": "9"
-            },
-            {
-              "widgetId": "11"
-            },
+          "metricMode": "Expression",
+          "metricConfig": [
             {
-              "widgetId": "12"
+              "label": "Server"
             },
             {
-              "widgetId": "14"
+              "label": "Client"
             }
+          ],
+          "expressions": [
+            "service_instance_relation_server_cpm",
+            "service_instance_relation_client_cpm"
+          ],
+          "typesOfMQE": [
+            "TIME_SERIES_VALUES",
+            "TIME_SERIES_VALUES"
           ]
         },
         {
           "x": 6,
-          "y": 24,
+          "y": 12,
           "w": 6,
           "h": 12,
           "i": "9",
           "type": "Widget",
-          "metricTypes": [
-            "readMetricsValues"
-          ],
-          "metrics": [
-            "instance_client_sidecar_internal_resp_latency_nanos"
-          ],
           "widget": {
-            "title": "Proxy Sidecar Internal Latency in Nanoseconds (Client Response)",
+            "title": "Proxy Sidecar Internal Response Latency (ns)",
             "tips": "For more details to understand this metrics, refer to https://www.envoyproxy.io/docs/envoy/v1.22.0/api-v3/data/accesslog/v3/accesslog.proto.html#data-accesslog-v3-accesslogcommon",
-            "name": "Sidecar_Latency_Client_Rsp"
+            "name": "Sidecar_Latency"
           },
           "graph": {
             "type": "Line",
@@ -598,8 +378,6 @@
             "showXAxis": true,
             "showYAxis": true
           },
-          "value": "9",
-          "label": "Sidecar_Latency_Client_Rsp",
           "associate": [
             {
               "widgetId": "1"
@@ -637,92 +415,36 @@
             {
               "widgetId": "14"
             }
-          ]
-        },
-        {
-          "x": 18,
-          "y": 24,
-          "w": 6,
-          "h": 12,
-          "i": "10",
-          "type": "Widget",
-          "metricTypes": [
-            "readMetricsValues"
-          ],
-          "metrics": [
-            "instance_server_sidecar_internal_resp_latency_nanos"
           ],
-          "widget": {
-            "title": "Proxy Sidecar Internal Latency in Nanoseconds (Server Response)",
-            "tips": "For more details to understand this metrics, refer to https://www.envoyproxy.io/docs/envoy/v1.22.0/api-v3/data/accesslog/v3/accesslog.proto.html#data-accesslog-v3-accesslogcommon",
-            "name": "Sidecar_Latency_Server_Rsp"
-          },
-          "graph": {
-            "type": "Line",
-            "step": false,
-            "smooth": false,
-            "showSymbol": true,
-            "showXAxis": true,
-            "showYAxis": true
-          },
-          "value": "10",
-          "label": "10",
-          "associate": [
-            {
-              "widgetId": "1"
-            },
-            {
-              "widgetId": "2"
-            },
-            {
-              "widgetId": "3"
-            },
-            {
-              "widgetId": "4"
-            },
-            {
-              "widgetId": "5"
-            },
-            {
-              "widgetId": "6"
-            },
-            {
-              "widgetId": "7"
-            },
-            {
-              "widgetId": "8"
-            },
-            {
-              "widgetId": "9"
-            },
+          "metricMode": "Expression",
+          "metricConfig": [
             {
-              "widgetId": "11"
+              "label": "Client"
             },
             {
-              "widgetId": "12"
-            },
-            {
-              "widgetId": "14"
+              "label": "Server"
             }
+          ],
+          "expressions": [
+            "instance_client_sidecar_internal_resp_latency_nanos",
+            "instance_server_sidecar_internal_resp_latency_nanos"
+          ],
+          "typesOfMQE": [
+            "TIME_SERIES_VALUES",
+            "TIME_SERIES_VALUES"
           ]
         },
         {
           "x": 12,
-          "y": 24,
+          "y": 12,
           "w": 6,
           "h": 12,
-          "i": "11",
+          "i": "12",
           "type": "Widget",
-          "metricTypes": [
-            "readMetricsValues"
-          ],
-          "metrics": [
-            "instance_server_sidecar_internal_req_latency_nanos"
-          ],
           "widget": {
             "tips": "For more details to understand this metrics, refer to https://www.envoyproxy.io/docs/envoy/v1.22.0/api-v3/data/accesslog/v3/accesslog.proto.html#data-accesslog-v3-accesslogcommon",
-            "title": "Proxy Sidecar Internal Latency (Server Request)",
-            "name": "Sidecar_Latency_Server_Request"
+            "title": "Proxy Sidecar Internal Request Latency (ns)",
+            "name": "Sidecar_Latency_Client_Request"
           },
           "graph": {
             "type": "Line",
@@ -732,8 +454,6 @@
             "showXAxis": true,
             "showYAxis": true
           },
-          "value": "11",
-          "label": "Sidecar_Latency_Server_Request",
           "associate": [
             {
               "widgetId": "1"
@@ -763,33 +483,43 @@
               "widgetId": "9"
             },
             {
-              "widgetId": "10"
+              "widgetId": "11"
             },
             {
-              "widgetId": "12"
+              "widgetId": "10"
             },
             {
               "widgetId": "14"
             }
+          ],
+          "metricMode": "Expression",
+          "metricConfig": [
+            {
+              "label": "Client"
+            },
+            {
+              "label": "Server"
+            }
+          ],
+          "expressions": [
+            "instance_client_sidecar_internal_req_latency_nanos",
+            "instance_server_sidecar_internal_req_latency_nanos"
+          ],
+          "typesOfMQE": [
+            "TIME_SERIES_VALUES",
+            "TIME_SERIES_VALUES"
           ]
         },
         {
           "x": 0,
           "y": 24,
-          "w": 6,
+          "w": 12,
           "h": 12,
-          "i": "12",
+          "i": "13",
           "type": "Widget",
-          "metricTypes": [
-            "readMetricsValues"
-          ],
-          "metrics": [
-            "instance_client_sidecar_internal_req_latency_nanos"
-          ],
           "widget": {
-            "tips": "For more details to understand this metrics, refer to https://www.envoyproxy.io/docs/envoy/v1.22.0/api-v3/data/accesslog/v3/accesslog.proto.html#data-accesslog-v3-accesslogcommon",
-            "title": "Proxy Sidecar Internal Latency (Client Request)",
-            "name": "Sidecar_Latency_Client_Request"
+            "title": "Service Instance Throughput (Client) (Bytes)",
+            "tips": "This metrics is only avaible for TCP services"
           },
           "graph": {
             "type": "Line",
@@ -799,91 +529,28 @@
             "showXAxis": true,
             "showYAxis": true
           },
-          "value": "12",
-          "label": "Sidecar_Latency_Client_Request",
-          "associate": [
-            {
-              "widgetId": "1"
-            },
-            {
-              "widgetId": "2"
-            },
-            {
-              "widgetId": "3"
-            },
-            {
-              "widgetId": "4"
-            },
-            {
-              "widgetId": "5"
-            },
-            {
-              "widgetId": "6"
-            },
-            {
-              "widgetId": "7"
-            },
-            {
-              "widgetId": "8"
-            },
-            {
-              "widgetId": "9"
-            },
-            {
-              "widgetId": "11"
-            },
-            {
-              "widgetId": "10"
-            },
-            {
-              "widgetId": "14"
-            }
-          ]
-        },
-        {
-          "x": 0,
-          "y": 36,
-          "w": 12,
-          "h": 12,
-          "i": "13",
-          "type": "Widget",
-          "metricTypes": [
-            "readMetricsValues",
-            "readMetricsValues"
-          ],
-          "metrics": [
+          "metricMode": "Expression",
+          "expressions": [
             "service_instance_relation_client_received",
             "service_instance_relation_client_sent"
           ],
-          "widget": {
-            "title": "Service Instance Throughput (Client) (Bytes)",
-            "tips": "This metrics is only avaible for TCP services"
-          },
-          "value": "13",
-          "label": "13"
+          "typesOfMQE": [
+            "TIME_SERIES_VALUES",
+            "TIME_SERIES_VALUES"
+          ]
         },
         {
           "x": 12,
-          "y": 36,
+          "y": 24,
           "w": 12,
           "h": 12,
           "i": "14",
           "type": "Widget",
-          "metricTypes": [
-            "readMetricsValues",
-            "readMetricsValues"
-          ],
-          "metrics": [
-            "service_instance_relation_server_received",
-            "service_instance_relation_server_sent"
-          ],
           "widget": {
             "title": "Service Instance Throughput (Server) (Bytes)",
             "name": "Instance_Throughput_Server",
             "tips": "This metrics is only avaible for TCP services"
           },
-          "value": "14",
-          "label": "Instance_Throughput_Server",
           "associate": [
             {
               "widgetId": "1"
@@ -921,6 +588,23 @@
             {
               "widgetId": "10"
             }
+          ],
+          "graph": {
+            "type": "Line",
+            "step": false,
+            "smooth": false,
+            "showSymbol": true,
+            "showXAxis": true,
+            "showYAxis": true
+          },
+          "metricMode": "Expression",
+          "expressions": [
+            "service_instance_relation_server_received",
+            "service_instance_relation_server_sent"
+          ],
+          "typesOfMQE": [
+            "TIME_SERIES_VALUES",
+            "TIME_SERIES_VALUES"
           ]
         }
       ],
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 c8f8630d6d..cef7b54708 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
@@ -1,20 +1,3 @@
-/**
- * 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-Instance",
@@ -50,12 +33,6 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
-                    "service_instance_resp_time"
-                  ],
-                  "metricTypes": [
-                    "readMetricsValues"
-                  ],
                   "associate": [
                     {
                       "widgetId": "1-0-2"
@@ -66,6 +43,13 @@
                     {
                       "widgetId": "1-0-3"
                     }
+                  ],
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "service_instance_resp_time"
+                  ],
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES"
                   ]
                 },
                 {
@@ -87,12 +71,6 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
-                    "service_instance_sla"
-                  ],
-                  "metricTypes": [
-                    "readMetricsValues"
-                  ],
                   "associate": [
                     {
                       "widgetId": "1-0-0"
@@ -103,6 +81,13 @@
                     {
                       "widgetId": "1-0-3"
                     }
+                  ],
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "service_instance_sla/100"
+                  ],
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES"
                   ]
                 },
                 {
@@ -115,7 +100,7 @@
                   "widget": {
                     "title": "Service Instance Throughput (Bytes)",
                     "name": "Instance_Throughput",
-                    "tips": "This metrics is only avaible for TCP services"
+                    "tips": "This metrics is only available for TCP services"
                   },
                   "graph": {
                     "type": "Line",
@@ -125,14 +110,6 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
-                    "service_instance_throughput_received",
-                    "service_instance_throughput_sent"
-                  ],
-                  "metricTypes": [
-                    "readMetricsValues",
-                    "readMetricsValues"
-                  ],
                   "associate": [
                     {
                       "widgetId": "1-0-0"
@@ -144,13 +121,14 @@
                       "widgetId": "1-0-3"
                     }
                   ],
-                  "metricConfig": [
-                    {
-                      "label": "received"
-                    },
-                    {
-                      "label": "sent"
-                    }
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "service_instance_throughput_received",
+                    "service_instance_throughput_sent"
+                  ],
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES",
+                    "TIME_SERIES_VALUES"
                   ]
                 },
                 {
@@ -172,12 +150,6 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
-                    "service_instance_cpm"
-                  ],
-                  "metricTypes": [
-                    "readMetricsValues"
-                  ],
                   "associate": [
                     {
                       "widgetId": "1-0-0"
@@ -188,6 +160,13 @@
                     {
                       "widgetId": "1-0-2"
                     }
+                  ],
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "service_instance_cpm"
+                  ],
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES"
                   ]
                 }
               ]
diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh/mesh-root.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh/mesh-root.json
index 4930e9098e..2a41e77886 100644
--- a/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh/mesh-root.json
+++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh/mesh-root.json
@@ -1,20 +1,3 @@
-/**
- * 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-Root",
@@ -46,38 +29,41 @@
                     "showYAxis": false,
                     "showGroup": true
                   },
-                  "metrics": [
-                    "service_cpm",
-                    "service_sla",
-                    "service_resp_time",
-                    "service_apdex"
-                  ],
-                  "metricTypes": [
-                    "readMetricsValues",
-                    "readMetricsValues",
-                    "readMetricsValues",
-                    "readMetricsValues"
-                  ],
                   "metricConfig": [
                     {
-                      "label": "Load",
-                      "unit": "calls or packets / min",
-                      "calculation": "average"
+                      "label": "Loads",
+                      "unit": "Calls Per Minutes"
                     },
                     {
-                      "calculation": "percentageAvg",
-                      "unit": "%",
-                      "label": "Success Rate"
+                      "label": "Success Rate",
+                      "unit": "%"
                     },
                     {
-                      "calculation": "average",
                       "label": "Latency",
                       "unit": "ms"
                     },
                     {
-                      "calculation": "apdexAvg",
                       "label": "Apdex"
                     }
+                  ],
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "avg(service_cpm)",
+                    "avg(service_sla)/100",
+                    "avg(service_resp_time)",
+                    "avg(service_apdex)/10000"
+                  ],
+                  "subExpressions": [
+                    "",
+                    "",
+                    "",
+                    ""
+                  ],
+                  "subTypesOfMQE": [
+                    "",
+                    "",
+                    "",
+                    ""
                   ]
                 }
               ]
@@ -212,10 +198,10 @@
           }
         }
       ],
-      "id": "Mesh-Root",
       "layer": "MESH",
       "entity": "All",
       "name": "Mesh-Root",
+      "id": "Mesh-Root",
       "isRoot": true
     }
   }
diff --git a/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh/mesh-service-relation.json b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh/mesh-service-relation.json
index 1edea65d34..07316749f1 100644
--- a/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh/mesh-service-relation.json
+++ b/oap-server/server-starter/src/main/resources/ui-initialized-templates/mesh/mesh-service-relation.json
@@ -1,20 +1,3 @@
-/**
- * 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-Service-Relation",
@@ -32,158 +15,7 @@
               "name": "Overview",
               "children": [
                 {
-                  "x": 6,
-                  "y": 12,
-                  "w": 6,
-                  "h": 12,
-                  "i": "0",
-                  "type": "Widget",
-                  "widget": {
-                    "title": "Load (Server) (calls or packets / min)",
-                    "name": "Load_Server"
-                  },
-                  "graph": {
-                    "type": "Line",
-                    "step": false,
-                    "smooth": false,
-                    "showSymbol": true,
-                    "showXAxis": true,
-                    "showYAxis": true
-                  },
-                  "metrics": [
-                    "service_relation_server_cpm"
-                  ],
-                  "metricTypes": [
-                    "readMetricsValues"
-                  ],
-                  "value": "0-0-0",
-                  "label": "Load_Server",
-                  "associate": [
-                    {
-                      "widgetId": "0-0-11"
-                    },
-                    {
-                      "widgetId": "0-0-1"
-                    },
-                    {
-                      "widgetId": "0-0-2"
-                    },
-                    {
-                      "widgetId": "0-0-3"
-                    },
-                    {
-                      "widgetId": "0-0-4"
-                    },
-                    {
-                      "widgetId": "0-0-5"
-                    },
-                    {
-                      "widgetId": "0-0-6"
-                    },
-                    {
-                      "widgetId": "0-0-7"
-                    },
-                    {
-                      "widgetId": "0-0-8"
-                    },
-                    {
-                      "widgetId": "0-0-9"
-                    },
-                    {
-                      "widgetId": "0-0-10"
-                    },
-                    {
-                      "widgetId": "0-0-12"
-                    },
-                    {
-                      "widgetId": "0-0-13"
-                    }
-                  ],
-                  "filters": {
-                    "dataIndex": 5,
-                    "sourceId": "0-0-11"
-                  }
-                },
-                {
-                  "x": 18,
-                  "y": 12,
-                  "w": 6,
-                  "h": 12,
-                  "i": "1",
-                  "type": "Widget",
-                  "widget": {
-                    "title": "Successful Rate (Server) (%)",
-                    "name": "Successful_Rate_Server"
-                  },
-                  "graph": {
-                    "type": "Line",
-                    "step": false,
-                    "smooth": false,
-                    "showSymbol": true,
-                    "showXAxis": true,
-                    "showYAxis": true
-                  },
-                  "metrics": [
-                    "service_relation_server_call_sla"
-                  ],
-                  "metricTypes": [
-                    "readMetricsValues"
-                  ],
-                  "metricConfig": [
-                    {
-                      "calculation": "percentage"
-                    }
-                  ],
-                  "value": "0-0-1",
-                  "label": "Successful_Rate_Server",
-                  "associate": [
-                    {
-                      "widgetId": "0-0-0"
-                    },
-                    {
-                      "widgetId": "0-0-11"
-                    },
-                    {
-                      "widgetId": "0-0-2"
-                    },
-                    {
-                      "widgetId": "0-0-3"
-                    },
-                    {
-                      "widgetId": "0-0-4"
-                    },
-                    {
-                      "widgetId": "0-0-5"
-                    },
-                    {
-                      "widgetId": "0-0-6"
-                    },
-                    {
-                      "widgetId": "0-0-7"
-                    },
-                    {
-                      "widgetId": "0-0-8"
-                    },
-                    {
-                      "widgetId": "0-0-9"
-                    },
-                    {
-                      "widgetId": "0-0-10"
-                    },
-                    {
-                      "widgetId": "0-0-12"
-                    },
-                    {
-                      "widgetId": "0-0-13"
-                    }
-                  ],
-                  "filters": {
-                    "dataIndex": 5,
-                    "sourceId": "0-0-11"
-                  }
-                },
-                {
-                  "x": 18,
+                  "x": 12,
                   "y": 0,
                   "w": 6,
                   "h": 12,
@@ -201,20 +33,6 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
-                    "service_relation_server_percentile"
-                  ],
-                  "metricTypes": [
-                    "readLabeledMetricsValues"
-                  ],
-                  "metricConfig": [
-                    {
-                      "label": "P50, P75, P90, P95, P99",
-                      "labelsIndex": "0,1,2,3,4"
-                    }
-                  ],
-                  "value": "0-0-2",
-                  "label": "Response_Percentile_Server",
                   "associate": [
                     {
                       "widgetId": "0-0-0"
@@ -256,83 +74,13 @@
                       "widgetId": "0-0-13"
                     }
                   ],
-                  "filters": {
-                    "dataIndex": 5,
-                    "sourceId": "0-0-11"
-                  }
-                },
-                {
-                  "x": 6,
-                  "y": 0,
-                  "w": 6,
-                  "h": 12,
-                  "i": "3",
-                  "type": "Widget",
-                  "widget": {
-                    "title": "Response Time (Server) (ms)",
-                    "name": "Response_Server"
-                  },
-                  "graph": {
-                    "type": "Line",
-                    "step": false,
-                    "smooth": false,
-                    "showSymbol": true,
-                    "showXAxis": true,
-                    "showYAxis": true
-                  },
-                  "metrics": [
-                    "service_relation_server_resp_time"
-                  ],
-                  "metricTypes": [
-                    "readMetricsValues"
-                  ],
-                  "value": "0-0-3",
-                  "label": "Response_Server",
-                  "associate": [
-                    {
-                      "widgetId": "0-0-0"
-                    },
-                    {
-                      "widgetId": "0-0-1"
-                    },
-                    {
-                      "widgetId": "0-0-2"
-                    },
-                    {
-                      "widgetId": "0-0-11"
-                    },
-                    {
-                      "widgetId": "0-0-4"
-                    },
-                    {
-                      "widgetId": "0-0-5"
-                    },
-                    {
-                      "widgetId": "0-0-6"
-                    },
-                    {
-                      "widgetId": "0-0-7"
-                    },
-                    {
-                      "widgetId": "0-0-8"
-                    },
-                    {
-                      "widgetId": "0-0-9"
-                    },
-                    {
-                      "widgetId": "0-0-10"
-                    },
-                    {
-                      "widgetId": "0-0-12"
-                    },
-                    {
-                      "widgetId": "0-0-13"
-                    }
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "relabels(service_relation_server_percentile{_='0,1,2,3,4'},_='P50,P75,P90,P95,P99')"
                   ],
-                  "filters": {
-                    "dataIndex": 5,
-                    "sourceId": "0-0-11"
-                  }
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES"
+                  ]
                 },
                 {
                   "x": 0,
@@ -342,8 +90,8 @@
                   "i": "4",
                   "type": "Widget",
                   "widget": {
-                    "title": "Response Time (Client) (ms)",
-                    "name": "Response_Client"
+                    "title": "Response Time (ms)",
+                    "name": "Response"
                   },
                   "graph": {
                     "type": "Line",
@@ -353,14 +101,6 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
-                    "service_relation_client_resp_time"
-                  ],
-                  "metricTypes": [
-                    "readMetricsValues"
-                  ],
-                  "value": "0-0-4",
-                  "label": "Response_Client",
                   "associate": [
                     {
                       "widgetId": "0-0-0"
@@ -402,13 +142,26 @@
                       "widgetId": "0-0-13"
                     }
                   ],
-                  "filters": {
-                    "dataIndex": 5,
-                    "sourceId": "0-0-11"
-                  }
+                  "metricMode": "Expression",
+                  "metricConfig": [
+                    {
+                      "label": "Client"
+                    },
+                    {
+                      "label": "Server"
+                    }
+                  ],
+                  "expressions": [
+                    "service_relation_client_resp_time",
+                    "service_relation_server_resp_time"
+                  ],
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES",
+                    "TIME_SERIES_VALUES"
+                  ]
                 },
                 {
-                  "x": 12,
+                  "x": 6,
                   "y": 0,
                   "w": 6,
                   "h": 12,
@@ -426,20 +179,6 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
-                    "service_relation_client_percentile"
-                  ],
-                  "metricTypes": [
-                    "readLabeledMetricsValues"
-                  ],
-                  "metricConfig": [
-                    {
-                      "label": "P50, P75, P90, P95, P99",
-                      "labelsIndex": "0,1,2,3,4"
-                    }
-                  ],
-                  "value": "0-0-5",
-                  "label": "Response_Percentile_Client",
                   "associate": [
                     {
                       "widgetId": "0-0-0"
@@ -481,21 +220,24 @@
                       "widgetId": "0-0-13"
                     }
                   ],
-                  "filters": {
-                    "dataIndex": 5,
-                    "sourceId": "0-0-11"
-                  }
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "relabels(service_relation_client_percentile{_='0,1,2,3,4'},_='P50,P75,P90,P95,P99')"
+                  ],
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES"
+                  ]
                 },
                 {
-                  "x": 12,
+                  "x": 0,
                   "y": 12,
                   "w": 6,
                   "h": 12,
                   "i": "6",
                   "type": "Widget",
                   "widget": {
-                    "title": "Successful Rate (Client) (%)",
-                    "name": "Successful_Rate_Client"
+                    "title": "Successful Rate (%)",
+                    "name": "Successful_Rate"
                   },
                   "graph": {
                     "type": "Line",
@@ -505,19 +247,14 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
-                    "service_relation_client_call_sla"
-                  ],
-                  "metricTypes": [
-                    "readMetricsValues"
-                  ],
                   "metricConfig": [
                     {
-                      "calculation": "percentage"
+                      "label": "Client"
+                    },
+                    {
+                      "label": "Server"
                     }
                   ],
-                  "value": "0-0-6",
-                  "label": "Successful_Rate_Client",
                   "associate": [
                     {
                       "widgetId": "0-0-0"
@@ -559,21 +296,26 @@
                       "widgetId": "0-0-13"
                     }
                   ],
-                  "filters": {
-                    "dataIndex": 5,
-                    "sourceId": "0-0-11"
-                  }
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "service_relation_client_call_sla/100",
+                    "service_relation_server_call_sla/100"
+                  ],
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES",
+                    "TIME_SERIES_VALUES"
+                  ]
                 },
                 {
-                  "x": 0,
-                  "y": 12,
+                  "x": 18,
+                  "y": 0,
                   "w": 6,
                   "h": 12,
                   "i": "7",
                   "type": "Widget",
                   "widget": {
-                    "title": "Load (Client) (calls or packets / min)",
-                    "name": "Load_Client"
+                    "title": "Load (calls / min)",
+                    "name": "Load"
                   },
                   "graph": {
                     "type": "Line",
@@ -583,14 +325,6 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
-                    "service_relation_client_cpm"
-                  ],
-                  "metricTypes": [
-                    "readMetricsValues"
-                  ],
-                  "value": "0-0-7",
-                  "label": "Load_Client",
                   "associate": [
                     {
                       "widgetId": "0-0-0"
@@ -632,14 +366,27 @@
                       "widgetId": "0-0-13"
                     }
                   ],
-                  "filters": {
-                    "dataIndex": 5,
-                    "sourceId": "0-0-11"
-                  }
+                  "metricMode": "Expression",
+                  "metricConfig": [
+                    {
+                      "label": "Client"
+                    },
+                    {
+                      "label": "Server"
+                    }
+                  ],
+                  "expressions": [
+                    "service_relation_client_cpm",
+                    "service_relation_server_cpm"
+                  ],
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES",
+                    "TIME_SERIES_VALUES"
+                  ]
                 },
                 {
                   "x": 12,
-                  "y": 36,
+                  "y": 24,
                   "w": 12,
                   "h": 12,
                   "i": "8",
@@ -649,16 +396,6 @@
                     "tips": "This metrics is only avaible for TCP services",
                     "name": "Service_Throughput_Server"
                   },
-                  "value": "0-0-8",
-                  "label": "Service_Throughput_Server",
-                  "metrics": [
-                    "service_relation_server_received",
-                    "service_relation_server_sent"
-                  ],
-                  "metricTypes": [
-                    "readMetricsValues",
-                    "readMetricsValues"
-                  ],
                   "associate": [
                     {
                       "widgetId": "0-0-0"
@@ -700,14 +437,27 @@
                       "widgetId": "0-0-13"
                     }
                   ],
-                  "filters": {
-                    "dataIndex": 5,
-                    "sourceId": "0-0-11"
-                  }
+                  "graph": {
+                    "type": "Line",
+                    "step": false,
+                    "smooth": false,
+                    "showSymbol": true,
+                    "showXAxis": true,
+                    "showYAxis": true
+                  },
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "service_relation_server_received",
+                    "service_relation_server_sent"
+                  ],
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES",
+                    "TIME_SERIES_VALUES"
+                  ]
                 },
                 {
                   "x": 0,
-                  "y": 36,
+                  "y": 24,
                   "w": 12,
                   "h": 12,
                   "i": "9",
@@ -717,16 +467,6 @@
                     "tips": "This metrics is only avaible for TCP services",
                     "name": "Service_Throughput_Client"
                   },
-                  "value": "0-0-9",
-                  "label": "Service_Throughput_Client",
-                  "metrics": [
-                    "service_relation_client_received",
-                    "service_relation_client_sent"
-                  ],
-                  "metricTypes": [
-                    "readMetricsValues",
-                    "readMetricsValues"
-                  ],
                   "associate": [
                     {
                       "widgetId": "0-0-0"
@@ -768,29 +508,6 @@
                       "widgetId": "0-0-13"
                     }
                   ],
-                  "filters": {
-                    "dataIndex": 5,
-                    "sourceId": "0-0-11"
-                  }
-                },
-                {
-                  "x": 0,
-                  "y": 24,
-                  "w": 6,
-                  "h": 12,
-                  "i": "10",
-                  "type": "Widget",
-                  "metricTypes": [
-                    "readMetricsValues"
-                  ],
-                  "metrics": [
-                    "service_client_sidecar_internal_req_latency_nanos"
-                  ],
-                  "widget": {
-                    "title": "Proxy Sidecar Internal Latency in Nanoseconds (Client Request)",
-                    "tips": "For more details to understand this metrics, refer to https://www.envoyproxy.io/docs/envoy/v1.22.0/api-v3/data/accesslog/v3/accesslog.proto.html#data-accesslog-v3-accesslogcommon",
-                    "name": "Sidecar_Latency_Client_Request"
-                  },
                   "graph": {
                     "type": "Line",
                     "step": false,
@@ -799,71 +516,27 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "value": "0-0-10",
-                  "label": "Sidecar_Latency_Client_Request",
-                  "associate": [
-                    {
-                      "widgetId": "0-0-0"
-                    },
-                    {
-                      "widgetId": "0-0-1"
-                    },
-                    {
-                      "widgetId": "0-0-2"
-                    },
-                    {
-                      "widgetId": "0-0-3"
-                    },
-                    {
-                      "widgetId": "0-0-4"
-                    },
-                    {
-                      "widgetId": "0-0-5"
-                    },
-                    {
-                      "widgetId": "0-0-6"
-                    },
-                    {
-                      "widgetId": "0-0-7"
-                    },
-                    {
-                      "widgetId": "0-0-8"
-                    },
-                    {
-                      "widgetId": "0-0-9"
-                    },
-                    {
-                      "widgetId": "0-0-11"
-                    },
-                    {
-                      "widgetId": "0-0-12"
-                    },
-                    {
-                      "widgetId": "0-0-13"
-                    }
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "service_relation_client_received",
+                    "service_relation_client_sent"
                   ],
-                  "filters": {
-                    "dataIndex": 5,
-                    "sourceId": "0-0-11"
-                  }
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES",
+                    "TIME_SERIES_VALUES"
+                  ]
                 },
                 {
-                  "x": 18,
-                  "y": 24,
+                  "x": 6,
+                  "y": 12,
                   "w": 6,
                   "h": 12,
-                  "i": "11",
+                  "i": "10",
                   "type": "Widget",
-                  "metricTypes": [
-                    "readMetricsValues"
-                  ],
-                  "metrics": [
-                    "service_server_sidecar_internal_resp_latency_nanos"
-                  ],
                   "widget": {
-                    "title": "Proxy Sidecar Internal Latency in Nanoseconds (Server Response)",
+                    "title": "Proxy Sidecar Internal Request Latency (ns)",
                     "tips": "For more details to understand this metrics, refer to https://www.envoyproxy.io/docs/envoy/v1.22.0/api-v3/data/accesslog/v3/accesslog.proto.html#data-accesslog-v3-accesslogcommon",
-                    "name": "Sidecar_Latency_Server_Rsp"
+                    "name": "Sidecar_Latency_Request"
                   },
                   "graph": {
                     "type": "Line",
@@ -873,8 +546,6 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "value": "0-0-11",
-                  "label": "0-0-11",
                   "associate": [
                     {
                       "widgetId": "0-0-0"
@@ -907,7 +578,7 @@
                       "widgetId": "0-0-9"
                     },
                     {
-                      "widgetId": "0-0-10"
+                      "widgetId": "0-0-11"
                     },
                     {
                       "widgetId": "0-0-12"
@@ -916,28 +587,35 @@
                       "widgetId": "0-0-13"
                     }
                   ],
-                  "filters": {
-                    "dataIndex": 5,
-                    "sourceId": "0-0-13"
-                  }
+                  "metricMode": "Expression",
+                  "metricConfig": [
+                    {
+                      "label": "Client"
+                    },
+                    {
+                      "label": "Server"
+                    }
+                  ],
+                  "expressions": [
+                    "service_client_sidecar_internal_req_latency_nanos",
+                    "service_server_sidecar_internal_req_latency_nanos"
+                  ],
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES",
+                    "TIME_SERIES_VALUES"
+                  ]
                 },
                 {
-                  "x": 6,
-                  "y": 24,
+                  "x": 12,
+                  "y": 12,
                   "w": 6,
                   "h": 12,
                   "i": "12",
                   "type": "Widget",
-                  "metricTypes": [
-                    "readMetricsValues"
-                  ],
-                  "metrics": [
-                    "service_client_sidecar_internal_resp_latency_nanos"
-                  ],
                   "widget": {
                     "tips": "For more details to understand this metrics, refer to https://www.envoyproxy.io/docs/envoy/v1.22.0/api-v3/data/accesslog/v3/accesslog.proto.html#data-accesslog-v3-accesslogcommon",
-                    "title": "Proxy Sidecar Internal Latency in Nanoseconds (Client Response)",
-                    "name": "Sidecar_Latency_Client_Rsp"
+                    "title": "Proxy Sidecar Internal Response Latency (ns)",
+                    "name": "Sidecar_Latency_Response"
                   },
                   "graph": {
                     "type": "Line",
@@ -947,8 +625,6 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "value": "0-0-12",
-                  "label": "Sidecar_Latency_Client_Rsp",
                   "associate": [
                     {
                       "widgetId": "0-0-0"
@@ -990,84 +666,23 @@
                       "widgetId": "0-0-13"
                     }
                   ],
-                  "filters": {
-                    "dataIndex": 5,
-                    "sourceId": "0-0-11"
-                  }
-                },
-                {
-                  "x": 12,
-                  "y": 24,
-                  "w": 6,
-                  "h": 12,
-                  "i": "13",
-                  "type": "Widget",
-                  "metricTypes": [
-                    "readMetricsValues"
-                  ],
-                  "metrics": [
-                    "service_server_sidecar_internal_req_latency_nanos"
-                  ],
-                  "widget": {
-                    "title": "Proxy Sidecar Internal Latency in Nanoseconds (Server Request)",
-                    "tips": "For more details to understand this metrics, refer to https://www.envoyproxy.io/docs/envoy/v1.22.0/api-v3/data/accesslog/v3/accesslog.proto.html#data-accesslog-v3-accesslogcommon",
-                    "name": "Sidecar_Latency_Server_Request"
-                  },
-                  "graph": {
-                    "type": "Line",
-                    "step": false,
-                    "smooth": false,
-                    "showSymbol": true,
-                    "showXAxis": true,
-                    "showYAxis": true
-                  },
-                  "value": "0-0-13",
-                  "label": "Sidecar_Latency_Server_Request",
-                  "associate": [
-                    {
-                      "widgetId": "0-0-0"
-                    },
-                    {
-                      "widgetId": "0-0-1"
-                    },
-                    {
-                      "widgetId": "0-0-2"
-                    },
-                    {
-                      "widgetId": "0-0-3"
-                    },
-                    {
-                      "widgetId": "0-0-4"
-                    },
-                    {
-                      "widgetId": "0-0-5"
-                    },
-                    {
-                      "widgetId": "0-0-6"
-                    },
-                    {
-                      "widgetId": "0-0-7"
-                    },
-                    {
-                      "widgetId": "0-0-8"
-                    },
-                    {
-                      "widgetId": "0-0-9"
-                    },
-                    {
-                      "widgetId": "0-0-10"
-                    },
+                  "metricMode": "Expression",
+                  "metricConfig": [
                     {
-                      "widgetId": "0-0-12"
+                      "label": "Client"
                     },
                     {
-                      "widgetId": "0-0-11"
+                      "label": "Server"
                     }
                   ],
-                  "filters": {
-                    "dataIndex": 5,
-                    "sourceId": "0-0-11"
-                  }
+                  "expressions": [
+                    "service_client_sidecar_internal_resp_latency_nanos",
+                    "service_server_sidecar_internal_resp_latency_nanos"
+                  ],
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES",
+                    "TIME_SERIES_VALUES"
+                  ]
                 }
               ]
             },
@@ -1165,9 +780,7 @@
                   ],
                   "metricTypes": [
                     "readMetricsValues"
-                  ],
-                  "value": "0-2-20",
-                  "label": "0-2-20"
+                  ]
                 },
                 {
                   "x": 16,
@@ -1192,9 +805,7 @@
                   ],
                   "metricTypes": [
                     "readMetricsValues"
-                  ],
-                  "value": "0-2-21",
-                  "label": "0-2-21"
+                  ]
                 },
                 {
                   "x": 8,
@@ -1219,9 +830,7 @@
                   ],
                   "metricTypes": [
                     "readMetricsValues"
-                  ],
-                  "value": "0-2-22",
-                  "label": "0-2-22"
+                  ]
                 },
                 {
                   "x": 0,
@@ -1246,9 +855,7 @@
                   ],
                   "metricTypes": [
                     "readMetricsValues"
-                  ],
-                  "value": "0-2-23",
-                  "label": "0-2-23"
+                  ]
                 },
                 {
                   "x": 16,
@@ -1273,9 +880,7 @@
                   ],
                   "metricTypes": [
                     "readMetricsValues"
-                  ],
-                  "value": "0-2-24",
-                  "label": "0-2-24"
+                  ]
                 },
                 {
                   "x": 8,
@@ -1300,9 +905,7 @@
                   ],
                   "metricTypes": [
                     "readMetricsValues"
-                  ],
-                  "value": "0-2-25",
-                  "label": "0-2-25"
+                  ]
                 },
                 {
                   "x": 0,
@@ -1327,9 +930,7 @@
                   ],
                   "metricTypes": [
                     "readMetricsValues"
-                  ],
-                  "value": "0-2-26",
-                  "label": "0-2-26"
+                  ]
                 }
               ]
             }
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 2ecbd929ce..36ccc86ba8 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
@@ -1,20 +1,3 @@
-/**
- * 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-Service",
@@ -46,16 +29,12 @@
                     "fontSize": 14,
                     "textAlign": "center"
                   },
-                  "metrics": [
-                    "service_apdex"
-                  ],
-                  "metricTypes": [
-                    "readMetricsValue"
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "avg(service_apdex)/10000"
                   ],
-                  "metricConfig": [
-                    {
-                      "calculation": "apdex"
-                    }
+                  "typesOfMQE": [
+                    "SINGLE_VALUE"
                   ]
                 },
                 {
@@ -74,17 +53,12 @@
                     "textAlign": "center",
                     "showUnit": true
                   },
-                  "metrics": [
-                    "service_sla"
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "avg(service_sla)/100"
                   ],
-                  "metricTypes": [
-                    "readMetricsValue"
-                  ],
-                  "metricConfig": [
-                    {
-                      "calculation": "percentage",
-                      "unit": "%"
-                    }
+                  "typesOfMQE": [
+                    "SINGLE_VALUE"
                   ]
                 },
                 {
@@ -103,16 +77,12 @@
                     "textAlign": "center",
                     "showUnit": true
                   },
-                  "metrics": [
-                    "service_cpm"
-                  ],
-                  "metricTypes": [
-                    "readMetricsValue"
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "avg(service_cpm)"
                   ],
-                  "metricConfig": [
-                    {
-                      "unit": "calls or packets / min"
-                    }
+                  "typesOfMQE": [
+                    "SINGLE_VALUE"
                   ]
                 },
                 {
@@ -134,12 +104,6 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
-                    "service_resp_time"
-                  ],
-                  "metricTypes": [
-                    "readMetricsValues"
-                  ],
                   "associate": [
                     {
                       "widgetId": "0-0-9"
@@ -156,6 +120,13 @@
                     {
                       "widgetId": "0-0-7"
                     }
+                  ],
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "service_resp_time"
+                  ],
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES"
                   ]
                 },
                 {
@@ -177,17 +148,6 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
-                    "service_apdex"
-                  ],
-                  "metricTypes": [
-                    "readMetricsValues"
-                  ],
-                  "metricConfig": [
-                    {
-                      "calculation": "apdex"
-                    }
-                  ],
                   "associate": [
                     {
                       "widgetId": "0-0-3"
@@ -204,6 +164,13 @@
                     {
                       "widgetId": "0-0-7"
                     }
+                  ],
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "service_apdex/10000"
+                  ],
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES"
                   ]
                 },
                 {
@@ -225,18 +192,6 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
-                    "service_percentile"
-                  ],
-                  "metricTypes": [
-                    "readLabeledMetricsValues"
-                  ],
-                  "metricConfig": [
-                    {
-                      "label": "P50, P75, P90, P95, P99",
-                      "labelsIndex": "0, 1, 2, 3, 4"
-                    }
-                  ],
                   "associate": [
                     {
                       "widgetId": "0-0-3"
@@ -253,6 +208,13 @@
                     {
                       "widgetId": "0-0-7"
                     }
+                  ],
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "relabels(service_percentile{_=\"0,1,2,3,4\"},_=\"P50,P75,P90,P95,P99\")"
+                  ],
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES"
                   ]
                 },
                 {
@@ -274,17 +236,6 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
-                    "service_sla"
-                  ],
-                  "metricTypes": [
-                    "readMetricsValues"
-                  ],
-                  "metricConfig": [
-                    {
-                      "calculation": "percentage"
-                    }
-                  ],
                   "associate": [
                     {
                       "widgetId": "0-0-3"
@@ -301,6 +252,10 @@
                     {
                       "widgetId": "0-0-7"
                     }
+                  ],
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "service_sla/100"
                   ]
                 },
                 {
@@ -322,12 +277,6 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
-                    "service_cpm"
-                  ],
-                  "metricTypes": [
-                    "readMetricsValues"
-                  ],
                   "associate": [
                     {
                       "widgetId": "0-0-3"
@@ -344,6 +293,10 @@
                     {
                       "widgetId": "0-0-9"
                     }
+                  ],
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "service_cpm"
                   ]
                 },
                 {
@@ -355,7 +308,7 @@
                   "type": "Widget",
                   "widget": {
                     "title": "Service Throughput (Bytes)",
-                    "tips": "This metrics is only avaible for TCP services",
+                    "tips": "This metrics is only available for TCP services",
                     "name": "Service_Throughput"
                   },
                   "graph": {
@@ -366,14 +319,6 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
-                    "service_throughput_received",
-                    "service_throughput_sent"
-                  ],
-                  "metricTypes": [
-                    "readMetricsValues",
-                    "readMetricsValues"
-                  ],
                   "associate": [
                     {
                       "widgetId": "0-0-3"
@@ -391,13 +336,14 @@
                       "widgetId": "0-0-7"
                     }
                   ],
-                  "metricConfig": [
-                    {
-                      "label": "received"
-                    },
-                    {
-                      "label": "sent"
-                    }
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "service_throughput_received",
+                    "service_throughput_sent"
+                  ],
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES",
+                    "TIME_SERIES_VALUES"
                   ]
                 },
                 {
@@ -413,11 +359,12 @@
                   "graph": {
                     "type": "TopList"
                   },
-                  "metrics": [
-                    "service_instance_cpm"
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "top_n(service_instance_cpm,10,des)"
                   ],
-                  "metricTypes": [
-                    "sortMetrics"
+                  "typesOfMQE": [
+                    "SORTED_LIST"
                   ]
                 },
                 {
@@ -434,11 +381,12 @@
                     "type": "TopList",
                     "topN": "10"
                   },
-                  "metrics": [
-                    "service_instance_resp_time"
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "top_n(service_instance_resp_time,10,des)"
                   ],
-                  "metricTypes": [
-                    "sortMetrics"
+                  "typesOfMQE": [
+                    "SORTED_LIST"
                   ]
                 },
                 {
@@ -455,17 +403,12 @@
                     "type": "TopList",
                     "topN": "10"
                   },
-                  "metrics": [
-                    "service_instance_sla"
-                  ],
-                  "metricTypes": [
-                    "sortMetrics"
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "top_n(service_instance_sla,10,asc)/100"
                   ],
-                  "metricConfig": [
-                    {
-                      "sortOrder": "ASC",
-                      "calculation": "percentage"
-                    }
+                  "typesOfMQE": [
+                    "SORTED_LIST"
                   ]
                 },
                 {
@@ -482,17 +425,9 @@
                     "type": "TopList",
                     "topN": "10"
                   },
-                  "metrics": [
-                    "endpoint_sla"
-                  ],
-                  "metricTypes": [
-                    "sortMetrics"
-                  ],
-                  "metricConfig": [
-                    {
-                      "sortOrder": "ASC",
-                      "calculation": "percentage"
-                    }
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "top_n(endpoint_sla,10,asc)/100"
                   ]
                 },
                 {
@@ -509,11 +444,9 @@
                     "type": "TopList",
                     "topN": "10"
                   },
-                  "metrics": [
-                    "endpoint_resp_time"
-                  ],
-                  "metricTypes": [
-                    "sortMetrics"
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "top_n(endpoint_resp_time,10,des)"
                   ]
                 },
                 {
@@ -530,11 +463,9 @@
                     "type": "TopList",
                     "topN": "10"
                   },
-                  "metrics": [
-                    "endpoint_cpm"
-                  ],
-                  "metricTypes": [
-                    "sortMetrics"
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "top_n(endpoint_cpm,10,des)"
                   ]
                 },
                 {
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
index fa33aa0404..5de047f1d4 100644
--- 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
@@ -1,20 +1,3 @@
-/**
- * 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",
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
index 7dcb69739c..f7ef8ce3b2 100644
--- 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
@@ -1,20 +1,3 @@
-/**
- * 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",
@@ -36,11 +19,12 @@
             "showXAxis": true,
             "showYAxis": true
           },
-          "metrics": [
+          "metricMode": "Expression",
+          "expressions": [
             "meter_istio_cpu"
           ],
-          "metricTypes": [
-            "readMetricsValues"
+          "typesOfMQE": [
+            "TIME_SERIES_VALUES"
           ]
         },
         {
@@ -59,11 +43,12 @@
             "showXAxis": true,
             "showYAxis": true
           },
-          "metrics": [
+          "metricMode": "Expression",
+          "expressions": [
             "meter_istio_go_goroutines"
           ],
-          "metricTypes": [
-            "readMetricsValues"
+          "typesOfMQE": [
+            "TIME_SERIES_VALUES"
           ]
         },
         {
@@ -82,11 +67,12 @@
             "showXAxis": true,
             "showYAxis": true
           },
-          "metrics": [
+          "metricMode": "Expression",
+          "expressions": [
             "meter_istio_pilot_version"
           ],
-          "metricTypes": [
-            "readLabeledMetricsValues"
+          "typesOfMQE": [
+            "TIME_SERIES_VALUES"
           ]
         },
         {
@@ -105,41 +91,37 @@
             "showXAxis": true,
             "showYAxis": true
           },
-          "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"
-          ],
           "metricConfig": [
             {
-              "calculation": "byteToMB",
-              "label": "go_stack_inuse"
+              "label": "Go Stack In Use"
             },
             {
-              "calculation": "byteToMB",
-              "label": "virtual_memory"
+              "label": "Virtual Memory"
             },
             {
-              "calculation": "byteToMB",
-              "label": "go_alloc"
+              "label": "Go Alloc"
             },
             {
-              "calculation": "byteToMB",
-              "label": "resident_memory"
+              "label": "Resident Memory"
             },
             {
-              "calculation": "byteToMB",
-              "label": "go_heap_inuse"
+              "label": "Go Heap In Use"
             }
+          ],
+          "metricMode": "Expression",
+          "expressions": [
+            "meter_istio_go_stack_inuse/1024/1024",
+            "meter_istio_virtual_memory/1024/1024",
+            "meter_istio_go_alloc/1024/1024",
+            "meter_istio_resident_memory/1024/1024",
+            "meter_istio_go_heap_inuse/1024/1024"
+          ],
+          "typesOfMQE": [
+            "TIME_SERIES_VALUES",
+            "TIME_SERIES_VALUES",
+            "TIME_SERIES_VALUES",
+            "TIME_SERIES_VALUES",
+            "TIME_SERIES_VALUES"
           ]
         },
         {
@@ -158,36 +140,20 @@
             "showXAxis": true,
             "showYAxis": true
           },
-          "metrics": [
+          "metricMode": "Expression",
+          "expressions": [
             "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"
-          ],
-          "metricConfig": [
-            {
-              "label": "xds_cds_reject"
-            },
-            {
-              "label": "xds_eds_reject"
-            },
-            {
-              "label": "xds_rds_reject"
-            },
-            {
-              "label": "xds_lds_reject"
-            },
-            {
-              "label": "xds_write_timeout"
-            }
+          "typesOfMQE": [
+            "TIME_SERIES_VALUES",
+            "TIME_SERIES_VALUES",
+            "TIME_SERIES_VALUES",
+            "TIME_SERIES_VALUES",
+            "TIME_SERIES_VALUES"
           ]
         },
         {
@@ -206,17 +172,12 @@
             "showXAxis": true,
             "showYAxis": true
           },
-          "metrics": [
+          "metricMode": "Expression",
+          "expressions": [
             "meter_istio_pilot_proxy_push_percentile"
           ],
-          "metricTypes": [
-            "readLabeledMetricsValues"
-          ],
-          "metricConfig": [
-            {
-              "labelsIndex": "50,90,99",
-              "label": "P50,P90,P99"
-            }
+          "typesOfMQE": [
+            "TIME_SERIES_VALUES"
           ]
         },
         {
@@ -233,11 +194,12 @@
             "type": "Bar",
             "showBackground": true
           },
-          "metrics": [
+          "metricMode": "Expression",
+          "expressions": [
             "meter_istio_pilot_xds_pushes"
           ],
-          "metricTypes": [
-            "readLabeledMetricsValues"
+          "typesOfMQE": [
+            "TIME_SERIES_VALUES"
           ]
         },
         {
@@ -256,11 +218,12 @@
             "showXAxis": true,
             "showYAxis": true
           },
-          "metrics": [
+          "metricMode": "Expression",
+          "expressions": [
             "meter_istio_sidecar_injection_success_total"
           ],
-          "metricTypes": [
-            "readMetricsValues"
+          "typesOfMQE": [
+            "TIME_SERIES_VALUES"
           ]
         },
         {
@@ -279,26 +242,16 @@
             "showXAxis": true,
             "showYAxis": true
           },
-          "metrics": [
+          "metricMode": "Expression",
+          "expressions": [
             "meter_istio_pilot_xds",
             "meter_istio_pilot_services",
             "meter_istio_pilot_virt_services"
           ],
-          "metricTypes": [
-            "readMetricsValues",
-            "readMetricsValues",
-            "readMetricsValues"
-          ],
-          "metricConfig": [
-            {
-              "label": "xds"
-            },
-            {
-              "label": "services"
-            },
-            {
-              "label": "virt_services"
-            }
+          "typesOfMQE": [
+            "TIME_SERIES_VALUES",
+            "TIME_SERIES_VALUES",
+            "TIME_SERIES_VALUES"
           ]
         },
         {
@@ -319,21 +272,14 @@
             "showXAxis": true,
             "showYAxis": true
           },
-          "metrics": [
+          "metricMode": "Expression",
+          "expressions": [
             "meter_istio_galley_validation_passed",
             "meter_istio_galley_validation_failed"
           ],
-          "metricTypes": [
-            "readMetricsValues",
-            "readMetricsValues"
-          ],
-          "metricConfig": [
-            {
-              "label": "galley_validation_passed"
-            },
-            {
-              "label": "galley_validation_failed"
-            }
+          "typesOfMQE": [
+            "TIME_SERIES_VALUES",
+            "TIME_SERIES_VALUES"
           ]
         },
         {
@@ -350,31 +296,18 @@
             "type": "Bar",
             "showBackground": true
           },
-          "metrics": [
+          "metricMode": "Expression",
+          "expressions": [
             "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"
-          ],
-          "metricConfig": [
-            {
-              "label": "ol_tpc_tpc"
-            },
-            {
-              "label": "il"
-            },
-            {
-              "label": "ol_tcp_http"
-            },
-            {
-              "label": "ol_http_tcp"
-            }
+          "typesOfMQE": [
+            "TIME_SERIES_VALUES",
+            "TIME_SERIES_VALUES",
+            "TIME_SERIES_VALUES",
+            "TIME_SERIES_VALUES"
           ]
         }
       ],
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
index 9cf03981aa..d5d81063bb 100644
--- 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
@@ -1,20 +1,3 @@
-/**
- * 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",
@@ -49,11 +32,12 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
+                  "metricMode": "Expression",
+                  "expressions": [
                     "envoy_cluster_up_rq_active"
                   ],
-                  "metricTypes": [
-                    "readLabeledMetricsValues"
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES"
                   ]
                 },
                 {
@@ -74,21 +58,14 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
+                  "metricMode": "Expression",
+                  "expressions": [
                     "envoy_total_connections_used",
                     "envoy_parent_connections_used"
                   ],
-                  "metricTypes": [
-                    "readMetricsValues",
-                    "readMetricsValues"
-                  ],
-                  "metricConfig": [
-                    {
-                      "label": "total_used"
-                    },
-                    {
-                      "label": "parent_used"
-                    }
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES",
+                    "TIME_SERIES_VALUES"
                   ]
                 },
                 {
@@ -109,11 +86,12 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
+                  "metricMode": "Expression",
+                  "expressions": [
                     "envoy_cluster_membership_healthy"
                   ],
-                  "metricTypes": [
-                    "readLabeledMetricsValues"
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES"
                   ]
                 },
                 {
@@ -134,11 +112,12 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
+                  "metricMode": "Expression",
+                  "expressions": [
                     "envoy_cluster_up_cx_incr"
                   ],
-                  "metricTypes": [
-                    "readLabeledMetricsValues"
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES"
                   ]
                 },
                 {
@@ -159,11 +138,12 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
+                  "metricMode": "Expression",
+                  "expressions": [
                     "envoy_cluster_up_rq_pending_active"
                   ],
-                  "metricTypes": [
-                    "readLabeledMetricsValues"
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES"
                   ]
                 },
                 {
@@ -174,7 +154,7 @@
                   "i": "5",
                   "type": "Widget",
                   "widget": {
-                    "title": "Heap Memory Used (MB)"
+                    "title": "Heap Memory Used (Bytes)"
                   },
                   "graph": {
                     "type": "Line",
@@ -184,7 +164,8 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
+                  "metricMode": "Expression",
+                  "expressions": [
                     "envoy_memory_allocated_max",
                     "envoy_heap_memory_used",
                     "envoy_memory_allocated",
@@ -192,39 +173,13 @@
                     "envoy_memory_physical_size_max",
                     "envoy_heap_memory_max_used"
                   ],
-                  "metricTypes": [
-                    "readMetricsValues",
-                    "readMetricsValues",
-                    "readMetricsValues",
-                    "readMetricsValues",
-                    "readMetricsValues",
-                    "readMetricsValues"
-                  ],
-                  "metricConfig": [
-                    {
-                      "calculation": "byteToMB",
-                      "label": "allocated_max"
-                    },
-                    {
-                      "calculation": "byteToMB",
-                      "label": "heap_used"
-                    },
-                    {
-                      "calculation": "byteToMB",
-                      "label": "allocated"
-                    },
-                    {
-                      "calculation": "byteToMB",
-                      "label": "physical_size"
-                    },
-                    {
-                      "calculation": "byteToMB",
-                      "label": "physical_size_max"
-                    },
-                    {
-                      "calculation": "byteToMB",
-                      "label": "heap_max_used"
-                    }
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES",
+                    "TIME_SERIES_VALUES",
+                    "TIME_SERIES_VALUES",
+                    "TIME_SERIES_VALUES",
+                    "TIME_SERIES_VALUES",
+                    "TIME_SERIES_VALUES"
                   ]
                 },
                 {
@@ -245,11 +200,12 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
+                  "metricMode": "Expression",
+                  "expressions": [
                     "envoy_bug_failures"
                   ],
-                  "metricTypes": [
-                    "readMetricsValues"
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES"
                   ]
                 },
                 {
@@ -270,21 +226,14 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
+                  "metricMode": "Expression",
+                  "expressions": [
                     "envoy_worker_threads_max",
                     "envoy_worker_threads"
                   ],
-                  "metricTypes": [
-                    "readMetricsValues",
-                    "readMetricsValues"
-                  ],
-                  "metricConfig": [
-                    {
-                      "label": "threads_max"
-                    },
-                    {
-                      "label": "threads"
-                    }
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES",
+                    "TIME_SERIES_VALUES"
                   ]
                 },
                 {
@@ -305,11 +254,12 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
+                  "metricMode": "Expression",
+                  "expressions": [
                     "envoy_cluster_up_cx_active"
                   ],
-                  "metricTypes": [
-                    "readLabeledMetricsValues"
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES"
                   ]
                 },
                 {
@@ -330,11 +280,12 @@
                     "showXAxis": true,
                     "showYAxis": true
                   },
-                  "metrics": [
+                  "metricMode": "Expression",
+                  "expressions": [
                     "envoy_cluster_up_rq_incr"
                   ],
-                  "metricTypes": [
-                    "readLabeledMetricsValues"
+                  "typesOfMQE": [
+                    "TIME_SERIES_VALUES"
                   ]
                 }
               ]
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
index 71b6337e54..77ea39b39b 100644
--- 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
@@ -1,20 +1,3 @@
-/**
- * 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",
@@ -43,29 +26,32 @@
                     "dashboardName": "Mesh-Data-Plane-Instance",
                     "fontSize": 12
                   },
-                  "metrics": [
-                    "envoy_total_connections_used",
-                    "envoy_worker_threads",
-                    "envoy_bug_failures"
-                  ],
-                  "metricTypes": [
-                    "readMetricsValues",
-                    "readMetricsValues",
-                    "readMetricsValues"
-                  ],
                   "metricConfig": [
                     {
-                      "label": "Connections Used",
-                      "calculation": "average"
+                      "label": "ConnectionsUsed"
                     },
                     {
-                      "label": "Work Threads",
-                      "calculation": "average"
+                      "label": "Worker Threads"
                     },
                     {
-                      "calculation": "average",
                       "label": "Bug Failures"
                     }
+                  ],
+                  "metricMode": "Expression",
+                  "expressions": [
+                    "envoy_total_connections_used",
+                    "envoy_worker_threads",
+                    "envoy_bug_failures"
+                  ],
+                  "subExpressions": [
+                    "",
+                    "",
+                    ""
+                  ],
+                  "subTypesOfMQE": [
+                    "",
+                    "",
+                    ""
                   ]
                 }
               ]
diff --git a/test/e2e-v2/cases/istio/als/e2e.yaml b/test/e2e-v2/cases/istio/als/e2e.yaml
index d26601e248..94b9f3cf5a 100644
--- a/test/e2e-v2/cases/istio/als/e2e.yaml
+++ b/test/e2e-v2/cases/istio/als/e2e.yaml
@@ -109,87 +109,87 @@ verify:
       expected: expected/service-endpoint-reviews.yml
 
     # service metrics: e2e::productpage
-    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=service_sla --service-name=e2e::productpage |yq e 'to_entries' -
+    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=service_sla --service-name=e2e::productpage
       expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=service_cpm --service-name=e2e::productpage |yq e 'to_entries' -
+    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=service_cpm --service-name=e2e::productpage
       expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=service_resp_time --service-name=e2e::productpage |yq e 'to_entries' -
+    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=service_resp_time --service-name=e2e::productpage
       expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=service_apdex --service-name=e2e::productpage |yq e 'to_entries' -
+    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=service_apdex --service-name=e2e::productpage
       expected: expected/metrics-has-value.yml
     # service metrics: e2e::reviews
-    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=service_sla --service-name=e2e::reviews |yq e 'to_entries' -
+    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=service_sla --service-name=e2e::reviews
       expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=service_cpm --service-name=e2e::reviews |yq e 'to_entries' -
+    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=service_cpm --service-name=e2e::reviews
       expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=service_resp_time --service-name=e2e::reviews |yq e 'to_entries' -
+    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=service_resp_time --service-name=e2e::reviews
       expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=service_apdex --service-name=e2e::reviews |yq e 'to_entries' -
+    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=service_apdex --service-name=e2e::reviews
       expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=service_sidecar_internal_req_latency_nanos --service-name=e2e::reviews |yq e 'to_entries' -
+    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=service_sidecar_internal_req_latency_nanos --service-name=e2e::reviews
       expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=service_sidecar_internal_resp_latency_nanos --service-name=e2e::reviews |yq e 'to_entries' -
+    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=service_sidecar_internal_resp_latency_nanos --service-name=e2e::reviews
       expected: expected/metrics-has-value.yml
     # service instance metrics: e2e::productpage
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=service_instance_resp_time --service-name=e2e::productpage --instance-name=$( \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=service_instance_resp_time --service-name=e2e::productpage --instance-name=$( \
           swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::productpage | yq e '.[0].name' -
-        ) |yq e 'to_entries' -
+        )
       expected: expected/metrics-has-value.yml
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=service_instance_cpm --service-name=e2e::productpage --instance-name=$( \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=service_instance_cpm --service-name=e2e::productpage --instance-name=$( \
           swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::productpage | yq e '.[0].name' -
-        ) |yq e 'to_entries' -
+        )
       expected: expected/metrics-has-value.yml
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=service_instance_sla --service-name=e2e::productpage --instance-name=$( \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=service_instance_sla --service-name=e2e::productpage --instance-name=$( \
           swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::productpage | yq e '.[0].name' -
-        ) |yq e 'to_entries' -
+        )
       expected: expected/metrics-has-value.yml
     # service instance metrics: e2e::reviews
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=service_instance_resp_time --service-name=e2e::reviews --instance-name=$( \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=service_instance_resp_time --service-name=e2e::reviews --instance-name=$( \
           swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::reviews | yq e '.[0].name' -
-        ) |yq e 'to_entries' -
+        )
       expected: expected/metrics-has-value.yml
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=service_instance_cpm --service-name=e2e::reviews --instance-name=$( \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=service_instance_cpm --service-name=e2e::reviews --instance-name=$( \
           swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::reviews | yq e '.[0].name' -
-        ) |yq e 'to_entries' -
+        )
       expected: expected/metrics-has-value.yml
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=service_instance_sla --service-name=e2e::reviews --instance-name=$( \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=service_instance_sla --service-name=e2e::reviews --instance-name=$( \
           swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::reviews | yq e '.[0].name' -
-        ) |yq e 'to_entries' -
+        )
       expected: expected/metrics-has-value.yml
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=service_instance_sidecar_internal_req_latency_nanos --service-name=e2e::reviews --instance-name=$( \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=service_instance_sidecar_internal_req_latency_nanos --service-name=e2e::reviews --instance-name=$( \
           swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::reviews | yq e '.[0].name' -
-        ) |yq e 'to_entries' -
+        )
       expected: expected/metrics-has-value.yml
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=service_instance_sidecar_internal_resp_latency_nanos --service-name=e2e::reviews --instance-name=$( \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=service_instance_sidecar_internal_resp_latency_nanos --service-name=e2e::reviews --instance-name=$( \
           swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::reviews | yq e '.[0].name' -
-        ) |yq e 'to_entries' -
+        )
       expected: expected/metrics-has-value.yml
 
     # service endpoint metrics: e2e::productpage GET:/productpage
-    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=endpoint_cpm --endpoint-name=GET:/productpage --service-name=e2e::productpage |yq e 'to_entries' -
+    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=endpoint_cpm --endpoint-name=GET:/productpage --service-name=e2e::productpage
       expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=endpoint_resp_time --endpoint-name=GET:/productpage --service-name=e2e::productpage |yq e 'to_entries' -
+    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=endpoint_resp_time --endpoint-name=GET:/productpage --service-name=e2e::productpage
       expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=endpoint_sla --endpoint-name=GET:/productpage --service-name=e2e::productpage |yq e 'to_entries' -
+    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=endpoint_sla --endpoint-name=GET:/productpage --service-name=e2e::productpage
       expected: expected/metrics-has-value.yml
     # service endpoint metrics: e2e::reviews GET:/reviews/0
-    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=endpoint_cpm --endpoint-name=GET:/reviews/0 --service-name=e2e::reviews |yq e 'to_entries' -
+    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=endpoint_cpm --endpoint-name=GET:/reviews/0 --service-name=e2e::reviews
       expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=endpoint_resp_time --endpoint-name=GET:/reviews/0 --service-name=e2e::reviews |yq e 'to_entries' -
+    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=endpoint_resp_time --endpoint-name=GET:/reviews/0 --service-name=e2e::reviews
       expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=endpoint_sla --endpoint-name=GET:/reviews/0 --service-name=e2e::reviews |yq e 'to_entries' -
+    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=endpoint_sla --endpoint-name=GET:/reviews/0 --service-name=e2e::reviews
       expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=endpoint_sidecar_internal_req_latency_nanos --endpoint-name=GET:/reviews/0 --service-name=e2e::reviews |yq e 'to_entries' -
+    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=endpoint_sidecar_internal_req_latency_nanos --endpoint-name=GET:/reviews/0 --service-name=e2e::reviews
       expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=endpoint_sidecar_internal_resp_latency_nanos --endpoint-name=GET:/reviews/0 --service-name=e2e::reviews |yq e 'to_entries' -
+    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=endpoint_sidecar_internal_resp_latency_nanos --endpoint-name=GET:/reviews/0 --service-name=e2e::reviews
       expected: expected/metrics-has-value.yml
 
     # dependency service
@@ -201,32 +201,32 @@ verify:
       expected: expected/dependency-services-instance-productpage.yml
 
     # service relation metrics
-    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=service_relation_client_cpm  --service-name=e2e::productpage --dest-service-name=e2e::reviews |yq e 'to_entries' -
+    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=service_relation_client_cpm  --service-name=e2e::productpage --dest-service-name=e2e::reviews
       expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=service_relation_server_cpm  --service-name=e2e::productpage --dest-service-name=e2e::reviews |yq e 'to_entries' -
+    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=service_relation_server_cpm  --service-name=e2e::productpage --dest-service-name=e2e::reviews
       expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=service_client_sidecar_internal_req_latency_nanos  --service-name=e2e::productpage --dest-service-name=e2e::reviews |yq e 'to_entries' -
+    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=service_client_sidecar_internal_req_latency_nanos  --service-name=e2e::productpage --dest-service-name=e2e::reviews
       expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=service_server_sidecar_internal_req_latency_nanos  --service-name=e2e::productpage --dest-service-name=e2e::reviews |yq e 'to_entries' -
+    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=service_server_sidecar_internal_req_latency_nanos  --service-name=e2e::productpage --dest-service-name=e2e::reviews
       expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=service_client_sidecar_internal_resp_latency_nanos  --service-name=e2e::productpage --dest-service-name=e2e::reviews |yq e 'to_entries' -
+    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=service_client_sidecar_internal_resp_latency_nanos  --service-name=e2e::productpage --dest-service-name=e2e::reviews
       expected: expected/metrics-has-value.yml
-    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=service_server_sidecar_internal_resp_latency_nanos  --service-name=e2e::productpage --dest-service-name=e2e::reviews |yq e 'to_entries' -
+    - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=service_server_sidecar_internal_resp_latency_nanos  --service-name=e2e::productpage --dest-service-name=e2e::reviews
       expected: expected/metrics-has-value.yml
     # service instance relation metrics, e2e::productpage -> e2e::reviews
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=service_instance_relation_client_cpm \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=service_instance_relation_client_cpm \
           --service-name=e2e::productpage --instance-name=$( \
             swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::productpage | yq e '.[0].name' - ) \
           --dest-service-name=e2e::reviews --dest-instance-name=$( \
             swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::reviews | yq e '.[0].name' - ) \
-        |yq e 'to_entries' -
+
       expected: expected/metrics-has-value.yml
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=service_instance_relation_server_cpm \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=service_instance_relation_server_cpm \
           --service-name=e2e::productpage --instance-name=$( \
             swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::productpage | yq e '.[0].name' - ) \
           --dest-service-name=e2e::reviews --dest-instance-name=$( \
             swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::reviews | yq e '.[0].name' - ) \
-        |yq e 'to_entries' -
+
       expected: expected/metrics-has-value.yml
diff --git a/test/e2e-v2/cases/istio/als/expected/metrics-has-value.yml b/test/e2e-v2/cases/istio/als/expected/metrics-has-value.yml
index 04b077dd98..dc71f56632 100644
--- a/test/e2e-v2/cases/istio/als/expected/metrics-has-value.yml
+++ b/test/e2e-v2/cases/istio/als/expected/metrics-has-value.yml
@@ -13,13 +13,19 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-{{- contains . }}
-- key: {{ notEmpty .key }}
-  value:
-    value: 0
-    isemptyvalue: true
-- key: {{ notEmpty .key }}
-  value:
-    value: {{ ge .value.value 1 }}
-    isemptyvalue: false
-{{- end }}
+type: TIME_SERIES_VALUES
+results:
+  {{- contains .results }}
+  - metric:
+      labels: []
+    values:
+      {{- contains .values }}
+      - id: {{ notEmpty .id }}
+        value: {{ .value }}
+        traceid: null
+      - id: {{ notEmpty .id }}
+        value: null
+        traceid: null
+      {{- end}}
+  {{- end}}
+error: null
diff --git a/test/e2e-v2/cases/istio/metrics/e2e.yaml b/test/e2e-v2/cases/istio/metrics/e2e.yaml
index 841d8ac419..1febe1007f 100644
--- a/test/e2e-v2/cases/istio/metrics/e2e.yaml
+++ b/test/e2e-v2/cases/istio/metrics/e2e.yaml
@@ -112,99 +112,99 @@ verify:
 
     # service instance metrics: e2e::productpage
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=envoy_heap_memory_used --service-name=e2e::productpage --instance-name=$( \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=envoy_heap_memory_used --service-name=e2e::productpage --instance-name=$( \
           swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::productpage | yq e '.[0].name' -
-        ) |yq e 'to_entries' -
+        )
       expected: expected/metrics-has-value.yml
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=envoy_heap_memory_max_used --service-name=e2e::productpage --instance-name=$( \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=envoy_heap_memory_max_used --service-name=e2e::productpage --instance-name=$( \
           swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::productpage | yq e '.[0].name' -
-        ) |yq e 'to_entries' -
+        )
       expected: expected/metrics-has-value.yml
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=envoy_memory_allocated --service-name=e2e::productpage --instance-name=$( \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=envoy_memory_allocated --service-name=e2e::productpage --instance-name=$( \
           swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::productpage | yq e '.[0].name' -
-        ) |yq e 'to_entries' -
+        )
       expected: expected/metrics-has-value.yml
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=envoy_memory_allocated_max --service-name=e2e::productpage --instance-name=$( \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=envoy_memory_allocated_max --service-name=e2e::productpage --instance-name=$( \
           swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::productpage | yq e '.[0].name' -
-        ) |yq e 'to_entries' -
+        )
       expected: expected/metrics-has-value.yml
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=envoy_memory_physical_size --service-name=e2e::productpage --instance-name=$( \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=envoy_memory_physical_size --service-name=e2e::productpage --instance-name=$( \
           swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::productpage | yq e '.[0].name' -
-        ) |yq e 'to_entries' -
+        )
       expected: expected/metrics-has-value.yml
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=envoy_memory_physical_size_max --service-name=e2e::productpage --instance-name=$( \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=envoy_memory_physical_size_max --service-name=e2e::productpage --instance-name=$( \
           swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::productpage | yq e '.[0].name' -
-        ) |yq e 'to_entries' -
+        )
       expected: expected/metrics-has-value.yml
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=envoy_worker_threads --service-name=e2e::productpage --instance-name=$( \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=envoy_worker_threads --service-name=e2e::productpage --instance-name=$( \
           swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::productpage | yq e '.[0].name' -
-        ) |yq e 'to_entries' -
+        )
       expected: expected/metrics-has-value.yml
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=envoy_worker_threads_max --service-name=e2e::productpage --instance-name=$( \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=envoy_worker_threads_max --service-name=e2e::productpage --instance-name=$( \
           swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::productpage | yq e '.[0].name' -
-        ) |yq e 'to_entries' -
+        )
       expected: expected/metrics-has-value.yml
     # service instance metrics: e2e::istio-ingressgateway
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=envoy_heap_memory_used --service-name=e2e::istio-ingressgateway --instance-name=$( \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=envoy_heap_memory_used --service-name=e2e::istio-ingressgateway --instance-name=$( \
           swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::istio-ingressgateway | yq e '.[0].name' -
-        ) |yq e 'to_entries' -
+        )
       expected: expected/metrics-has-value.yml
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=envoy_heap_memory_max_used --service-name=e2e::istio-ingressgateway --instance-name=$( \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=envoy_heap_memory_max_used --service-name=e2e::istio-ingressgateway --instance-name=$( \
           swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::istio-ingressgateway | yq e '.[0].name' -
-        ) |yq e 'to_entries' -
+        )
       expected: expected/metrics-has-value.yml
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=envoy_memory_allocated --service-name=e2e::istio-ingressgateway --instance-name=$( \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=envoy_memory_allocated --service-name=e2e::istio-ingressgateway --instance-name=$( \
           swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::istio-ingressgateway | yq e '.[0].name' -
-        ) |yq e 'to_entries' -
+        )
       expected: expected/metrics-has-value.yml
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=envoy_memory_allocated_max --service-name=e2e::istio-ingressgateway --instance-name=$( \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=envoy_memory_allocated_max --service-name=e2e::istio-ingressgateway --instance-name=$( \
           swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::istio-ingressgateway | yq e '.[0].name' -
-        ) |yq e 'to_entries' -
+        )
       expected: expected/metrics-has-value.yml
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=envoy_memory_physical_size --service-name=e2e::istio-ingressgateway --instance-name=$( \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=envoy_memory_physical_size --service-name=e2e::istio-ingressgateway --instance-name=$( \
           swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::istio-ingressgateway | yq e '.[0].name' -
-        ) |yq e 'to_entries' -
+        )
       expected: expected/metrics-has-value.yml
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=envoy_memory_physical_size_max --service-name=e2e::istio-ingressgateway --instance-name=$( \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=envoy_memory_physical_size_max --service-name=e2e::istio-ingressgateway --instance-name=$( \
           swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::istio-ingressgateway | yq e '.[0].name' -
-        ) |yq e 'to_entries' -
+        )
       expected: expected/metrics-has-value.yml
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=envoy_worker_threads --service-name=e2e::istio-ingressgateway --instance-name=$( \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=envoy_worker_threads --service-name=e2e::istio-ingressgateway --instance-name=$( \
           swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::istio-ingressgateway | yq e '.[0].name' -
-        ) |yq e 'to_entries' -
+        )
       expected: expected/metrics-has-value.yml
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics linear --name=envoy_worker_threads_max --service-name=e2e::istio-ingressgateway --instance-name=$( \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=envoy_worker_threads_max --service-name=e2e::istio-ingressgateway --instance-name=$( \
           swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::istio-ingressgateway | yq e '.[0].name' -
-        ) |yq e 'to_entries' -
+        )
       expected: expected/metrics-has-value.yml
 
     # service instance labeled metrics: e2e::productpage, label: e2e::details
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics multiple-linear --labels=e2e::details  --name=envoy_cluster_membership_healthy --service-name=e2e::productpage --instance-name=$( \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=envoy_cluster_membership_healthy{_=\"e2e::details\"} --service-name=e2e::productpage --instance-name=$( \
           swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::productpage | yq e '.[0].name' -
-        )|yq e 'to_entries' -|yq e '.[].value|to_entries' -
-      expected: expected/metrics-has-value.yml
+        )
+      expected: expected/metrics-has-value-label.yml
     # service instance labeled metrics: e2e::productpage, label: e2e::details
     - query: |
-        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics multiple-linear --labels=e2e::details  --name=envoy_cluster_membership_healthy --service-name=e2e::istio-ingressgateway --instance-name=$( \
+        swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=envoy_cluster_membership_healthy{_=\"e2e::details\"} --service-name=e2e::istio-ingressgateway --instance-name=$( \
           swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=e2e::istio-ingressgateway | yq e '.[0].name' -
-        )|yq e 'to_entries' -|yq e '.[].value|to_entries' -
-      expected: expected/metrics-has-value.yml
+        )
+      expected: expected/metrics-has-value-label.yml
 
     # dependency service
     - query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql dependency service --service-name=e2e::productpage
diff --git a/test/e2e-v2/cases/istio/als/expected/metrics-has-value.yml b/test/e2e-v2/cases/istio/metrics/expected/metrics-has-value-label.yml
similarity index 67%
copy from test/e2e-v2/cases/istio/als/expected/metrics-has-value.yml
copy to test/e2e-v2/cases/istio/metrics/expected/metrics-has-value-label.yml
index 04b077dd98..f104821907 100644
--- a/test/e2e-v2/cases/istio/als/expected/metrics-has-value.yml
+++ b/test/e2e-v2/cases/istio/metrics/expected/metrics-has-value-label.yml
@@ -13,13 +13,21 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-{{- contains . }}
-- key: {{ notEmpty .key }}
-  value:
-    value: 0
-    isemptyvalue: true
-- key: {{ notEmpty .key }}
-  value:
-    value: {{ ge .value.value 1 }}
-    isemptyvalue: false
-{{- end }}
+type: TIME_SERIES_VALUES
+results:
+  {{- contains .results }}
+  - metric:
+      labels:
+        - key: _
+          value: e2e::details
+    values:
+      {{- contains .values }}
+      - id: {{ notEmpty .id }}
+        value: {{ .value }}
+        traceid: null
+      - id: {{ notEmpty .id }}
+        value: null
+        traceid: null
+      {{- end}}
+  {{- end}}
+error: null
diff --git a/test/e2e-v2/cases/istio/metrics/expected/metrics-has-value.yml b/test/e2e-v2/cases/istio/metrics/expected/metrics-has-value.yml
index 04b077dd98..dc71f56632 100644
--- a/test/e2e-v2/cases/istio/metrics/expected/metrics-has-value.yml
+++ b/test/e2e-v2/cases/istio/metrics/expected/metrics-has-value.yml
@@ -13,13 +13,19 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-{{- contains . }}
-- key: {{ notEmpty .key }}
-  value:
-    value: 0
-    isemptyvalue: true
-- key: {{ notEmpty .key }}
-  value:
-    value: {{ ge .value.value 1 }}
-    isemptyvalue: false
-{{- end }}
+type: TIME_SERIES_VALUES
+results:
+  {{- contains .results }}
+  - metric:
+      labels: []
+    values:
+      {{- contains .values }}
+      - id: {{ notEmpty .id }}
+        value: {{ .value }}
+        traceid: null
+      - id: {{ notEmpty .id }}
+        value: null
+        traceid: null
+      {{- end}}
+  {{- end}}
+error: null