wu-sheng commented on a change in pull request #35:
URL: 
https://github.com/apache/skywalking-data-collect-protocol/pull/35#discussion_r533119539



##########
File path: logging/Logging.proto
##########
@@ -0,0 +1,107 @@
+/*
+ * 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.logging.v3";
+option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
+option go_package = "skywalking/network/language/agent/v3";
+
+import "common/Common.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 LogData) returns (Commands) {
+    }
+}
+
+// Log data is collected through file scratcher of agent.
+// Natively, Satellite provides various ways to collect logs.
+message LogData {
+    // [Optional] The timestamp of the log, in millisecond.
+    // If not set, OAP server would use the received timestamp as log's 
timestamp, or relies on the OAP server analyzer.
+    int64 timestamp = 1;
+    // [Required] **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.
+    //
+    // If this is not the first element of the streaming, use the previous 
not-null name as the service name.
+    string service = 2;
+    // [Optional] **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.
+    // The metrics analyzed from the spans, would be aggregated for this 
entity as the service instance level.
+    string serviceInstance = 3;
+    // [Optional] **Endpoint**. A path in a service for incoming requests, 
such as an HTTP URI path or a gRPC service class + method signature.
+    //
+    // The logic name represents the endpoint, which logs belong.
+    string endpoint = 4;
+    // [Required] The content of the log.
+    LogDataBody body = 5;
+    // [Optional] Logs with trace context
+    TraceContext traceContext = 6;
+}
+
+// The content of the log data
+message LogDataBody {
+    // A type to match analyzer(s) at the OAP server.
+    // The data could be analysis at the client side, but could be partial
+    string type = 1;
+    // Content with extendable format.
+    oneof content {
+        TextLog text = 2;
+        JSONLog json = 3;
+        YAMLLog yaml = 4;
+    }
+}
+
+// Literal text log, typically requires regex or split mechanism to filter 
meaningful info.
+message TextLog {
+    string text = 1;
+}
+
+// JSON formatted log. The json field represents the string could be formatted 
as a JSON object.
+message JSONLog {
+    string json = 1;
+}
+
+// YAML formatted log. The yaml field represents the string could be formatted 
as a YAML map.
+message YAMLLog {
+    string yaml = 1;
+}
+
+// Logs with trace context, represent agent system has injects context(IDs) 
into log text.
+message TraceContext {
+    // [Optional] The available tags. OAP server could provide search/analysis 
capabilities base on these.
+    repeated KeyStringValuePair tags = 7;

Review comment:
       Fixed. Please recheck




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to