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/incubator-skywalking-oal-tool.git


The following commit(s) were added to refs/heads/master by this push:
     new 78f5818  Add all sources and generation.
78f5818 is described below

commit 78f581844b2b472f2417d29b810817e52ace51a3
Author: Wu Sheng <[email protected]>
AuthorDate: Tue Sep 4 15:43:50 2018 +0800

    Add all sources and generation.
---
 .../oal/tool/output/DispatcherContext.java         |  3 +
 .../skywalking/oal/tool/output/FileGenerator.java  | 41 ++++++++++++++
 .../oal/tool/parser/SourceColumnsFactory.java      | 19 ++++---
 .../EndpointRelationDispatcherTemplate.ftl         | 65 ++++++++++++++++++++++
 .../code-templates/IndicatorImplementor.ftl        |  3 +-
 .../ServiceInstanceDispatcherTemplate.ftl          | 65 ++++++++++++++++++++++
 .../ServiceInstanceRelationDispatcherTemplate.ftl  | 65 ++++++++++++++++++++++
 .../ServiceRelationDispatcherTemplate.ftl          | 65 ++++++++++++++++++++++
 oal-parser/src/test/resources/oal_test.oal         |  8 +++
 9 files changed, 325 insertions(+), 9 deletions(-)

diff --git 
a/oal-parser/src/main/java/org/apache/skywalking/oal/tool/output/DispatcherContext.java
 
b/oal-parser/src/main/java/org/apache/skywalking/oal/tool/output/DispatcherContext.java
index 3a8a6e2..d8f3dbd 100644
--- 
a/oal-parser/src/main/java/org/apache/skywalking/oal/tool/output/DispatcherContext.java
+++ 
b/oal-parser/src/main/java/org/apache/skywalking/oal/tool/output/DispatcherContext.java
@@ -31,6 +31,9 @@ public class DispatcherContext {
     private List<AnalysisResult> serviceIndicators = new LinkedList<>();
     private List<AnalysisResult> serviceInstanceIndicators = new 
LinkedList<>();
     private List<AnalysisResult> endpointIndicators = new LinkedList<>();
+    private List<AnalysisResult> serviceRelationIndicators = new 
LinkedList<>();
+    private List<AnalysisResult> serviceInstanceRelationIndicators = new 
LinkedList<>();
+    private List<AnalysisResult> endpointRelationIndicators = new 
LinkedList<>();
     private List<AnalysisResult> serviceInstanceJVMCPUIndicators = new 
LinkedList<>();
     private List<AnalysisResult> serviceInstanceJVMMemoryIndicators = new 
LinkedList<>();
     private List<AnalysisResult> serviceInstanceJVMMemoryPoolIndicators = new 
LinkedList<>();
diff --git 
a/oal-parser/src/main/java/org/apache/skywalking/oal/tool/output/FileGenerator.java
 
b/oal-parser/src/main/java/org/apache/skywalking/oal/tool/output/FileGenerator.java
index 651057b..7e3a17b 100644
--- 
a/oal-parser/src/main/java/org/apache/skywalking/oal/tool/output/FileGenerator.java
+++ 
b/oal-parser/src/main/java/org/apache/skywalking/oal/tool/output/FileGenerator.java
@@ -53,10 +53,26 @@ public class FileGenerator {
         createFile(file);
         this.generateServiceDispatcher(new FileWriter(file));
 
+        file = new File(outputPath, 
"generated/servicerelation/ServiceRelationDispatcher.java");
+        createFile(file);
+        this.generateServiceRelationDispatcher(new FileWriter(file));
+
         file = new File(outputPath, 
"generated/endpoint/EndpointDispatcher.java");
         createFile(file);
         this.generateEndpointDispatcher(new FileWriter(file));
 
+        file = new File(outputPath, 
"generated/endpointrelation/EndpointRelationDispatcher.java");
+        createFile(file);
+        this.generateEndpointRelationDispatcher(new FileWriter(file));
+
+        file = new File(outputPath, 
"generated/serviceinstance/ServiceInstanceDispatcher.java");
+        createFile(file);
+        this.generateServiceInstanceDispatcher(new FileWriter(file));
+
+        file = new File(outputPath, 
"generated/serviceinstancerelation/ServiceInstanceRelationDispatcher.java");
+        createFile(file);
+        this.generateServiceInstanceRelationDispatcher(new FileWriter(file));
+
         file = new File(outputPath, 
"generated/serviceinstancejvmcpu/ServiceInstanceJVMCPUDispatcher.java");
         createFile(file);
         this.generateServiceInstanceJVMCPUDispatcher(new FileWriter(file));
@@ -109,10 +125,26 @@ public class FileGenerator {
         
configuration.getTemplate("ServiceDispatcherTemplate.ftl").process(dispatcherContext,
 output);
     }
 
+    void generateServiceRelationDispatcher(Writer output) throws IOException, 
TemplateException {
+        
configuration.getTemplate("ServiceRelationDispatcherTemplate.ftl").process(dispatcherContext,
 output);
+    }
+
     void generateEndpointDispatcher(Writer output) throws IOException, 
TemplateException {
         
configuration.getTemplate("EndpointDispatcherTemplate.ftl").process(dispatcherContext,
 output);
     }
 
+    void generateEndpointRelationDispatcher(Writer output) throws IOException, 
TemplateException {
+        
configuration.getTemplate("EndpointRelationDispatcherTemplate.ftl").process(dispatcherContext,
 output);
+    }
+
+    void generateServiceInstanceDispatcher(Writer output) throws IOException, 
TemplateException {
+        
configuration.getTemplate("ServiceInstanceDispatcherTemplate.ftl").process(dispatcherContext,
 output);
+    }
+
+    void generateServiceInstanceRelationDispatcher(Writer output) throws 
IOException, TemplateException {
+        
configuration.getTemplate("ServiceInstanceRelationDispatcherTemplate.ftl").process(dispatcherContext,
 output);
+    }
+
     void generateServiceInstanceJVMCPUDispatcher(Writer output) throws 
IOException, TemplateException {
         
configuration.getTemplate("ServiceInstanceJVMCPUDispatcherTemplate.ftl").process(dispatcherContext,
 output);
     }
@@ -137,12 +169,21 @@ public class FileGenerator {
                 case "Service":
                     dispatcherContext.getServiceIndicators().add(result);
                     break;
+                case "ServiceRelation":
+                    
dispatcherContext.getServiceRelationIndicators().add(result);
+                    break;
                 case "ServiceInstance":
                     
dispatcherContext.getServiceInstanceIndicators().add(result);
                     break;
+                case "ServiceInstanceRelation":
+                    
dispatcherContext.getServiceInstanceRelationIndicators().add(result);
+                    break;
                 case "Endpoint":
                     dispatcherContext.getEndpointIndicators().add(result);
                     break;
+                case "EndpointRelation":
+                    
dispatcherContext.getEndpointRelationIndicators().add(result);
+                    break;
                 case "ServiceInstanceJVMCPU":
                     
dispatcherContext.getServiceInstanceJVMCPUIndicators().add(result);
                     break;
diff --git 
a/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/SourceColumnsFactory.java
 
b/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/SourceColumnsFactory.java
index c80949d..fa86f0f 100644
--- 
a/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/SourceColumnsFactory.java
+++ 
b/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/SourceColumnsFactory.java
@@ -63,34 +63,37 @@ public class SourceColumnsFactory {
                 return columnList;
             case "ServiceRelation":
                 columnList = new LinkedList<>();
-                SourceColumn sourceService = new 
SourceColumn("sourceServiceId", "source_service_id", int.class, false);
+                SourceColumn sourceService = new 
SourceColumn("sourceServiceId", "source_service_id", int.class, true);
                 columnList.add(sourceService);
-                SourceColumn destService = new SourceColumn("destServiceId", 
"dest_service_id", int.class, false);
+                SourceColumn destService = new SourceColumn("destServiceId", 
"dest_service_id", int.class, true);
                 columnList.add(destService);
+                return columnList;
             case "ServiceInstanceRelation":
                 columnList = new LinkedList<>();
                 sourceService = new SourceColumn("sourceServiceId", 
"source_service_id", int.class, false);
                 columnList.add(sourceService);
                 destService = new SourceColumn("destServiceId", 
"dest_service_id", int.class, false);
                 columnList.add(destService);
-                SourceColumn sourceServiceInstance = new 
SourceColumn("sourceServiceInstanceId", "source_service_instance_id", 
int.class, false);
+                SourceColumn sourceServiceInstance = new 
SourceColumn("sourceServiceInstanceId", "source_service_instance_id", 
int.class, true);
                 columnList.add(sourceServiceInstance);
-                SourceColumn destServiceInstance = new 
SourceColumn("destServiceInstanceId", "dest_service_instance_id", int.class, 
false);
+                SourceColumn destServiceInstance = new 
SourceColumn("destServiceInstanceId", "dest_service_instance_id", int.class, 
true);
                 columnList.add(destServiceInstance);
+                return columnList;
             case "EndpointRelation":
                 columnList = new LinkedList<>();
                 SourceColumn sourceEndpointColumn = new 
SourceColumn("endpointId", "endpoint_id", int.class, true);
                 columnList.add(sourceEndpointColumn);
                 SourceColumn childEndpointColumne  = new 
SourceColumn("childEndpointId", "child_endpoint_id", int.class, true);
                 columnList.add(childEndpointColumne);
-                sourceService = new SourceColumn("sourceServiceId", 
"source_service_id", int.class, false);
+                sourceService = new SourceColumn("serviceId", "service_id", 
int.class, false);
                 columnList.add(sourceService);
-                destService = new SourceColumn("destServiceId", 
"dest_service_id", int.class, false);
+                destService = new SourceColumn("childServiceId", 
"child_service_id", int.class, false);
                 columnList.add(destService);
-                sourceServiceInstance = new 
SourceColumn("sourceServiceInstanceId", "source_service_instance_id", 
int.class, false);
+                sourceServiceInstance = new SourceColumn("serviceInstanceId", 
"service_instance_id", int.class, false);
                 columnList.add(sourceServiceInstance);
-                destServiceInstance = new 
SourceColumn("destServiceInstanceId", "dest_service_instance_id", int.class, 
false);
+                destServiceInstance = new 
SourceColumn("childServiceInstanceId", "child_service_instance_id", int.class, 
false);
                 columnList.add(destServiceInstance);
+                return columnList;
             default:
                 throw new IllegalArgumentException("Illegal source :" + 
source);
         }
diff --git 
a/oal-parser/src/main/resources/code-templates/EndpointRelationDispatcherTemplate.ftl
 
b/oal-parser/src/main/resources/code-templates/EndpointRelationDispatcherTemplate.ftl
new file mode 100644
index 0000000..18533d3
--- /dev/null
+++ 
b/oal-parser/src/main/resources/code-templates/EndpointRelationDispatcherTemplate.ftl
@@ -0,0 +1,65 @@
+/*
+ * 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.
+ *
+ */
+
+package 
org.apache.skywalking.oap.server.core.analysis.generated.endpointrelation;
+
+import org.apache.skywalking.oap.server.core.analysis.SourceDispatcher;
+<#if (serviceInstanceRelationIndicators?size>0)>
+import org.apache.skywalking.oap.server.core.analysis.worker.IndicatorProcess;
+    <#list serviceInstanceRelationIndicators as indicator>
+        <#if indicator.filterExpressions??>
+import org.apache.skywalking.oap.server.core.analysis.indicator.expression.*;
+        </#if>
+    </#list>
+</#if>
+import org.apache.skywalking.oap.server.core.source.*;
+
+/**
+ * This class is auto generated. Please don't change this class manually.
+ *
+ * @author Observability Analysis Language code generator
+ */
+public class EndpointRelationDispatcher implements 
SourceDispatcher<EndpointRelation> {
+
+    @Override public void dispatch(EndpointRelation source) {
+<#list endpointRelationIndicators as indicator>
+        do${indicator.metricName}(source);
+</#list>
+    }
+
+<#list endpointRelationIndicators as indicator>
+    private void do${indicator.metricName}(EndpointRelation source) {
+        ${indicator.metricName}Indicator indicator = new 
${indicator.metricName}Indicator();
+
+    <#if indicator.filterExpressions??>
+        <#list indicator.filterExpressions as filterExpression>
+        if (!new 
${filterExpression.expressionObject}().setLeft(${filterExpression.left}).setRight(${filterExpression.right}).match())
 {
+            return;
+        }
+        </#list>
+    </#if>
+
+        indicator.setTimeBucket(source.getTimeBucket());
+    <#list indicator.fieldsFromSource as field>
+        indicator.${field.fieldSetter}(source.${field.fieldGetter}());
+    </#list>
+        indicator.${indicator.entryMethod.methodName}(<#list 
indicator.entryMethod.argsExpressions as arg>${arg}<#if arg_has_next>, 
</#if></#list>);
+        IndicatorProcess.INSTANCE.in(indicator);
+    }
+</#list>
+}
diff --git 
a/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl 
b/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl
index 4be918b..fcc738a 100644
--- a/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl
+++ b/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl
@@ -78,9 +78,10 @@ public class ${metricName}Indicator extends 
${indicatorClassName} implements Ala
 <#list fieldsFromSource as sourceField>
     <#if sourceField.isID()>
         if (${sourceField.fieldName} != indicator.${sourceField.fieldName})
+            return false;
     </#if>
 </#list>
-            return false;
+
         if (getTimeBucket() != indicator.getTimeBucket())
             return false;
 
diff --git 
a/oal-parser/src/main/resources/code-templates/ServiceInstanceDispatcherTemplate.ftl
 
b/oal-parser/src/main/resources/code-templates/ServiceInstanceDispatcherTemplate.ftl
new file mode 100644
index 0000000..fb07928
--- /dev/null
+++ 
b/oal-parser/src/main/resources/code-templates/ServiceInstanceDispatcherTemplate.ftl
@@ -0,0 +1,65 @@
+/*
+ * 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.
+ *
+ */
+
+package 
org.apache.skywalking.oap.server.core.analysis.generated.serviceinstance;
+
+import org.apache.skywalking.oap.server.core.analysis.SourceDispatcher;
+<#if (serviceInstanceIndicators?size>0)>
+import org.apache.skywalking.oap.server.core.analysis.worker.IndicatorProcess;
+    <#list serviceInstanceIndicators as indicator>
+        <#if indicator.filterExpressions??>
+import org.apache.skywalking.oap.server.core.analysis.indicator.expression.*;
+        </#if>
+    </#list>
+</#if>
+import org.apache.skywalking.oap.server.core.source.*;
+
+/**
+ * This class is auto generated. Please don't change this class manually.
+ *
+ * @author Observability Analysis Language code generator
+ */
+public class ServiceInstanceDispatcher implements 
SourceDispatcher<ServiceInstance> {
+    
+    @Override public void dispatch(ServiceInstance source) {
+<#list serviceInstanceIndicators as indicator>
+        do${indicator.metricName}(source);
+</#list>
+    }
+
+<#list serviceInstanceIndicators as indicator>
+    private void do${indicator.metricName}(ServiceInstance source) {
+        ${indicator.metricName}Indicator indicator = new 
${indicator.metricName}Indicator();
+
+    <#if indicator.filterExpressions??>
+        <#list indicator.filterExpressions as filterExpression>
+        if (!new 
${filterExpression.expressionObject}().setLeft(${filterExpression.left}).setRight(${filterExpression.right}).match())
 {
+            return;
+        }
+        </#list>
+    </#if>
+
+        indicator.setTimeBucket(source.getTimeBucket());
+    <#list indicator.fieldsFromSource as field>
+        indicator.${field.fieldSetter}(source.${field.fieldGetter}());
+    </#list>
+        indicator.${indicator.entryMethod.methodName}(<#list 
indicator.entryMethod.argsExpressions as arg>${arg}<#if arg_has_next>, 
</#if></#list>);
+        IndicatorProcess.INSTANCE.in(indicator);
+    }
+</#list>
+}
diff --git 
a/oal-parser/src/main/resources/code-templates/ServiceInstanceRelationDispatcherTemplate.ftl
 
b/oal-parser/src/main/resources/code-templates/ServiceInstanceRelationDispatcherTemplate.ftl
new file mode 100644
index 0000000..2af225a
--- /dev/null
+++ 
b/oal-parser/src/main/resources/code-templates/ServiceInstanceRelationDispatcherTemplate.ftl
@@ -0,0 +1,65 @@
+/*
+ * 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.
+ *
+ */
+
+package 
org.apache.skywalking.oap.server.core.analysis.generated.serviceinstancerelation;
+
+import org.apache.skywalking.oap.server.core.analysis.SourceDispatcher;
+<#if (serviceInstanceRelationIndicators?size>0)>
+import org.apache.skywalking.oap.server.core.analysis.worker.IndicatorProcess;
+    <#list serviceInstanceRelationIndicators as indicator>
+        <#if indicator.filterExpressions??>
+import org.apache.skywalking.oap.server.core.analysis.indicator.expression.*;
+        </#if>
+    </#list>
+</#if>
+import org.apache.skywalking.oap.server.core.source.*;
+
+/**
+ * This class is auto generated. Please don't change this class manually.
+ *
+ * @author Observability Analysis Language code generator
+ */
+public class ServiceInstanceRelationDispatcher implements 
SourceDispatcher<ServiceInstanceRelation> {
+
+    @Override public void dispatch(ServiceInstanceRelation source) {
+<#list serviceInstanceRelationIndicators as indicator>
+        do${indicator.metricName}(source);
+</#list>
+    }
+
+<#list serviceInstanceRelationIndicators as indicator>
+    private void do${indicator.metricName}(ServiceInstanceRelation source) {
+        ${indicator.metricName}Indicator indicator = new 
${indicator.metricName}Indicator();
+
+    <#if indicator.filterExpressions??>
+        <#list indicator.filterExpressions as filterExpression>
+        if (!new 
${filterExpression.expressionObject}().setLeft(${filterExpression.left}).setRight(${filterExpression.right}).match())
 {
+            return;
+        }
+        </#list>
+    </#if>
+
+        indicator.setTimeBucket(source.getTimeBucket());
+    <#list indicator.fieldsFromSource as field>
+        indicator.${field.fieldSetter}(source.${field.fieldGetter}());
+    </#list>
+        indicator.${indicator.entryMethod.methodName}(<#list 
indicator.entryMethod.argsExpressions as arg>${arg}<#if arg_has_next>, 
</#if></#list>);
+        IndicatorProcess.INSTANCE.in(indicator);
+    }
+</#list>
+}
diff --git 
a/oal-parser/src/main/resources/code-templates/ServiceRelationDispatcherTemplate.ftl
 
b/oal-parser/src/main/resources/code-templates/ServiceRelationDispatcherTemplate.ftl
new file mode 100644
index 0000000..4d7ad66
--- /dev/null
+++ 
b/oal-parser/src/main/resources/code-templates/ServiceRelationDispatcherTemplate.ftl
@@ -0,0 +1,65 @@
+/*
+ * 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.
+ *
+ */
+
+package 
org.apache.skywalking.oap.server.core.analysis.generated.servicerelation;
+
+import org.apache.skywalking.oap.server.core.analysis.SourceDispatcher;
+<#if (serviceRelationIndicators?size>0)>
+import org.apache.skywalking.oap.server.core.analysis.worker.IndicatorProcess;
+    <#list serviceRelationIndicators as indicator>
+        <#if indicator.filterExpressions??>
+import org.apache.skywalking.oap.server.core.analysis.indicator.expression.*;
+        </#if>
+    </#list>
+</#if>
+import org.apache.skywalking.oap.server.core.source.*;
+
+/**
+ * This class is auto generated. Please don't change this class manually.
+ *
+ * @author Observability Analysis Language code generator
+ */
+public class ServiceRelationDispatcher implements 
SourceDispatcher<ServiceRelation> {
+
+    @Override public void dispatch(ServiceRelation source) {
+<#list serviceRelationIndicators as indicator>
+        do${indicator.metricName}(source);
+</#list>
+    }
+
+<#list serviceRelationIndicators as indicator>
+    private void do${indicator.metricName}(ServiceRelation source) {
+        ${indicator.metricName}Indicator indicator = new 
${indicator.metricName}Indicator();
+
+    <#if indicator.filterExpressions??>
+        <#list indicator.filterExpressions as filterExpression>
+        if (!new 
${filterExpression.expressionObject}().setLeft(${filterExpression.left}).setRight(${filterExpression.right}).match())
 {
+            return;
+        }
+        </#list>
+    </#if>
+
+        indicator.setTimeBucket(source.getTimeBucket());
+    <#list indicator.fieldsFromSource as field>
+        indicator.${field.fieldSetter}(source.${field.fieldGetter}());
+    </#list>
+        indicator.${indicator.entryMethod.methodName}(<#list 
indicator.entryMethod.argsExpressions as arg>${arg}<#if arg_has_next>, 
</#if></#list>);
+        IndicatorProcess.INSTANCE.in(indicator);
+    }
+</#list>
+}
diff --git a/oal-parser/src/test/resources/oal_test.oal 
b/oal-parser/src/test/resources/oal_test.oal
index 030a5aa..9d90647 100644
--- a/oal-parser/src/test/resources/oal_test.oal
+++ b/oal-parser/src/test/resources/oal_test.oal
@@ -18,12 +18,20 @@
 
 Service_Avg = from(Service.latency).longAvg();
 
+ServiceInstance_RespTime= from(ServiceInstance.latency).longAvg();
+
 endpoint_Avg = from(Endpoint.latency).longAvg();
 
 // endpoint_Avg_for_prod_serv = from(Endpoint.latency).filter(name == 
"/product/service").longAvg();
 
 endpoint_percent = from(Endpoint.*).percent(status == true);
 
+ServiceRelation_Avg = from(ServiceRelation.latency).longAvg();
+
+ServiceInstanceRelation_Avg = from(ServiceInstanceRelation.latency).longAvg();
+
+EndpointRelation_Avg = from(EndpointRelation.rpcLatency).longAvg();
+
 instance_jvm_cpu = from(ServiceInstanceJVMCPU.usePercent).doubleAvg();
 
 instance_jvm_memory_max = from(ServiceInstanceJVMMemory.max).longAvg();

Reply via email to