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:16:05 UTC
[skywalking-data-collect-protocol] 01/01: Add package name in proto
message and compat service
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 df2a0870ca0ce249ab29443a5c3cf6846968a3c3
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 | 6 ++-
.../BrowserPerfService.proto | 39 +++++--------------
common/Common.proto | 2 +
language-agent/CLRMetric.proto | 8 ++--
.../{CLRMetric.proto => CLRMetricService.proto} | 32 ++--------------
language-agent/JVMMetric.proto | 6 ++-
.../JVMMetricService.proto | 35 ++++-------------
language-agent/Meter.proto | 6 ++-
.../MeterService.proto | 35 ++++-------------
language-agent/Tracing.proto | 32 ++++++++--------
language-agent/TracingService.proto | 44 ++++++++++++++++++++++
logging/Logging.proto | 6 ++-
.../LoggingService.proto | 40 +++++---------------
management/Management.proto | 10 +++--
.../{Management.proto => ManagementService.proto} | 18 ++-------
profile/Profile.proto | 10 +++--
.../ProfileService.proto | 32 ++++++----------
.../service-mesh-service.proto | 34 ++++-------------
service-mesh-probe/service-mesh.proto | 4 +-
19 files changed, 159 insertions(+), 240 deletions(-)
diff --git a/browser/BrowserPerf.proto b/browser/BrowserPerf.proto
index eea162d..d7323b7 100644
--- a/browser/BrowserPerf.proto
+++ b/browser/BrowserPerf.proto
@@ -18,6 +18,8 @@
syntax = "proto3";
+package org.apache.skywalking.apm.network.language.agent.v3;
+
option java_multiple_files = true;
option java_package = "org.apache.skywalking.apm.network.language.agent.v3";
option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
@@ -29,11 +31,11 @@ import "common/Common.proto";
service BrowserPerfService {
// report once per page
- rpc collectPerfData (BrowserPerfData) returns (Commands) {
+ rpc collectPerfData (BrowserPerfData) returns (common.v3.Commands) {
}
// report one or more error logs for pages, could report multiple times.
- rpc collectErrorLogs (stream BrowserErrorLog) returns (Commands) {
+ rpc collectErrorLogs (stream BrowserErrorLog) returns (common.v3.Commands) {
}
}
diff --git a/language-agent/CLRMetric.proto b/browser/BrowserPerfService.proto
similarity index 58%
copy from language-agent/CLRMetric.proto
copy to browser/BrowserPerfService.proto
index 6082f8c..2acb6dd 100644
--- a/language-agent/CLRMetric.proto
+++ b/browser/BrowserPerfService.proto
@@ -19,40 +19,21 @@
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.language.agent";
option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
option go_package = "skywalking/network/language/agent/v3";
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.apm.network.language.agent.v3.BrowserPerfData) returns (org.apache.skywalking.apm.network.common.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.apm.network.language.agent.v3.BrowserErrorLog) returns (org.apache.skywalking.apm.network.common.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..f139aff 100644
--- a/common/Common.proto
+++ b/common/Common.proto
@@ -18,6 +18,8 @@
syntax = "proto3";
+package org.apache.skywalking.apm.network.common.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..197cef6 100644
--- a/language-agent/CLRMetric.proto
+++ b/language-agent/CLRMetric.proto
@@ -18,6 +18,8 @@
syntax = "proto3";
+package org.apache.skywalking.apm.network.language.agent.v3;
+
option java_multiple_files = true;
option java_package = "org.apache.skywalking.apm.network.language.agent.v3";
option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
@@ -26,7 +28,7 @@ option go_package = "skywalking/network/language/agent/v3";
import "common/Common.proto";
service CLRMetricReportService {
- rpc collect (CLRMetricCollection) returns (Commands) {
+ rpc collect (CLRMetricCollection) returns (common.v3.Commands) {
}
}
@@ -38,7 +40,7 @@ message CLRMetricCollection {
message CLRMetric {
int64 time = 1;
- CPU cpu = 2;
+ common.v3.CPU cpu = 2;
ClrGC gc = 3;
ClrThread thread = 4;
}
@@ -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/CLRMetricService.proto
similarity index 60%
copy from language-agent/CLRMetric.proto
copy to language-agent/CLRMetricService.proto
index 6082f8c..193d14b 100644
--- a/language-agent/CLRMetric.proto
+++ b/language-agent/CLRMetricService.proto
@@ -19,40 +19,14 @@
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.language.agent";
option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
option go_package = "skywalking/network/language/agent/v3";
import "common/Common.proto";
+import "language-agent/CLRMetric.proto";
service CLRMetricReportService {
- rpc collect (CLRMetricCollection) returns (Commands) {
+ rpc collect (org.apache.skywalking.apm.network.language.agent.v3.CLRMetricCollection) returns (org.apache.skywalking.apm.network.common.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..697fd22 100644
--- a/language-agent/JVMMetric.proto
+++ b/language-agent/JVMMetric.proto
@@ -18,6 +18,8 @@
syntax = "proto3";
+package org.apache.skywalking.apm.network.language.agent.v3;
+
option java_multiple_files = true;
option java_package = "org.apache.skywalking.apm.network.language.agent.v3";
option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
@@ -27,7 +29,7 @@ import "common/Common.proto";
// Define the JVM metrics report service.
service JVMMetricReportService {
- rpc collect (JVMMetricCollection) returns (Commands) {
+ rpc collect (JVMMetricCollection) returns (common.v3.Commands) {
}
}
@@ -39,7 +41,7 @@ message JVMMetricCollection {
message JVMMetric {
int64 time = 1;
- CPU cpu = 2;
+ common.v3.CPU cpu = 2;
repeated Memory memory = 3;
repeated MemoryPool memoryPool = 4;
repeated GC gc = 5;
diff --git a/common/Common.proto b/language-agent/JVMMetricService.proto
similarity index 60%
copy from common/Common.proto
copy to language-agent/JVMMetricService.proto
index 807ecdf..7e959f0 100644
--- a/common/Common.proto
+++ b/language-agent/JVMMetricService.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.v3.language.agent";
option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
-option go_package = "skywalking/network/common/v3";
+option go_package = "skywalking/network/language/agent/v3";
-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/JVMMetric.proto";
-message Command {
- string command = 1;
- repeated KeyStringValuePair args = 2;
+// Define the JVM metrics report service.
+service JVMMetricReportService {
+ rpc collect (org.apache.skywalking.apm.network.language.agent.v3.JVMMetricCollection) returns (org.apache.skywalking.apm.network.common.v3.Commands) {
+ }
}
-
diff --git a/language-agent/Meter.proto b/language-agent/Meter.proto
index b27b902..2a71790 100644
--- a/language-agent/Meter.proto
+++ b/language-agent/Meter.proto
@@ -18,6 +18,8 @@
syntax = "proto3";
+package org.apache.skywalking.apm.network.language.agent.v3;
+
option java_multiple_files = true;
option java_package = "org.apache.skywalking.apm.network.language.agent.v3";
@@ -25,7 +27,7 @@ import "common/Common.proto";
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 MeterData) returns (Commands) {
+ rpc collect (stream MeterData) returns (common.v3.Commands) {
}
}
@@ -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/MeterService.proto
similarity index 56%
copy from common/Common.proto
copy to language-agent/MeterService.proto
index 807ecdf..a4b18ba 100644
--- a/common/Common.proto
+++ b/language-agent/MeterService.proto
@@ -19,34 +19,13 @@
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.v3.language.agent";
-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.apm.network.language.agent.v3.MeterData) returns (org.apache.skywalking.apm.network.common.v3.Commands) {
+ }
}
-
diff --git a/language-agent/Tracing.proto b/language-agent/Tracing.proto
index 8f123b1..2152974 100644
--- a/language-agent/Tracing.proto
+++ b/language-agent/Tracing.proto
@@ -18,6 +18,8 @@
syntax = "proto3";
+package org.apache.skywalking.apm.network.language.agent.v3;
+
option java_multiple_files = true;
option java_package = "org.apache.skywalking.apm.network.language.agent.v3";
option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
@@ -31,20 +33,20 @@ service TraceSegmentReportService {
// Recommended trace segment report channel.
// gRPC streaming provides better performance.
// All language agents should choose this.
- rpc collect (stream SegmentObject) returns (Commands) {
+ rpc collect (stream SegmentObject) returns (common.v3.Commands) {
}
// 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 (SegmentCollection) returns (Commands) {
+ rpc collectInSync (SegmentCollection) returns (common.v3.Commands) {
}
}
// 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.
@@ -156,13 +158,13 @@ message SpanObject {
//
// In the OAP backend analysis, some special tag or tag combination could provide other advanced features.
// https://github.com/apache/skywalking/blob/master/docs/en/guides/Java-Plugin-Development-Guide.md#special-span-tags
- repeated KeyStringValuePair tags = 12;
+ repeated common.v3.KeyStringValuePair tags = 12;
// String key, String value pair with an accurate timestamp.
// Logging some events happening in the context of the span duration.
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;
}
@@ -172,7 +174,7 @@ message Log {
// measured between the current time and midnight, January 1, 1970 UTC.
int64 time = 1;
// String key, String value pair.
- repeated KeyStringValuePair data = 2;
+ repeated common.v3.KeyStringValuePair data = 2;
}
// Map to the type of span
@@ -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/TracingService.proto b/language-agent/TracingService.proto
new file mode 100644
index 0000000..28adfa8
--- /dev/null
+++ b/language-agent/TracingService.proto
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+syntax = "proto3";
+
+option java_multiple_files = true;
+option java_package = "org.apache.skywalking.apm.network.v3.language.agent";
+option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
+option go_package = "skywalking/network/language/agent/v3";
+
+import "common/Common.proto";
+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.apm.network.language.agent.v3.SegmentObject) returns (org.apache.skywalking.apm.network.common.v3.Commands) {
+ }
+
+ // 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.apm.network.language.agent.v3.SegmentCollection) returns (org.apache.skywalking.apm.network.common.v3.Commands) {
+ }
+}
diff --git a/logging/Logging.proto b/logging/Logging.proto
index 6135db5..5e37210 100644
--- a/logging/Logging.proto
+++ b/logging/Logging.proto
@@ -18,6 +18,8 @@
syntax = "proto3";
+package org.apache.skywalking.apm.network.logging.v3;
+
option java_multiple_files = true;
option java_package = "org.apache.skywalking.apm.network.logging.v3";
option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
@@ -30,7 +32,7 @@ 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 LogData) returns (Commands) {
+ rpc collect (stream LogData) returns (common.v3.Commands) {
}
}
@@ -62,7 +64,7 @@ message LogData {
// [Optional] Logs with trace context
TraceContext traceContext = 6;
// [Optional] The available tags. OAP server could provide search/analysis capabilities base on these.
- repeated KeyStringValuePair tags = 7;
+ repeated common.v3.KeyStringValuePair tags = 7;
}
// The content of the log data
diff --git a/language-agent/CLRMetric.proto b/logging/LoggingService.proto
similarity index 58%
copy from language-agent/CLRMetric.proto
copy to logging/LoggingService.proto
index 6082f8c..0f80dda 100644
--- a/language-agent/CLRMetric.proto
+++ b/logging/LoggingService.proto
@@ -19,40 +19,18 @@
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.logging";
option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
option go_package = "skywalking/network/language/agent/v3";
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.apm.network.logging.v3.LogData) returns (org.apache.skywalking.apm.network.common.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..2c743c8 100644
--- a/management/Management.proto
+++ b/management/Management.proto
@@ -18,6 +18,8 @@
syntax = "proto3";
+package org.apache.skywalking.apm.network.management.v3;
+
option java_multiple_files = true;
option java_package = "org.apache.skywalking.apm.network.management.v3";
option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
@@ -28,13 +30,13 @@ import "common/Common.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 (InstanceProperties) returns (common.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 (InstancePingPkg) returns (common.v3.Commands) {
}
}
@@ -42,10 +44,10 @@ service ManagementService {
message InstanceProperties {
string service = 1;
string serviceInstance = 2;
- repeated KeyStringValuePair properties = 3;
+ repeated common.v3.KeyStringValuePair properties = 3;
}
message InstancePingPkg {
string service = 1;
string serviceInstance = 2;
-}
\ No newline at end of file
+}
diff --git a/management/Management.proto b/management/ManagementService.proto
similarity index 76%
copy from management/Management.proto
copy to management/ManagementService.proto
index 9589ba4..f7199ce 100644
--- a/management/Management.proto
+++ b/management/ManagementService.proto
@@ -19,33 +19,23 @@
syntax = "proto3";
option java_multiple_files = true;
-option java_package = "org.apache.skywalking.apm.network.management.v3";
+option java_package = "org.apache.skywalking.apm.v3.network.management";
option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
option go_package = "skywalking/network/management/v3";
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.apm.network.management.v3.InstanceProperties) returns (org.apache.skywalking.apm.network.common.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.apm.network.management.v3.InstancePingPkg) returns (org.apache.skywalking.apm.network.common.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..827e305 100644
--- a/profile/Profile.proto
+++ b/profile/Profile.proto
@@ -18,6 +18,8 @@
syntax = "proto3";
+package org.apache.skywalking.apm.network.v3.profile;
+
option java_multiple_files = true;
option java_package = "org.apache.skywalking.apm.network.language.profile.v3";
option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
@@ -28,15 +30,15 @@ import "common/Common.proto";
service ProfileTask {
// query all sniffer need to execute profile task commands
- rpc getProfileTaskCommands (ProfileTaskCommandQuery) returns (Commands) {
+ rpc getProfileTaskCommands (ProfileTaskCommandQuery) returns (common.v3.Commands) {
}
// collect dumped thread snapshot
- rpc collectSnapshot (stream ThreadSnapshot) returns (Commands) {
+ rpc collectSnapshot (stream ThreadSnapshot) returns (common.v3.Commands) {
}
// report profiling task finished
- rpc reportTaskFinish (ProfileTaskFinishReport) returns (Commands) {
+ rpc reportTaskFinish (ProfileTaskFinishReport) returns (common.v3.Commands) {
}
}
@@ -77,4 +79,4 @@ message ProfileTaskFinishReport {
// profile task
string taskId = 3;
-}
\ No newline at end of file
+}
diff --git a/management/Management.proto b/profile/ProfileService.proto
similarity index 53%
copy from management/Management.proto
copy to profile/ProfileService.proto
index 9589ba4..c7f5982 100644
--- a/management/Management.proto
+++ b/profile/ProfileService.proto
@@ -19,33 +19,25 @@
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.v3.language.profile";
option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
-option go_package = "skywalking/network/management/v3";
+option go_package = "skywalking/network/language/profile/v3";
import "common/Common.proto";
+import "profile/Profile.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) {
+service ProfileTask {
+
+ // query all sniffer need to execute profile task commands
+ rpc getProfileTaskCommands (org.apache.skywalking.apm.network.v3.profile.ProfileTaskCommandQuery) returns (org.apache.skywalking.apm.network.common.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) {
+ // collect dumped thread snapshot
+ rpc collectSnapshot (stream org.apache.skywalking.apm.network.v3.profile.ThreadSnapshot) returns (org.apache.skywalking.apm.network.common.v3.Commands) {
+ }
+ // report profiling task finished
+ rpc reportTaskFinish (org.apache.skywalking.apm.network.v3.profile.ProfileTaskFinishReport) returns (org.apache.skywalking.apm.network.common.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/common/Common.proto b/service-mesh-probe/service-mesh-service.proto
similarity index 60%
copy from common/Common.proto
copy to service-mesh-probe/service-mesh-service.proto
index 807ecdf..4862346 100644
--- a/common/Common.proto
+++ b/service-mesh-probe/service-mesh-service.proto
@@ -19,34 +19,14 @@
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.v3.servicemesh";
option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
-option go_package = "skywalking/network/common/v3";
+option go_package = "skywalking/network/servicemesh/v3";
-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.apm.network.servicemesh.v3.ServiceMeshMetric) returns (org.apache.skywalking.apm.network.servicemesh.v3.MeshProbeDownstream) {
+ }
}
-
diff --git a/service-mesh-probe/service-mesh.proto b/service-mesh-probe/service-mesh.proto
index 859ea2d..2c81247 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.apm.network.servicemesh.v3;
+
option java_multiple_files = true;
option java_package = "org.apache.skywalking.apm.network.servicemesh.v3";
option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
@@ -48,7 +50,7 @@ message ServiceMeshMetric {
// Status represents the response status of this calling.
bool status = 10;
Protocol protocol = 11;
- DetectPoint detectPoint = 12;
+ common.v3.DetectPoint detectPoint = 12;
// NONE, mTLS, or TLS
string tlsMode = 13;
// The sidecar/proxy internal error code, the value bases on the implementation.