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-data-collect-protocol.git
The following commit(s) were added to refs/heads/master by this push:
new 64b2321 Add events protocol message and service (#42)
64b2321 is described below
commit 64b2321ac02d200cb120c25b73046fc7d5419934
Author: Zhenxu Ke <[email protected]>
AuthorDate: Fri Jan 15 10:22:40 2021 +0800
Add events protocol message and service (#42)
---
event/Event.proto | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 82 insertions(+)
diff --git a/event/Event.proto b/event/Event.proto
new file mode 100644
index 0000000..69922d0
--- /dev/null
+++ b/event/Event.proto
@@ -0,0 +1,82 @@
+/*
+ * 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";
+
+package skywalking.v3;
+
+option java_multiple_files = true;
+option java_package = "org.apache.skywalking.apm.network.event.v3";
+option csharp_namespace = "SkyWalking.NetworkProtocol.V3";
+option go_package = "skywalking/network/event/v3";
+
+import "common/Common.proto";
+
+service EventService {
+ // When reporting an event, you typically call the collect function twice,
one for starting of the event and the other one for ending of the event, with
the same UUID.
+ // There are also cases where you have both start time and end time already,
for example, when exporting events from a 3rd-party system,
+ // the start time and end time are already known so that you can call the
collect function only once.
+ rpc collect (stream Event) returns (Commands) {
+ }
+}
+
+message Event {
+ // Unique ID of the event. Because an event may span a long period of time,
the UUID is necessary to associate the
+ // start time with the end time of the same event.
+ string uuid = 1;
+
+ // The source object that the event occurs on.
+ Source source = 2;
+
+ // The name of the event. For example, `Reboot`, `Upgrade` etc.
+ string name = 3;
+
+ // The type of the event. This field is friendly for UI visualization, where
events of type `Normal` are considered as normal operations,
+ // while `Error` is considered as unexpected operations, such as `Crash`
events, therefore we can mark them with different colors to be easier
identified.
+ Type type = 4;
+
+ // The detail of the event that describes why this event happened. This
should be a one-line message that briefly describes why the event is reported.
+ // Examples of an `Upgrade` event may be something like `Upgrade from
${from_version} to ${to_version}`.
+ // It's NOT encouraged to include the detailed logs of this event, such as
the exception stack trace.
+ string message = 5;
+
+ // The parameters in the `message` field.
+ map<string, string> parameters = 6;
+
+ // The start time (in milliseconds) of the event, measured between the
current time and midnight, January 1, 1970 UTC.
+ // This field is mandatory when an event occurs.
+ int64 startTime = 7;
+
+ // The end time (in milliseconds) of the event. , measured between the
current time and midnight, January 1, 1970 UTC.
+ // This field may be empty if the event has not stopped yet, otherwise it
should be a valid timestamp after `startTime`.
+ int64 endTime = 8;
+}
+
+enum Type {
+ Normal = 0;
+ Error = 1;
+}
+
+// If the event occurs on a service ONLY, the `service` field is mandatory,
the serviceInstance field and endpoint field are optional;
+// If the event occurs on a service instance, the `service` and
`serviceInstance` are mandatory and endpoint is optional;
+// If the event occurs on an endpoint, `service` and `endpoint` are mandatory,
`serviceInstance` is optional;
+message Source {
+ string service = 1;
+ string serviceInstance = 2;
+ string endpoint = 3;
+}