metropolis/pkg/logtree: move logtree protobuf definition to logtree pkg
Before this change we had the LogEntry message inside the metropolis
common proto file. This splits it out into the logtree package to make
it standalone in a future change.
Change-Id: Idb26a829d6174efa946a6c4ce0f1b984cb2f18a2
Reviewed-on: https://review.monogon.dev/c/monogon/+/3080
Tested-by: Jenkins CI
Reviewed-by: Serge Bazanski <serge@monogon.tech>
diff --git a/metropolis/pkg/logtree/proto/logtree.proto b/metropolis/pkg/logtree/proto/logtree.proto
new file mode 100644
index 0000000..7586187
--- /dev/null
+++ b/metropolis/pkg/logtree/proto/logtree.proto
@@ -0,0 +1,59 @@
+// Copyright 2020 The Monogon Project Authors.
+//
+// SPDX-License-Identifier: Apache-2.0
+//
+// Licensed 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 metropolis.pkg.logtree.proto;
+option go_package = "source.monogon.dev/metropolis/pkg/logtree/proto";
+
+import "google/protobuf/timestamp.proto";
+
+// Severity level corresponding to //metropolis/pkg/logtree.Severity.
+enum LeveledLogSeverity {
+ INVALID = 0;
+ INFO = 1;
+ WARNING = 2;
+ ERROR = 3;
+ FATAL = 4;
+}
+
+// LogEntry corresponding to logtree.LogEntry in //metropolis/pkg/logtree.
+message LogEntry {
+ // A leveled log entry emitted from a compatible system, eg. Metorpolis code
+ // or a klog-parsed line.
+ message Leveled {
+ repeated string lines = 1;
+ google.protobuf.Timestamp timestamp = 2;
+ LeveledLogSeverity severity = 3;
+ // Source of the error, expressed as file:line.
+ string location = 4;
+ }
+ // Raw log entry, captured from an external system without parting. Might
+ // contain some timestamp/level/origin information embedded in data. Data
+ // contained within should be treated as unsanitized external data.
+ message Raw {
+ string data = 1;
+ // Original length of line, set if data was truncated.
+ int64 original_length = 2;
+ }
+
+ // Origin DN (Distinguished Name), a unique identifier which is provided by
+ // the supervisor system.
+ string dn = 1;
+ oneof kind {
+ Leveled leveled = 2;
+ Raw raw = 3;
+ }
+}