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 dd10e524e0 Allow calling `lang.groovy.GString` in DSL (#13073)
dd10e524e0 is described below
commit dd10e524e081659d5f698b858bf47188004bdc23
Author: kezhenxu94 <[email protected]>
AuthorDate: Fri Feb 28 18:33:57 2025 +0800
Allow calling `lang.groovy.GString` in DSL (#13073)
---
docs/en/changes/changes.md | 1 +
.../src/main/java/org/apache/skywalking/oap/log/analyzer/dsl/DSL.java | 3 +++
.../main/java/org/apache/skywalking/oap/meter/analyzer/dsl/DSL.java | 3 +++
.../skywalking/oap/meter/analyzer/dsl/ExpressionParsingTest.java | 2 +-
4 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index c37b5032cc..11efe41417 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -75,6 +75,7 @@
* Add a fail-safe mechanism to prevent traffic metrics inconsistent between
in-memory and database server.
* Add more clear logs when oap-cluster-internal data(metrics/traffic) format
is inconsistent.
* Optimize metrics cache loading when trace latency greater than cache
timeout.
+* Allow calling `lang.groovy.GString` in DSL.
#### UI
diff --git
a/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/dsl/DSL.java
b/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/dsl/DSL.java
index ec7a85841c..c5666d8061 100644
---
a/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/dsl/DSL.java
+++
b/oap-server/analyzer/log-analyzer/src/main/java/org/apache/skywalking/oap/log/analyzer/dsl/DSL.java
@@ -19,6 +19,8 @@
package org.apache.skywalking.oap.log.analyzer.dsl;
import com.google.common.collect.ImmutableList;
+
+import groovy.lang.GString;
import groovy.lang.GroovyShell;
import groovy.transform.CompileStatic;
import groovy.util.DelegatingScript;
@@ -78,6 +80,7 @@ public class DSL {
.add(Map.class)
.add(List.class)
.add(Array.class)
+ .add(GString.class)
.add(String.class)
.add(ProcessRegistry.class)
.build());
diff --git
a/oap-server/analyzer/meter-analyzer/src/main/java/org/apache/skywalking/oap/meter/analyzer/dsl/DSL.java
b/oap-server/analyzer/meter-analyzer/src/main/java/org/apache/skywalking/oap/meter/analyzer/dsl/DSL.java
index d824611be7..e723b6add3 100644
---
a/oap-server/analyzer/meter-analyzer/src/main/java/org/apache/skywalking/oap/meter/analyzer/dsl/DSL.java
+++
b/oap-server/analyzer/meter-analyzer/src/main/java/org/apache/skywalking/oap/meter/analyzer/dsl/DSL.java
@@ -20,6 +20,7 @@ package org.apache.skywalking.oap.meter.analyzer.dsl;
import com.google.common.collect.ImmutableList;
import groovy.lang.Binding;
+import groovy.lang.GString;
import groovy.lang.GroovyShell;
import groovy.util.DelegatingScript;
import java.lang.reflect.Array;
@@ -78,6 +79,8 @@ public final class DSL {
.add(DetectPoint.class)
.add(Layer.class)
.add(ProcessRegistry.class)
+ .add(GString.class)
+ .add(String.class)
.build());
cc.addCompilationCustomizers(secureASTCustomizer);
diff --git
a/oap-server/analyzer/meter-analyzer/src/test/java/org/apache/skywalking/oap/meter/analyzer/dsl/ExpressionParsingTest.java
b/oap-server/analyzer/meter-analyzer/src/test/java/org/apache/skywalking/oap/meter/analyzer/dsl/ExpressionParsingTest.java
index aa29299b01..4fe8b5cb6b 100644
---
a/oap-server/analyzer/meter-analyzer/src/test/java/org/apache/skywalking/oap/meter/analyzer/dsl/ExpressionParsingTest.java
+++
b/oap-server/analyzer/meter-analyzer/src/test/java/org/apache/skywalking/oap/meter/analyzer/dsl/ExpressionParsingTest.java
@@ -37,7 +37,7 @@ public class ExpressionParsingTest {
return Arrays.asList(new Object[][] {
{
"all",
- "(foo - 1).tagEqual('bar',
'1').sum(['tt']).irate().histogram().histogram_percentile([50,99]).service(['rr'],
Layer.GENERAL).downsampling(LATEST)",
+ "(foo - 1).tag({ tags -> tags.new_name =
\"${tags['tag1']}|${tags['tag2']}\".toString() }).tagEqual('bar',
'1').sum(['tt']).irate().histogram().histogram_percentile([50,99]).service(['rr'],
Layer.GENERAL).downsampling(LATEST)",
ExpressionParsingContext.builder()
.samples(Collections.singletonList("foo"))
.scopeType(ScopeType.SERVICE)