You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by ke...@apache.org on 2020/12/17 07:40:20 UTC

[skywalking-data-collect-protocol] branch add-pkg-name updated (df2a087 -> f8bf71d)

This is an automated email from the ASF dual-hosted git repository.

kezhenxu94 pushed a change to branch add-pkg-name
in repository https://gitbox.apache.org/repos/asf/skywalking-data-collect-protocol.git.


 discard df2a087  Add package name in proto message and compat service
     new f8bf71d  Add package name in proto message and compat service

This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version.  This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:

 * -- * -- B -- O -- O -- O   (df2a087)
            \
             N -- N -- N   refs/heads/add-pkg-name (f8bf71d)

You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.

Any revisions marked "omit" are not gone; other references still
refer to them.  Any revisions marked "discard" are gone forever.

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 browser/BrowserPerf.proto                                      |  6 +++---
 browser/{BrowserPerfService.proto => BrowserPerfCompat.proto}  |  7 ++++---
 common/Common.proto                                            |  2 +-
 language-agent/CLRMetric.proto                                 |  6 +++---
 .../{CLRMetricService.proto => CLRMetricCompat.proto}          |  5 +++--
 language-agent/JVMMetric.proto                                 |  6 +++---
 .../{JVMMetricService.proto => JVMMetricCompat.proto}          |  5 +++--
 language-agent/Meter.proto                                     |  4 ++--
 language-agent/{MeterService.proto => MeterCompat.proto}       |  5 +++--
 language-agent/Tracing.proto                                   | 10 +++++-----
 language-agent/{TracingService.proto => TracingCompat.proto}   |  7 ++++---
 logging/Logging.proto                                          |  6 +++---
 logging/{LoggingService.proto => LoggingCompat.proto}          |  5 +++--
 management/Management.proto                                    |  8 ++++----
 management/{ManagementService.proto => ManagementCompat.proto} |  7 ++++---
 profile/Profile.proto                                          |  8 ++++----
 profile/{ProfileService.proto => ProfileCompat.proto}          |  9 +++++----
 .../{service-mesh-service.proto => service-mesh-compat.proto}  |  5 +++--
 service-mesh-probe/service-mesh.proto                          |  4 ++--
 19 files changed, 62 insertions(+), 53 deletions(-)
 rename browser/{BrowserPerfService.proto => BrowserPerfCompat.proto} (75%)
 rename language-agent/{CLRMetricService.proto => CLRMetricCompat.proto} (82%)
 rename language-agent/{JVMMetricService.proto => JVMMetricCompat.proto} (83%)
 rename language-agent/{MeterService.proto => MeterCompat.proto} (82%)
 rename language-agent/{TracingService.proto => TracingCompat.proto} (81%)
 rename logging/{LoggingService.proto => LoggingCompat.proto} (86%)
 rename management/{ManagementService.proto => ManagementCompat.proto} (78%)
 rename profile/{ProfileService.proto => ProfileCompat.proto} (68%)
 rename service-mesh-probe/{service-mesh-service.proto => service-mesh-compat.proto} (82%)


[skywalking-data-collect-protocol] 01/01: Add package name in proto message and compat service

Posted by ke...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

kezhenxu94 pushed a commit to branch add-pkg-name
in repository https://gitbox.apache.org/repos/asf/skywalking-data-collect-protocol.git

commit f8bf71df3534d1198ff845329805f47f723dfb55
Author: kezhenxu94 <ke...@apache.org>
AuthorDate: Thu Dec 17 15:14:29 2020 +0800

    Add package name in proto message and compat service
---
 browser/BrowserPerf.proto                          |  2 +
 .../BrowserPerfCompat.proto                        | 40 +++++-------------
 common/Common.proto                                |  2 +
 language-agent/CLRMetric.proto                     |  4 +-
 .../{CLRMetric.proto => CLRMetricCompat.proto}     | 33 ++-------------
 language-agent/JVMMetric.proto                     |  2 +
 .../{CLRMetric.proto => JVMMetricCompat.proto}     | 36 +++--------------
 language-agent/Meter.proto                         |  4 +-
 .../MeterCompat.proto                              | 36 ++++-------------
 language-agent/Tracing.proto                       | 24 ++++++-----
 .../{CLRMetric.proto => TracingCompat.proto}       | 47 ++++++++--------------
 logging/Logging.proto                              |  2 +
 .../CLRMetric.proto => logging/LoggingCompat.proto | 41 +++++--------------
 management/Management.proto                        |  4 +-
 .../{Management.proto => ManagementCompat.proto}   | 19 +++------
 profile/Profile.proto                              |  4 +-
 .../CLRMetric.proto => profile/ProfileCompat.proto | 42 +++++++------------
 .../service-mesh-compat.proto                      | 35 ++++------------
 service-mesh-probe/service-mesh.proto              |  2 +
 19 files changed, 118 insertions(+), 261 deletions(-)

diff --git a/browser/BrowserPerf.proto b/browser/BrowserPerf.proto
index eea162d..d6d8179 100644
--- a/browser/BrowserPerf.proto
+++ b/browser/BrowserPerf.proto
@@ -18,6 +18,8 @@
 
 syntax = "proto3";
 
+package org.apache.skywalking.v3;
+
 option java_multiple_files = true;
 option java_package = "org.apache.skywalking.apm.network.language.agent.v3";
 option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
diff --git a/language-agent/CLRMetric.proto b/browser/BrowserPerfCompat.proto
similarity index 62%
copy from language-agent/CLRMetric.proto
copy to browser/BrowserPerfCompat.proto
index 6082f8c..fc08df0 100644
--- a/language-agent/CLRMetric.proto
+++ b/browser/BrowserPerfCompat.proto
@@ -19,40 +19,22 @@
 syntax = "proto3";
 
 option java_multiple_files = true;
-option java_package = "org.apache.skywalking.apm.network.language.agent.v3";
+option java_package = "org.apache.skywalking.apm.network.language.agent.v3.compat";
 option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
 option go_package = "skywalking/network/language/agent/v3";
+option deprecated = true;
 
 import "common/Common.proto";
+import "browser/BrowserPerf.proto";
 
-service CLRMetricReportService {
-    rpc collect (CLRMetricCollection) returns (Commands) {
-    }
-}
-
-message CLRMetricCollection {
-    repeated CLRMetric metrics = 1;
-    string service = 2;
-    string serviceInstance = 3;
-}
+// Collect performance raw data from browser.
+service BrowserPerfService {
 
-message CLRMetric {
-    int64 time = 1;
-    CPU cpu = 2;
-    ClrGC gc = 3;
-    ClrThread thread = 4;
-}
+    // report once per page
+    rpc collectPerfData (org.apache.skywalking.v3.BrowserPerfData) returns (org.apache.skywalking.v3.Commands) {
+    }
 
-message ClrGC {
-    int64 Gen0CollectCount = 1;
-    int64 Gen1CollectCount = 2;
-    int64 Gen2CollectCount = 3;
-    int64 HeapMemory = 4;
+    // report one or more error logs for pages, could report multiple times.
+    rpc collectErrorLogs (stream org.apache.skywalking.v3.BrowserErrorLog) returns (org.apache.skywalking.v3.Commands) {
+    }
 }
-
-message ClrThread {
-    int32 AvailableCompletionPortThreads = 1;
-    int32 AvailableWorkerThreads = 2;
-    int32 MaxCompletionPortThreads = 3;
-    int32 MaxWorkerThreads = 4;
-}
\ No newline at end of file
diff --git a/common/Common.proto b/common/Common.proto
index 807ecdf..2bd92d6 100644
--- a/common/Common.proto
+++ b/common/Common.proto
@@ -18,6 +18,8 @@
 
 syntax = "proto3";
 
+package org.apache.skywalking.v3;
+
 option java_multiple_files = true;
 option java_package = "org.apache.skywalking.apm.network.common.v3";
 option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
diff --git a/language-agent/CLRMetric.proto b/language-agent/CLRMetric.proto
index 6082f8c..517e382 100644
--- a/language-agent/CLRMetric.proto
+++ b/language-agent/CLRMetric.proto
@@ -18,6 +18,8 @@
 
 syntax = "proto3";
 
+package org.apache.skywalking.v3;
+
 option java_multiple_files = true;
 option java_package = "org.apache.skywalking.apm.network.language.agent.v3";
 option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
@@ -55,4 +57,4 @@ message ClrThread {
     int32 AvailableWorkerThreads = 2;
     int32 MaxCompletionPortThreads = 3;
     int32 MaxWorkerThreads = 4;
-}
\ No newline at end of file
+}
diff --git a/language-agent/CLRMetric.proto b/language-agent/CLRMetricCompat.proto
similarity index 64%
copy from language-agent/CLRMetric.proto
copy to language-agent/CLRMetricCompat.proto
index 6082f8c..e372813 100644
--- a/language-agent/CLRMetric.proto
+++ b/language-agent/CLRMetricCompat.proto
@@ -19,40 +19,15 @@
 syntax = "proto3";
 
 option java_multiple_files = true;
-option java_package = "org.apache.skywalking.apm.network.language.agent.v3";
+option java_package = "org.apache.skywalking.apm.network.language.agent.v3.compat";
 option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
 option go_package = "skywalking/network/language/agent/v3";
+option deprecated = true;
 
 import "common/Common.proto";
+import "language-agent/CLRMetric.proto";
 
 service CLRMetricReportService {
-    rpc collect (CLRMetricCollection) returns (Commands) {
+    rpc collect (org.apache.skywalking.v3.CLRMetricCollection) returns (org.apache.skywalking.v3.Commands) {
     }
 }
-
-message CLRMetricCollection {
-    repeated CLRMetric metrics = 1;
-    string service = 2;
-    string serviceInstance = 3;
-}
-
-message CLRMetric {
-    int64 time = 1;
-    CPU cpu = 2;
-    ClrGC gc = 3;
-    ClrThread thread = 4;
-}
-
-message ClrGC {
-    int64 Gen0CollectCount = 1;
-    int64 Gen1CollectCount = 2;
-    int64 Gen2CollectCount = 3;
-    int64 HeapMemory = 4;
-}
-
-message ClrThread {
-    int32 AvailableCompletionPortThreads = 1;
-    int32 AvailableWorkerThreads = 2;
-    int32 MaxCompletionPortThreads = 3;
-    int32 MaxWorkerThreads = 4;
-}
\ No newline at end of file
diff --git a/language-agent/JVMMetric.proto b/language-agent/JVMMetric.proto
index 0de1477..977fb0b 100644
--- a/language-agent/JVMMetric.proto
+++ b/language-agent/JVMMetric.proto
@@ -18,6 +18,8 @@
 
 syntax = "proto3";
 
+package org.apache.skywalking.v3;
+
 option java_multiple_files = true;
 option java_package = "org.apache.skywalking.apm.network.language.agent.v3";
 option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
diff --git a/language-agent/CLRMetric.proto b/language-agent/JVMMetricCompat.proto
similarity index 62%
copy from language-agent/CLRMetric.proto
copy to language-agent/JVMMetricCompat.proto
index 6082f8c..6782ce2 100644
--- a/language-agent/CLRMetric.proto
+++ b/language-agent/JVMMetricCompat.proto
@@ -19,40 +19,16 @@
 syntax = "proto3";
 
 option java_multiple_files = true;
-option java_package = "org.apache.skywalking.apm.network.language.agent.v3";
+option java_package = "org.apache.skywalking.apm.network.language.agent.v3.compat";
 option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
 option go_package = "skywalking/network/language/agent/v3";
+option deprecated = true;
 
 import "common/Common.proto";
+import "language-agent/JVMMetric.proto";
 
-service CLRMetricReportService {
-    rpc collect (CLRMetricCollection) returns (Commands) {
+// Define the JVM metrics report service.
+service JVMMetricReportService {
+    rpc collect (org.apache.skywalking.v3.JVMMetricCollection) returns (org.apache.skywalking.v3.Commands) {
     }
 }
-
-message CLRMetricCollection {
-    repeated CLRMetric metrics = 1;
-    string service = 2;
-    string serviceInstance = 3;
-}
-
-message CLRMetric {
-    int64 time = 1;
-    CPU cpu = 2;
-    ClrGC gc = 3;
-    ClrThread thread = 4;
-}
-
-message ClrGC {
-    int64 Gen0CollectCount = 1;
-    int64 Gen1CollectCount = 2;
-    int64 Gen2CollectCount = 3;
-    int64 HeapMemory = 4;
-}
-
-message ClrThread {
-    int32 AvailableCompletionPortThreads = 1;
-    int32 AvailableWorkerThreads = 2;
-    int32 MaxCompletionPortThreads = 3;
-    int32 MaxWorkerThreads = 4;
-}
\ No newline at end of file
diff --git a/language-agent/Meter.proto b/language-agent/Meter.proto
index b27b902..2024571 100644
--- a/language-agent/Meter.proto
+++ b/language-agent/Meter.proto
@@ -18,6 +18,8 @@
 
 syntax = "proto3";
 
+package org.apache.skywalking.v3;
+
 option java_multiple_files = true;
 option java_package = "org.apache.skywalking.apm.network.language.agent.v3";
 
@@ -82,4 +84,4 @@ message MeterData {
 
 message MeterDataCollection {
     repeated MeterData meterData = 1;
-}
\ No newline at end of file
+}
diff --git a/common/Common.proto b/language-agent/MeterCompat.proto
similarity index 56%
copy from common/Common.proto
copy to language-agent/MeterCompat.proto
index 807ecdf..02f5e80 100644
--- a/common/Common.proto
+++ b/language-agent/MeterCompat.proto
@@ -19,34 +19,14 @@
 syntax = "proto3";
 
 option java_multiple_files = true;
-option java_package = "org.apache.skywalking.apm.network.common.v3";
-option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
-option go_package = "skywalking/network/common/v3";
+option java_package = "org.apache.skywalking.apm.network.language.agent.v3.compat";
+option deprecated = true;
 
-message KeyStringValuePair {
-    string key = 1;
-    string value = 2;
-}
-
-message CPU {
-    double usagePercent = 2;
-}
-
-// In most cases, detect point should be `server` or `client`.
-// Even in service mesh, this means `server`/`client` side sidecar
-// `proxy` is reserved only.
-enum DetectPoint {
-    client = 0;
-    server = 1;
-    proxy = 2;
-}
-
-message Commands {
-    repeated Command commands = 1;
-}
+import "common/Common.proto";
+import "language-agent/Meter.proto";
 
-message Command {
-    string command = 1;
-    repeated KeyStringValuePair args = 2;
+service MeterReportService {
+    // Meter data is reported in a certain period. The agent/SDK should report all collected metrics in this period through one stream.
+    rpc collect (stream org.apache.skywalking.v3.MeterData) returns (org.apache.skywalking.v3.Commands) {
+    }
 }
-
diff --git a/language-agent/Tracing.proto b/language-agent/Tracing.proto
index 8f123b1..6c8cd33 100644
--- a/language-agent/Tracing.proto
+++ b/language-agent/Tracing.proto
@@ -18,6 +18,8 @@
 
 syntax = "proto3";
 
+package org.apache.skywalking.v3;
+
 option java_multiple_files = true;
 option java_package = "org.apache.skywalking.apm.network.language.agent.v3";
 option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
@@ -44,7 +46,7 @@ service TraceSegmentReportService {
 
 // The segment is a collection of spans. It includes all collected spans in a simple one request context, such as a HTTP request process.
 //
-// We recommend the agent/SDK report all tracked data of one request once for all, such as, 
+// We recommend the agent/SDK report all tracked data of one request once for all, such as,
 // typically, such as in Java, one segment represent all tracked operations(spans) of one request context in the same thread.
 // At the same time, in some language there is not a clear concept like golang, it could represent all tracked operations of one request context.
 message SegmentObject {
@@ -55,11 +57,11 @@ message SegmentObject {
     // Span collections included in this segment.
     repeated SpanObject spans = 3;
     // **Service**. Represents a set/group of workloads which provide the same behaviours for incoming requests.
-    // 
+    //
     // The logic name represents the service. This would show as a separate node in the topology.
     // The metrics analyzed from the spans, would be aggregated for this entity as the service level.
     string service = 4;
-    // **Service Instance**. Each individual workload in the Service group is known as an instance. Like `pods` in Kubernetes, it 
+    // **Service Instance**. Each individual workload in the Service group is known as an instance. Like `pods` in Kubernetes, it
     // doesn't need to be a single OS process, however, if you are using instrument agents, an instance is actually a real OS process.
     //
     // The logic name represents the service instance. This would show as a separate node in the instance relationship.
@@ -67,7 +69,7 @@ message SegmentObject {
     string serviceInstance = 5;
     // Whether the segment includes all tracked spans.
     // In the production environment tracked, some tasks could include too many spans for one request context, such as a batch update for a cache, or an async job.
-    // The agent/SDK could optimize or ignore some tracked spans for better performance. 
+    // The agent/SDK could optimize or ignore some tracked spans for better performance.
     // In this case, the value should be flagged as TRUE.
     bool isSizeLimited = 6;
 }
@@ -84,10 +86,10 @@ message SegmentReference {
     string parentTraceSegmentId = 3;
     // The span id in the parent trace segment.
     int32 parentSpanId = 4;
-    // The service logic name of the parent segment. 
+    // The service logic name of the parent segment.
     // If refType == CrossThread, this name is as same as the trace segment.
     string parentService = 5;
-    // The service logic name instance of the parent segment. 
+    // The service logic name instance of the parent segment.
     // If refType == CrossThread, this name is as same as the trace segment.
     string parentServiceInstance = 6;
     // The endpoint name of the parent segment.
@@ -120,7 +122,7 @@ message SpanObject {
     // End timestamp in milliseconds of this span,
     // measured between the current time and midnight, January 1, 1970 UTC.
     int64 endTime = 4;
-    // <Optional> 
+    // <Optional>
     // In the across thread and across process, these references targeting the parent segments.
     // The references usually have only one element, but in batch consumer case, such as in MQ or async batch process, it could be multiple.
     repeated SegmentReference refs = 5;
@@ -129,7 +131,7 @@ message SpanObject {
     // We don't recommend to include the parameter, such as HTTP request parameters, as a part of the operation, especially this is the name of the entry span.
     // All statistic for the endpoints are aggregated base on this name. Those parameters should be added in the tags if necessary.
     // If in some cases, it have to be a part of the operation name,
-    // users should use the Group Parameterized Endpoints capability at the backend to get the meaningful metrics. 
+    // users should use the Group Parameterized Endpoints capability at the backend to get the meaningful metrics.
     // Read https://github.com/apache/skywalking/blob/master/docs/en/setup/backend/endpoint-grouping-rules.md
     string operationName = 6;
     // Remote address of the peer in RPC/MQ case.
@@ -162,7 +164,7 @@ message SpanObject {
     repeated Log logs = 13;
     // Force the backend don't do analysis, if the value is TRUE.
     // The backend has its own configurations to follow or override this.
-    // 
+    //
     // Use this mostly because the agent/SDK could know more context of the service role.
     bool skipAnalysis = 14;
 }
@@ -195,7 +197,7 @@ enum RefType {
     // Map to the reference targeting the segment in another OS process.
     CrossProcess = 0;
     // Map to the reference targeting the segment in the same process of the current one, just across thread.
-    // This is only used when the coding language has the thread concept. 
+    // This is only used when the coding language has the thread concept.
     CrossThread = 1;
 }
 
@@ -218,4 +220,4 @@ enum SpanLayer {
 // The segment collections for trace report in batch and sync mode.
 message SegmentCollection {
     repeated SegmentObject segments = 1;
-}
\ No newline at end of file
+}
diff --git a/language-agent/CLRMetric.proto b/language-agent/TracingCompat.proto
similarity index 52%
copy from language-agent/CLRMetric.proto
copy to language-agent/TracingCompat.proto
index 6082f8c..ca1d249 100644
--- a/language-agent/CLRMetric.proto
+++ b/language-agent/TracingCompat.proto
@@ -19,40 +19,27 @@
 syntax = "proto3";
 
 option java_multiple_files = true;
-option java_package = "org.apache.skywalking.apm.network.language.agent.v3";
+option java_package = "org.apache.skywalking.apm.network.language.agent.v3.compat";
 option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
 option go_package = "skywalking/network/language/agent/v3";
+option deprecated = true;
 
 import "common/Common.proto";
-
-service CLRMetricReportService {
-    rpc collect (CLRMetricCollection) returns (Commands) {
+import "language-agent/Tracing.proto";
+
+// Define a trace segment report service.
+// All language agents or any trace collecting component, could use this service to send span collection to the SkyWalking OAP backend.
+service TraceSegmentReportService {
+    // Recommended trace segment report channel.
+    // gRPC streaming provides better performance.
+    // All language agents should choose this.
+    rpc collect (stream org.apache.skywalking.v3.SegmentObject) returns (org.apache.skywalking.v3.Commands) {
     }
-}
-
-message CLRMetricCollection {
-    repeated CLRMetric metrics = 1;
-    string service = 2;
-    string serviceInstance = 3;
-}
 
-message CLRMetric {
-    int64 time = 1;
-    CPU cpu = 2;
-    ClrGC gc = 3;
-    ClrThread thread = 4;
-}
-
-message ClrGC {
-    int64 Gen0CollectCount = 1;
-    int64 Gen1CollectCount = 2;
-    int64 Gen2CollectCount = 3;
-    int64 HeapMemory = 4;
+    // An alternative for trace report by using gRPC unary
+    // This is provided for some 3rd-party integration, if and only if they prefer the unary mode somehow.
+    // The performance of SkyWalking OAP server would be very similar with streaming report,
+    // the performance of the network and client side are affected
+    rpc collectInSync (org.apache.skywalking.v3.SegmentCollection) returns (org.apache.skywalking.v3.Commands) {
+    }
 }
-
-message ClrThread {
-    int32 AvailableCompletionPortThreads = 1;
-    int32 AvailableWorkerThreads = 2;
-    int32 MaxCompletionPortThreads = 3;
-    int32 MaxWorkerThreads = 4;
-}
\ No newline at end of file
diff --git a/logging/Logging.proto b/logging/Logging.proto
index 6135db5..3c3d62a 100644
--- a/logging/Logging.proto
+++ b/logging/Logging.proto
@@ -18,6 +18,8 @@
 
 syntax = "proto3";
 
+package org.apache.skywalking.v3;
+
 option java_multiple_files = true;
 option java_package = "org.apache.skywalking.apm.network.logging.v3";
 option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
diff --git a/language-agent/CLRMetric.proto b/logging/LoggingCompat.proto
similarity index 58%
copy from language-agent/CLRMetric.proto
copy to logging/LoggingCompat.proto
index 6082f8c..54c7a8a 100644
--- a/language-agent/CLRMetric.proto
+++ b/logging/LoggingCompat.proto
@@ -19,40 +19,19 @@
 syntax = "proto3";
 
 option java_multiple_files = true;
-option java_package = "org.apache.skywalking.apm.network.language.agent.v3";
+option java_package = "org.apache.skywalking.apm.network.logging.v3.compat";
 option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
 option go_package = "skywalking/network/language/agent/v3";
+option deprecated = true;
 
 import "common/Common.proto";
-
-service CLRMetricReportService {
-    rpc collect (CLRMetricCollection) returns (Commands) {
+import "logging/Logging.proto";
+
+// Report collected logs into the OAP backend
+service LogReportService {
+    // Recommend to report log data in a stream mode.
+    // The service/instance/endpoint of the log could share the previous value if they are not set.
+    // Reporting the logs of same service in the batch mode could reduce the network cost.
+    rpc collect (stream org.apache.skywalking.v3.LogData) returns (org.apache.skywalking.v3.Commands) {
     }
 }
-
-message CLRMetricCollection {
-    repeated CLRMetric metrics = 1;
-    string service = 2;
-    string serviceInstance = 3;
-}
-
-message CLRMetric {
-    int64 time = 1;
-    CPU cpu = 2;
-    ClrGC gc = 3;
-    ClrThread thread = 4;
-}
-
-message ClrGC {
-    int64 Gen0CollectCount = 1;
-    int64 Gen1CollectCount = 2;
-    int64 Gen2CollectCount = 3;
-    int64 HeapMemory = 4;
-}
-
-message ClrThread {
-    int32 AvailableCompletionPortThreads = 1;
-    int32 AvailableWorkerThreads = 2;
-    int32 MaxCompletionPortThreads = 3;
-    int32 MaxWorkerThreads = 4;
-}
\ No newline at end of file
diff --git a/management/Management.proto b/management/Management.proto
index 9589ba4..a1f9155 100644
--- a/management/Management.proto
+++ b/management/Management.proto
@@ -18,6 +18,8 @@
 
 syntax = "proto3";
 
+package org.apache.skywalking.v3;
+
 option java_multiple_files = true;
 option java_package = "org.apache.skywalking.apm.network.management.v3";
 option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
@@ -48,4 +50,4 @@ message InstanceProperties {
 message InstancePingPkg {
     string service = 1;
     string serviceInstance = 2;
-}
\ No newline at end of file
+}
diff --git a/management/Management.proto b/management/ManagementCompat.proto
similarity index 79%
copy from management/Management.proto
copy to management/ManagementCompat.proto
index 9589ba4..2cd4efa 100644
--- a/management/Management.proto
+++ b/management/ManagementCompat.proto
@@ -19,33 +19,24 @@
 syntax = "proto3";
 
 option java_multiple_files = true;
-option java_package = "org.apache.skywalking.apm.network.management.v3";
+option java_package = "org.apache.skywalking.apm.network.management.v3.compat";
 option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
 option go_package = "skywalking/network/management/v3";
+option deprecated = true;
 
 import "common/Common.proto";
+import "management/Management.proto";
 
 // Define the service reporting the extra information of the instance.
 service ManagementService {
     // Report custom properties of a service instance.
-    rpc reportInstanceProperties (InstanceProperties) returns (Commands) {
+    rpc reportInstanceProperties (org.apache.skywalking.v3.InstanceProperties) returns (org.apache.skywalking.v3.Commands) {
     }
 
     // Keep the instance alive in the backend analysis.
     // Only recommend to do separate keepAlive report when no trace and metrics needs to be reported.
     // Otherwise, it is duplicated.
-    rpc keepAlive (InstancePingPkg) returns (Commands) {
+    rpc keepAlive (org.apache.skywalking.v3.InstancePingPkg) returns (org.apache.skywalking.v3.Commands) {
 
     }
 }
-
-message InstanceProperties {
-    string service = 1;
-    string serviceInstance = 2;
-    repeated KeyStringValuePair properties = 3;
-}
-
-message InstancePingPkg {
-    string service = 1;
-    string serviceInstance = 2;
-}
\ No newline at end of file
diff --git a/profile/Profile.proto b/profile/Profile.proto
index 1043893..1965ae3 100644
--- a/profile/Profile.proto
+++ b/profile/Profile.proto
@@ -18,6 +18,8 @@
 
 syntax = "proto3";
 
+package org.apache.skywalking.v3;
+
 option java_multiple_files = true;
 option java_package = "org.apache.skywalking.apm.network.language.profile.v3";
 option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
@@ -77,4 +79,4 @@ message ProfileTaskFinishReport {
 
     // profile task
     string taskId = 3;
-}
\ No newline at end of file
+}
diff --git a/language-agent/CLRMetric.proto b/profile/ProfileCompat.proto
similarity index 55%
copy from language-agent/CLRMetric.proto
copy to profile/ProfileCompat.proto
index 6082f8c..63f7a16 100644
--- a/language-agent/CLRMetric.proto
+++ b/profile/ProfileCompat.proto
@@ -19,40 +19,26 @@
 syntax = "proto3";
 
 option java_multiple_files = true;
-option java_package = "org.apache.skywalking.apm.network.language.agent.v3";
+option java_package = "org.apache.skywalking.apm.network.v3.profile.compat";
 option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
-option go_package = "skywalking/network/language/agent/v3";
+option go_package = "skywalking/network/language/profile/v3";
+option deprecated = true;
 
 import "common/Common.proto";
+import "profile/Profile.proto";
 
-service CLRMetricReportService {
-    rpc collect (CLRMetricCollection) returns (Commands) {
+service ProfileTask {
+
+    // query all sniffer need to execute profile task commands
+    rpc getProfileTaskCommands (org.apache.skywalking.v3.ProfileTaskCommandQuery) returns (org.apache.skywalking.v3.Commands) {
     }
-}
 
-message CLRMetricCollection {
-    repeated CLRMetric metrics = 1;
-    string service = 2;
-    string serviceInstance = 3;
-}
+    // collect dumped thread snapshot
+    rpc collectSnapshot (stream org.apache.skywalking.v3.ThreadSnapshot) returns (org.apache.skywalking.v3.Commands) {
+    }
 
-message CLRMetric {
-    int64 time = 1;
-    CPU cpu = 2;
-    ClrGC gc = 3;
-    ClrThread thread = 4;
-}
+    // report profiling task finished
+    rpc reportTaskFinish (org.apache.skywalking.v3.ProfileTaskFinishReport) returns (org.apache.skywalking.v3.Commands) {
+    }
 
-message ClrGC {
-    int64 Gen0CollectCount = 1;
-    int64 Gen1CollectCount = 2;
-    int64 Gen2CollectCount = 3;
-    int64 HeapMemory = 4;
 }
-
-message ClrThread {
-    int32 AvailableCompletionPortThreads = 1;
-    int32 AvailableWorkerThreads = 2;
-    int32 MaxCompletionPortThreads = 3;
-    int32 MaxWorkerThreads = 4;
-}
\ No newline at end of file
diff --git a/common/Common.proto b/service-mesh-probe/service-mesh-compat.proto
similarity index 60%
copy from common/Common.proto
copy to service-mesh-probe/service-mesh-compat.proto
index 807ecdf..2e19a0c 100644
--- a/common/Common.proto
+++ b/service-mesh-probe/service-mesh-compat.proto
@@ -19,34 +19,15 @@
 syntax = "proto3";
 
 option java_multiple_files = true;
-option java_package = "org.apache.skywalking.apm.network.common.v3";
+option java_package = "org.apache.skywalking.apm.network.servicemesh.v3.compat";
 option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
-option go_package = "skywalking/network/common/v3";
+option go_package = "skywalking/network/servicemesh/v3";
+option deprecated = true;
 
-message KeyStringValuePair {
-    string key = 1;
-    string value = 2;
-}
-
-message CPU {
-    double usagePercent = 2;
-}
-
-// In most cases, detect point should be `server` or `client`.
-// Even in service mesh, this means `server`/`client` side sidecar
-// `proxy` is reserved only.
-enum DetectPoint {
-    client = 0;
-    server = 1;
-    proxy = 2;
-}
-
-message Commands {
-    repeated Command commands = 1;
-}
+import "service-mesh-probe/service-mesh.proto";
 
-message Command {
-    string command = 1;
-    repeated KeyStringValuePair args = 2;
+// Define metrics report service. The metrics format is typically representing the data model collected in the service mesh case.
+service ServiceMeshMetricService {
+    rpc collect(stream org.apache.skywalking.v3.ServiceMeshMetric) returns (org.apache.skywalking.v3.MeshProbeDownstream) {
+    }
 }
-
diff --git a/service-mesh-probe/service-mesh.proto b/service-mesh-probe/service-mesh.proto
index 859ea2d..261f405 100644
--- a/service-mesh-probe/service-mesh.proto
+++ b/service-mesh-probe/service-mesh.proto
@@ -18,6 +18,8 @@
 
 syntax = "proto3";
 
+package org.apache.skywalking.v3;
+
 option java_multiple_files = true;
 option java_package = "org.apache.skywalking.apm.network.servicemesh.v3";
 option csharp_namespace = "SkyWalking.NetworkProtocol.V3";