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)

Reply via email to