You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@skywalking.apache.org by wu...@apache.org on 2018/08/28 12:34:13 UTC
[incubator-skywalking-oal-tool] branch master updated: Add alarm
interface.
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 f0166b9 Add alarm interface.
f0166b9 is described below
commit f0166b9426aedde2077240a035ef40db112fc8c0
Author: Wu Sheng <wu...@foxmail.com>
AuthorDate: Tue Aug 28 20:34:07 2018 +0800
Add alarm interface.
---
.../org/apache/skywalking/oal/tool/parser/AnalysisResult.java | 2 ++
.../java/org/apache/skywalking/oal/tool/parser/OALListener.java | 1 +
.../src/main/resources/code-templates/IndicatorImplementor.ftl | 9 ++++++++-
.../org/apache/skywalking/oal/tool/output/FileGeneratorTest.java | 1 +
.../resources/expectedFiles/IndicatorImplementorExpected.java | 9 ++++++++-
5 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/AnalysisResult.java b/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/AnalysisResult.java
index f68ed82..c1fe744 100644
--- a/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/AnalysisResult.java
+++ b/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/AnalysisResult.java
@@ -27,6 +27,8 @@ import lombok.Setter;
@Getter(AccessLevel.PUBLIC)
@Setter(AccessLevel.PUBLIC)
public class AnalysisResult {
+ private String varName;
+
private String metricName;
private String tableName;
diff --git a/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/OALListener.java b/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/OALListener.java
index 248e22e..e306307 100644
--- a/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/OALListener.java
+++ b/oal-parser/src/main/java/org/apache/skywalking/oal/tool/parser/OALListener.java
@@ -58,6 +58,7 @@ public class OALListener extends OALParserBaseListener {
}
@Override public void exitVariable(OALParser.VariableContext ctx) {
+ current.setVarName(ctx.getText());
current.setMetricName(metricNameFormat(ctx.getText()));
current.setTableName(ctx.getText().toLowerCase());
}
diff --git a/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl b/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl
index 5721686..4be918b 100644
--- a/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl
+++ b/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl
@@ -21,12 +21,15 @@ package org.apache.skywalking.oap.server.core.analysis.generated.${packageName};
import java.util.*;
import lombok.*;
import org.apache.skywalking.oap.server.core.Const;
+import org.apache.skywalking.oap.server.core.alarm.AlarmMeta;
+import org.apache.skywalking.oap.server.core.alarm.AlarmSupported;
import org.apache.skywalking.oap.server.core.analysis.indicator.*;
import org.apache.skywalking.oap.server.core.analysis.indicator.annotation.IndicatorType;
import org.apache.skywalking.oap.server.core.remote.annotation.StreamData;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
import org.apache.skywalking.oap.server.core.storage.annotation.*;
import org.apache.skywalking.oap.server.core.storage.StorageBuilder;
+import org.apache.skywalking.oap.server.core.source.Scope;
/**
* This class is auto generated. Please don't change this class manually.
@@ -36,7 +39,7 @@ import org.apache.skywalking.oap.server.core.storage.StorageBuilder;
@IndicatorType
@StreamData
@StorageEntity(name = "${tableName}", builder = ${metricName}Indicator.Builder.class)
-public class ${metricName}Indicator extends ${indicatorClassName} {
+public class ${metricName}Indicator extends ${indicatorClassName} implements AlarmSupported {
<#list fieldsFromSource as sourceField>
@Setter @Getter @Column(columnName = "${sourceField.columnName}") private ${sourceField.typeName} ${sourceField.fieldName};
@@ -123,6 +126,10 @@ public class ${metricName}Indicator extends ${indicatorClassName} {
</#list>
}
+ @Override public AlarmMeta getAlarmMeta() {
+ return new AlarmMeta("${varName}", Scope.${sourceName}, <#list fieldsFromSource as field>${field.fieldName}<#if field_has_next>, </#if></#list>);
+ }
+
public static class Builder implements StorageBuilder<${metricName}Indicator> {
@Override public Map<String, Object> data2Map(${metricName}Indicator storageData) {
diff --git a/oal-parser/src/test/java/org/apache/skywalking/oal/tool/output/FileGeneratorTest.java b/oal-parser/src/test/java/org/apache/skywalking/oal/tool/output/FileGeneratorTest.java
index dc84b3a..e27e61b 100644
--- a/oal-parser/src/test/java/org/apache/skywalking/oal/tool/output/FileGeneratorTest.java
+++ b/oal-parser/src/test/java/org/apache/skywalking/oal/tool/output/FileGeneratorTest.java
@@ -36,6 +36,7 @@ import org.junit.Test;
public class FileGeneratorTest {
private AnalysisResult buildResult() {
AnalysisResult result = new AnalysisResult();
+ result.setVarName("generate_indicator");
result.setSourceName("Service");
result.setPackageName("service.serviceavg");
result.setTableName("service_avg");
diff --git a/oal-parser/src/test/resources/expectedFiles/IndicatorImplementorExpected.java b/oal-parser/src/test/resources/expectedFiles/IndicatorImplementorExpected.java
index 25e3415..85e3607 100644
--- a/oal-parser/src/test/resources/expectedFiles/IndicatorImplementorExpected.java
+++ b/oal-parser/src/test/resources/expectedFiles/IndicatorImplementorExpected.java
@@ -21,12 +21,15 @@ package org.apache.skywalking.oap.server.core.analysis.generated.service.service
import java.util.*;
import lombok.*;
import org.apache.skywalking.oap.server.core.Const;
+import org.apache.skywalking.oap.server.core.alarm.AlarmMeta;
+import org.apache.skywalking.oap.server.core.alarm.AlarmSupported;
import org.apache.skywalking.oap.server.core.analysis.indicator.*;
import org.apache.skywalking.oap.server.core.analysis.indicator.annotation.IndicatorType;
import org.apache.skywalking.oap.server.core.remote.annotation.StreamData;
import org.apache.skywalking.oap.server.core.remote.grpc.proto.RemoteData;
import org.apache.skywalking.oap.server.core.storage.annotation.*;
import org.apache.skywalking.oap.server.core.storage.StorageBuilder;
+import org.apache.skywalking.oap.server.core.source.Scope;
/**
* This class is auto generated. Please don't change this class manually.
@@ -36,7 +39,7 @@ import org.apache.skywalking.oap.server.core.storage.StorageBuilder;
@IndicatorType
@StreamData
@StorageEntity(name = "service_avg", builder = ServiceAvgIndicator.Builder.class)
-public class ServiceAvgIndicator extends LongAvgIndicator {
+public class ServiceAvgIndicator extends LongAvgIndicator implements AlarmSupported {
@Setter @Getter @Column(columnName = "id") private int id;
@@ -97,6 +100,10 @@ public class ServiceAvgIndicator extends LongAvgIndicator {
setCount(remoteData.getDataIntegers(1));
}
+ @Override public AlarmMeta getAlarmMeta() {
+ return new AlarmMeta("generate_indicator", Scope.Service, id);
+ }
+
public static class Builder implements StorageBuilder<ServiceAvgIndicator> {
@Override public Map<String, Object> data2Map(ServiceAvgIndicator storageData) {