You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2020/12/01 02:31:06 UTC

[skywalking-data-collect-protocol] branch log created (now 821fc01)

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

wusheng pushed a change to branch log
in repository https://gitbox.apache.org/repos/asf/skywalking-data-collect-protocol.git.


      at 821fc01  Add logging collect protocol

This branch includes the following new commits:

     new 821fc01  Add logging collect protocol

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.



[skywalking-data-collect-protocol] 01/01: Add logging collect protocol

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

wusheng pushed a commit to branch log
in repository https://gitbox.apache.org/repos/asf/skywalking-data-collect-protocol.git

commit 821fc0110d47be321615f7ee0c0fc4fa5575ac9c
Author: Wu Sheng <wu...@foxmail.com>
AuthorDate: Tue Dec 1 10:30:57 2020 +0800

    Add logging collect protocol
---
 logging/Logging.proto | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 79 insertions(+)

diff --git a/logging/Logging.proto b/logging/Logging.proto
new file mode 100644
index 0000000..595b268
--- /dev/null
+++ b/logging/Logging.proto
@@ -0,0 +1,79 @@
+/*
+ * 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 {
+    // [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 = 1;
+    // [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 = 2;
+    // [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 = 3;
+    // [Required] The literal text of the logs.
+    string log = 4;
+    // [Optional] The format of [log = 4], default value is text.
+    LogFormat format = 5;
+    // [Optional] The available tags. OAP server could provide search/analysis capabilities base on these.
+    repeated KeyStringValuePair tags = 6;
+    // [Optional] A string id represents the whole trace.
+    string traceId = 7;
+    // [Optional] A unique id represents this segment. Other segments could use this id to reference as a child segment.
+    string traceSegmentId = 8;
+    // [Optional] The number id of the span. Should be unique in the whole segment.
+    // Starting at 0.
+    int32 spanId = 9;
+}
+
+// The format of log
+enum LogFormat {
+    Text = 0;
+    Json = 1;
+    Yaml = 2;
+}
+
+