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 95b6a197c4 Add the spring-ai components and the GenAI layer. (#13712)
95b6a197c4 is described below
commit 95b6a197c436bd35f134abb4914cf315e6ed8b2e
Author: peachisai <[email protected]>
AuthorDate: Fri Feb 27 15:10:03 2026 +0800
Add the spring-ai components and the GenAI layer. (#13712)
---
apm-protocol/apm-network/src/main/proto | 2 +-
docs/en/changes/changes.md | 2 +
.../trace/parser/listener/RPCAnalysisListener.java | 5 ++
.../skywalking/oap/server/core/analysis/Layer.java | 13 ++++-
.../oap/server/core/source/RequestType.java | 3 +-
.../src/main/resources/component-libraries.yml | 65 ++++++++++++++++++++++
skywalking-ui | 2 +-
.../java-test-service/e2e-protocol/src/main/proto | 2 +-
8 files changed, 89 insertions(+), 5 deletions(-)
diff --git a/apm-protocol/apm-network/src/main/proto
b/apm-protocol/apm-network/src/main/proto
index cf9cc443c5..07882d57be 160000
--- a/apm-protocol/apm-network/src/main/proto
+++ b/apm-protocol/apm-network/src/main/proto
@@ -1 +1 @@
-Subproject commit cf9cc443c5e9a61078b24ba01ecc41f42526115f
+Subproject commit 07882d57becb37e341f7fc492c11f9f5a5f311cf
diff --git a/docs/en/changes/changes.md b/docs/en/changes/changes.md
index 6b0c976e97..167724adbb 100644
--- a/docs/en/changes/changes.md
+++ b/docs/en/changes/changes.md
@@ -132,6 +132,7 @@
Event loop: `min(5, cores)` shared — non-blocking I/O multiplexing needs few
threads.
Blocking executor: JDK 25+ uses virtual threads; JDK <25 keeps Armeria's
default cached pool
(up to 200 on-demand threads) because HTTP handlers block on long storage/DB
queries.
+* Add the spring-ai components and the GenAI layer.
#### UI
* Fix the missing icon in new native trace view.
@@ -140,6 +141,7 @@
* Fix validation guard for router.
* Add the `coldStage` to the `Duration` for queries.
* Optimize the pages theme.
+* Fix incorrect virtual service names.
#### Documentation
diff --git
a/oap-server/analyzer/agent-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/provider/trace/parser/listener/RPCAnalysisListener.java
b/oap-server/analyzer/agent-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/provider/trace/parser/listener/RPCAnalysisListener.java
index a344068428..f4b2b9f19e 100644
---
a/oap-server/analyzer/agent-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/provider/trace/parser/listener/RPCAnalysisListener.java
+++
b/oap-server/analyzer/agent-analyzer/src/main/java/org/apache/skywalking/oap/server/analyzer/provider/trace/parser/listener/RPCAnalysisListener.java
@@ -242,6 +242,9 @@ public class RPCAnalysisListener extends
CommonAnalysisListener implements Entry
case MQ:
sourceBuilder.setType(RequestType.MQ);
break;
+ case GenAI:
+ sourceBuilder.setType(RequestType.GenAI);
+ break;
default:
sourceBuilder.setType(RequestType.RPC);
break;
@@ -363,6 +366,8 @@ public class RPCAnalysisListener extends
CommonAnalysisListener implements Entry
return Layer.UNDEFINED;
case FAAS:
return Layer.FAAS;
+ case GenAI:
+ return Layer.VIRTUAL_GENAI;
default:
throw new UnexpectedException("Can't transfer to the Layer.
SpanLayer=" + spanLayer);
}
diff --git
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/Layer.java
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/Layer.java
index 487b886278..284192ee8d 100644
---
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/Layer.java
+++
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/Layer.java
@@ -261,7 +261,18 @@ public enum Layer {
/**
* BanyanDB is a distributed time-series database with built-in
self-monitoring for real-time tracking of system health, performance, and
resource utilization.
*/
- BANYANDB(43, true);
+ BANYANDB(43, true),
+
+ /**
+ * GenAI represents an instrumented Generative AI service or application.
+ */
+ GENAI(44, true),
+
+ /**
+ * Virtual GenAI is a virtual layer used to represent and monitor remote,
uninstrumented
+ * Generative AI providers.
+ */
+ VIRTUAL_GENAI(45, false);
private final int value;
/**
diff --git
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/RequestType.java
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/RequestType.java
index fe0b0af129..60ee9a1fef 100644
---
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/RequestType.java
+++
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/RequestType.java
@@ -31,5 +31,6 @@ public enum RequestType {
*/
LOGIC,
TCP,
- MQ
+ MQ,
+ GenAI
}
diff --git
a/oap-server/server-starter/src/main/resources/component-libraries.yml
b/oap-server/server-starter/src/main/resources/component-libraries.yml
index b10f88b3b4..da8617c71f 100644
--- a/oap-server/server-starter/src/main/resources/component-libraries.yml
+++ b/oap-server/server-starter/src/main/resources/component-libraries.yml
@@ -542,6 +542,51 @@ ztunnel:
Dmdb-jdbc-driver:
id: 163
languages: Java
+spring-ai-unknown:
+ id: 164
+ languages: Java
+spring-ai-anthropic:
+ id: 165
+ languages: Java
+spring-ai-aws-bedrock:
+ id: 166
+ languages: Java
+spring-ai-azure-openai:
+ id: 167
+ languages: Java
+spring-ai-cohere:
+ id: 168
+ languages: Java
+spring-ai-deepseek:
+ id: 169
+ languages: Java
+spring-ai-gcp-genai:
+ id: 170
+ languages: Java
+spring-ai-gcp-vertex-ai:
+ id: 171
+ languages: Java
+spring-ai-mistral-ai:
+ id: 172
+ languages: Java
+spring-ai-openai:
+ id: 173
+ languages: Java
+spring-ai-huggingface:
+ id: 174
+ languages: Java
+spring-ai-minimax:
+ id: 175
+ languages: Java
+spring-ai-ollama:
+ id: 176
+ languages: Java
+spring-ai-zhipu-ai:
+ id: 177
+ languages: Java
+spring-ai:
+ id: 178
+ languages: Java
# .NET/.NET Core components
# [3000, 4000) for C#/.NET only
@@ -815,6 +860,12 @@ Sinatra:
id: 12001
languages: Ruby
+# genai components
+GenAI:
+ id: 13000
+ languages: Java
+
+
# Component Server mapping defines the server display names of some components
# e.g.
# Jedis is a client library in Java for Redis server
@@ -873,3 +924,17 @@ Component-Server-Mappings:
amqp-producer: amqp
amqp-consumer: amqp
GoRedis: Redis
+ spring-ai-unknown: GenAI
+ spring-ai-anthropic: GenAI
+ spring-ai-aws-bedrock: GenAI
+ spring-ai-azure-openai: GenAI
+ spring-ai-cohere: GenAI
+ spring-ai-deepseek: GenAI
+ spring-ai-gcp-genai: GenAI
+ spring-ai-gcp-vertex-ai: GenAI
+ spring-ai-mistral-ai: GenAI
+ spring-ai-openai: GenAI
+ spring-ai-huggingface: GenAI
+ spring-ai-minimax: GenAI
+ spring-ai-ollama: GenAI
+ spring-ai-zhipu-ai: GenAI
\ No newline at end of file
diff --git a/skywalking-ui b/skywalking-ui
index 49a51d2a37..6be09fb26b 160000
--- a/skywalking-ui
+++ b/skywalking-ui
@@ -1 +1 @@
-Subproject commit 49a51d2a3728bc48932106d84e15b3220f0105db
+Subproject commit 6be09fb26b248814f45224e8fded0b1a5fc7a9cf
diff --git a/test/e2e-v2/java-test-service/e2e-protocol/src/main/proto
b/test/e2e-v2/java-test-service/e2e-protocol/src/main/proto
index d4da569991..07882d57be 160000
--- a/test/e2e-v2/java-test-service/e2e-protocol/src/main/proto
+++ b/test/e2e-v2/java-test-service/e2e-protocol/src/main/proto
@@ -1 +1 @@
-Subproject commit d4da5699915ee52288f8ff1c954decf6363485bc
+Subproject commit 07882d57becb37e341f7fc492c11f9f5a5f311cf