diff --git a/api/v1/README.md b/api/v1/README.md index 63a7289345c..d0411e51e18 100644 --- a/api/v1/README.md +++ b/api/v1/README.md @@ -96,6 +96,8 @@ - [EnableSensorResponse](#tetragon-EnableSensorResponse) - [EnableTracingPolicyRequest](#tetragon-EnableTracingPolicyRequest) - [EnableTracingPolicyResponse](#tetragon-EnableTracingPolicyResponse) + - [GetDebugRequest](#tetragon-GetDebugRequest) + - [GetDebugResponse](#tetragon-GetDebugResponse) - [GetStackTraceTreeRequest](#tetragon-GetStackTraceTreeRequest) - [GetStackTraceTreeResponse](#tetragon-GetStackTraceTreeResponse) - [GetVersionRequest](#tetragon-GetVersionRequest) @@ -107,8 +109,12 @@ - [RemoveSensorRequest](#tetragon-RemoveSensorRequest) - [RemoveSensorResponse](#tetragon-RemoveSensorResponse) - [SensorStatus](#tetragon-SensorStatus) + - [SetDebugRequest](#tetragon-SetDebugRequest) + - [SetDebugResponse](#tetragon-SetDebugResponse) - [TracingPolicyStatus](#tetragon-TracingPolicyStatus) + - [ConfigFlag](#tetragon-ConfigFlag) + - [LogLevel](#tetragon-LogLevel) - [TracingPolicyState](#tetragon-TracingPolicyState) - [FineGuidanceSensors](#tetragon-FineGuidanceSensors) @@ -1674,6 +1680,37 @@ Determines the behavior of a field filter + + +### GetDebugRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| flag | [ConfigFlag](#tetragon-ConfigFlag) | | | + + + + + + + + +### GetDebugResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| flag | [ConfigFlag](#tetragon-ConfigFlag) | | | +| level | [LogLevel](#tetragon-LogLevel) | | | + + + + + + ### GetStackTraceTreeRequest @@ -1821,6 +1858,38 @@ Determines the behavior of a field filter + + +### SetDebugRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| flag | [ConfigFlag](#tetragon-ConfigFlag) | | | +| level | [LogLevel](#tetragon-LogLevel) | | | + + + + + + + + +### SetDebugResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| flag | [ConfigFlag](#tetragon-ConfigFlag) | | | +| level | [LogLevel](#tetragon-LogLevel) | | | + + + + + + ### TracingPolicyStatus @@ -1846,6 +1915,34 @@ Determines the behavior of a field filter + + +### ConfigFlag +For now, we only want to support debug-related config flags to be configurable. + +| Name | Number | Description | +| ---- | ------ | ----------- | +| CONFIG_FLAG_LOG_LEVEL | 0 | | + + + + + +### LogLevel + + +| Name | Number | Description | +| ---- | ------ | ----------- | +| LOG_LEVEL_PANIC | 0 | | +| LOG_LEVEL_FATAL | 1 | | +| LOG_LEVEL_ERROR | 2 | | +| LOG_LEVEL_WARN | 3 | | +| LOG_LEVEL_INFO | 4 | | +| LOG_LEVEL_DEBUG | 5 | | +| LOG_LEVEL_TRACE | 6 | | + + + ### TracingPolicyState @@ -1888,6 +1985,8 @@ Determines the behavior of a field filter | GetStackTraceTree | [GetStackTraceTreeRequest](#tetragon-GetStackTraceTreeRequest) | [GetStackTraceTreeResponse](#tetragon-GetStackTraceTreeResponse) | | | GetVersion | [GetVersionRequest](#tetragon-GetVersionRequest) | [GetVersionResponse](#tetragon-GetVersionResponse) | | | RuntimeHook | [RuntimeHookRequest](#tetragon-RuntimeHookRequest) | [RuntimeHookResponse](#tetragon-RuntimeHookResponse) | | +| GetDebug | [GetDebugRequest](#tetragon-GetDebugRequest) | [GetDebugResponse](#tetragon-GetDebugResponse) | | +| SetDebug | [SetDebugRequest](#tetragon-SetDebugRequest) | [SetDebugResponse](#tetragon-SetDebugResponse) | | diff --git a/api/v1/tetragon/sensors.pb.go b/api/v1/tetragon/sensors.pb.go index 4155e365645..49e4f154ccb 100644 --- a/api/v1/tetragon/sensors.pb.go +++ b/api/v1/tetragon/sensors.pb.go @@ -91,6 +91,111 @@ func (TracingPolicyState) EnumDescriptor() ([]byte, []int) { return file_tetragon_sensors_proto_rawDescGZIP(), []int{0} } +// For now, we only want to support debug-related config flags to be configurable. +type ConfigFlag int32 + +const ( + ConfigFlag_CONFIG_FLAG_LOG_LEVEL ConfigFlag = 0 +) + +// Enum value maps for ConfigFlag. +var ( + ConfigFlag_name = map[int32]string{ + 0: "CONFIG_FLAG_LOG_LEVEL", + } + ConfigFlag_value = map[string]int32{ + "CONFIG_FLAG_LOG_LEVEL": 0, + } +) + +func (x ConfigFlag) Enum() *ConfigFlag { + p := new(ConfigFlag) + *p = x + return p +} + +func (x ConfigFlag) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ConfigFlag) Descriptor() protoreflect.EnumDescriptor { + return file_tetragon_sensors_proto_enumTypes[1].Descriptor() +} + +func (ConfigFlag) Type() protoreflect.EnumType { + return &file_tetragon_sensors_proto_enumTypes[1] +} + +func (x ConfigFlag) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ConfigFlag.Descriptor instead. +func (ConfigFlag) EnumDescriptor() ([]byte, []int) { + return file_tetragon_sensors_proto_rawDescGZIP(), []int{1} +} + +type LogLevel int32 + +const ( + LogLevel_LOG_LEVEL_PANIC LogLevel = 0 + LogLevel_LOG_LEVEL_FATAL LogLevel = 1 + LogLevel_LOG_LEVEL_ERROR LogLevel = 2 + LogLevel_LOG_LEVEL_WARN LogLevel = 3 + LogLevel_LOG_LEVEL_INFO LogLevel = 4 + LogLevel_LOG_LEVEL_DEBUG LogLevel = 5 + LogLevel_LOG_LEVEL_TRACE LogLevel = 6 +) + +// Enum value maps for LogLevel. +var ( + LogLevel_name = map[int32]string{ + 0: "LOG_LEVEL_PANIC", + 1: "LOG_LEVEL_FATAL", + 2: "LOG_LEVEL_ERROR", + 3: "LOG_LEVEL_WARN", + 4: "LOG_LEVEL_INFO", + 5: "LOG_LEVEL_DEBUG", + 6: "LOG_LEVEL_TRACE", + } + LogLevel_value = map[string]int32{ + "LOG_LEVEL_PANIC": 0, + "LOG_LEVEL_FATAL": 1, + "LOG_LEVEL_ERROR": 2, + "LOG_LEVEL_WARN": 3, + "LOG_LEVEL_INFO": 4, + "LOG_LEVEL_DEBUG": 5, + "LOG_LEVEL_TRACE": 6, + } +) + +func (x LogLevel) Enum() *LogLevel { + p := new(LogLevel) + *p = x + return p +} + +func (x LogLevel) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (LogLevel) Descriptor() protoreflect.EnumDescriptor { + return file_tetragon_sensors_proto_enumTypes[2].Descriptor() +} + +func (LogLevel) Type() protoreflect.EnumType { + return &file_tetragon_sensors_proto_enumTypes[2] +} + +func (x LogLevel) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use LogLevel.Descriptor instead. +func (LogLevel) EnumDescriptor() ([]byte, []int) { + return file_tetragon_sensors_proto_rawDescGZIP(), []int{2} +} + type ListSensorsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1248,6 +1353,218 @@ func (x *GetVersionResponse) GetVersion() string { return "" } +type GetDebugRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Flag ConfigFlag `protobuf:"varint,1,opt,name=flag,proto3,enum=tetragon.ConfigFlag" json:"flag,omitempty"` +} + +func (x *GetDebugRequest) Reset() { + *x = GetDebugRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_tetragon_sensors_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetDebugRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDebugRequest) ProtoMessage() {} + +func (x *GetDebugRequest) ProtoReflect() protoreflect.Message { + mi := &file_tetragon_sensors_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetDebugRequest.ProtoReflect.Descriptor instead. +func (*GetDebugRequest) Descriptor() ([]byte, []int) { + return file_tetragon_sensors_proto_rawDescGZIP(), []int{24} +} + +func (x *GetDebugRequest) GetFlag() ConfigFlag { + if x != nil { + return x.Flag + } + return ConfigFlag_CONFIG_FLAG_LOG_LEVEL +} + +type GetDebugResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Flag ConfigFlag `protobuf:"varint,1,opt,name=flag,proto3,enum=tetragon.ConfigFlag" json:"flag,omitempty"` + Level LogLevel `protobuf:"varint,2,opt,name=level,proto3,enum=tetragon.LogLevel" json:"level,omitempty"` +} + +func (x *GetDebugResponse) Reset() { + *x = GetDebugResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_tetragon_sensors_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetDebugResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDebugResponse) ProtoMessage() {} + +func (x *GetDebugResponse) ProtoReflect() protoreflect.Message { + mi := &file_tetragon_sensors_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetDebugResponse.ProtoReflect.Descriptor instead. +func (*GetDebugResponse) Descriptor() ([]byte, []int) { + return file_tetragon_sensors_proto_rawDescGZIP(), []int{25} +} + +func (x *GetDebugResponse) GetFlag() ConfigFlag { + if x != nil { + return x.Flag + } + return ConfigFlag_CONFIG_FLAG_LOG_LEVEL +} + +func (x *GetDebugResponse) GetLevel() LogLevel { + if x != nil { + return x.Level + } + return LogLevel_LOG_LEVEL_PANIC +} + +type SetDebugRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Flag ConfigFlag `protobuf:"varint,1,opt,name=flag,proto3,enum=tetragon.ConfigFlag" json:"flag,omitempty"` + Level LogLevel `protobuf:"varint,2,opt,name=level,proto3,enum=tetragon.LogLevel" json:"level,omitempty"` +} + +func (x *SetDebugRequest) Reset() { + *x = SetDebugRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_tetragon_sensors_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetDebugRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetDebugRequest) ProtoMessage() {} + +func (x *SetDebugRequest) ProtoReflect() protoreflect.Message { + mi := &file_tetragon_sensors_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetDebugRequest.ProtoReflect.Descriptor instead. +func (*SetDebugRequest) Descriptor() ([]byte, []int) { + return file_tetragon_sensors_proto_rawDescGZIP(), []int{26} +} + +func (x *SetDebugRequest) GetFlag() ConfigFlag { + if x != nil { + return x.Flag + } + return ConfigFlag_CONFIG_FLAG_LOG_LEVEL +} + +func (x *SetDebugRequest) GetLevel() LogLevel { + if x != nil { + return x.Level + } + return LogLevel_LOG_LEVEL_PANIC +} + +type SetDebugResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Flag ConfigFlag `protobuf:"varint,1,opt,name=flag,proto3,enum=tetragon.ConfigFlag" json:"flag,omitempty"` + Level LogLevel `protobuf:"varint,2,opt,name=level,proto3,enum=tetragon.LogLevel" json:"level,omitempty"` +} + +func (x *SetDebugResponse) Reset() { + *x = SetDebugResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_tetragon_sensors_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetDebugResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetDebugResponse) ProtoMessage() {} + +func (x *SetDebugResponse) ProtoReflect() protoreflect.Message { + mi := &file_tetragon_sensors_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetDebugResponse.ProtoReflect.Descriptor instead. +func (*SetDebugResponse) Descriptor() ([]byte, []int) { + return file_tetragon_sensors_proto_rawDescGZIP(), []int{27} +} + +func (x *SetDebugResponse) GetFlag() ConfigFlag { + if x != nil { + return x.Flag + } + return ConfigFlag_CONFIG_FLAG_LOG_LEVEL +} + +func (x *SetDebugResponse) GetLevel() LogLevel { + if x != nil { + return x.Level + } + return LogLevel_LOG_LEVEL_PANIC +} + var File_tetragon_sensors_proto protoreflect.FileDescriptor var file_tetragon_sensors_proto_rawDesc = []byte{ @@ -1343,99 +1660,143 @@ var file_tetragon_sensors_proto_rawDesc = []byte{ 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x2e, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2a, - 0xb2, 0x01, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, - 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, - 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, - 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x50, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, - 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, - 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x45, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, - 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x49, - 0x4e, 0x47, 0x10, 0x06, 0x32, 0xf4, 0x09, 0x0a, 0x13, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x75, 0x69, - 0x64, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73, 0x12, 0x48, 0x0a, 0x09, - 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, - 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, - 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x52, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, - 0x6c, 0x74, 0x68, 0x12, 0x20, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, - 0x65, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, - 0x2e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x10, 0x41, 0x64, - 0x64, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x21, - 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x72, 0x61, - 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x22, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x64, - 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x24, - 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x64, 0x0a, - 0x13, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x69, 0x65, 0x73, 0x12, 0x24, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x74, 0x65, 0x74, - 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, - 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x13, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, - 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x24, 0x2e, 0x74, 0x65, 0x74, - 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, - 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x25, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x14, 0x44, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x12, 0x25, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, - 0x67, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, + 0x3b, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x14, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x22, 0x66, 0x0a, 0x10, + 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x28, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, + 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x46, 0x6c, 0x61, 0x67, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x28, 0x0a, 0x05, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x65, 0x74, 0x72, + 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x22, 0x65, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, + 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x04, 0x66, 0x6c, 0x61, + 0x67, 0x12, 0x28, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x12, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x66, 0x0a, 0x10, 0x53, + 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x28, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, + 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46, + 0x6c, 0x61, 0x67, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x28, 0x0a, 0x05, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, + 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x2a, 0xb2, 0x01, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x50, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, + 0x12, 0x14, 0x0a, 0x10, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x41, + 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x17, 0x0a, + 0x13, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, + 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x50, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x05, + 0x12, 0x16, 0x0a, 0x12, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4c, + 0x4f, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x2a, 0x27, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, + 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x10, + 0x00, 0x2a, 0x9b, 0x01, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x13, + 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x50, 0x41, 0x4e, 0x49, + 0x43, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, + 0x5f, 0x46, 0x41, 0x54, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, + 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x12, 0x0a, + 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x10, + 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x49, + 0x4e, 0x46, 0x4f, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, + 0x45, 0x4c, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, + 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x10, 0x06, 0x32, + 0xfe, 0x0a, 0x0a, 0x13, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x75, 0x69, 0x64, 0x61, 0x6e, 0x63, 0x65, + 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, + 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1b, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, + 0x01, 0x12, 0x52, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x20, + 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x21, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x48, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x54, 0x72, 0x61, 0x63, + 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x21, 0x2e, 0x74, 0x65, 0x74, 0x72, + 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x74, + 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, - 0x73, 0x12, 0x1c, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1d, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, - 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, - 0x88, 0x02, 0x01, 0x12, 0x52, 0x0a, 0x0c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, - 0x73, 0x6f, 0x72, 0x12, 0x1d, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x55, 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x12, 0x1e, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, - 0x67, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, - 0x67, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x52, - 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x12, 0x1d, - 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x22, 0x00, 0x12, 0x64, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x72, 0x61, 0x63, + 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x24, 0x2e, 0x74, 0x65, 0x74, 0x72, + 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, + 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x25, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, + 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, + 0x24, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, + 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x64, + 0x0a, 0x13, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x24, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, + 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x74, 0x65, + 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, + 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x14, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, + 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x25, 0x2e, 0x74, + 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, + 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x44, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, + 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73, 0x12, 0x1c, 0x2e, 0x74, + 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x73, + 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x74, 0x65, 0x74, + 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x52, + 0x0a, 0x0c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x12, 0x1d, + 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, - 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, + 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, - 0x02, 0x01, 0x12, 0x5e, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x54, 0x72, 0x65, 0x65, 0x12, 0x22, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, - 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, - 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x74, 0x65, - 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x1b, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, - 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, - 0x0b, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x12, 0x1c, 0x2e, 0x74, - 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, - 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x74, 0x65, 0x74, - 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x6f, - 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x02, 0x01, 0x12, 0x55, 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, + 0x73, 0x6f, 0x72, 0x12, 0x1e, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x44, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x44, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x52, 0x0a, 0x0c, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x12, 0x1d, 0x2e, 0x74, 0x65, 0x74, 0x72, + 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, + 0x67, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x5e, 0x0a, + 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x54, 0x72, + 0x65, 0x65, 0x12, 0x22, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x54, 0x72, 0x65, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, + 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x54, + 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x49, 0x0a, + 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x2e, 0x74, 0x65, + 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, + 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0b, 0x52, 0x75, 0x6e, 0x74, + 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x12, 0x1c, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, + 0x6f, 0x6e, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, + 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, + 0x75, 0x67, 0x12, 0x19, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, + 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, + 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, + 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x08, 0x53, + 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x12, 0x19, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, + 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x53, 0x65, + 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1450,80 +1811,97 @@ func file_tetragon_sensors_proto_rawDescGZIP() []byte { return file_tetragon_sensors_proto_rawDescData } -var file_tetragon_sensors_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_tetragon_sensors_proto_msgTypes = make([]protoimpl.MessageInfo, 24) +var file_tetragon_sensors_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_tetragon_sensors_proto_msgTypes = make([]protoimpl.MessageInfo, 28) var file_tetragon_sensors_proto_goTypes = []interface{}{ (TracingPolicyState)(0), // 0: tetragon.TracingPolicyState - (*ListSensorsRequest)(nil), // 1: tetragon.ListSensorsRequest - (*SensorStatus)(nil), // 2: tetragon.SensorStatus - (*ListSensorsResponse)(nil), // 3: tetragon.ListSensorsResponse - (*ListTracingPoliciesRequest)(nil), // 4: tetragon.ListTracingPoliciesRequest - (*TracingPolicyStatus)(nil), // 5: tetragon.TracingPolicyStatus - (*ListTracingPoliciesResponse)(nil), // 6: tetragon.ListTracingPoliciesResponse - (*AddTracingPolicyRequest)(nil), // 7: tetragon.AddTracingPolicyRequest - (*AddTracingPolicyResponse)(nil), // 8: tetragon.AddTracingPolicyResponse - (*DeleteTracingPolicyRequest)(nil), // 9: tetragon.DeleteTracingPolicyRequest - (*DeleteTracingPolicyResponse)(nil), // 10: tetragon.DeleteTracingPolicyResponse - (*EnableTracingPolicyRequest)(nil), // 11: tetragon.EnableTracingPolicyRequest - (*EnableTracingPolicyResponse)(nil), // 12: tetragon.EnableTracingPolicyResponse - (*DisableTracingPolicyRequest)(nil), // 13: tetragon.DisableTracingPolicyRequest - (*DisableTracingPolicyResponse)(nil), // 14: tetragon.DisableTracingPolicyResponse - (*RemoveSensorRequest)(nil), // 15: tetragon.RemoveSensorRequest - (*RemoveSensorResponse)(nil), // 16: tetragon.RemoveSensorResponse - (*EnableSensorRequest)(nil), // 17: tetragon.EnableSensorRequest - (*EnableSensorResponse)(nil), // 18: tetragon.EnableSensorResponse - (*DisableSensorRequest)(nil), // 19: tetragon.DisableSensorRequest - (*DisableSensorResponse)(nil), // 20: tetragon.DisableSensorResponse - (*GetStackTraceTreeRequest)(nil), // 21: tetragon.GetStackTraceTreeRequest - (*GetStackTraceTreeResponse)(nil), // 22: tetragon.GetStackTraceTreeResponse - (*GetVersionRequest)(nil), // 23: tetragon.GetVersionRequest - (*GetVersionResponse)(nil), // 24: tetragon.GetVersionResponse - (*StackTraceNode)(nil), // 25: tetragon.StackTraceNode - (*GetEventsRequest)(nil), // 26: tetragon.GetEventsRequest - (*GetHealthStatusRequest)(nil), // 27: tetragon.GetHealthStatusRequest - (*RuntimeHookRequest)(nil), // 28: tetragon.RuntimeHookRequest - (*GetEventsResponse)(nil), // 29: tetragon.GetEventsResponse - (*GetHealthStatusResponse)(nil), // 30: tetragon.GetHealthStatusResponse - (*RuntimeHookResponse)(nil), // 31: tetragon.RuntimeHookResponse + (ConfigFlag)(0), // 1: tetragon.ConfigFlag + (LogLevel)(0), // 2: tetragon.LogLevel + (*ListSensorsRequest)(nil), // 3: tetragon.ListSensorsRequest + (*SensorStatus)(nil), // 4: tetragon.SensorStatus + (*ListSensorsResponse)(nil), // 5: tetragon.ListSensorsResponse + (*ListTracingPoliciesRequest)(nil), // 6: tetragon.ListTracingPoliciesRequest + (*TracingPolicyStatus)(nil), // 7: tetragon.TracingPolicyStatus + (*ListTracingPoliciesResponse)(nil), // 8: tetragon.ListTracingPoliciesResponse + (*AddTracingPolicyRequest)(nil), // 9: tetragon.AddTracingPolicyRequest + (*AddTracingPolicyResponse)(nil), // 10: tetragon.AddTracingPolicyResponse + (*DeleteTracingPolicyRequest)(nil), // 11: tetragon.DeleteTracingPolicyRequest + (*DeleteTracingPolicyResponse)(nil), // 12: tetragon.DeleteTracingPolicyResponse + (*EnableTracingPolicyRequest)(nil), // 13: tetragon.EnableTracingPolicyRequest + (*EnableTracingPolicyResponse)(nil), // 14: tetragon.EnableTracingPolicyResponse + (*DisableTracingPolicyRequest)(nil), // 15: tetragon.DisableTracingPolicyRequest + (*DisableTracingPolicyResponse)(nil), // 16: tetragon.DisableTracingPolicyResponse + (*RemoveSensorRequest)(nil), // 17: tetragon.RemoveSensorRequest + (*RemoveSensorResponse)(nil), // 18: tetragon.RemoveSensorResponse + (*EnableSensorRequest)(nil), // 19: tetragon.EnableSensorRequest + (*EnableSensorResponse)(nil), // 20: tetragon.EnableSensorResponse + (*DisableSensorRequest)(nil), // 21: tetragon.DisableSensorRequest + (*DisableSensorResponse)(nil), // 22: tetragon.DisableSensorResponse + (*GetStackTraceTreeRequest)(nil), // 23: tetragon.GetStackTraceTreeRequest + (*GetStackTraceTreeResponse)(nil), // 24: tetragon.GetStackTraceTreeResponse + (*GetVersionRequest)(nil), // 25: tetragon.GetVersionRequest + (*GetVersionResponse)(nil), // 26: tetragon.GetVersionResponse + (*GetDebugRequest)(nil), // 27: tetragon.GetDebugRequest + (*GetDebugResponse)(nil), // 28: tetragon.GetDebugResponse + (*SetDebugRequest)(nil), // 29: tetragon.SetDebugRequest + (*SetDebugResponse)(nil), // 30: tetragon.SetDebugResponse + (*StackTraceNode)(nil), // 31: tetragon.StackTraceNode + (*GetEventsRequest)(nil), // 32: tetragon.GetEventsRequest + (*GetHealthStatusRequest)(nil), // 33: tetragon.GetHealthStatusRequest + (*RuntimeHookRequest)(nil), // 34: tetragon.RuntimeHookRequest + (*GetEventsResponse)(nil), // 35: tetragon.GetEventsResponse + (*GetHealthStatusResponse)(nil), // 36: tetragon.GetHealthStatusResponse + (*RuntimeHookResponse)(nil), // 37: tetragon.RuntimeHookResponse } var file_tetragon_sensors_proto_depIdxs = []int32{ - 2, // 0: tetragon.ListSensorsResponse.sensors:type_name -> tetragon.SensorStatus + 4, // 0: tetragon.ListSensorsResponse.sensors:type_name -> tetragon.SensorStatus 0, // 1: tetragon.TracingPolicyStatus.state:type_name -> tetragon.TracingPolicyState - 5, // 2: tetragon.ListTracingPoliciesResponse.policies:type_name -> tetragon.TracingPolicyStatus - 25, // 3: tetragon.GetStackTraceTreeResponse.root:type_name -> tetragon.StackTraceNode - 26, // 4: tetragon.FineGuidanceSensors.GetEvents:input_type -> tetragon.GetEventsRequest - 27, // 5: tetragon.FineGuidanceSensors.GetHealth:input_type -> tetragon.GetHealthStatusRequest - 7, // 6: tetragon.FineGuidanceSensors.AddTracingPolicy:input_type -> tetragon.AddTracingPolicyRequest - 9, // 7: tetragon.FineGuidanceSensors.DeleteTracingPolicy:input_type -> tetragon.DeleteTracingPolicyRequest - 4, // 8: tetragon.FineGuidanceSensors.ListTracingPolicies:input_type -> tetragon.ListTracingPoliciesRequest - 11, // 9: tetragon.FineGuidanceSensors.EnableTracingPolicy:input_type -> tetragon.EnableTracingPolicyRequest - 13, // 10: tetragon.FineGuidanceSensors.DisableTracingPolicy:input_type -> tetragon.DisableTracingPolicyRequest - 1, // 11: tetragon.FineGuidanceSensors.ListSensors:input_type -> tetragon.ListSensorsRequest - 17, // 12: tetragon.FineGuidanceSensors.EnableSensor:input_type -> tetragon.EnableSensorRequest - 19, // 13: tetragon.FineGuidanceSensors.DisableSensor:input_type -> tetragon.DisableSensorRequest - 15, // 14: tetragon.FineGuidanceSensors.RemoveSensor:input_type -> tetragon.RemoveSensorRequest - 21, // 15: tetragon.FineGuidanceSensors.GetStackTraceTree:input_type -> tetragon.GetStackTraceTreeRequest - 23, // 16: tetragon.FineGuidanceSensors.GetVersion:input_type -> tetragon.GetVersionRequest - 28, // 17: tetragon.FineGuidanceSensors.RuntimeHook:input_type -> tetragon.RuntimeHookRequest - 29, // 18: tetragon.FineGuidanceSensors.GetEvents:output_type -> tetragon.GetEventsResponse - 30, // 19: tetragon.FineGuidanceSensors.GetHealth:output_type -> tetragon.GetHealthStatusResponse - 8, // 20: tetragon.FineGuidanceSensors.AddTracingPolicy:output_type -> tetragon.AddTracingPolicyResponse - 10, // 21: tetragon.FineGuidanceSensors.DeleteTracingPolicy:output_type -> tetragon.DeleteTracingPolicyResponse - 6, // 22: tetragon.FineGuidanceSensors.ListTracingPolicies:output_type -> tetragon.ListTracingPoliciesResponse - 12, // 23: tetragon.FineGuidanceSensors.EnableTracingPolicy:output_type -> tetragon.EnableTracingPolicyResponse - 14, // 24: tetragon.FineGuidanceSensors.DisableTracingPolicy:output_type -> tetragon.DisableTracingPolicyResponse - 3, // 25: tetragon.FineGuidanceSensors.ListSensors:output_type -> tetragon.ListSensorsResponse - 18, // 26: tetragon.FineGuidanceSensors.EnableSensor:output_type -> tetragon.EnableSensorResponse - 20, // 27: tetragon.FineGuidanceSensors.DisableSensor:output_type -> tetragon.DisableSensorResponse - 16, // 28: tetragon.FineGuidanceSensors.RemoveSensor:output_type -> tetragon.RemoveSensorResponse - 22, // 29: tetragon.FineGuidanceSensors.GetStackTraceTree:output_type -> tetragon.GetStackTraceTreeResponse - 24, // 30: tetragon.FineGuidanceSensors.GetVersion:output_type -> tetragon.GetVersionResponse - 31, // 31: tetragon.FineGuidanceSensors.RuntimeHook:output_type -> tetragon.RuntimeHookResponse - 18, // [18:32] is the sub-list for method output_type - 4, // [4:18] is the sub-list for method input_type - 4, // [4:4] is the sub-list for extension type_name - 4, // [4:4] is the sub-list for extension extendee - 0, // [0:4] is the sub-list for field type_name + 7, // 2: tetragon.ListTracingPoliciesResponse.policies:type_name -> tetragon.TracingPolicyStatus + 31, // 3: tetragon.GetStackTraceTreeResponse.root:type_name -> tetragon.StackTraceNode + 1, // 4: tetragon.GetDebugRequest.flag:type_name -> tetragon.ConfigFlag + 1, // 5: tetragon.GetDebugResponse.flag:type_name -> tetragon.ConfigFlag + 2, // 6: tetragon.GetDebugResponse.level:type_name -> tetragon.LogLevel + 1, // 7: tetragon.SetDebugRequest.flag:type_name -> tetragon.ConfigFlag + 2, // 8: tetragon.SetDebugRequest.level:type_name -> tetragon.LogLevel + 1, // 9: tetragon.SetDebugResponse.flag:type_name -> tetragon.ConfigFlag + 2, // 10: tetragon.SetDebugResponse.level:type_name -> tetragon.LogLevel + 32, // 11: tetragon.FineGuidanceSensors.GetEvents:input_type -> tetragon.GetEventsRequest + 33, // 12: tetragon.FineGuidanceSensors.GetHealth:input_type -> tetragon.GetHealthStatusRequest + 9, // 13: tetragon.FineGuidanceSensors.AddTracingPolicy:input_type -> tetragon.AddTracingPolicyRequest + 11, // 14: tetragon.FineGuidanceSensors.DeleteTracingPolicy:input_type -> tetragon.DeleteTracingPolicyRequest + 6, // 15: tetragon.FineGuidanceSensors.ListTracingPolicies:input_type -> tetragon.ListTracingPoliciesRequest + 13, // 16: tetragon.FineGuidanceSensors.EnableTracingPolicy:input_type -> tetragon.EnableTracingPolicyRequest + 15, // 17: tetragon.FineGuidanceSensors.DisableTracingPolicy:input_type -> tetragon.DisableTracingPolicyRequest + 3, // 18: tetragon.FineGuidanceSensors.ListSensors:input_type -> tetragon.ListSensorsRequest + 19, // 19: tetragon.FineGuidanceSensors.EnableSensor:input_type -> tetragon.EnableSensorRequest + 21, // 20: tetragon.FineGuidanceSensors.DisableSensor:input_type -> tetragon.DisableSensorRequest + 17, // 21: tetragon.FineGuidanceSensors.RemoveSensor:input_type -> tetragon.RemoveSensorRequest + 23, // 22: tetragon.FineGuidanceSensors.GetStackTraceTree:input_type -> tetragon.GetStackTraceTreeRequest + 25, // 23: tetragon.FineGuidanceSensors.GetVersion:input_type -> tetragon.GetVersionRequest + 34, // 24: tetragon.FineGuidanceSensors.RuntimeHook:input_type -> tetragon.RuntimeHookRequest + 27, // 25: tetragon.FineGuidanceSensors.GetDebug:input_type -> tetragon.GetDebugRequest + 29, // 26: tetragon.FineGuidanceSensors.SetDebug:input_type -> tetragon.SetDebugRequest + 35, // 27: tetragon.FineGuidanceSensors.GetEvents:output_type -> tetragon.GetEventsResponse + 36, // 28: tetragon.FineGuidanceSensors.GetHealth:output_type -> tetragon.GetHealthStatusResponse + 10, // 29: tetragon.FineGuidanceSensors.AddTracingPolicy:output_type -> tetragon.AddTracingPolicyResponse + 12, // 30: tetragon.FineGuidanceSensors.DeleteTracingPolicy:output_type -> tetragon.DeleteTracingPolicyResponse + 8, // 31: tetragon.FineGuidanceSensors.ListTracingPolicies:output_type -> tetragon.ListTracingPoliciesResponse + 14, // 32: tetragon.FineGuidanceSensors.EnableTracingPolicy:output_type -> tetragon.EnableTracingPolicyResponse + 16, // 33: tetragon.FineGuidanceSensors.DisableTracingPolicy:output_type -> tetragon.DisableTracingPolicyResponse + 5, // 34: tetragon.FineGuidanceSensors.ListSensors:output_type -> tetragon.ListSensorsResponse + 20, // 35: tetragon.FineGuidanceSensors.EnableSensor:output_type -> tetragon.EnableSensorResponse + 22, // 36: tetragon.FineGuidanceSensors.DisableSensor:output_type -> tetragon.DisableSensorResponse + 18, // 37: tetragon.FineGuidanceSensors.RemoveSensor:output_type -> tetragon.RemoveSensorResponse + 24, // 38: tetragon.FineGuidanceSensors.GetStackTraceTree:output_type -> tetragon.GetStackTraceTreeResponse + 26, // 39: tetragon.FineGuidanceSensors.GetVersion:output_type -> tetragon.GetVersionResponse + 37, // 40: tetragon.FineGuidanceSensors.RuntimeHook:output_type -> tetragon.RuntimeHookResponse + 28, // 41: tetragon.FineGuidanceSensors.GetDebug:output_type -> tetragon.GetDebugResponse + 30, // 42: tetragon.FineGuidanceSensors.SetDebug:output_type -> tetragon.SetDebugResponse + 27, // [27:43] is the sub-list for method output_type + 11, // [11:27] is the sub-list for method input_type + 11, // [11:11] is the sub-list for extension type_name + 11, // [11:11] is the sub-list for extension extendee + 0, // [0:11] is the sub-list for field type_name } func init() { file_tetragon_sensors_proto_init() } @@ -1823,14 +2201,62 @@ func file_tetragon_sensors_proto_init() { return nil } } + file_tetragon_sensors_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDebugRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_tetragon_sensors_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDebugResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_tetragon_sensors_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetDebugRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_tetragon_sensors_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetDebugResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_tetragon_sensors_proto_rawDesc, - NumEnums: 1, - NumMessages: 24, + NumEnums: 3, + NumMessages: 28, NumExtensions: 0, NumServices: 1, }, diff --git a/api/v1/tetragon/sensors.pb.json.go b/api/v1/tetragon/sensors.pb.json.go index 59292ec3623..a9d01c00e30 100644 --- a/api/v1/tetragon/sensors.pb.json.go +++ b/api/v1/tetragon/sensors.pb.json.go @@ -390,3 +390,67 @@ func (msg *GetVersionResponse) UnmarshalJSON(b []byte) error { DiscardUnknown: false, }.Unmarshal(b, msg) } + +// MarshalJSON implements json.Marshaler +func (msg *GetDebugRequest) MarshalJSON() ([]byte, error) { + return protojson.MarshalOptions{ + UseEnumNumbers: false, + EmitUnpopulated: false, + UseProtoNames: true, + }.Marshal(msg) +} + +// UnmarshalJSON implements json.Unmarshaler +func (msg *GetDebugRequest) UnmarshalJSON(b []byte) error { + return protojson.UnmarshalOptions{ + DiscardUnknown: false, + }.Unmarshal(b, msg) +} + +// MarshalJSON implements json.Marshaler +func (msg *GetDebugResponse) MarshalJSON() ([]byte, error) { + return protojson.MarshalOptions{ + UseEnumNumbers: false, + EmitUnpopulated: false, + UseProtoNames: true, + }.Marshal(msg) +} + +// UnmarshalJSON implements json.Unmarshaler +func (msg *GetDebugResponse) UnmarshalJSON(b []byte) error { + return protojson.UnmarshalOptions{ + DiscardUnknown: false, + }.Unmarshal(b, msg) +} + +// MarshalJSON implements json.Marshaler +func (msg *SetDebugRequest) MarshalJSON() ([]byte, error) { + return protojson.MarshalOptions{ + UseEnumNumbers: false, + EmitUnpopulated: false, + UseProtoNames: true, + }.Marshal(msg) +} + +// UnmarshalJSON implements json.Unmarshaler +func (msg *SetDebugRequest) UnmarshalJSON(b []byte) error { + return protojson.UnmarshalOptions{ + DiscardUnknown: false, + }.Unmarshal(b, msg) +} + +// MarshalJSON implements json.Marshaler +func (msg *SetDebugResponse) MarshalJSON() ([]byte, error) { + return protojson.MarshalOptions{ + UseEnumNumbers: false, + EmitUnpopulated: false, + UseProtoNames: true, + }.Marshal(msg) +} + +// UnmarshalJSON implements json.Unmarshaler +func (msg *SetDebugResponse) UnmarshalJSON(b []byte) error { + return protojson.UnmarshalOptions{ + DiscardUnknown: false, + }.Unmarshal(b, msg) +} diff --git a/api/v1/tetragon/sensors.proto b/api/v1/tetragon/sensors.proto index a3116082fd8..930228dba78 100644 --- a/api/v1/tetragon/sensors.proto +++ b/api/v1/tetragon/sensors.proto @@ -125,6 +125,38 @@ message GetVersionResponse{ string version = 1; } +// For now, we only want to support debug-related config flags to be configurable. +enum ConfigFlag { + CONFIG_FLAG_LOG_LEVEL = 0; +} + +enum LogLevel { + LOG_LEVEL_PANIC = 0; + LOG_LEVEL_FATAL = 1; + LOG_LEVEL_ERROR = 2; + LOG_LEVEL_WARN = 3; + LOG_LEVEL_INFO = 4; + LOG_LEVEL_DEBUG = 5; + LOG_LEVEL_TRACE = 6; +} + +message GetDebugRequest{ + ConfigFlag flag = 1; +} +message GetDebugResponse{ + ConfigFlag flag = 1; + LogLevel level = 2; +} + +message SetDebugRequest{ + ConfigFlag flag = 1; + LogLevel level = 2; +} +message SetDebugResponse{ + ConfigFlag flag = 1; + LogLevel level = 2; +} + service FineGuidanceSensors { rpc GetEvents(GetEventsRequest) returns (stream GetEventsResponse) {} rpc GetHealth(GetHealthStatusRequest) returns (GetHealthStatusResponse) {} @@ -153,4 +185,7 @@ service FineGuidanceSensors { rpc GetVersion(GetVersionRequest) returns (GetVersionResponse) {} rpc RuntimeHook(RuntimeHookRequest) returns (RuntimeHookResponse) {} + + rpc GetDebug(GetDebugRequest) returns (GetDebugResponse) {} + rpc SetDebug(SetDebugRequest) returns (SetDebugResponse) {} } diff --git a/api/v1/tetragon/sensors_grpc.pb.go b/api/v1/tetragon/sensors_grpc.pb.go index a10166a047e..515f905c1b2 100644 --- a/api/v1/tetragon/sensors_grpc.pb.go +++ b/api/v1/tetragon/sensors_grpc.pb.go @@ -36,6 +36,8 @@ const ( FineGuidanceSensors_GetStackTraceTree_FullMethodName = "/tetragon.FineGuidanceSensors/GetStackTraceTree" FineGuidanceSensors_GetVersion_FullMethodName = "/tetragon.FineGuidanceSensors/GetVersion" FineGuidanceSensors_RuntimeHook_FullMethodName = "/tetragon.FineGuidanceSensors/RuntimeHook" + FineGuidanceSensors_GetDebug_FullMethodName = "/tetragon.FineGuidanceSensors/GetDebug" + FineGuidanceSensors_SetDebug_FullMethodName = "/tetragon.FineGuidanceSensors/SetDebug" ) // FineGuidanceSensorsClient is the client API for FineGuidanceSensors service. @@ -60,6 +62,8 @@ type FineGuidanceSensorsClient interface { GetStackTraceTree(ctx context.Context, in *GetStackTraceTreeRequest, opts ...grpc.CallOption) (*GetStackTraceTreeResponse, error) GetVersion(ctx context.Context, in *GetVersionRequest, opts ...grpc.CallOption) (*GetVersionResponse, error) RuntimeHook(ctx context.Context, in *RuntimeHookRequest, opts ...grpc.CallOption) (*RuntimeHookResponse, error) + GetDebug(ctx context.Context, in *GetDebugRequest, opts ...grpc.CallOption) (*GetDebugResponse, error) + SetDebug(ctx context.Context, in *SetDebugRequest, opts ...grpc.CallOption) (*SetDebugResponse, error) } type fineGuidanceSensorsClient struct { @@ -223,6 +227,24 @@ func (c *fineGuidanceSensorsClient) RuntimeHook(ctx context.Context, in *Runtime return out, nil } +func (c *fineGuidanceSensorsClient) GetDebug(ctx context.Context, in *GetDebugRequest, opts ...grpc.CallOption) (*GetDebugResponse, error) { + out := new(GetDebugResponse) + err := c.cc.Invoke(ctx, FineGuidanceSensors_GetDebug_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *fineGuidanceSensorsClient) SetDebug(ctx context.Context, in *SetDebugRequest, opts ...grpc.CallOption) (*SetDebugResponse, error) { + out := new(SetDebugResponse) + err := c.cc.Invoke(ctx, FineGuidanceSensors_SetDebug_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // FineGuidanceSensorsServer is the server API for FineGuidanceSensors service. // All implementations should embed UnimplementedFineGuidanceSensorsServer // for forward compatibility @@ -245,6 +267,8 @@ type FineGuidanceSensorsServer interface { GetStackTraceTree(context.Context, *GetStackTraceTreeRequest) (*GetStackTraceTreeResponse, error) GetVersion(context.Context, *GetVersionRequest) (*GetVersionResponse, error) RuntimeHook(context.Context, *RuntimeHookRequest) (*RuntimeHookResponse, error) + GetDebug(context.Context, *GetDebugRequest) (*GetDebugResponse, error) + SetDebug(context.Context, *SetDebugRequest) (*SetDebugResponse, error) } // UnimplementedFineGuidanceSensorsServer should be embedded to have forward compatible implementations. @@ -293,6 +317,12 @@ func (UnimplementedFineGuidanceSensorsServer) GetVersion(context.Context, *GetVe func (UnimplementedFineGuidanceSensorsServer) RuntimeHook(context.Context, *RuntimeHookRequest) (*RuntimeHookResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method RuntimeHook not implemented") } +func (UnimplementedFineGuidanceSensorsServer) GetDebug(context.Context, *GetDebugRequest) (*GetDebugResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDebug not implemented") +} +func (UnimplementedFineGuidanceSensorsServer) SetDebug(context.Context, *SetDebugRequest) (*SetDebugResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetDebug not implemented") +} // UnsafeFineGuidanceSensorsServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to FineGuidanceSensorsServer will @@ -560,6 +590,42 @@ func _FineGuidanceSensors_RuntimeHook_Handler(srv interface{}, ctx context.Conte return interceptor(ctx, in, info, handler) } +func _FineGuidanceSensors_GetDebug_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetDebugRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FineGuidanceSensorsServer).GetDebug(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: FineGuidanceSensors_GetDebug_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FineGuidanceSensorsServer).GetDebug(ctx, req.(*GetDebugRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FineGuidanceSensors_SetDebug_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetDebugRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FineGuidanceSensorsServer).SetDebug(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: FineGuidanceSensors_SetDebug_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FineGuidanceSensorsServer).SetDebug(ctx, req.(*SetDebugRequest)) + } + return interceptor(ctx, in, info, handler) +} + // FineGuidanceSensors_ServiceDesc is the grpc.ServiceDesc for FineGuidanceSensors service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -619,6 +685,14 @@ var FineGuidanceSensors_ServiceDesc = grpc.ServiceDesc{ MethodName: "RuntimeHook", Handler: _FineGuidanceSensors_RuntimeHook_Handler, }, + { + MethodName: "GetDebug", + Handler: _FineGuidanceSensors_GetDebug_Handler, + }, + { + MethodName: "SetDebug", + Handler: _FineGuidanceSensors_SetDebug_Handler, + }, }, Streams: []grpc.StreamDesc{ { diff --git a/cmd/tetra/commands_darwin.go b/cmd/tetra/commands_darwin.go index aa61ad1e26b..337c45adb53 100644 --- a/cmd/tetra/commands_darwin.go +++ b/cmd/tetra/commands_darwin.go @@ -4,6 +4,7 @@ package main import ( + "github.com/cilium/tetragon/cmd/tetra/loglevel" "github.com/cilium/tetragon/cmd/tetra/tracingpolicy" "github.com/spf13/cobra" ) @@ -11,4 +12,5 @@ import ( func addCommands(rootCmd *cobra.Command) { addBaseCommands(rootCmd) rootCmd.AddCommand(tracingpolicy.New()) + rootCmd.AddCommand(loglevel.New()) } diff --git a/cmd/tetra/commands_linux.go b/cmd/tetra/commands_linux.go index c50f70d1f54..4cb07ecaf3e 100644 --- a/cmd/tetra/commands_linux.go +++ b/cmd/tetra/commands_linux.go @@ -6,6 +6,7 @@ package main import ( "github.com/cilium/tetragon/cmd/tetra/bugtool" "github.com/cilium/tetragon/cmd/tetra/dump" + "github.com/cilium/tetragon/cmd/tetra/loglevel" "github.com/cilium/tetragon/cmd/tetra/policyfilter" "github.com/cilium/tetragon/cmd/tetra/probe" "github.com/cilium/tetragon/cmd/tetra/tracingpolicy" @@ -19,4 +20,5 @@ func addCommands(rootCmd *cobra.Command) { rootCmd.AddCommand(dump.New()) rootCmd.AddCommand(policyfilter.New()) rootCmd.AddCommand(probe.New()) + rootCmd.AddCommand(loglevel.New()) } diff --git a/cmd/tetra/commands_windows.go b/cmd/tetra/commands_windows.go index 5a716f10a35..0be8c416969 100644 --- a/cmd/tetra/commands_windows.go +++ b/cmd/tetra/commands_windows.go @@ -4,9 +4,11 @@ package main import ( + "github.com/cilium/tetragon/cmd/tetra/loglevel" "github.com/spf13/cobra" ) func addCommands(rootCmd *cobra.Command) { addBaseCommands(rootCmd) + rootCmd.AddCommand(loglevel.New()) } diff --git a/cmd/tetra/common/flags.go b/cmd/tetra/common/flags.go index 5a4a18cfef3..859aedc2e49 100644 --- a/cmd/tetra/common/flags.go +++ b/cmd/tetra/common/flags.go @@ -22,7 +22,8 @@ const ( KeyServerAddress = "server-address" // string KeyTimeout = "timeout" // duration KeyRetries = "retries" // int - KeyNamespace = "namespace" //string + KeyNamespace = "namespace" // string + KeyLogLevel = "loglevel" // string ) const ( diff --git a/cmd/tetra/getevents/io_reader_client.go b/cmd/tetra/getevents/io_reader_client.go index 35a69498274..f8aaeee06b7 100644 --- a/cmd/tetra/getevents/io_reader_client.go +++ b/cmd/tetra/getevents/io_reader_client.go @@ -132,3 +132,11 @@ func (i *ioReaderClient) Recv() (*tetragon.GetEventsResponse, error) { func (i *ioReaderClient) RuntimeHook(_ context.Context, _ *tetragon.RuntimeHookRequest, _ ...grpc.CallOption) (*tetragon.RuntimeHookResponse, error) { panic("stub") } + +func (i *ioReaderClient) GetDebug(_ context.Context, _ *tetragon.GetDebugRequest, _ ...grpc.CallOption) (*tetragon.GetDebugResponse, error) { + panic("stub") +} + +func (i *ioReaderClient) SetDebug(_ context.Context, _ *tetragon.SetDebugRequest, _ ...grpc.CallOption) (*tetragon.SetDebugResponse, error) { + panic("stub") +} diff --git a/cmd/tetra/loglevel/loglevel.go b/cmd/tetra/loglevel/loglevel.go new file mode 100644 index 00000000000..4354f2a744e --- /dev/null +++ b/cmd/tetra/loglevel/loglevel.go @@ -0,0 +1,91 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Tetragon + +package loglevel + +import ( + "fmt" + + "github.com/cilium/tetragon/api/v1/tetragon" + "github.com/cilium/tetragon/cmd/tetra/common" + "github.com/sirupsen/logrus" + "github.com/spf13/cobra" +) + +func New() *cobra.Command { + cmd := &cobra.Command{ + Use: "loglevel", + Aliases: []string{"log"}, + Short: "Get and dynamically change the log level", + Long: `This command allows it to dynamically change the log level without restarting Tetragon`, + } + + getCmd := &cobra.Command{ + Use: "get", + Short: "Prints the current log level", + RunE: func(cmd *cobra.Command, _ []string) error { + c, err := common.NewClientWithDefaultContextAndAddress() + if err != nil { + return fmt.Errorf("failed create gRPC client: %w", err) + } + defer c.Close() + + currentLoglevel, err := c.Client.GetDebug(c.Ctx, &tetragon.GetDebugRequest{ + Flag: tetragon.ConfigFlag_CONFIG_FLAG_LOG_LEVEL, + }) + if err != nil { + return fmt.Errorf("failed to get current Tetragon log level: %w", err) + } + cmd.Printf("Current log level: %s\n", logrus.Level(currentLoglevel.GetLevel())) + + return nil + }, + } + + setCmd := &cobra.Command{ + Use: "set", + Short: "Set the log level", + Long: `Allowed values are [trace|debug|info|warning|error|fatal|panic]. Examples: + + # Set the log level to debug + tetra loglevel set debug + + # Set the log level to info + tetra loglevel set info`, + RunE: func(cmd *cobra.Command, args []string) error { + if len(args) != 1 { + return fmt.Errorf("usage: tetra loglevel set [trace|debug|info|warning|error|fatal|panic]") + } + levelStr := args[0] + levelParsed, err := logrus.ParseLevel(levelStr) + if err != nil { + return fmt.Errorf("invalid log level: %s", levelStr) + } + + c, err := common.NewClientWithDefaultContextAndAddress() + if err != nil { + return fmt.Errorf("failed create gRPC client: %w", err) + } + defer c.Close() + + currentLogLevel, err := c.Client.SetDebug(c.Ctx, &tetragon.SetDebugRequest{ + Flag: tetragon.ConfigFlag_CONFIG_FLAG_LOG_LEVEL, + Level: tetragon.LogLevel(levelParsed), + }) + if err != nil { + return fmt.Errorf("failed to set log level: %w", err) + } + cmd.Printf("Log level set to: %s\n", logrus.Level(currentLogLevel.GetLevel())) + + return nil + }, + } + + // Add subcommands to the main command + cmd.AddCommand( + getCmd, + setCmd, + ) + + return cmd +} diff --git a/cmd/tetragon/main.go b/cmd/tetragon/main.go index e2d07019439..97b3507e1bf 100644 --- a/cmd/tetragon/main.go +++ b/cmd/tetragon/main.go @@ -50,7 +50,6 @@ import ( "github.com/cilium/tetragon/pkg/sensors/base" "github.com/cilium/tetragon/pkg/sensors/program" "github.com/cilium/tetragon/pkg/server" - "github.com/cilium/tetragon/pkg/tgsyscall" "github.com/cilium/tetragon/pkg/tracingpolicy" "github.com/cilium/tetragon/pkg/unixlisten" "github.com/cilium/tetragon/pkg/version" @@ -190,8 +189,7 @@ func tetragonExecute() error { defer cancel() sigs := make(chan os.Signal, 1) - signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM, tgsyscall.SIGRTMIN_20, - tgsyscall.SIGRTMIN_21, tgsyscall.SIGRTMIN_22) + signal.Notify(sigs, syscall.SIGINT, syscall.SIGTERM) // Logging should always be bootstrapped first. Do not add any code above this! if err := logger.SetupLogging(option.Config.LogOpts, option.Config.Debug); err != nil { @@ -335,38 +333,12 @@ func tetragonExecute() error { obs.PrintStats() }() - defaultLevel := logger.GetLogLevel() go func() { - for { - s := <-sigs - switch s { - case syscall.SIGINT, syscall.SIGTERM: - // if we receive a signal, call cancel so that contexts are finalized, which will - // leads to normally return from tetragonExecute(). - log.Infof("Received signal %s, shutting down...", s) - cancel() - return - case tgsyscall.SIGRTMIN_20: // SIGRTMIN+20 - currentLevel := logger.GetLogLevel() - if currentLevel == logrus.DebugLevel { - log.Infof("Received signal SIGRTMIN+20: LogLevel is already '%s'", currentLevel) - } else { - logger.SetLogLevel(logrus.DebugLevel) - log.Infof("Received signal SIGRTMIN+20: switching from LogLevel '%s' to '%s'", currentLevel, logger.GetLogLevel()) - } - case tgsyscall.SIGRTMIN_21: // SIGRTMIN+21 - currentLevel := logger.GetLogLevel() - if currentLevel == logrus.TraceLevel { - log.Infof("Received signal SIGRTMIN+21: LogLevel is already '%s'", currentLevel) - } else { - logger.SetLogLevel(logrus.TraceLevel) - log.Infof("Received signal SIGRTMIN+21: switching from LogLevel '%s' to '%s'", currentLevel, logger.GetLogLevel()) - } - case tgsyscall.SIGRTMIN_22: // SIGRTMIN+22 - logger.SetLogLevel(defaultLevel) - log.Infof("Received signal SIGRTMIN+22: resetting original LogLevel '%s'", logger.GetLogLevel()) - } - } + s := <-sigs + // if we receive a signal, call cancel so that contexts are finalized, which will + // leads to normally return from tetragonExecute(). + log.Infof("Received signal %s, shutting down...", s) + cancel() }() // start sensor manager, and have it wait on sensorMgWait until we load diff --git a/contrib/tetragon-rthooks/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors.pb.go b/contrib/tetragon-rthooks/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors.pb.go index 4155e365645..49e4f154ccb 100644 --- a/contrib/tetragon-rthooks/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors.pb.go +++ b/contrib/tetragon-rthooks/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors.pb.go @@ -91,6 +91,111 @@ func (TracingPolicyState) EnumDescriptor() ([]byte, []int) { return file_tetragon_sensors_proto_rawDescGZIP(), []int{0} } +// For now, we only want to support debug-related config flags to be configurable. +type ConfigFlag int32 + +const ( + ConfigFlag_CONFIG_FLAG_LOG_LEVEL ConfigFlag = 0 +) + +// Enum value maps for ConfigFlag. +var ( + ConfigFlag_name = map[int32]string{ + 0: "CONFIG_FLAG_LOG_LEVEL", + } + ConfigFlag_value = map[string]int32{ + "CONFIG_FLAG_LOG_LEVEL": 0, + } +) + +func (x ConfigFlag) Enum() *ConfigFlag { + p := new(ConfigFlag) + *p = x + return p +} + +func (x ConfigFlag) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ConfigFlag) Descriptor() protoreflect.EnumDescriptor { + return file_tetragon_sensors_proto_enumTypes[1].Descriptor() +} + +func (ConfigFlag) Type() protoreflect.EnumType { + return &file_tetragon_sensors_proto_enumTypes[1] +} + +func (x ConfigFlag) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ConfigFlag.Descriptor instead. +func (ConfigFlag) EnumDescriptor() ([]byte, []int) { + return file_tetragon_sensors_proto_rawDescGZIP(), []int{1} +} + +type LogLevel int32 + +const ( + LogLevel_LOG_LEVEL_PANIC LogLevel = 0 + LogLevel_LOG_LEVEL_FATAL LogLevel = 1 + LogLevel_LOG_LEVEL_ERROR LogLevel = 2 + LogLevel_LOG_LEVEL_WARN LogLevel = 3 + LogLevel_LOG_LEVEL_INFO LogLevel = 4 + LogLevel_LOG_LEVEL_DEBUG LogLevel = 5 + LogLevel_LOG_LEVEL_TRACE LogLevel = 6 +) + +// Enum value maps for LogLevel. +var ( + LogLevel_name = map[int32]string{ + 0: "LOG_LEVEL_PANIC", + 1: "LOG_LEVEL_FATAL", + 2: "LOG_LEVEL_ERROR", + 3: "LOG_LEVEL_WARN", + 4: "LOG_LEVEL_INFO", + 5: "LOG_LEVEL_DEBUG", + 6: "LOG_LEVEL_TRACE", + } + LogLevel_value = map[string]int32{ + "LOG_LEVEL_PANIC": 0, + "LOG_LEVEL_FATAL": 1, + "LOG_LEVEL_ERROR": 2, + "LOG_LEVEL_WARN": 3, + "LOG_LEVEL_INFO": 4, + "LOG_LEVEL_DEBUG": 5, + "LOG_LEVEL_TRACE": 6, + } +) + +func (x LogLevel) Enum() *LogLevel { + p := new(LogLevel) + *p = x + return p +} + +func (x LogLevel) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (LogLevel) Descriptor() protoreflect.EnumDescriptor { + return file_tetragon_sensors_proto_enumTypes[2].Descriptor() +} + +func (LogLevel) Type() protoreflect.EnumType { + return &file_tetragon_sensors_proto_enumTypes[2] +} + +func (x LogLevel) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use LogLevel.Descriptor instead. +func (LogLevel) EnumDescriptor() ([]byte, []int) { + return file_tetragon_sensors_proto_rawDescGZIP(), []int{2} +} + type ListSensorsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1248,6 +1353,218 @@ func (x *GetVersionResponse) GetVersion() string { return "" } +type GetDebugRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Flag ConfigFlag `protobuf:"varint,1,opt,name=flag,proto3,enum=tetragon.ConfigFlag" json:"flag,omitempty"` +} + +func (x *GetDebugRequest) Reset() { + *x = GetDebugRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_tetragon_sensors_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetDebugRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDebugRequest) ProtoMessage() {} + +func (x *GetDebugRequest) ProtoReflect() protoreflect.Message { + mi := &file_tetragon_sensors_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetDebugRequest.ProtoReflect.Descriptor instead. +func (*GetDebugRequest) Descriptor() ([]byte, []int) { + return file_tetragon_sensors_proto_rawDescGZIP(), []int{24} +} + +func (x *GetDebugRequest) GetFlag() ConfigFlag { + if x != nil { + return x.Flag + } + return ConfigFlag_CONFIG_FLAG_LOG_LEVEL +} + +type GetDebugResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Flag ConfigFlag `protobuf:"varint,1,opt,name=flag,proto3,enum=tetragon.ConfigFlag" json:"flag,omitempty"` + Level LogLevel `protobuf:"varint,2,opt,name=level,proto3,enum=tetragon.LogLevel" json:"level,omitempty"` +} + +func (x *GetDebugResponse) Reset() { + *x = GetDebugResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_tetragon_sensors_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetDebugResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDebugResponse) ProtoMessage() {} + +func (x *GetDebugResponse) ProtoReflect() protoreflect.Message { + mi := &file_tetragon_sensors_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetDebugResponse.ProtoReflect.Descriptor instead. +func (*GetDebugResponse) Descriptor() ([]byte, []int) { + return file_tetragon_sensors_proto_rawDescGZIP(), []int{25} +} + +func (x *GetDebugResponse) GetFlag() ConfigFlag { + if x != nil { + return x.Flag + } + return ConfigFlag_CONFIG_FLAG_LOG_LEVEL +} + +func (x *GetDebugResponse) GetLevel() LogLevel { + if x != nil { + return x.Level + } + return LogLevel_LOG_LEVEL_PANIC +} + +type SetDebugRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Flag ConfigFlag `protobuf:"varint,1,opt,name=flag,proto3,enum=tetragon.ConfigFlag" json:"flag,omitempty"` + Level LogLevel `protobuf:"varint,2,opt,name=level,proto3,enum=tetragon.LogLevel" json:"level,omitempty"` +} + +func (x *SetDebugRequest) Reset() { + *x = SetDebugRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_tetragon_sensors_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetDebugRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetDebugRequest) ProtoMessage() {} + +func (x *SetDebugRequest) ProtoReflect() protoreflect.Message { + mi := &file_tetragon_sensors_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetDebugRequest.ProtoReflect.Descriptor instead. +func (*SetDebugRequest) Descriptor() ([]byte, []int) { + return file_tetragon_sensors_proto_rawDescGZIP(), []int{26} +} + +func (x *SetDebugRequest) GetFlag() ConfigFlag { + if x != nil { + return x.Flag + } + return ConfigFlag_CONFIG_FLAG_LOG_LEVEL +} + +func (x *SetDebugRequest) GetLevel() LogLevel { + if x != nil { + return x.Level + } + return LogLevel_LOG_LEVEL_PANIC +} + +type SetDebugResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Flag ConfigFlag `protobuf:"varint,1,opt,name=flag,proto3,enum=tetragon.ConfigFlag" json:"flag,omitempty"` + Level LogLevel `protobuf:"varint,2,opt,name=level,proto3,enum=tetragon.LogLevel" json:"level,omitempty"` +} + +func (x *SetDebugResponse) Reset() { + *x = SetDebugResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_tetragon_sensors_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetDebugResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetDebugResponse) ProtoMessage() {} + +func (x *SetDebugResponse) ProtoReflect() protoreflect.Message { + mi := &file_tetragon_sensors_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetDebugResponse.ProtoReflect.Descriptor instead. +func (*SetDebugResponse) Descriptor() ([]byte, []int) { + return file_tetragon_sensors_proto_rawDescGZIP(), []int{27} +} + +func (x *SetDebugResponse) GetFlag() ConfigFlag { + if x != nil { + return x.Flag + } + return ConfigFlag_CONFIG_FLAG_LOG_LEVEL +} + +func (x *SetDebugResponse) GetLevel() LogLevel { + if x != nil { + return x.Level + } + return LogLevel_LOG_LEVEL_PANIC +} + var File_tetragon_sensors_proto protoreflect.FileDescriptor var file_tetragon_sensors_proto_rawDesc = []byte{ @@ -1343,99 +1660,143 @@ var file_tetragon_sensors_proto_rawDesc = []byte{ 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x2e, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2a, - 0xb2, 0x01, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, - 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, - 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, - 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x50, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, - 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, - 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x45, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, - 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x49, - 0x4e, 0x47, 0x10, 0x06, 0x32, 0xf4, 0x09, 0x0a, 0x13, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x75, 0x69, - 0x64, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73, 0x12, 0x48, 0x0a, 0x09, - 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, - 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, - 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x52, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, - 0x6c, 0x74, 0x68, 0x12, 0x20, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, - 0x65, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, - 0x2e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x10, 0x41, 0x64, - 0x64, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x21, - 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x72, 0x61, - 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x22, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x64, - 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x24, - 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x64, 0x0a, - 0x13, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x69, 0x65, 0x73, 0x12, 0x24, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x74, 0x65, 0x74, - 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, - 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x13, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, - 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x24, 0x2e, 0x74, 0x65, 0x74, - 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, - 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x25, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x14, 0x44, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x12, 0x25, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, - 0x67, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, + 0x3b, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x14, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x22, 0x66, 0x0a, 0x10, + 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x28, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, + 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x46, 0x6c, 0x61, 0x67, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x28, 0x0a, 0x05, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x65, 0x74, 0x72, + 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x22, 0x65, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, + 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x04, 0x66, 0x6c, 0x61, + 0x67, 0x12, 0x28, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x12, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x66, 0x0a, 0x10, 0x53, + 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x28, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, + 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46, + 0x6c, 0x61, 0x67, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x28, 0x0a, 0x05, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, + 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x2a, 0xb2, 0x01, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x50, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, + 0x12, 0x14, 0x0a, 0x10, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x41, + 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x17, 0x0a, + 0x13, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, + 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x50, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x05, + 0x12, 0x16, 0x0a, 0x12, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4c, + 0x4f, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x2a, 0x27, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, + 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x10, + 0x00, 0x2a, 0x9b, 0x01, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x13, + 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x50, 0x41, 0x4e, 0x49, + 0x43, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, + 0x5f, 0x46, 0x41, 0x54, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, + 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x12, 0x0a, + 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x10, + 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x49, + 0x4e, 0x46, 0x4f, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, + 0x45, 0x4c, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, + 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x10, 0x06, 0x32, + 0xfe, 0x0a, 0x0a, 0x13, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x75, 0x69, 0x64, 0x61, 0x6e, 0x63, 0x65, + 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, + 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1b, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, + 0x01, 0x12, 0x52, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x20, + 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x21, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x48, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x54, 0x72, 0x61, 0x63, + 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x21, 0x2e, 0x74, 0x65, 0x74, 0x72, + 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x74, + 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, - 0x73, 0x12, 0x1c, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1d, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, - 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, - 0x88, 0x02, 0x01, 0x12, 0x52, 0x0a, 0x0c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, - 0x73, 0x6f, 0x72, 0x12, 0x1d, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x55, 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x12, 0x1e, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, - 0x67, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, - 0x67, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x52, - 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x12, 0x1d, - 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x22, 0x00, 0x12, 0x64, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x72, 0x61, 0x63, + 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x24, 0x2e, 0x74, 0x65, 0x74, 0x72, + 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, + 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x25, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, + 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, + 0x24, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, + 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x64, + 0x0a, 0x13, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x24, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, + 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x74, 0x65, + 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, + 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x14, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, + 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x25, 0x2e, 0x74, + 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, + 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x44, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, + 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73, 0x12, 0x1c, 0x2e, 0x74, + 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x73, + 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x74, 0x65, 0x74, + 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x52, + 0x0a, 0x0c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x12, 0x1d, + 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, - 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, + 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, - 0x02, 0x01, 0x12, 0x5e, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x54, 0x72, 0x65, 0x65, 0x12, 0x22, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, - 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, - 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x74, 0x65, - 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x1b, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, - 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, - 0x0b, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x12, 0x1c, 0x2e, 0x74, - 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, - 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x74, 0x65, 0x74, - 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x6f, - 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x02, 0x01, 0x12, 0x55, 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, + 0x73, 0x6f, 0x72, 0x12, 0x1e, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x44, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x44, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x52, 0x0a, 0x0c, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x12, 0x1d, 0x2e, 0x74, 0x65, 0x74, 0x72, + 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, + 0x67, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x5e, 0x0a, + 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x54, 0x72, + 0x65, 0x65, 0x12, 0x22, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x54, 0x72, 0x65, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, + 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x54, + 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x49, 0x0a, + 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x2e, 0x74, 0x65, + 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, + 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0b, 0x52, 0x75, 0x6e, 0x74, + 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x12, 0x1c, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, + 0x6f, 0x6e, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, + 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, + 0x75, 0x67, 0x12, 0x19, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, + 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, + 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, + 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x08, 0x53, + 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x12, 0x19, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, + 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x53, 0x65, + 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1450,80 +1811,97 @@ func file_tetragon_sensors_proto_rawDescGZIP() []byte { return file_tetragon_sensors_proto_rawDescData } -var file_tetragon_sensors_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_tetragon_sensors_proto_msgTypes = make([]protoimpl.MessageInfo, 24) +var file_tetragon_sensors_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_tetragon_sensors_proto_msgTypes = make([]protoimpl.MessageInfo, 28) var file_tetragon_sensors_proto_goTypes = []interface{}{ (TracingPolicyState)(0), // 0: tetragon.TracingPolicyState - (*ListSensorsRequest)(nil), // 1: tetragon.ListSensorsRequest - (*SensorStatus)(nil), // 2: tetragon.SensorStatus - (*ListSensorsResponse)(nil), // 3: tetragon.ListSensorsResponse - (*ListTracingPoliciesRequest)(nil), // 4: tetragon.ListTracingPoliciesRequest - (*TracingPolicyStatus)(nil), // 5: tetragon.TracingPolicyStatus - (*ListTracingPoliciesResponse)(nil), // 6: tetragon.ListTracingPoliciesResponse - (*AddTracingPolicyRequest)(nil), // 7: tetragon.AddTracingPolicyRequest - (*AddTracingPolicyResponse)(nil), // 8: tetragon.AddTracingPolicyResponse - (*DeleteTracingPolicyRequest)(nil), // 9: tetragon.DeleteTracingPolicyRequest - (*DeleteTracingPolicyResponse)(nil), // 10: tetragon.DeleteTracingPolicyResponse - (*EnableTracingPolicyRequest)(nil), // 11: tetragon.EnableTracingPolicyRequest - (*EnableTracingPolicyResponse)(nil), // 12: tetragon.EnableTracingPolicyResponse - (*DisableTracingPolicyRequest)(nil), // 13: tetragon.DisableTracingPolicyRequest - (*DisableTracingPolicyResponse)(nil), // 14: tetragon.DisableTracingPolicyResponse - (*RemoveSensorRequest)(nil), // 15: tetragon.RemoveSensorRequest - (*RemoveSensorResponse)(nil), // 16: tetragon.RemoveSensorResponse - (*EnableSensorRequest)(nil), // 17: tetragon.EnableSensorRequest - (*EnableSensorResponse)(nil), // 18: tetragon.EnableSensorResponse - (*DisableSensorRequest)(nil), // 19: tetragon.DisableSensorRequest - (*DisableSensorResponse)(nil), // 20: tetragon.DisableSensorResponse - (*GetStackTraceTreeRequest)(nil), // 21: tetragon.GetStackTraceTreeRequest - (*GetStackTraceTreeResponse)(nil), // 22: tetragon.GetStackTraceTreeResponse - (*GetVersionRequest)(nil), // 23: tetragon.GetVersionRequest - (*GetVersionResponse)(nil), // 24: tetragon.GetVersionResponse - (*StackTraceNode)(nil), // 25: tetragon.StackTraceNode - (*GetEventsRequest)(nil), // 26: tetragon.GetEventsRequest - (*GetHealthStatusRequest)(nil), // 27: tetragon.GetHealthStatusRequest - (*RuntimeHookRequest)(nil), // 28: tetragon.RuntimeHookRequest - (*GetEventsResponse)(nil), // 29: tetragon.GetEventsResponse - (*GetHealthStatusResponse)(nil), // 30: tetragon.GetHealthStatusResponse - (*RuntimeHookResponse)(nil), // 31: tetragon.RuntimeHookResponse + (ConfigFlag)(0), // 1: tetragon.ConfigFlag + (LogLevel)(0), // 2: tetragon.LogLevel + (*ListSensorsRequest)(nil), // 3: tetragon.ListSensorsRequest + (*SensorStatus)(nil), // 4: tetragon.SensorStatus + (*ListSensorsResponse)(nil), // 5: tetragon.ListSensorsResponse + (*ListTracingPoliciesRequest)(nil), // 6: tetragon.ListTracingPoliciesRequest + (*TracingPolicyStatus)(nil), // 7: tetragon.TracingPolicyStatus + (*ListTracingPoliciesResponse)(nil), // 8: tetragon.ListTracingPoliciesResponse + (*AddTracingPolicyRequest)(nil), // 9: tetragon.AddTracingPolicyRequest + (*AddTracingPolicyResponse)(nil), // 10: tetragon.AddTracingPolicyResponse + (*DeleteTracingPolicyRequest)(nil), // 11: tetragon.DeleteTracingPolicyRequest + (*DeleteTracingPolicyResponse)(nil), // 12: tetragon.DeleteTracingPolicyResponse + (*EnableTracingPolicyRequest)(nil), // 13: tetragon.EnableTracingPolicyRequest + (*EnableTracingPolicyResponse)(nil), // 14: tetragon.EnableTracingPolicyResponse + (*DisableTracingPolicyRequest)(nil), // 15: tetragon.DisableTracingPolicyRequest + (*DisableTracingPolicyResponse)(nil), // 16: tetragon.DisableTracingPolicyResponse + (*RemoveSensorRequest)(nil), // 17: tetragon.RemoveSensorRequest + (*RemoveSensorResponse)(nil), // 18: tetragon.RemoveSensorResponse + (*EnableSensorRequest)(nil), // 19: tetragon.EnableSensorRequest + (*EnableSensorResponse)(nil), // 20: tetragon.EnableSensorResponse + (*DisableSensorRequest)(nil), // 21: tetragon.DisableSensorRequest + (*DisableSensorResponse)(nil), // 22: tetragon.DisableSensorResponse + (*GetStackTraceTreeRequest)(nil), // 23: tetragon.GetStackTraceTreeRequest + (*GetStackTraceTreeResponse)(nil), // 24: tetragon.GetStackTraceTreeResponse + (*GetVersionRequest)(nil), // 25: tetragon.GetVersionRequest + (*GetVersionResponse)(nil), // 26: tetragon.GetVersionResponse + (*GetDebugRequest)(nil), // 27: tetragon.GetDebugRequest + (*GetDebugResponse)(nil), // 28: tetragon.GetDebugResponse + (*SetDebugRequest)(nil), // 29: tetragon.SetDebugRequest + (*SetDebugResponse)(nil), // 30: tetragon.SetDebugResponse + (*StackTraceNode)(nil), // 31: tetragon.StackTraceNode + (*GetEventsRequest)(nil), // 32: tetragon.GetEventsRequest + (*GetHealthStatusRequest)(nil), // 33: tetragon.GetHealthStatusRequest + (*RuntimeHookRequest)(nil), // 34: tetragon.RuntimeHookRequest + (*GetEventsResponse)(nil), // 35: tetragon.GetEventsResponse + (*GetHealthStatusResponse)(nil), // 36: tetragon.GetHealthStatusResponse + (*RuntimeHookResponse)(nil), // 37: tetragon.RuntimeHookResponse } var file_tetragon_sensors_proto_depIdxs = []int32{ - 2, // 0: tetragon.ListSensorsResponse.sensors:type_name -> tetragon.SensorStatus + 4, // 0: tetragon.ListSensorsResponse.sensors:type_name -> tetragon.SensorStatus 0, // 1: tetragon.TracingPolicyStatus.state:type_name -> tetragon.TracingPolicyState - 5, // 2: tetragon.ListTracingPoliciesResponse.policies:type_name -> tetragon.TracingPolicyStatus - 25, // 3: tetragon.GetStackTraceTreeResponse.root:type_name -> tetragon.StackTraceNode - 26, // 4: tetragon.FineGuidanceSensors.GetEvents:input_type -> tetragon.GetEventsRequest - 27, // 5: tetragon.FineGuidanceSensors.GetHealth:input_type -> tetragon.GetHealthStatusRequest - 7, // 6: tetragon.FineGuidanceSensors.AddTracingPolicy:input_type -> tetragon.AddTracingPolicyRequest - 9, // 7: tetragon.FineGuidanceSensors.DeleteTracingPolicy:input_type -> tetragon.DeleteTracingPolicyRequest - 4, // 8: tetragon.FineGuidanceSensors.ListTracingPolicies:input_type -> tetragon.ListTracingPoliciesRequest - 11, // 9: tetragon.FineGuidanceSensors.EnableTracingPolicy:input_type -> tetragon.EnableTracingPolicyRequest - 13, // 10: tetragon.FineGuidanceSensors.DisableTracingPolicy:input_type -> tetragon.DisableTracingPolicyRequest - 1, // 11: tetragon.FineGuidanceSensors.ListSensors:input_type -> tetragon.ListSensorsRequest - 17, // 12: tetragon.FineGuidanceSensors.EnableSensor:input_type -> tetragon.EnableSensorRequest - 19, // 13: tetragon.FineGuidanceSensors.DisableSensor:input_type -> tetragon.DisableSensorRequest - 15, // 14: tetragon.FineGuidanceSensors.RemoveSensor:input_type -> tetragon.RemoveSensorRequest - 21, // 15: tetragon.FineGuidanceSensors.GetStackTraceTree:input_type -> tetragon.GetStackTraceTreeRequest - 23, // 16: tetragon.FineGuidanceSensors.GetVersion:input_type -> tetragon.GetVersionRequest - 28, // 17: tetragon.FineGuidanceSensors.RuntimeHook:input_type -> tetragon.RuntimeHookRequest - 29, // 18: tetragon.FineGuidanceSensors.GetEvents:output_type -> tetragon.GetEventsResponse - 30, // 19: tetragon.FineGuidanceSensors.GetHealth:output_type -> tetragon.GetHealthStatusResponse - 8, // 20: tetragon.FineGuidanceSensors.AddTracingPolicy:output_type -> tetragon.AddTracingPolicyResponse - 10, // 21: tetragon.FineGuidanceSensors.DeleteTracingPolicy:output_type -> tetragon.DeleteTracingPolicyResponse - 6, // 22: tetragon.FineGuidanceSensors.ListTracingPolicies:output_type -> tetragon.ListTracingPoliciesResponse - 12, // 23: tetragon.FineGuidanceSensors.EnableTracingPolicy:output_type -> tetragon.EnableTracingPolicyResponse - 14, // 24: tetragon.FineGuidanceSensors.DisableTracingPolicy:output_type -> tetragon.DisableTracingPolicyResponse - 3, // 25: tetragon.FineGuidanceSensors.ListSensors:output_type -> tetragon.ListSensorsResponse - 18, // 26: tetragon.FineGuidanceSensors.EnableSensor:output_type -> tetragon.EnableSensorResponse - 20, // 27: tetragon.FineGuidanceSensors.DisableSensor:output_type -> tetragon.DisableSensorResponse - 16, // 28: tetragon.FineGuidanceSensors.RemoveSensor:output_type -> tetragon.RemoveSensorResponse - 22, // 29: tetragon.FineGuidanceSensors.GetStackTraceTree:output_type -> tetragon.GetStackTraceTreeResponse - 24, // 30: tetragon.FineGuidanceSensors.GetVersion:output_type -> tetragon.GetVersionResponse - 31, // 31: tetragon.FineGuidanceSensors.RuntimeHook:output_type -> tetragon.RuntimeHookResponse - 18, // [18:32] is the sub-list for method output_type - 4, // [4:18] is the sub-list for method input_type - 4, // [4:4] is the sub-list for extension type_name - 4, // [4:4] is the sub-list for extension extendee - 0, // [0:4] is the sub-list for field type_name + 7, // 2: tetragon.ListTracingPoliciesResponse.policies:type_name -> tetragon.TracingPolicyStatus + 31, // 3: tetragon.GetStackTraceTreeResponse.root:type_name -> tetragon.StackTraceNode + 1, // 4: tetragon.GetDebugRequest.flag:type_name -> tetragon.ConfigFlag + 1, // 5: tetragon.GetDebugResponse.flag:type_name -> tetragon.ConfigFlag + 2, // 6: tetragon.GetDebugResponse.level:type_name -> tetragon.LogLevel + 1, // 7: tetragon.SetDebugRequest.flag:type_name -> tetragon.ConfigFlag + 2, // 8: tetragon.SetDebugRequest.level:type_name -> tetragon.LogLevel + 1, // 9: tetragon.SetDebugResponse.flag:type_name -> tetragon.ConfigFlag + 2, // 10: tetragon.SetDebugResponse.level:type_name -> tetragon.LogLevel + 32, // 11: tetragon.FineGuidanceSensors.GetEvents:input_type -> tetragon.GetEventsRequest + 33, // 12: tetragon.FineGuidanceSensors.GetHealth:input_type -> tetragon.GetHealthStatusRequest + 9, // 13: tetragon.FineGuidanceSensors.AddTracingPolicy:input_type -> tetragon.AddTracingPolicyRequest + 11, // 14: tetragon.FineGuidanceSensors.DeleteTracingPolicy:input_type -> tetragon.DeleteTracingPolicyRequest + 6, // 15: tetragon.FineGuidanceSensors.ListTracingPolicies:input_type -> tetragon.ListTracingPoliciesRequest + 13, // 16: tetragon.FineGuidanceSensors.EnableTracingPolicy:input_type -> tetragon.EnableTracingPolicyRequest + 15, // 17: tetragon.FineGuidanceSensors.DisableTracingPolicy:input_type -> tetragon.DisableTracingPolicyRequest + 3, // 18: tetragon.FineGuidanceSensors.ListSensors:input_type -> tetragon.ListSensorsRequest + 19, // 19: tetragon.FineGuidanceSensors.EnableSensor:input_type -> tetragon.EnableSensorRequest + 21, // 20: tetragon.FineGuidanceSensors.DisableSensor:input_type -> tetragon.DisableSensorRequest + 17, // 21: tetragon.FineGuidanceSensors.RemoveSensor:input_type -> tetragon.RemoveSensorRequest + 23, // 22: tetragon.FineGuidanceSensors.GetStackTraceTree:input_type -> tetragon.GetStackTraceTreeRequest + 25, // 23: tetragon.FineGuidanceSensors.GetVersion:input_type -> tetragon.GetVersionRequest + 34, // 24: tetragon.FineGuidanceSensors.RuntimeHook:input_type -> tetragon.RuntimeHookRequest + 27, // 25: tetragon.FineGuidanceSensors.GetDebug:input_type -> tetragon.GetDebugRequest + 29, // 26: tetragon.FineGuidanceSensors.SetDebug:input_type -> tetragon.SetDebugRequest + 35, // 27: tetragon.FineGuidanceSensors.GetEvents:output_type -> tetragon.GetEventsResponse + 36, // 28: tetragon.FineGuidanceSensors.GetHealth:output_type -> tetragon.GetHealthStatusResponse + 10, // 29: tetragon.FineGuidanceSensors.AddTracingPolicy:output_type -> tetragon.AddTracingPolicyResponse + 12, // 30: tetragon.FineGuidanceSensors.DeleteTracingPolicy:output_type -> tetragon.DeleteTracingPolicyResponse + 8, // 31: tetragon.FineGuidanceSensors.ListTracingPolicies:output_type -> tetragon.ListTracingPoliciesResponse + 14, // 32: tetragon.FineGuidanceSensors.EnableTracingPolicy:output_type -> tetragon.EnableTracingPolicyResponse + 16, // 33: tetragon.FineGuidanceSensors.DisableTracingPolicy:output_type -> tetragon.DisableTracingPolicyResponse + 5, // 34: tetragon.FineGuidanceSensors.ListSensors:output_type -> tetragon.ListSensorsResponse + 20, // 35: tetragon.FineGuidanceSensors.EnableSensor:output_type -> tetragon.EnableSensorResponse + 22, // 36: tetragon.FineGuidanceSensors.DisableSensor:output_type -> tetragon.DisableSensorResponse + 18, // 37: tetragon.FineGuidanceSensors.RemoveSensor:output_type -> tetragon.RemoveSensorResponse + 24, // 38: tetragon.FineGuidanceSensors.GetStackTraceTree:output_type -> tetragon.GetStackTraceTreeResponse + 26, // 39: tetragon.FineGuidanceSensors.GetVersion:output_type -> tetragon.GetVersionResponse + 37, // 40: tetragon.FineGuidanceSensors.RuntimeHook:output_type -> tetragon.RuntimeHookResponse + 28, // 41: tetragon.FineGuidanceSensors.GetDebug:output_type -> tetragon.GetDebugResponse + 30, // 42: tetragon.FineGuidanceSensors.SetDebug:output_type -> tetragon.SetDebugResponse + 27, // [27:43] is the sub-list for method output_type + 11, // [11:27] is the sub-list for method input_type + 11, // [11:11] is the sub-list for extension type_name + 11, // [11:11] is the sub-list for extension extendee + 0, // [0:11] is the sub-list for field type_name } func init() { file_tetragon_sensors_proto_init() } @@ -1823,14 +2201,62 @@ func file_tetragon_sensors_proto_init() { return nil } } + file_tetragon_sensors_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDebugRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_tetragon_sensors_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDebugResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_tetragon_sensors_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetDebugRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_tetragon_sensors_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetDebugResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_tetragon_sensors_proto_rawDesc, - NumEnums: 1, - NumMessages: 24, + NumEnums: 3, + NumMessages: 28, NumExtensions: 0, NumServices: 1, }, diff --git a/contrib/tetragon-rthooks/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors.pb.json.go b/contrib/tetragon-rthooks/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors.pb.json.go index 59292ec3623..a9d01c00e30 100644 --- a/contrib/tetragon-rthooks/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors.pb.json.go +++ b/contrib/tetragon-rthooks/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors.pb.json.go @@ -390,3 +390,67 @@ func (msg *GetVersionResponse) UnmarshalJSON(b []byte) error { DiscardUnknown: false, }.Unmarshal(b, msg) } + +// MarshalJSON implements json.Marshaler +func (msg *GetDebugRequest) MarshalJSON() ([]byte, error) { + return protojson.MarshalOptions{ + UseEnumNumbers: false, + EmitUnpopulated: false, + UseProtoNames: true, + }.Marshal(msg) +} + +// UnmarshalJSON implements json.Unmarshaler +func (msg *GetDebugRequest) UnmarshalJSON(b []byte) error { + return protojson.UnmarshalOptions{ + DiscardUnknown: false, + }.Unmarshal(b, msg) +} + +// MarshalJSON implements json.Marshaler +func (msg *GetDebugResponse) MarshalJSON() ([]byte, error) { + return protojson.MarshalOptions{ + UseEnumNumbers: false, + EmitUnpopulated: false, + UseProtoNames: true, + }.Marshal(msg) +} + +// UnmarshalJSON implements json.Unmarshaler +func (msg *GetDebugResponse) UnmarshalJSON(b []byte) error { + return protojson.UnmarshalOptions{ + DiscardUnknown: false, + }.Unmarshal(b, msg) +} + +// MarshalJSON implements json.Marshaler +func (msg *SetDebugRequest) MarshalJSON() ([]byte, error) { + return protojson.MarshalOptions{ + UseEnumNumbers: false, + EmitUnpopulated: false, + UseProtoNames: true, + }.Marshal(msg) +} + +// UnmarshalJSON implements json.Unmarshaler +func (msg *SetDebugRequest) UnmarshalJSON(b []byte) error { + return protojson.UnmarshalOptions{ + DiscardUnknown: false, + }.Unmarshal(b, msg) +} + +// MarshalJSON implements json.Marshaler +func (msg *SetDebugResponse) MarshalJSON() ([]byte, error) { + return protojson.MarshalOptions{ + UseEnumNumbers: false, + EmitUnpopulated: false, + UseProtoNames: true, + }.Marshal(msg) +} + +// UnmarshalJSON implements json.Unmarshaler +func (msg *SetDebugResponse) UnmarshalJSON(b []byte) error { + return protojson.UnmarshalOptions{ + DiscardUnknown: false, + }.Unmarshal(b, msg) +} diff --git a/contrib/tetragon-rthooks/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors.proto b/contrib/tetragon-rthooks/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors.proto index a3116082fd8..930228dba78 100644 --- a/contrib/tetragon-rthooks/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors.proto +++ b/contrib/tetragon-rthooks/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors.proto @@ -125,6 +125,38 @@ message GetVersionResponse{ string version = 1; } +// For now, we only want to support debug-related config flags to be configurable. +enum ConfigFlag { + CONFIG_FLAG_LOG_LEVEL = 0; +} + +enum LogLevel { + LOG_LEVEL_PANIC = 0; + LOG_LEVEL_FATAL = 1; + LOG_LEVEL_ERROR = 2; + LOG_LEVEL_WARN = 3; + LOG_LEVEL_INFO = 4; + LOG_LEVEL_DEBUG = 5; + LOG_LEVEL_TRACE = 6; +} + +message GetDebugRequest{ + ConfigFlag flag = 1; +} +message GetDebugResponse{ + ConfigFlag flag = 1; + LogLevel level = 2; +} + +message SetDebugRequest{ + ConfigFlag flag = 1; + LogLevel level = 2; +} +message SetDebugResponse{ + ConfigFlag flag = 1; + LogLevel level = 2; +} + service FineGuidanceSensors { rpc GetEvents(GetEventsRequest) returns (stream GetEventsResponse) {} rpc GetHealth(GetHealthStatusRequest) returns (GetHealthStatusResponse) {} @@ -153,4 +185,7 @@ service FineGuidanceSensors { rpc GetVersion(GetVersionRequest) returns (GetVersionResponse) {} rpc RuntimeHook(RuntimeHookRequest) returns (RuntimeHookResponse) {} + + rpc GetDebug(GetDebugRequest) returns (GetDebugResponse) {} + rpc SetDebug(SetDebugRequest) returns (SetDebugResponse) {} } diff --git a/contrib/tetragon-rthooks/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors_grpc.pb.go b/contrib/tetragon-rthooks/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors_grpc.pb.go index a10166a047e..515f905c1b2 100644 --- a/contrib/tetragon-rthooks/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors_grpc.pb.go +++ b/contrib/tetragon-rthooks/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors_grpc.pb.go @@ -36,6 +36,8 @@ const ( FineGuidanceSensors_GetStackTraceTree_FullMethodName = "/tetragon.FineGuidanceSensors/GetStackTraceTree" FineGuidanceSensors_GetVersion_FullMethodName = "/tetragon.FineGuidanceSensors/GetVersion" FineGuidanceSensors_RuntimeHook_FullMethodName = "/tetragon.FineGuidanceSensors/RuntimeHook" + FineGuidanceSensors_GetDebug_FullMethodName = "/tetragon.FineGuidanceSensors/GetDebug" + FineGuidanceSensors_SetDebug_FullMethodName = "/tetragon.FineGuidanceSensors/SetDebug" ) // FineGuidanceSensorsClient is the client API for FineGuidanceSensors service. @@ -60,6 +62,8 @@ type FineGuidanceSensorsClient interface { GetStackTraceTree(ctx context.Context, in *GetStackTraceTreeRequest, opts ...grpc.CallOption) (*GetStackTraceTreeResponse, error) GetVersion(ctx context.Context, in *GetVersionRequest, opts ...grpc.CallOption) (*GetVersionResponse, error) RuntimeHook(ctx context.Context, in *RuntimeHookRequest, opts ...grpc.CallOption) (*RuntimeHookResponse, error) + GetDebug(ctx context.Context, in *GetDebugRequest, opts ...grpc.CallOption) (*GetDebugResponse, error) + SetDebug(ctx context.Context, in *SetDebugRequest, opts ...grpc.CallOption) (*SetDebugResponse, error) } type fineGuidanceSensorsClient struct { @@ -223,6 +227,24 @@ func (c *fineGuidanceSensorsClient) RuntimeHook(ctx context.Context, in *Runtime return out, nil } +func (c *fineGuidanceSensorsClient) GetDebug(ctx context.Context, in *GetDebugRequest, opts ...grpc.CallOption) (*GetDebugResponse, error) { + out := new(GetDebugResponse) + err := c.cc.Invoke(ctx, FineGuidanceSensors_GetDebug_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *fineGuidanceSensorsClient) SetDebug(ctx context.Context, in *SetDebugRequest, opts ...grpc.CallOption) (*SetDebugResponse, error) { + out := new(SetDebugResponse) + err := c.cc.Invoke(ctx, FineGuidanceSensors_SetDebug_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // FineGuidanceSensorsServer is the server API for FineGuidanceSensors service. // All implementations should embed UnimplementedFineGuidanceSensorsServer // for forward compatibility @@ -245,6 +267,8 @@ type FineGuidanceSensorsServer interface { GetStackTraceTree(context.Context, *GetStackTraceTreeRequest) (*GetStackTraceTreeResponse, error) GetVersion(context.Context, *GetVersionRequest) (*GetVersionResponse, error) RuntimeHook(context.Context, *RuntimeHookRequest) (*RuntimeHookResponse, error) + GetDebug(context.Context, *GetDebugRequest) (*GetDebugResponse, error) + SetDebug(context.Context, *SetDebugRequest) (*SetDebugResponse, error) } // UnimplementedFineGuidanceSensorsServer should be embedded to have forward compatible implementations. @@ -293,6 +317,12 @@ func (UnimplementedFineGuidanceSensorsServer) GetVersion(context.Context, *GetVe func (UnimplementedFineGuidanceSensorsServer) RuntimeHook(context.Context, *RuntimeHookRequest) (*RuntimeHookResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method RuntimeHook not implemented") } +func (UnimplementedFineGuidanceSensorsServer) GetDebug(context.Context, *GetDebugRequest) (*GetDebugResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDebug not implemented") +} +func (UnimplementedFineGuidanceSensorsServer) SetDebug(context.Context, *SetDebugRequest) (*SetDebugResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetDebug not implemented") +} // UnsafeFineGuidanceSensorsServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to FineGuidanceSensorsServer will @@ -560,6 +590,42 @@ func _FineGuidanceSensors_RuntimeHook_Handler(srv interface{}, ctx context.Conte return interceptor(ctx, in, info, handler) } +func _FineGuidanceSensors_GetDebug_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetDebugRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FineGuidanceSensorsServer).GetDebug(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: FineGuidanceSensors_GetDebug_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FineGuidanceSensorsServer).GetDebug(ctx, req.(*GetDebugRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FineGuidanceSensors_SetDebug_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetDebugRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FineGuidanceSensorsServer).SetDebug(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: FineGuidanceSensors_SetDebug_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FineGuidanceSensorsServer).SetDebug(ctx, req.(*SetDebugRequest)) + } + return interceptor(ctx, in, info, handler) +} + // FineGuidanceSensors_ServiceDesc is the grpc.ServiceDesc for FineGuidanceSensors service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -619,6 +685,14 @@ var FineGuidanceSensors_ServiceDesc = grpc.ServiceDesc{ MethodName: "RuntimeHook", Handler: _FineGuidanceSensors_RuntimeHook_Handler, }, + { + MethodName: "GetDebug", + Handler: _FineGuidanceSensors_GetDebug_Handler, + }, + { + MethodName: "SetDebug", + Handler: _FineGuidanceSensors_SetDebug_Handler, + }, }, Streams: []grpc.StreamDesc{ { diff --git a/docs/content/en/docs/reference/grpc-api.md b/docs/content/en/docs/reference/grpc-api.md index e1e5441ee0a..2f4a850235e 100644 --- a/docs/content/en/docs/reference/grpc-api.md +++ b/docs/content/en/docs/reference/grpc-api.md @@ -1005,6 +1005,23 @@ Determines the behavior of a field filter ### EnableTracingPolicyResponse + + +### GetDebugRequest + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| flag | [ConfigFlag](#tetragon-ConfigFlag) | | | + + + +### GetDebugResponse + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| flag | [ConfigFlag](#tetragon-ConfigFlag) | | | +| level | [LogLevel](#tetragon-LogLevel) | | | + ### GetStackTraceTreeRequest @@ -1079,6 +1096,24 @@ Determines the behavior of a field filter | enabled | [bool](#bool) | | enabled marks whether the sensor is enabled | | collection | [string](#string) | | collection is the collection the sensor belongs to (typically a tracing policy) | + + +### SetDebugRequest + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| flag | [ConfigFlag](#tetragon-ConfigFlag) | | | +| level | [LogLevel](#tetragon-LogLevel) | | | + + + +### SetDebugResponse + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| flag | [ConfigFlag](#tetragon-ConfigFlag) | | | +| level | [LogLevel](#tetragon-LogLevel) | | | + ### TracingPolicyStatus @@ -1095,6 +1130,29 @@ Determines the behavior of a field filter | error | [string](#string) | | potential error of the policy | | state | [TracingPolicyState](#tetragon-TracingPolicyState) | | current state of the tracing policy | + + +### ConfigFlag +For now, we only want to support debug-related config flags to be configurable. + +| Name | Number | Description | +| ---- | ------ | ----------- | +| CONFIG_FLAG_LOG_LEVEL | 0 | | + + + +### LogLevel + +| Name | Number | Description | +| ---- | ------ | ----------- | +| LOG_LEVEL_PANIC | 0 | | +| LOG_LEVEL_FATAL | 1 | | +| LOG_LEVEL_ERROR | 2 | | +| LOG_LEVEL_WARN | 3 | | +| LOG_LEVEL_INFO | 4 | | +| LOG_LEVEL_DEBUG | 5 | | +| LOG_LEVEL_TRACE | 6 | | + ### TracingPolicyState @@ -1129,6 +1187,8 @@ Determines the behavior of a field filter | GetStackTraceTree | [GetStackTraceTreeRequest](#tetragon-GetStackTraceTreeRequest) | [GetStackTraceTreeResponse](#tetragon-GetStackTraceTreeResponse) | | | GetVersion | [GetVersionRequest](#tetragon-GetVersionRequest) | [GetVersionResponse](#tetragon-GetVersionResponse) | | | RuntimeHook | [RuntimeHookRequest](#tetragon-RuntimeHookRequest) | [RuntimeHookResponse](#tetragon-RuntimeHookResponse) | | +| GetDebug | [GetDebugRequest](#tetragon-GetDebugRequest) | [GetDebugResponse](#tetragon-GetDebugResponse) | | +| SetDebug | [SetDebugRequest](#tetragon-SetDebugRequest) | [SetDebugResponse](#tetragon-SetDebugResponse) | | ## Scalar Value Types diff --git a/docs/content/en/docs/troubleshooting/_index.md b/docs/content/en/docs/troubleshooting/_index.md index ca3e90adb3a..302d1b4572c 100644 --- a/docs/content/en/docs/troubleshooting/_index.md +++ b/docs/content/en/docs/troubleshooting/_index.md @@ -103,24 +103,27 @@ It is possible to change the log level of Tetragon's DaemonSet Pods by setting ### Change log level dynamically -It is possible to change the log level dynamically by sending the corresponding -signal to tetragon process. +It is possible to change the log level dynamically by using the `tetra loglevel` +sub-command. `tetra` needs access to Tetragon's gRPC server endpoint which can +be configured via `--server-address`. -* Change log level to debug level by sending the `SIGRTMIN+20` signal to tetragon pid: - - ```shell - sudo kill -s SIGRTMIN+20 $(pidof tetragon) - ``` +{{< warning >}} +Keep in mind that Tetragon's gRPC server is (by default) only exposed on +`localhost`. Also, it's important to understand that this only changes the log +level of the single Tetragon instance targeted with `--server-address` and not +all Tetragon instances when it's, for example, running as DaemonSet in a +Kubernetes environment. +{{< /warning >}} -* Change log level to trace level by sending the `SIGRTMIN+21` signal to tetragon pid: +* Get the current log level: ```shell - sudo kill -s SIGRTMIN+21 $(pidof tetragon) + tetra loglevel get ``` -* To Restore the original log level send the `SIGRTMIN+22` signal to tetragon pid: +* Dynamically change the log level. Allowed values are +`[trace|debug|info|warning|error|fatal|panic]`: ```shell - sudo kill -s SIGRTMIN+22 $(pidof tetragon) + tetra loglevel set debug ``` - diff --git a/pkg/logger/log.go b/pkg/logger/log.go index 40495ed18ab..68bf5db94ca 100644 --- a/pkg/logger/log.go +++ b/pkg/logger/log.go @@ -14,8 +14,8 @@ import ( type LogFormat string const ( - levelOpt = "level" - formatOpt = "format" + LevelOpt = "level" + FormatOpt = "format" logFormatText LogFormat = "text" logFormatJSON LogFormat = "json" @@ -58,7 +58,7 @@ func getFormatter(format LogFormat) (logrus.Formatter, error) { } func (o LogOptions) getLogLevel() (level logrus.Level) { - l, ok := o[levelOpt] + l, ok := o[LevelOpt] if !ok { return defaultLogLevel } @@ -72,7 +72,7 @@ func (o LogOptions) getLogLevel() (level logrus.Level) { } func (o LogOptions) getLogFormat() LogFormat { - format, ok := o[formatOpt] + format, ok := o[FormatOpt] if !ok { return defaultLogFormat } @@ -112,7 +112,7 @@ func PopulateLogOpts(o LogOptions, level string, format string) { if err != nil { logrus.WithError(fmt.Errorf("incorrect log level '%s'", level)).Warning("Ignoring user-configured log level") } else { - o[levelOpt] = level + o[LevelOpt] = level } } @@ -120,7 +120,7 @@ func PopulateLogOpts(o LogOptions, level string, format string) { format = strings.ToLower(format) switch LogFormat(format) { case logFormatText, logFormatJSON: - o[formatOpt] = format + o[FormatOpt] = format default: logrus.WithError(fmt.Errorf("incorrect log format '%s', expected 'text' or 'json'", format)).Warning("Ignoring user-configured log format") } diff --git a/pkg/server/server.go b/pkg/server/server.go index 3b8f1d0686b..2f4e5a655e4 100644 --- a/pkg/server/server.go +++ b/pkg/server/server.go @@ -378,3 +378,34 @@ func (s *Server) RuntimeHook(ctx context.Context, req *tetragon.RuntimeHookReque } return &tetragon.RuntimeHookResponse{}, nil } + +func (s *Server) GetDebug(_ context.Context, req *tetragon.GetDebugRequest) (*tetragon.GetDebugResponse, error) { + switch req.GetFlag() { + case tetragon.ConfigFlag_CONFIG_FLAG_LOG_LEVEL: + logger.GetLogger().Debugf("Client requested current log level: %s", logger.GetLogLevel().String()) + return &tetragon.GetDebugResponse{ + Flag: tetragon.ConfigFlag_CONFIG_FLAG_LOG_LEVEL, + Level: tetragon.LogLevel(logger.GetLogLevel()), + }, nil + default: + logger.GetLogger().WithField("request", req).Warnf("Client requested unknown config flag %d", req.GetFlag()) + return nil, fmt.Errorf("client requested unknown config flag %d", req.GetFlag()) + } +} + +func (s *Server) SetDebug(_ context.Context, req *tetragon.SetDebugRequest) (*tetragon.SetDebugResponse, error) { + switch req.GetFlag() { + case tetragon.ConfigFlag_CONFIG_FLAG_LOG_LEVEL: + currentLogLevel := logger.GetLogLevel() + changedLogLevel := logrus.Level(req.GetLevel()) + logger.SetLogLevel(changedLogLevel) + logger.GetLogger().WithField("request", req).Warnf("Log level changed from %s to %s", currentLogLevel, changedLogLevel.String()) + return &tetragon.SetDebugResponse{ + Flag: tetragon.ConfigFlag_CONFIG_FLAG_LOG_LEVEL, + Level: tetragon.LogLevel(changedLogLevel), + }, nil + default: + logger.GetLogger().WithField("request", req).Warnf("Client requested change of unknown config flag %d", req.GetFlag()) + return nil, fmt.Errorf("client requested change of unknown config flag %d", req.GetFlag()) + } +} diff --git a/pkg/server/server_test.go b/pkg/server/server_test.go new file mode 100644 index 00000000000..0131607cb05 --- /dev/null +++ b/pkg/server/server_test.go @@ -0,0 +1,82 @@ +// SPDX-License-Identifier: Apache-2.0 +// Copyright Authors of Tetragon + +package server + +import ( + "context" + "testing" + + "github.com/cilium/tetragon/api/v1/tetragon" + "github.com/cilium/tetragon/pkg/logger" + "github.com/sirupsen/logrus" +) + +func TestServer(t *testing.T) { + t.Run("GetDebug", TestGetDebug) + t.Run("SetDebug", TestSetDebug) +} + +func TestGetDebug(t *testing.T) { + srv := &Server{} + req := &tetragon.GetDebugRequest{Flag: tetragon.ConfigFlag_CONFIG_FLAG_LOG_LEVEL} + resp, err := srv.GetDebug(context.Background(), req) + if err != nil { + t.Errorf("Expected GetDebug to succeed, got error %v", err) + } + if resp.Flag != tetragon.ConfigFlag_CONFIG_FLAG_LOG_LEVEL { + t.Errorf("Expected flag in response to be %d, but got %d", tetragon.ConfigFlag_CONFIG_FLAG_LOG_LEVEL, resp.Flag) + } + expectedLogLevel := logger.GetLogLevel() + if resp.Level != tetragon.LogLevel(expectedLogLevel) { + t.Errorf("Expected log level in response to be %s, but got %s", expectedLogLevel.String(), resp.Level.String()) + } + + // Test unknown flag + req = &tetragon.GetDebugRequest{Flag: 42} + resp, err = srv.GetDebug(context.Background(), req) + if err == nil { + t.Errorf("Expected GetDebug to fail with error for unknown flag") + } + if resp != nil { + t.Errorf("Expected response to be nil for unknown flag, but got %v", resp) + } +} + +func TestSetDebug(t *testing.T) { + srv := &Server{} + req := &tetragon.SetDebugRequest{Flag: tetragon.ConfigFlag_CONFIG_FLAG_LOG_LEVEL, Level: tetragon.LogLevel(logrus.InfoLevel)} + resp, err := srv.SetDebug(context.Background(), req) + if err != nil { + t.Errorf("Expected SetDebug to succeed, got error %v", err) + } + if resp.Flag != tetragon.ConfigFlag_CONFIG_FLAG_LOG_LEVEL { + t.Errorf("Expected flag in response to be %d, but got %d", tetragon.ConfigFlag_CONFIG_FLAG_LOG_LEVEL, resp.Flag) + } + expectedLogLevel := logrus.InfoLevel + if resp.Level != tetragon.LogLevel(expectedLogLevel) { + t.Errorf("Expected log level in response to be %s, but got %s", expectedLogLevel.String(), resp.Level.String()) + } + + // Test unknown flag + req = &tetragon.SetDebugRequest{Flag: 42} + resp, err = srv.SetDebug(context.Background(), req) + if err == nil { + t.Errorf("Expected SetDebug to fail with error for unknown flag") + } + if resp != nil { + t.Errorf("Expected response to be nil for unknown flag, but got %v", resp) + } + + // Test changing log level + prevLogLevel := logger.GetLogLevel() + req = &tetragon.SetDebugRequest{Flag: tetragon.ConfigFlag_CONFIG_FLAG_LOG_LEVEL, Level: tetragon.LogLevel(logrus.DebugLevel)} + _, err = srv.SetDebug(context.Background(), req) + if err != nil { + t.Errorf("Expected SetDebug to succeed, got error %v", err) + } + newLogLevel := logger.GetLogLevel() + if prevLogLevel == newLogLevel { + t.Errorf("Expected log level to change, but it didn't") + } +} diff --git a/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors.pb.go b/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors.pb.go index 4155e365645..49e4f154ccb 100644 --- a/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors.pb.go +++ b/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors.pb.go @@ -91,6 +91,111 @@ func (TracingPolicyState) EnumDescriptor() ([]byte, []int) { return file_tetragon_sensors_proto_rawDescGZIP(), []int{0} } +// For now, we only want to support debug-related config flags to be configurable. +type ConfigFlag int32 + +const ( + ConfigFlag_CONFIG_FLAG_LOG_LEVEL ConfigFlag = 0 +) + +// Enum value maps for ConfigFlag. +var ( + ConfigFlag_name = map[int32]string{ + 0: "CONFIG_FLAG_LOG_LEVEL", + } + ConfigFlag_value = map[string]int32{ + "CONFIG_FLAG_LOG_LEVEL": 0, + } +) + +func (x ConfigFlag) Enum() *ConfigFlag { + p := new(ConfigFlag) + *p = x + return p +} + +func (x ConfigFlag) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ConfigFlag) Descriptor() protoreflect.EnumDescriptor { + return file_tetragon_sensors_proto_enumTypes[1].Descriptor() +} + +func (ConfigFlag) Type() protoreflect.EnumType { + return &file_tetragon_sensors_proto_enumTypes[1] +} + +func (x ConfigFlag) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ConfigFlag.Descriptor instead. +func (ConfigFlag) EnumDescriptor() ([]byte, []int) { + return file_tetragon_sensors_proto_rawDescGZIP(), []int{1} +} + +type LogLevel int32 + +const ( + LogLevel_LOG_LEVEL_PANIC LogLevel = 0 + LogLevel_LOG_LEVEL_FATAL LogLevel = 1 + LogLevel_LOG_LEVEL_ERROR LogLevel = 2 + LogLevel_LOG_LEVEL_WARN LogLevel = 3 + LogLevel_LOG_LEVEL_INFO LogLevel = 4 + LogLevel_LOG_LEVEL_DEBUG LogLevel = 5 + LogLevel_LOG_LEVEL_TRACE LogLevel = 6 +) + +// Enum value maps for LogLevel. +var ( + LogLevel_name = map[int32]string{ + 0: "LOG_LEVEL_PANIC", + 1: "LOG_LEVEL_FATAL", + 2: "LOG_LEVEL_ERROR", + 3: "LOG_LEVEL_WARN", + 4: "LOG_LEVEL_INFO", + 5: "LOG_LEVEL_DEBUG", + 6: "LOG_LEVEL_TRACE", + } + LogLevel_value = map[string]int32{ + "LOG_LEVEL_PANIC": 0, + "LOG_LEVEL_FATAL": 1, + "LOG_LEVEL_ERROR": 2, + "LOG_LEVEL_WARN": 3, + "LOG_LEVEL_INFO": 4, + "LOG_LEVEL_DEBUG": 5, + "LOG_LEVEL_TRACE": 6, + } +) + +func (x LogLevel) Enum() *LogLevel { + p := new(LogLevel) + *p = x + return p +} + +func (x LogLevel) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (LogLevel) Descriptor() protoreflect.EnumDescriptor { + return file_tetragon_sensors_proto_enumTypes[2].Descriptor() +} + +func (LogLevel) Type() protoreflect.EnumType { + return &file_tetragon_sensors_proto_enumTypes[2] +} + +func (x LogLevel) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use LogLevel.Descriptor instead. +func (LogLevel) EnumDescriptor() ([]byte, []int) { + return file_tetragon_sensors_proto_rawDescGZIP(), []int{2} +} + type ListSensorsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1248,6 +1353,218 @@ func (x *GetVersionResponse) GetVersion() string { return "" } +type GetDebugRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Flag ConfigFlag `protobuf:"varint,1,opt,name=flag,proto3,enum=tetragon.ConfigFlag" json:"flag,omitempty"` +} + +func (x *GetDebugRequest) Reset() { + *x = GetDebugRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_tetragon_sensors_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetDebugRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDebugRequest) ProtoMessage() {} + +func (x *GetDebugRequest) ProtoReflect() protoreflect.Message { + mi := &file_tetragon_sensors_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetDebugRequest.ProtoReflect.Descriptor instead. +func (*GetDebugRequest) Descriptor() ([]byte, []int) { + return file_tetragon_sensors_proto_rawDescGZIP(), []int{24} +} + +func (x *GetDebugRequest) GetFlag() ConfigFlag { + if x != nil { + return x.Flag + } + return ConfigFlag_CONFIG_FLAG_LOG_LEVEL +} + +type GetDebugResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Flag ConfigFlag `protobuf:"varint,1,opt,name=flag,proto3,enum=tetragon.ConfigFlag" json:"flag,omitempty"` + Level LogLevel `protobuf:"varint,2,opt,name=level,proto3,enum=tetragon.LogLevel" json:"level,omitempty"` +} + +func (x *GetDebugResponse) Reset() { + *x = GetDebugResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_tetragon_sensors_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetDebugResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDebugResponse) ProtoMessage() {} + +func (x *GetDebugResponse) ProtoReflect() protoreflect.Message { + mi := &file_tetragon_sensors_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetDebugResponse.ProtoReflect.Descriptor instead. +func (*GetDebugResponse) Descriptor() ([]byte, []int) { + return file_tetragon_sensors_proto_rawDescGZIP(), []int{25} +} + +func (x *GetDebugResponse) GetFlag() ConfigFlag { + if x != nil { + return x.Flag + } + return ConfigFlag_CONFIG_FLAG_LOG_LEVEL +} + +func (x *GetDebugResponse) GetLevel() LogLevel { + if x != nil { + return x.Level + } + return LogLevel_LOG_LEVEL_PANIC +} + +type SetDebugRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Flag ConfigFlag `protobuf:"varint,1,opt,name=flag,proto3,enum=tetragon.ConfigFlag" json:"flag,omitempty"` + Level LogLevel `protobuf:"varint,2,opt,name=level,proto3,enum=tetragon.LogLevel" json:"level,omitempty"` +} + +func (x *SetDebugRequest) Reset() { + *x = SetDebugRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_tetragon_sensors_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetDebugRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetDebugRequest) ProtoMessage() {} + +func (x *SetDebugRequest) ProtoReflect() protoreflect.Message { + mi := &file_tetragon_sensors_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetDebugRequest.ProtoReflect.Descriptor instead. +func (*SetDebugRequest) Descriptor() ([]byte, []int) { + return file_tetragon_sensors_proto_rawDescGZIP(), []int{26} +} + +func (x *SetDebugRequest) GetFlag() ConfigFlag { + if x != nil { + return x.Flag + } + return ConfigFlag_CONFIG_FLAG_LOG_LEVEL +} + +func (x *SetDebugRequest) GetLevel() LogLevel { + if x != nil { + return x.Level + } + return LogLevel_LOG_LEVEL_PANIC +} + +type SetDebugResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Flag ConfigFlag `protobuf:"varint,1,opt,name=flag,proto3,enum=tetragon.ConfigFlag" json:"flag,omitempty"` + Level LogLevel `protobuf:"varint,2,opt,name=level,proto3,enum=tetragon.LogLevel" json:"level,omitempty"` +} + +func (x *SetDebugResponse) Reset() { + *x = SetDebugResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_tetragon_sensors_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetDebugResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetDebugResponse) ProtoMessage() {} + +func (x *SetDebugResponse) ProtoReflect() protoreflect.Message { + mi := &file_tetragon_sensors_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetDebugResponse.ProtoReflect.Descriptor instead. +func (*SetDebugResponse) Descriptor() ([]byte, []int) { + return file_tetragon_sensors_proto_rawDescGZIP(), []int{27} +} + +func (x *SetDebugResponse) GetFlag() ConfigFlag { + if x != nil { + return x.Flag + } + return ConfigFlag_CONFIG_FLAG_LOG_LEVEL +} + +func (x *SetDebugResponse) GetLevel() LogLevel { + if x != nil { + return x.Level + } + return LogLevel_LOG_LEVEL_PANIC +} + var File_tetragon_sensors_proto protoreflect.FileDescriptor var file_tetragon_sensors_proto_rawDesc = []byte{ @@ -1343,99 +1660,143 @@ var file_tetragon_sensors_proto_rawDesc = []byte{ 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x2e, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2a, - 0xb2, 0x01, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, - 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, - 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, - 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x54, 0x50, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, - 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, - 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x45, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, - 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x49, - 0x4e, 0x47, 0x10, 0x06, 0x32, 0xf4, 0x09, 0x0a, 0x13, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x75, 0x69, - 0x64, 0x61, 0x6e, 0x63, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73, 0x12, 0x48, 0x0a, 0x09, - 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, - 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, - 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x52, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, - 0x6c, 0x74, 0x68, 0x12, 0x20, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, - 0x65, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, - 0x2e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x10, 0x41, 0x64, - 0x64, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x21, - 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x72, 0x61, - 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x22, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x64, - 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x24, - 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x64, 0x0a, - 0x13, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x69, 0x65, 0x73, 0x12, 0x24, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x74, 0x65, 0x74, - 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, - 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x13, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, - 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x24, 0x2e, 0x74, 0x65, 0x74, - 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, - 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x25, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x14, 0x44, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x12, 0x25, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, - 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, - 0x67, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, + 0x3b, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x14, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x22, 0x66, 0x0a, 0x10, + 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x28, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, + 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x46, 0x6c, 0x61, 0x67, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x28, 0x0a, 0x05, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x65, 0x74, 0x72, + 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x22, 0x65, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, + 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x04, 0x66, 0x6c, 0x61, + 0x67, 0x12, 0x28, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x12, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x66, 0x0a, 0x10, 0x53, + 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x28, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, + 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x46, + 0x6c, 0x61, 0x67, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x28, 0x0a, 0x05, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, + 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, + 0x76, 0x65, 0x6c, 0x2a, 0xb2, 0x01, 0x0a, 0x12, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x50, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, + 0x12, 0x14, 0x0a, 0x10, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x45, 0x4e, 0x41, + 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x17, 0x0a, + 0x13, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x5f, 0x45, + 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x50, + 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4c, 0x4f, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x05, + 0x12, 0x16, 0x0a, 0x12, 0x54, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4c, + 0x4f, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x2a, 0x27, 0x0a, 0x0a, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x4f, 0x4e, 0x46, 0x49, 0x47, + 0x5f, 0x46, 0x4c, 0x41, 0x47, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x10, + 0x00, 0x2a, 0x9b, 0x01, 0x0a, 0x08, 0x4c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x13, + 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x50, 0x41, 0x4e, 0x49, + 0x43, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, + 0x5f, 0x46, 0x41, 0x54, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, + 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x12, 0x12, 0x0a, + 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x10, + 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x49, + 0x4e, 0x46, 0x4f, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, 0x47, 0x5f, 0x4c, 0x45, 0x56, + 0x45, 0x4c, 0x5f, 0x44, 0x45, 0x42, 0x55, 0x47, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x4c, 0x4f, + 0x47, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x45, 0x10, 0x06, 0x32, + 0xfe, 0x0a, 0x0a, 0x13, 0x46, 0x69, 0x6e, 0x65, 0x47, 0x75, 0x69, 0x64, 0x61, 0x6e, 0x63, 0x65, + 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, + 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1b, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x30, + 0x01, 0x12, 0x52, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x20, + 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x21, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x48, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5b, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x54, 0x72, 0x61, 0x63, + 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x21, 0x2e, 0x74, 0x65, 0x74, 0x72, + 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x74, + 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x41, 0x64, 0x64, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x4f, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, - 0x73, 0x12, 0x1c, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1d, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, - 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, - 0x88, 0x02, 0x01, 0x12, 0x52, 0x0a, 0x0c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, - 0x73, 0x6f, 0x72, 0x12, 0x1d, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x55, 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x12, 0x1e, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, - 0x67, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, - 0x67, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x52, - 0x0a, 0x0c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x12, 0x1d, - 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x22, 0x00, 0x12, 0x64, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x72, 0x61, 0x63, + 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x24, 0x2e, 0x74, 0x65, 0x74, 0x72, + 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, + 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x25, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x64, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, + 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, + 0x24, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, + 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, + 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x64, + 0x0a, 0x13, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, + 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x24, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, + 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x74, 0x65, + 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, + 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x67, 0x0a, 0x14, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, + 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x25, 0x2e, 0x74, + 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, + 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x44, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x63, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4f, 0x0a, + 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x73, 0x12, 0x1c, 0x2e, 0x74, + 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x73, + 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x74, 0x65, 0x74, + 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x52, + 0x0a, 0x0c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x12, 0x1d, + 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, - 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, + 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, - 0x02, 0x01, 0x12, 0x5e, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, - 0x61, 0x63, 0x65, 0x54, 0x72, 0x65, 0x65, 0x12, 0x22, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, - 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, - 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x74, 0x65, - 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, - 0x72, 0x61, 0x63, 0x65, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x49, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x1b, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, - 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, - 0x0b, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x12, 0x1c, 0x2e, 0x74, - 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, - 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x74, 0x65, 0x74, - 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x6f, - 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x02, 0x01, 0x12, 0x55, 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, + 0x73, 0x6f, 0x72, 0x12, 0x1e, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x44, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x44, + 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x52, 0x0a, 0x0c, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x12, 0x1d, 0x2e, 0x74, 0x65, 0x74, 0x72, + 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, + 0x67, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x65, 0x6e, 0x73, 0x6f, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x5e, 0x0a, + 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x54, 0x72, + 0x65, 0x65, 0x12, 0x22, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x54, 0x72, 0x65, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, + 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x65, 0x54, + 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x49, 0x0a, + 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x2e, 0x74, 0x65, + 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, + 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, 0x0a, 0x0b, 0x52, 0x75, 0x6e, 0x74, + 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x12, 0x1c, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, + 0x6f, 0x6e, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, + 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, + 0x75, 0x67, 0x12, 0x19, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, + 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, + 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, + 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x08, 0x53, + 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x12, 0x19, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, + 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x74, 0x65, 0x74, 0x72, 0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x53, 0x65, + 0x74, 0x44, 0x65, 0x62, 0x75, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1450,80 +1811,97 @@ func file_tetragon_sensors_proto_rawDescGZIP() []byte { return file_tetragon_sensors_proto_rawDescData } -var file_tetragon_sensors_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_tetragon_sensors_proto_msgTypes = make([]protoimpl.MessageInfo, 24) +var file_tetragon_sensors_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_tetragon_sensors_proto_msgTypes = make([]protoimpl.MessageInfo, 28) var file_tetragon_sensors_proto_goTypes = []interface{}{ (TracingPolicyState)(0), // 0: tetragon.TracingPolicyState - (*ListSensorsRequest)(nil), // 1: tetragon.ListSensorsRequest - (*SensorStatus)(nil), // 2: tetragon.SensorStatus - (*ListSensorsResponse)(nil), // 3: tetragon.ListSensorsResponse - (*ListTracingPoliciesRequest)(nil), // 4: tetragon.ListTracingPoliciesRequest - (*TracingPolicyStatus)(nil), // 5: tetragon.TracingPolicyStatus - (*ListTracingPoliciesResponse)(nil), // 6: tetragon.ListTracingPoliciesResponse - (*AddTracingPolicyRequest)(nil), // 7: tetragon.AddTracingPolicyRequest - (*AddTracingPolicyResponse)(nil), // 8: tetragon.AddTracingPolicyResponse - (*DeleteTracingPolicyRequest)(nil), // 9: tetragon.DeleteTracingPolicyRequest - (*DeleteTracingPolicyResponse)(nil), // 10: tetragon.DeleteTracingPolicyResponse - (*EnableTracingPolicyRequest)(nil), // 11: tetragon.EnableTracingPolicyRequest - (*EnableTracingPolicyResponse)(nil), // 12: tetragon.EnableTracingPolicyResponse - (*DisableTracingPolicyRequest)(nil), // 13: tetragon.DisableTracingPolicyRequest - (*DisableTracingPolicyResponse)(nil), // 14: tetragon.DisableTracingPolicyResponse - (*RemoveSensorRequest)(nil), // 15: tetragon.RemoveSensorRequest - (*RemoveSensorResponse)(nil), // 16: tetragon.RemoveSensorResponse - (*EnableSensorRequest)(nil), // 17: tetragon.EnableSensorRequest - (*EnableSensorResponse)(nil), // 18: tetragon.EnableSensorResponse - (*DisableSensorRequest)(nil), // 19: tetragon.DisableSensorRequest - (*DisableSensorResponse)(nil), // 20: tetragon.DisableSensorResponse - (*GetStackTraceTreeRequest)(nil), // 21: tetragon.GetStackTraceTreeRequest - (*GetStackTraceTreeResponse)(nil), // 22: tetragon.GetStackTraceTreeResponse - (*GetVersionRequest)(nil), // 23: tetragon.GetVersionRequest - (*GetVersionResponse)(nil), // 24: tetragon.GetVersionResponse - (*StackTraceNode)(nil), // 25: tetragon.StackTraceNode - (*GetEventsRequest)(nil), // 26: tetragon.GetEventsRequest - (*GetHealthStatusRequest)(nil), // 27: tetragon.GetHealthStatusRequest - (*RuntimeHookRequest)(nil), // 28: tetragon.RuntimeHookRequest - (*GetEventsResponse)(nil), // 29: tetragon.GetEventsResponse - (*GetHealthStatusResponse)(nil), // 30: tetragon.GetHealthStatusResponse - (*RuntimeHookResponse)(nil), // 31: tetragon.RuntimeHookResponse + (ConfigFlag)(0), // 1: tetragon.ConfigFlag + (LogLevel)(0), // 2: tetragon.LogLevel + (*ListSensorsRequest)(nil), // 3: tetragon.ListSensorsRequest + (*SensorStatus)(nil), // 4: tetragon.SensorStatus + (*ListSensorsResponse)(nil), // 5: tetragon.ListSensorsResponse + (*ListTracingPoliciesRequest)(nil), // 6: tetragon.ListTracingPoliciesRequest + (*TracingPolicyStatus)(nil), // 7: tetragon.TracingPolicyStatus + (*ListTracingPoliciesResponse)(nil), // 8: tetragon.ListTracingPoliciesResponse + (*AddTracingPolicyRequest)(nil), // 9: tetragon.AddTracingPolicyRequest + (*AddTracingPolicyResponse)(nil), // 10: tetragon.AddTracingPolicyResponse + (*DeleteTracingPolicyRequest)(nil), // 11: tetragon.DeleteTracingPolicyRequest + (*DeleteTracingPolicyResponse)(nil), // 12: tetragon.DeleteTracingPolicyResponse + (*EnableTracingPolicyRequest)(nil), // 13: tetragon.EnableTracingPolicyRequest + (*EnableTracingPolicyResponse)(nil), // 14: tetragon.EnableTracingPolicyResponse + (*DisableTracingPolicyRequest)(nil), // 15: tetragon.DisableTracingPolicyRequest + (*DisableTracingPolicyResponse)(nil), // 16: tetragon.DisableTracingPolicyResponse + (*RemoveSensorRequest)(nil), // 17: tetragon.RemoveSensorRequest + (*RemoveSensorResponse)(nil), // 18: tetragon.RemoveSensorResponse + (*EnableSensorRequest)(nil), // 19: tetragon.EnableSensorRequest + (*EnableSensorResponse)(nil), // 20: tetragon.EnableSensorResponse + (*DisableSensorRequest)(nil), // 21: tetragon.DisableSensorRequest + (*DisableSensorResponse)(nil), // 22: tetragon.DisableSensorResponse + (*GetStackTraceTreeRequest)(nil), // 23: tetragon.GetStackTraceTreeRequest + (*GetStackTraceTreeResponse)(nil), // 24: tetragon.GetStackTraceTreeResponse + (*GetVersionRequest)(nil), // 25: tetragon.GetVersionRequest + (*GetVersionResponse)(nil), // 26: tetragon.GetVersionResponse + (*GetDebugRequest)(nil), // 27: tetragon.GetDebugRequest + (*GetDebugResponse)(nil), // 28: tetragon.GetDebugResponse + (*SetDebugRequest)(nil), // 29: tetragon.SetDebugRequest + (*SetDebugResponse)(nil), // 30: tetragon.SetDebugResponse + (*StackTraceNode)(nil), // 31: tetragon.StackTraceNode + (*GetEventsRequest)(nil), // 32: tetragon.GetEventsRequest + (*GetHealthStatusRequest)(nil), // 33: tetragon.GetHealthStatusRequest + (*RuntimeHookRequest)(nil), // 34: tetragon.RuntimeHookRequest + (*GetEventsResponse)(nil), // 35: tetragon.GetEventsResponse + (*GetHealthStatusResponse)(nil), // 36: tetragon.GetHealthStatusResponse + (*RuntimeHookResponse)(nil), // 37: tetragon.RuntimeHookResponse } var file_tetragon_sensors_proto_depIdxs = []int32{ - 2, // 0: tetragon.ListSensorsResponse.sensors:type_name -> tetragon.SensorStatus + 4, // 0: tetragon.ListSensorsResponse.sensors:type_name -> tetragon.SensorStatus 0, // 1: tetragon.TracingPolicyStatus.state:type_name -> tetragon.TracingPolicyState - 5, // 2: tetragon.ListTracingPoliciesResponse.policies:type_name -> tetragon.TracingPolicyStatus - 25, // 3: tetragon.GetStackTraceTreeResponse.root:type_name -> tetragon.StackTraceNode - 26, // 4: tetragon.FineGuidanceSensors.GetEvents:input_type -> tetragon.GetEventsRequest - 27, // 5: tetragon.FineGuidanceSensors.GetHealth:input_type -> tetragon.GetHealthStatusRequest - 7, // 6: tetragon.FineGuidanceSensors.AddTracingPolicy:input_type -> tetragon.AddTracingPolicyRequest - 9, // 7: tetragon.FineGuidanceSensors.DeleteTracingPolicy:input_type -> tetragon.DeleteTracingPolicyRequest - 4, // 8: tetragon.FineGuidanceSensors.ListTracingPolicies:input_type -> tetragon.ListTracingPoliciesRequest - 11, // 9: tetragon.FineGuidanceSensors.EnableTracingPolicy:input_type -> tetragon.EnableTracingPolicyRequest - 13, // 10: tetragon.FineGuidanceSensors.DisableTracingPolicy:input_type -> tetragon.DisableTracingPolicyRequest - 1, // 11: tetragon.FineGuidanceSensors.ListSensors:input_type -> tetragon.ListSensorsRequest - 17, // 12: tetragon.FineGuidanceSensors.EnableSensor:input_type -> tetragon.EnableSensorRequest - 19, // 13: tetragon.FineGuidanceSensors.DisableSensor:input_type -> tetragon.DisableSensorRequest - 15, // 14: tetragon.FineGuidanceSensors.RemoveSensor:input_type -> tetragon.RemoveSensorRequest - 21, // 15: tetragon.FineGuidanceSensors.GetStackTraceTree:input_type -> tetragon.GetStackTraceTreeRequest - 23, // 16: tetragon.FineGuidanceSensors.GetVersion:input_type -> tetragon.GetVersionRequest - 28, // 17: tetragon.FineGuidanceSensors.RuntimeHook:input_type -> tetragon.RuntimeHookRequest - 29, // 18: tetragon.FineGuidanceSensors.GetEvents:output_type -> tetragon.GetEventsResponse - 30, // 19: tetragon.FineGuidanceSensors.GetHealth:output_type -> tetragon.GetHealthStatusResponse - 8, // 20: tetragon.FineGuidanceSensors.AddTracingPolicy:output_type -> tetragon.AddTracingPolicyResponse - 10, // 21: tetragon.FineGuidanceSensors.DeleteTracingPolicy:output_type -> tetragon.DeleteTracingPolicyResponse - 6, // 22: tetragon.FineGuidanceSensors.ListTracingPolicies:output_type -> tetragon.ListTracingPoliciesResponse - 12, // 23: tetragon.FineGuidanceSensors.EnableTracingPolicy:output_type -> tetragon.EnableTracingPolicyResponse - 14, // 24: tetragon.FineGuidanceSensors.DisableTracingPolicy:output_type -> tetragon.DisableTracingPolicyResponse - 3, // 25: tetragon.FineGuidanceSensors.ListSensors:output_type -> tetragon.ListSensorsResponse - 18, // 26: tetragon.FineGuidanceSensors.EnableSensor:output_type -> tetragon.EnableSensorResponse - 20, // 27: tetragon.FineGuidanceSensors.DisableSensor:output_type -> tetragon.DisableSensorResponse - 16, // 28: tetragon.FineGuidanceSensors.RemoveSensor:output_type -> tetragon.RemoveSensorResponse - 22, // 29: tetragon.FineGuidanceSensors.GetStackTraceTree:output_type -> tetragon.GetStackTraceTreeResponse - 24, // 30: tetragon.FineGuidanceSensors.GetVersion:output_type -> tetragon.GetVersionResponse - 31, // 31: tetragon.FineGuidanceSensors.RuntimeHook:output_type -> tetragon.RuntimeHookResponse - 18, // [18:32] is the sub-list for method output_type - 4, // [4:18] is the sub-list for method input_type - 4, // [4:4] is the sub-list for extension type_name - 4, // [4:4] is the sub-list for extension extendee - 0, // [0:4] is the sub-list for field type_name + 7, // 2: tetragon.ListTracingPoliciesResponse.policies:type_name -> tetragon.TracingPolicyStatus + 31, // 3: tetragon.GetStackTraceTreeResponse.root:type_name -> tetragon.StackTraceNode + 1, // 4: tetragon.GetDebugRequest.flag:type_name -> tetragon.ConfigFlag + 1, // 5: tetragon.GetDebugResponse.flag:type_name -> tetragon.ConfigFlag + 2, // 6: tetragon.GetDebugResponse.level:type_name -> tetragon.LogLevel + 1, // 7: tetragon.SetDebugRequest.flag:type_name -> tetragon.ConfigFlag + 2, // 8: tetragon.SetDebugRequest.level:type_name -> tetragon.LogLevel + 1, // 9: tetragon.SetDebugResponse.flag:type_name -> tetragon.ConfigFlag + 2, // 10: tetragon.SetDebugResponse.level:type_name -> tetragon.LogLevel + 32, // 11: tetragon.FineGuidanceSensors.GetEvents:input_type -> tetragon.GetEventsRequest + 33, // 12: tetragon.FineGuidanceSensors.GetHealth:input_type -> tetragon.GetHealthStatusRequest + 9, // 13: tetragon.FineGuidanceSensors.AddTracingPolicy:input_type -> tetragon.AddTracingPolicyRequest + 11, // 14: tetragon.FineGuidanceSensors.DeleteTracingPolicy:input_type -> tetragon.DeleteTracingPolicyRequest + 6, // 15: tetragon.FineGuidanceSensors.ListTracingPolicies:input_type -> tetragon.ListTracingPoliciesRequest + 13, // 16: tetragon.FineGuidanceSensors.EnableTracingPolicy:input_type -> tetragon.EnableTracingPolicyRequest + 15, // 17: tetragon.FineGuidanceSensors.DisableTracingPolicy:input_type -> tetragon.DisableTracingPolicyRequest + 3, // 18: tetragon.FineGuidanceSensors.ListSensors:input_type -> tetragon.ListSensorsRequest + 19, // 19: tetragon.FineGuidanceSensors.EnableSensor:input_type -> tetragon.EnableSensorRequest + 21, // 20: tetragon.FineGuidanceSensors.DisableSensor:input_type -> tetragon.DisableSensorRequest + 17, // 21: tetragon.FineGuidanceSensors.RemoveSensor:input_type -> tetragon.RemoveSensorRequest + 23, // 22: tetragon.FineGuidanceSensors.GetStackTraceTree:input_type -> tetragon.GetStackTraceTreeRequest + 25, // 23: tetragon.FineGuidanceSensors.GetVersion:input_type -> tetragon.GetVersionRequest + 34, // 24: tetragon.FineGuidanceSensors.RuntimeHook:input_type -> tetragon.RuntimeHookRequest + 27, // 25: tetragon.FineGuidanceSensors.GetDebug:input_type -> tetragon.GetDebugRequest + 29, // 26: tetragon.FineGuidanceSensors.SetDebug:input_type -> tetragon.SetDebugRequest + 35, // 27: tetragon.FineGuidanceSensors.GetEvents:output_type -> tetragon.GetEventsResponse + 36, // 28: tetragon.FineGuidanceSensors.GetHealth:output_type -> tetragon.GetHealthStatusResponse + 10, // 29: tetragon.FineGuidanceSensors.AddTracingPolicy:output_type -> tetragon.AddTracingPolicyResponse + 12, // 30: tetragon.FineGuidanceSensors.DeleteTracingPolicy:output_type -> tetragon.DeleteTracingPolicyResponse + 8, // 31: tetragon.FineGuidanceSensors.ListTracingPolicies:output_type -> tetragon.ListTracingPoliciesResponse + 14, // 32: tetragon.FineGuidanceSensors.EnableTracingPolicy:output_type -> tetragon.EnableTracingPolicyResponse + 16, // 33: tetragon.FineGuidanceSensors.DisableTracingPolicy:output_type -> tetragon.DisableTracingPolicyResponse + 5, // 34: tetragon.FineGuidanceSensors.ListSensors:output_type -> tetragon.ListSensorsResponse + 20, // 35: tetragon.FineGuidanceSensors.EnableSensor:output_type -> tetragon.EnableSensorResponse + 22, // 36: tetragon.FineGuidanceSensors.DisableSensor:output_type -> tetragon.DisableSensorResponse + 18, // 37: tetragon.FineGuidanceSensors.RemoveSensor:output_type -> tetragon.RemoveSensorResponse + 24, // 38: tetragon.FineGuidanceSensors.GetStackTraceTree:output_type -> tetragon.GetStackTraceTreeResponse + 26, // 39: tetragon.FineGuidanceSensors.GetVersion:output_type -> tetragon.GetVersionResponse + 37, // 40: tetragon.FineGuidanceSensors.RuntimeHook:output_type -> tetragon.RuntimeHookResponse + 28, // 41: tetragon.FineGuidanceSensors.GetDebug:output_type -> tetragon.GetDebugResponse + 30, // 42: tetragon.FineGuidanceSensors.SetDebug:output_type -> tetragon.SetDebugResponse + 27, // [27:43] is the sub-list for method output_type + 11, // [11:27] is the sub-list for method input_type + 11, // [11:11] is the sub-list for extension type_name + 11, // [11:11] is the sub-list for extension extendee + 0, // [0:11] is the sub-list for field type_name } func init() { file_tetragon_sensors_proto_init() } @@ -1823,14 +2201,62 @@ func file_tetragon_sensors_proto_init() { return nil } } + file_tetragon_sensors_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDebugRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_tetragon_sensors_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDebugResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_tetragon_sensors_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetDebugRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_tetragon_sensors_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetDebugResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_tetragon_sensors_proto_rawDesc, - NumEnums: 1, - NumMessages: 24, + NumEnums: 3, + NumMessages: 28, NumExtensions: 0, NumServices: 1, }, diff --git a/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors.pb.json.go b/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors.pb.json.go index 59292ec3623..a9d01c00e30 100644 --- a/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors.pb.json.go +++ b/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors.pb.json.go @@ -390,3 +390,67 @@ func (msg *GetVersionResponse) UnmarshalJSON(b []byte) error { DiscardUnknown: false, }.Unmarshal(b, msg) } + +// MarshalJSON implements json.Marshaler +func (msg *GetDebugRequest) MarshalJSON() ([]byte, error) { + return protojson.MarshalOptions{ + UseEnumNumbers: false, + EmitUnpopulated: false, + UseProtoNames: true, + }.Marshal(msg) +} + +// UnmarshalJSON implements json.Unmarshaler +func (msg *GetDebugRequest) UnmarshalJSON(b []byte) error { + return protojson.UnmarshalOptions{ + DiscardUnknown: false, + }.Unmarshal(b, msg) +} + +// MarshalJSON implements json.Marshaler +func (msg *GetDebugResponse) MarshalJSON() ([]byte, error) { + return protojson.MarshalOptions{ + UseEnumNumbers: false, + EmitUnpopulated: false, + UseProtoNames: true, + }.Marshal(msg) +} + +// UnmarshalJSON implements json.Unmarshaler +func (msg *GetDebugResponse) UnmarshalJSON(b []byte) error { + return protojson.UnmarshalOptions{ + DiscardUnknown: false, + }.Unmarshal(b, msg) +} + +// MarshalJSON implements json.Marshaler +func (msg *SetDebugRequest) MarshalJSON() ([]byte, error) { + return protojson.MarshalOptions{ + UseEnumNumbers: false, + EmitUnpopulated: false, + UseProtoNames: true, + }.Marshal(msg) +} + +// UnmarshalJSON implements json.Unmarshaler +func (msg *SetDebugRequest) UnmarshalJSON(b []byte) error { + return protojson.UnmarshalOptions{ + DiscardUnknown: false, + }.Unmarshal(b, msg) +} + +// MarshalJSON implements json.Marshaler +func (msg *SetDebugResponse) MarshalJSON() ([]byte, error) { + return protojson.MarshalOptions{ + UseEnumNumbers: false, + EmitUnpopulated: false, + UseProtoNames: true, + }.Marshal(msg) +} + +// UnmarshalJSON implements json.Unmarshaler +func (msg *SetDebugResponse) UnmarshalJSON(b []byte) error { + return protojson.UnmarshalOptions{ + DiscardUnknown: false, + }.Unmarshal(b, msg) +} diff --git a/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors.proto b/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors.proto index a3116082fd8..930228dba78 100644 --- a/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors.proto +++ b/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors.proto @@ -125,6 +125,38 @@ message GetVersionResponse{ string version = 1; } +// For now, we only want to support debug-related config flags to be configurable. +enum ConfigFlag { + CONFIG_FLAG_LOG_LEVEL = 0; +} + +enum LogLevel { + LOG_LEVEL_PANIC = 0; + LOG_LEVEL_FATAL = 1; + LOG_LEVEL_ERROR = 2; + LOG_LEVEL_WARN = 3; + LOG_LEVEL_INFO = 4; + LOG_LEVEL_DEBUG = 5; + LOG_LEVEL_TRACE = 6; +} + +message GetDebugRequest{ + ConfigFlag flag = 1; +} +message GetDebugResponse{ + ConfigFlag flag = 1; + LogLevel level = 2; +} + +message SetDebugRequest{ + ConfigFlag flag = 1; + LogLevel level = 2; +} +message SetDebugResponse{ + ConfigFlag flag = 1; + LogLevel level = 2; +} + service FineGuidanceSensors { rpc GetEvents(GetEventsRequest) returns (stream GetEventsResponse) {} rpc GetHealth(GetHealthStatusRequest) returns (GetHealthStatusResponse) {} @@ -153,4 +185,7 @@ service FineGuidanceSensors { rpc GetVersion(GetVersionRequest) returns (GetVersionResponse) {} rpc RuntimeHook(RuntimeHookRequest) returns (RuntimeHookResponse) {} + + rpc GetDebug(GetDebugRequest) returns (GetDebugResponse) {} + rpc SetDebug(SetDebugRequest) returns (SetDebugResponse) {} } diff --git a/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors_grpc.pb.go b/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors_grpc.pb.go index a10166a047e..515f905c1b2 100644 --- a/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors_grpc.pb.go +++ b/vendor/github.com/cilium/tetragon/api/v1/tetragon/sensors_grpc.pb.go @@ -36,6 +36,8 @@ const ( FineGuidanceSensors_GetStackTraceTree_FullMethodName = "/tetragon.FineGuidanceSensors/GetStackTraceTree" FineGuidanceSensors_GetVersion_FullMethodName = "/tetragon.FineGuidanceSensors/GetVersion" FineGuidanceSensors_RuntimeHook_FullMethodName = "/tetragon.FineGuidanceSensors/RuntimeHook" + FineGuidanceSensors_GetDebug_FullMethodName = "/tetragon.FineGuidanceSensors/GetDebug" + FineGuidanceSensors_SetDebug_FullMethodName = "/tetragon.FineGuidanceSensors/SetDebug" ) // FineGuidanceSensorsClient is the client API for FineGuidanceSensors service. @@ -60,6 +62,8 @@ type FineGuidanceSensorsClient interface { GetStackTraceTree(ctx context.Context, in *GetStackTraceTreeRequest, opts ...grpc.CallOption) (*GetStackTraceTreeResponse, error) GetVersion(ctx context.Context, in *GetVersionRequest, opts ...grpc.CallOption) (*GetVersionResponse, error) RuntimeHook(ctx context.Context, in *RuntimeHookRequest, opts ...grpc.CallOption) (*RuntimeHookResponse, error) + GetDebug(ctx context.Context, in *GetDebugRequest, opts ...grpc.CallOption) (*GetDebugResponse, error) + SetDebug(ctx context.Context, in *SetDebugRequest, opts ...grpc.CallOption) (*SetDebugResponse, error) } type fineGuidanceSensorsClient struct { @@ -223,6 +227,24 @@ func (c *fineGuidanceSensorsClient) RuntimeHook(ctx context.Context, in *Runtime return out, nil } +func (c *fineGuidanceSensorsClient) GetDebug(ctx context.Context, in *GetDebugRequest, opts ...grpc.CallOption) (*GetDebugResponse, error) { + out := new(GetDebugResponse) + err := c.cc.Invoke(ctx, FineGuidanceSensors_GetDebug_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *fineGuidanceSensorsClient) SetDebug(ctx context.Context, in *SetDebugRequest, opts ...grpc.CallOption) (*SetDebugResponse, error) { + out := new(SetDebugResponse) + err := c.cc.Invoke(ctx, FineGuidanceSensors_SetDebug_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // FineGuidanceSensorsServer is the server API for FineGuidanceSensors service. // All implementations should embed UnimplementedFineGuidanceSensorsServer // for forward compatibility @@ -245,6 +267,8 @@ type FineGuidanceSensorsServer interface { GetStackTraceTree(context.Context, *GetStackTraceTreeRequest) (*GetStackTraceTreeResponse, error) GetVersion(context.Context, *GetVersionRequest) (*GetVersionResponse, error) RuntimeHook(context.Context, *RuntimeHookRequest) (*RuntimeHookResponse, error) + GetDebug(context.Context, *GetDebugRequest) (*GetDebugResponse, error) + SetDebug(context.Context, *SetDebugRequest) (*SetDebugResponse, error) } // UnimplementedFineGuidanceSensorsServer should be embedded to have forward compatible implementations. @@ -293,6 +317,12 @@ func (UnimplementedFineGuidanceSensorsServer) GetVersion(context.Context, *GetVe func (UnimplementedFineGuidanceSensorsServer) RuntimeHook(context.Context, *RuntimeHookRequest) (*RuntimeHookResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method RuntimeHook not implemented") } +func (UnimplementedFineGuidanceSensorsServer) GetDebug(context.Context, *GetDebugRequest) (*GetDebugResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDebug not implemented") +} +func (UnimplementedFineGuidanceSensorsServer) SetDebug(context.Context, *SetDebugRequest) (*SetDebugResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetDebug not implemented") +} // UnsafeFineGuidanceSensorsServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to FineGuidanceSensorsServer will @@ -560,6 +590,42 @@ func _FineGuidanceSensors_RuntimeHook_Handler(srv interface{}, ctx context.Conte return interceptor(ctx, in, info, handler) } +func _FineGuidanceSensors_GetDebug_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetDebugRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FineGuidanceSensorsServer).GetDebug(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: FineGuidanceSensors_GetDebug_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FineGuidanceSensorsServer).GetDebug(ctx, req.(*GetDebugRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FineGuidanceSensors_SetDebug_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetDebugRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FineGuidanceSensorsServer).SetDebug(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: FineGuidanceSensors_SetDebug_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FineGuidanceSensorsServer).SetDebug(ctx, req.(*SetDebugRequest)) + } + return interceptor(ctx, in, info, handler) +} + // FineGuidanceSensors_ServiceDesc is the grpc.ServiceDesc for FineGuidanceSensors service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -619,6 +685,14 @@ var FineGuidanceSensors_ServiceDesc = grpc.ServiceDesc{ MethodName: "RuntimeHook", Handler: _FineGuidanceSensors_RuntimeHook_Handler, }, + { + MethodName: "GetDebug", + Handler: _FineGuidanceSensors_GetDebug_Handler, + }, + { + MethodName: "SetDebug", + Handler: _FineGuidanceSensors_SetDebug_Handler, + }, }, Streams: []grpc.StreamDesc{ {