diff --git a/api/agentpb/collector.pb.go b/api/agentpb/collector.pb.go index e3800f73a3..2618b37388 100644 --- a/api/agentpb/collector.pb.go +++ b/api/agentpb/collector.pb.go @@ -263,6 +263,110 @@ func (x *HistogramItem) GetFrequency() uint32 { return 0 } +// SettingsItem represents one row in settings. +type SettingsItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + DefaultValue string `protobuf:"bytes,3,opt,name=default_value,json=defaultValue,proto3" json:"default_value,omitempty"` + Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` + Minimum int64 `protobuf:"varint,5,opt,name=minimum,proto3" json:"minimum,omitempty"` + Maximum int64 `protobuf:"varint,6,opt,name=maximum,proto3" json:"maximum,omitempty"` + Options string `protobuf:"bytes,7,opt,name=options,proto3" json:"options,omitempty"` + Restart string `protobuf:"bytes,8,opt,name=restart,proto3" json:"restart,omitempty"` +} + +func (x *SettingsItem) Reset() { + *x = SettingsItem{} + if protoimpl.UnsafeEnabled { + mi := &file_agentpb_collector_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SettingsItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SettingsItem) ProtoMessage() {} + +func (x *SettingsItem) ProtoReflect() protoreflect.Message { + mi := &file_agentpb_collector_proto_msgTypes[2] + 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 SettingsItem.ProtoReflect.Descriptor instead. +func (*SettingsItem) Descriptor() ([]byte, []int) { + return file_agentpb_collector_proto_rawDescGZIP(), []int{2} +} + +func (x *SettingsItem) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *SettingsItem) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +func (x *SettingsItem) GetDefaultValue() string { + if x != nil { + return x.DefaultValue + } + return "" +} + +func (x *SettingsItem) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *SettingsItem) GetMinimum() int64 { + if x != nil { + return x.Minimum + } + return 0 +} + +func (x *SettingsItem) GetMaximum() int64 { + if x != nil { + return x.Maximum + } + return 0 +} + +func (x *SettingsItem) GetOptions() string { + if x != nil { + return x.Options + } + return "" +} + +func (x *SettingsItem) GetRestart() string { + if x != nil { + return x.Restart + } + return "" +} + // Common contains common fields for all DBs. type MetricsBucket_Common struct { state protoimpl.MessageState @@ -328,7 +432,7 @@ type MetricsBucket_Common struct { func (x *MetricsBucket_Common) Reset() { *x = MetricsBucket_Common{} if protoimpl.UnsafeEnabled { - mi := &file_agentpb_collector_proto_msgTypes[2] + mi := &file_agentpb_collector_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -341,7 +445,7 @@ func (x *MetricsBucket_Common) String() string { func (*MetricsBucket_Common) ProtoMessage() {} func (x *MetricsBucket_Common) ProtoReflect() protoreflect.Message { - mi := &file_agentpb_collector_proto_msgTypes[2] + mi := &file_agentpb_collector_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -689,7 +793,7 @@ type MetricsBucket_MySQL struct { func (x *MetricsBucket_MySQL) Reset() { *x = MetricsBucket_MySQL{} if protoimpl.UnsafeEnabled { - mi := &file_agentpb_collector_proto_msgTypes[3] + mi := &file_agentpb_collector_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -702,7 +806,7 @@ func (x *MetricsBucket_MySQL) String() string { func (*MetricsBucket_MySQL) ProtoMessage() {} func (x *MetricsBucket_MySQL) ProtoReflect() protoreflect.Message { - mi := &file_agentpb_collector_proto_msgTypes[3] + mi := &file_agentpb_collector_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1552,7 +1656,7 @@ type MetricsBucket_MongoDB struct { func (x *MetricsBucket_MongoDB) Reset() { *x = MetricsBucket_MongoDB{} if protoimpl.UnsafeEnabled { - mi := &file_agentpb_collector_proto_msgTypes[4] + mi := &file_agentpb_collector_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1565,7 +1669,7 @@ func (x *MetricsBucket_MongoDB) String() string { func (*MetricsBucket_MongoDB) ProtoMessage() {} func (x *MetricsBucket_MongoDB) ProtoReflect() protoreflect.Message { - mi := &file_agentpb_collector_proto_msgTypes[4] + mi := &file_agentpb_collector_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1771,12 +1875,13 @@ type MetricsBucket_PostgreSQL struct { Planid string `protobuf:"bytes,46,opt,name=planid,proto3" json:"planid,omitempty"` QueryPlan string `protobuf:"bytes,48,opt,name=query_plan,json=queryPlan,proto3" json:"query_plan,omitempty"` HistogramItems []*HistogramItem `protobuf:"bytes,49,rep,name=histogram_items,json=histogramItems,proto3" json:"histogram_items,omitempty"` + SettingsItems []*SettingsItem `protobuf:"bytes,50,rep,name=settings_items,json=settingsItems,proto3" json:"settings_items,omitempty"` } func (x *MetricsBucket_PostgreSQL) Reset() { *x = MetricsBucket_PostgreSQL{} if protoimpl.UnsafeEnabled { - mi := &file_agentpb_collector_proto_msgTypes[5] + mi := &file_agentpb_collector_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1789,7 +1894,7 @@ func (x *MetricsBucket_PostgreSQL) String() string { func (*MetricsBucket_PostgreSQL) ProtoMessage() {} func (x *MetricsBucket_PostgreSQL) ProtoReflect() protoreflect.Message { - mi := &file_agentpb_collector_proto_msgTypes[5] + mi := &file_agentpb_collector_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2148,13 +2253,20 @@ func (x *MetricsBucket_PostgreSQL) GetHistogramItems() []*HistogramItem { return nil } +func (x *MetricsBucket_PostgreSQL) GetSettingsItems() []*SettingsItem { + if x != nil { + return x.SettingsItems + } + return nil +} + var File_agentpb_collector_proto protoreflect.FileDescriptor var file_agentpb_collector_proto_rawDesc = []byte{ 0x0a, 0x17, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x1a, 0x18, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x70, 0x62, 0x2f, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xba, 0x4b, 0x0a, 0x0d, 0x4d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf6, 0x4b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x33, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, 0x63, 0x6b, @@ -2619,7 +2731,7 @@ var file_agentpb_collector_proto_rawDesc = []byte{ 0x65, 0x64, 0x4d, 0x61, 0x78, 0x12, 0x2b, 0x0a, 0x12, 0x6d, 0x5f, 0x64, 0x6f, 0x63, 0x73, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x5f, 0x70, 0x39, 0x39, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x6d, 0x44, 0x6f, 0x63, 0x73, 0x53, 0x63, 0x61, 0x6e, 0x6e, 0x65, 0x64, 0x50, - 0x39, 0x39, 0x1a, 0xb2, 0x11, 0x0a, 0x0a, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, + 0x39, 0x39, 0x1a, 0xee, 0x11, 0x0a, 0x0a, 0x50, 0x6f, 0x73, 0x74, 0x67, 0x72, 0x65, 0x53, 0x51, 0x4c, 0x12, 0x1c, 0x0a, 0x0a, 0x6d, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x63, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x43, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x0a, 0x6d, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x5f, 0x73, 0x75, 0x6d, 0x18, 0x02, 0x20, @@ -2758,30 +2870,49 @@ var file_agentpb_collector_proto_rawDesc = []byte{ 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x31, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0e, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, - 0x61, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x43, 0x0a, 0x0d, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x67, 0x72, 0x61, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x2a, 0x55, 0x0a, 0x0d, - 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1e, 0x0a, - 0x16, 0x45, 0x58, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, - 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x0f, 0x0a, - 0x07, 0x45, 0x58, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x10, 0x01, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x13, - 0x0a, 0x0b, 0x46, 0x49, 0x4e, 0x47, 0x45, 0x52, 0x50, 0x52, 0x49, 0x4e, 0x54, 0x10, 0x02, 0x1a, - 0x02, 0x08, 0x01, 0x2a, 0x5d, 0x0a, 0x0b, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x45, 0x58, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, - 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x4c, 0x4f, 0x57, - 0x45, 0x53, 0x54, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x41, 0x53, 0x54, 0x45, 0x53, 0x54, - 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, - 0x10, 0x04, 0x42, 0x73, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x42, - 0x0e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x65, - 0x72, 0x63, 0x6f, 0x6e, 0x61, 0x2f, 0x70, 0x6d, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x41, 0x58, 0x58, 0xaa, 0x02, 0x05, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0xca, 0x02, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0xe2, 0x02, 0x11, 0x41, 0x67, - 0x65, 0x6e, 0x74, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, - 0x02, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x3a, 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x73, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x32, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, + 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x49, 0x74, + 0x65, 0x6d, 0x73, 0x22, 0x43, 0x0a, 0x0d, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, + 0x49, 0x74, 0x65, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x66, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x22, 0xe7, 0x01, 0x0a, 0x0c, 0x53, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x69, + 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x18, + 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x2a, 0x55, 0x0a, 0x0d, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x46, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x12, 0x1e, 0x0a, 0x16, 0x45, 0x58, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x5f, 0x46, + 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, 0x00, 0x1a, + 0x02, 0x08, 0x01, 0x12, 0x0f, 0x0a, 0x07, 0x45, 0x58, 0x41, 0x4d, 0x50, 0x4c, 0x45, 0x10, 0x01, + 0x1a, 0x02, 0x08, 0x01, 0x12, 0x13, 0x0a, 0x0b, 0x46, 0x49, 0x4e, 0x47, 0x45, 0x52, 0x50, 0x52, + 0x49, 0x4e, 0x54, 0x10, 0x02, 0x1a, 0x02, 0x08, 0x01, 0x2a, 0x5d, 0x0a, 0x0b, 0x45, 0x78, 0x61, + 0x6d, 0x70, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x45, 0x58, 0x41, 0x4d, + 0x50, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, + 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x10, 0x01, 0x12, 0x0b, + 0x0a, 0x07, 0x53, 0x4c, 0x4f, 0x57, 0x45, 0x53, 0x54, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x46, + 0x41, 0x53, 0x54, 0x45, 0x53, 0x54, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x57, 0x49, 0x54, 0x48, + 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x42, 0x73, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x2e, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x42, 0x0e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x22, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x61, 0x2f, 0x70, 0x6d, 0x6d, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x41, 0x58, + 0x58, 0xaa, 0x02, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0xca, 0x02, 0x05, 0x41, 0x67, 0x65, 0x6e, + 0x74, 0xe2, 0x02, 0x11, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x05, 0x41, 0x67, 0x65, 0x6e, 0x74, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2797,34 +2928,36 @@ func file_agentpb_collector_proto_rawDescGZIP() []byte { } var file_agentpb_collector_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_agentpb_collector_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_agentpb_collector_proto_msgTypes = make([]protoimpl.MessageInfo, 8) var file_agentpb_collector_proto_goTypes = []interface{}{ (ExampleFormat)(0), // 0: agent.ExampleFormat (ExampleType)(0), // 1: agent.ExampleType (*MetricsBucket)(nil), // 2: agent.MetricsBucket (*HistogramItem)(nil), // 3: agent.HistogramItem - (*MetricsBucket_Common)(nil), // 4: agent.MetricsBucket.Common - (*MetricsBucket_MySQL)(nil), // 5: agent.MetricsBucket.MySQL - (*MetricsBucket_MongoDB)(nil), // 6: agent.MetricsBucket.MongoDB - (*MetricsBucket_PostgreSQL)(nil), // 7: agent.MetricsBucket.PostgreSQL - nil, // 8: agent.MetricsBucket.Common.ErrorsEntry - (inventorypb.AgentType)(0), // 9: inventory.AgentType + (*SettingsItem)(nil), // 4: agent.SettingsItem + (*MetricsBucket_Common)(nil), // 5: agent.MetricsBucket.Common + (*MetricsBucket_MySQL)(nil), // 6: agent.MetricsBucket.MySQL + (*MetricsBucket_MongoDB)(nil), // 7: agent.MetricsBucket.MongoDB + (*MetricsBucket_PostgreSQL)(nil), // 8: agent.MetricsBucket.PostgreSQL + nil, // 9: agent.MetricsBucket.Common.ErrorsEntry + (inventorypb.AgentType)(0), // 10: inventory.AgentType } var file_agentpb_collector_proto_depIdxs = []int32{ - 4, // 0: agent.MetricsBucket.common:type_name -> agent.MetricsBucket.Common - 5, // 1: agent.MetricsBucket.mysql:type_name -> agent.MetricsBucket.MySQL - 6, // 2: agent.MetricsBucket.mongodb:type_name -> agent.MetricsBucket.MongoDB - 7, // 3: agent.MetricsBucket.postgresql:type_name -> agent.MetricsBucket.PostgreSQL - 9, // 4: agent.MetricsBucket.Common.agent_type:type_name -> inventory.AgentType - 0, // 5: agent.MetricsBucket.Common.example_format:type_name -> agent.ExampleFormat - 1, // 6: agent.MetricsBucket.Common.example_type:type_name -> agent.ExampleType - 8, // 7: agent.MetricsBucket.Common.errors:type_name -> agent.MetricsBucket.Common.ErrorsEntry - 3, // 8: agent.MetricsBucket.PostgreSQL.histogram_items:type_name -> agent.HistogramItem - 9, // [9:9] is the sub-list for method output_type - 9, // [9:9] is the sub-list for method input_type - 9, // [9:9] is the sub-list for extension type_name - 9, // [9:9] is the sub-list for extension extendee - 0, // [0:9] is the sub-list for field type_name + 5, // 0: agent.MetricsBucket.common:type_name -> agent.MetricsBucket.Common + 6, // 1: agent.MetricsBucket.mysql:type_name -> agent.MetricsBucket.MySQL + 7, // 2: agent.MetricsBucket.mongodb:type_name -> agent.MetricsBucket.MongoDB + 8, // 3: agent.MetricsBucket.postgresql:type_name -> agent.MetricsBucket.PostgreSQL + 10, // 4: agent.MetricsBucket.Common.agent_type:type_name -> inventory.AgentType + 0, // 5: agent.MetricsBucket.Common.example_format:type_name -> agent.ExampleFormat + 1, // 6: agent.MetricsBucket.Common.example_type:type_name -> agent.ExampleType + 9, // 7: agent.MetricsBucket.Common.errors:type_name -> agent.MetricsBucket.Common.ErrorsEntry + 3, // 8: agent.MetricsBucket.PostgreSQL.histogram_items:type_name -> agent.HistogramItem + 4, // 9: agent.MetricsBucket.PostgreSQL.settings_items:type_name -> agent.SettingsItem + 10, // [10:10] is the sub-list for method output_type + 10, // [10:10] is the sub-list for method input_type + 10, // [10:10] is the sub-list for extension type_name + 10, // [10:10] is the sub-list for extension extendee + 0, // [0:10] is the sub-list for field type_name } func init() { file_agentpb_collector_proto_init() } @@ -2858,7 +2991,7 @@ func file_agentpb_collector_proto_init() { } } file_agentpb_collector_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MetricsBucket_Common); i { + switch v := v.(*SettingsItem); i { case 0: return &v.state case 1: @@ -2870,7 +3003,7 @@ func file_agentpb_collector_proto_init() { } } file_agentpb_collector_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MetricsBucket_MySQL); i { + switch v := v.(*MetricsBucket_Common); i { case 0: return &v.state case 1: @@ -2882,7 +3015,7 @@ func file_agentpb_collector_proto_init() { } } file_agentpb_collector_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MetricsBucket_MongoDB); i { + switch v := v.(*MetricsBucket_MySQL); i { case 0: return &v.state case 1: @@ -2894,6 +3027,18 @@ func file_agentpb_collector_proto_init() { } } file_agentpb_collector_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MetricsBucket_MongoDB); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_agentpb_collector_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MetricsBucket_PostgreSQL); i { case 0: return &v.state @@ -2912,7 +3057,7 @@ func file_agentpb_collector_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_agentpb_collector_proto_rawDesc, NumEnums: 2, - NumMessages: 7, + NumMessages: 8, NumExtensions: 0, NumServices: 0, }, diff --git a/api/agentpb/collector.proto b/api/agentpb/collector.proto index 2fa5759f7d..29d33b60b9 100644 --- a/api/agentpb/collector.proto +++ b/api/agentpb/collector.proto @@ -347,6 +347,7 @@ message MetricsBucket { string planid = 46; string query_plan = 48; repeated HistogramItem histogram_items = 49; + repeated SettingsItem settings_items = 50; } Common common = 1; MySQL mysql = 2; @@ -359,3 +360,16 @@ message HistogramItem { string range = 1; uint32 frequency = 2; } + +// SettingsItem represents one row in settings. +message SettingsItem { + string name = 1; + string value = 2; + string default_value = 3; + string description = 4; + int64 minimum = 5; + int64 maximum = 6; + string options = 7; + string restart = 8; +} + diff --git a/api/agentpb/collector.validator.pb.go b/api/agentpb/collector.validator.pb.go index 7c7a980631..03f483e9ad 100644 --- a/api/agentpb/collector.validator.pb.go +++ b/api/agentpb/collector.validator.pb.go @@ -59,8 +59,18 @@ func (this *MetricsBucket_PostgreSQL) Validate() error { } } } + for _, item := range this.SettingsItems { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("SettingsItems", err) + } + } + } return nil } func (this *HistogramItem) Validate() error { return nil } +func (this *SettingsItem) Validate() error { + return nil +} diff --git a/api/qanpb/collector.pb.go b/api/qanpb/collector.pb.go index 5c771b4dae..7c2f2fe9e3 100644 --- a/api/qanpb/collector.pb.go +++ b/api/qanpb/collector.pb.go @@ -410,6 +410,7 @@ type MetricsBucket struct { Planid string `protobuf:"bytes,249,opt,name=planid,proto3" json:"planid,omitempty"` QueryPlan string `protobuf:"bytes,251,opt,name=query_plan,json=queryPlan,proto3" json:"query_plan,omitempty"` HistogramItems []string `protobuf:"bytes,252,rep,name=histogram_items,json=histogramItems,proto3" json:"histogram_items,omitempty"` + SettingsItems []string `protobuf:"bytes,253,rep,name=settings_items,json=settingsItems,proto3" json:"settings_items,omitempty"` } func (x *MetricsBucket) Reset() { @@ -1978,6 +1979,13 @@ func (x *MetricsBucket) GetHistogramItems() []string { return nil } +func (x *MetricsBucket) GetSettingsItems() []string { + if x != nil { + return x.SettingsItems + } + return nil +} + type CollectResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2029,7 +2037,7 @@ var file_qanpb_collector_proto_rawDesc = []byte{ 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x71, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x0d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, - 0x63, 0x6b, 0x65, 0x74, 0x22, 0xb3, 0x4f, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x63, 0x6b, 0x65, 0x74, 0x22, 0xdb, 0x4f, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x79, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x79, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x18, @@ -2653,35 +2661,37 @@ var file_qanpb_collector_proto_rawDesc = []byte{ 0x28, 0x09, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0xfc, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, - 0x61, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x61, 0x6d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x73, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0xfd, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0d, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x1a, + 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x57, 0x61, + 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, - 0x39, 0x0a, 0x0b, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x11, 0x0a, 0x0f, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x51, 0x0a, - 0x09, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x44, 0x0a, 0x07, 0x43, 0x6f, - 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x1b, 0x2e, 0x71, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x71, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x42, 0x9b, 0x01, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x2e, 0x71, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x42, 0x0e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x70, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x61, 0x2f, 0x70, 0x6d, 0x6d, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x71, 0x61, 0x6e, 0x70, 0x62, 0x3b, 0x71, 0x61, 0x6e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x51, 0x58, 0x58, 0xaa, 0x02, 0x0b, 0x51, 0x61, 0x6e, 0x2e, - 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x0b, 0x51, 0x61, 0x6e, 0x5c, 0x56, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x17, 0x51, 0x61, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, - 0x02, 0x0c, 0x51, 0x61, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x01, 0x28, 0x04, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x11, 0x0a, 0x0f, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x51, 0x0a, 0x09, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x12, 0x44, 0x0a, 0x07, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x1b, 0x2e, + 0x71, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x71, 0x61, 0x6e, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x9b, 0x01, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, + 0x2e, 0x71, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0e, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2b, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x65, 0x72, 0x63, 0x6f, + 0x6e, 0x61, 0x2f, 0x70, 0x6d, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x71, 0x61, 0x6e, 0x70, 0x62, + 0x3b, 0x71, 0x61, 0x6e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x51, 0x58, + 0x58, 0xaa, 0x02, 0x0b, 0x51, 0x61, 0x6e, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, + 0x02, 0x0b, 0x51, 0x61, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x17, + 0x51, 0x61, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0c, 0x51, 0x61, 0x6e, 0x3a, 0x3a, 0x56, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/qanpb/collector.proto b/api/qanpb/collector.proto index 60667eec05..113123c653 100644 --- a/api/qanpb/collector.proto +++ b/api/qanpb/collector.proto @@ -375,6 +375,7 @@ message MetricsBucket { string planid = 249; string query_plan = 251; repeated string histogram_items = 252; + repeated string settings_items = 253; } message CollectResponse {} diff --git a/api/qanpb/json/client/object_details/get_p_g_s_m_settings_parameters.go b/api/qanpb/json/client/object_details/get_p_g_s_m_settings_parameters.go new file mode 100644 index 0000000000..14d5be07be --- /dev/null +++ b/api/qanpb/json/client/object_details/get_p_g_s_m_settings_parameters.go @@ -0,0 +1,144 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package object_details + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "context" + "net/http" + "time" + + "github.com/go-openapi/errors" + "github.com/go-openapi/runtime" + cr "github.com/go-openapi/runtime/client" + "github.com/go-openapi/strfmt" +) + +// NewGetPGSMSettingsParams creates a new GetPGSMSettingsParams object, +// with the default timeout for this client. +// +// Default values are not hydrated, since defaults are normally applied by the API server side. +// +// To enforce default values in parameter, use SetDefaults or WithDefaults. +func NewGetPGSMSettingsParams() *GetPGSMSettingsParams { + return &GetPGSMSettingsParams{ + timeout: cr.DefaultTimeout, + } +} + +// NewGetPGSMSettingsParamsWithTimeout creates a new GetPGSMSettingsParams object +// with the ability to set a timeout on a request. +func NewGetPGSMSettingsParamsWithTimeout(timeout time.Duration) *GetPGSMSettingsParams { + return &GetPGSMSettingsParams{ + timeout: timeout, + } +} + +// NewGetPGSMSettingsParamsWithContext creates a new GetPGSMSettingsParams object +// with the ability to set a context for a request. +func NewGetPGSMSettingsParamsWithContext(ctx context.Context) *GetPGSMSettingsParams { + return &GetPGSMSettingsParams{ + Context: ctx, + } +} + +// NewGetPGSMSettingsParamsWithHTTPClient creates a new GetPGSMSettingsParams object +// with the ability to set a custom HTTPClient for a request. +func NewGetPGSMSettingsParamsWithHTTPClient(client *http.Client) *GetPGSMSettingsParams { + return &GetPGSMSettingsParams{ + HTTPClient: client, + } +} + +/* GetPGSMSettingsParams contains all the parameters to send to the API endpoint + for the get p g s m settings operation. + + Typically these are written to a http.Request. +*/ +type GetPGSMSettingsParams struct { + + // Body. + Body GetPGSMSettingsBody + + timeout time.Duration + Context context.Context + HTTPClient *http.Client +} + +// WithDefaults hydrates default values in the get p g s m settings params (not the query body). +// +// All values with no default are reset to their zero value. +func (o *GetPGSMSettingsParams) WithDefaults() *GetPGSMSettingsParams { + o.SetDefaults() + return o +} + +// SetDefaults hydrates default values in the get p g s m settings params (not the query body). +// +// All values with no default are reset to their zero value. +func (o *GetPGSMSettingsParams) SetDefaults() { + // no default values defined for this parameter +} + +// WithTimeout adds the timeout to the get p g s m settings params +func (o *GetPGSMSettingsParams) WithTimeout(timeout time.Duration) *GetPGSMSettingsParams { + o.SetTimeout(timeout) + return o +} + +// SetTimeout adds the timeout to the get p g s m settings params +func (o *GetPGSMSettingsParams) SetTimeout(timeout time.Duration) { + o.timeout = timeout +} + +// WithContext adds the context to the get p g s m settings params +func (o *GetPGSMSettingsParams) WithContext(ctx context.Context) *GetPGSMSettingsParams { + o.SetContext(ctx) + return o +} + +// SetContext adds the context to the get p g s m settings params +func (o *GetPGSMSettingsParams) SetContext(ctx context.Context) { + o.Context = ctx +} + +// WithHTTPClient adds the HTTPClient to the get p g s m settings params +func (o *GetPGSMSettingsParams) WithHTTPClient(client *http.Client) *GetPGSMSettingsParams { + o.SetHTTPClient(client) + return o +} + +// SetHTTPClient adds the HTTPClient to the get p g s m settings params +func (o *GetPGSMSettingsParams) SetHTTPClient(client *http.Client) { + o.HTTPClient = client +} + +// WithBody adds the body to the get p g s m settings params +func (o *GetPGSMSettingsParams) WithBody(body GetPGSMSettingsBody) *GetPGSMSettingsParams { + o.SetBody(body) + return o +} + +// SetBody adds the body to the get p g s m settings params +func (o *GetPGSMSettingsParams) SetBody(body GetPGSMSettingsBody) { + o.Body = body +} + +// WriteToRequest writes these params to a swagger request +func (o *GetPGSMSettingsParams) WriteToRequest(r runtime.ClientRequest, reg strfmt.Registry) error { + + if err := r.SetTimeout(o.timeout); err != nil { + return err + } + var res []error + if err := r.SetBodyParam(o.Body); err != nil { + return err + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} diff --git a/api/qanpb/json/client/object_details/get_p_g_s_m_settings_responses.go b/api/qanpb/json/client/object_details/get_p_g_s_m_settings_responses.go new file mode 100644 index 0000000000..a6adb6716f --- /dev/null +++ b/api/qanpb/json/client/object_details/get_p_g_s_m_settings_responses.go @@ -0,0 +1,612 @@ +// Code generated by go-swagger; DO NOT EDIT. + +package object_details + +// This file was generated by the swagger tool. +// Editing this file might prove futile when you re-run the swagger generate command + +import ( + "context" + "fmt" + "io" + "strconv" + + "github.com/go-openapi/errors" + "github.com/go-openapi/runtime" + "github.com/go-openapi/strfmt" + "github.com/go-openapi/swag" + "github.com/go-openapi/validate" +) + +// GetPGSMSettingsReader is a Reader for the GetPGSMSettings structure. +type GetPGSMSettingsReader struct { + formats strfmt.Registry +} + +// ReadResponse reads a server response into the received o. +func (o *GetPGSMSettingsReader) ReadResponse(response runtime.ClientResponse, consumer runtime.Consumer) (interface{}, error) { + switch response.Code() { + case 200: + result := NewGetPGSMSettingsOK() + if err := result.readResponse(response, consumer, o.formats); err != nil { + return nil, err + } + return result, nil + default: + result := NewGetPGSMSettingsDefault(response.Code()) + if err := result.readResponse(response, consumer, o.formats); err != nil { + return nil, err + } + if response.Code()/100 == 2 { + return result, nil + } + return nil, result + } +} + +// NewGetPGSMSettingsOK creates a GetPGSMSettingsOK with default headers values +func NewGetPGSMSettingsOK() *GetPGSMSettingsOK { + return &GetPGSMSettingsOK{} +} + +/* GetPGSMSettingsOK describes a response with status code 200, with default header values. + +A successful response. +*/ +type GetPGSMSettingsOK struct { + Payload *GetPGSMSettingsOKBody +} + +func (o *GetPGSMSettingsOK) Error() string { + return fmt.Sprintf("[POST /v0/qan/ObjectDetails/GetPGSMSettings][%d] getPGSMSettingsOk %+v", 200, o.Payload) +} +func (o *GetPGSMSettingsOK) GetPayload() *GetPGSMSettingsOKBody { + return o.Payload +} + +func (o *GetPGSMSettingsOK) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { + + o.Payload = new(GetPGSMSettingsOKBody) + + // response payload + if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { + return err + } + + return nil +} + +// NewGetPGSMSettingsDefault creates a GetPGSMSettingsDefault with default headers values +func NewGetPGSMSettingsDefault(code int) *GetPGSMSettingsDefault { + return &GetPGSMSettingsDefault{ + _statusCode: code, + } +} + +/* GetPGSMSettingsDefault describes a response with status code -1, with default header values. + +An unexpected error response. +*/ +type GetPGSMSettingsDefault struct { + _statusCode int + + Payload *GetPGSMSettingsDefaultBody +} + +// Code gets the status code for the get p g s m settings default response +func (o *GetPGSMSettingsDefault) Code() int { + return o._statusCode +} + +func (o *GetPGSMSettingsDefault) Error() string { + return fmt.Sprintf("[POST /v0/qan/ObjectDetails/GetPGSMSettings][%d] GetPGSMSettings default %+v", o._statusCode, o.Payload) +} +func (o *GetPGSMSettingsDefault) GetPayload() *GetPGSMSettingsDefaultBody { + return o.Payload +} + +func (o *GetPGSMSettingsDefault) readResponse(response runtime.ClientResponse, consumer runtime.Consumer, formats strfmt.Registry) error { + + o.Payload = new(GetPGSMSettingsDefaultBody) + + // response payload + if err := consumer.Consume(response.Body(), o.Payload); err != nil && err != io.EOF { + return err + } + + return nil +} + +/*GetPGSMSettingsBody SettingsRequest defines filtering by agentid. +swagger:model GetPGSMSettingsBody +*/ +type GetPGSMSettingsBody struct { + + // period start from + // Format: date-time + PeriodStartFrom strfmt.DateTime `json:"period_start_from,omitempty"` + + // period start to + // Format: date-time + PeriodStartTo strfmt.DateTime `json:"period_start_to,omitempty"` + + // labels + Labels []*GetPGSMSettingsParamsBodyLabelsItems0 `json:"labels"` + + // queryid + Queryid string `json:"queryid,omitempty"` +} + +// Validate validates this get p g s m settings body +func (o *GetPGSMSettingsBody) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validatePeriodStartFrom(formats); err != nil { + res = append(res, err) + } + + if err := o.validatePeriodStartTo(formats); err != nil { + res = append(res, err) + } + + if err := o.validateLabels(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *GetPGSMSettingsBody) validatePeriodStartFrom(formats strfmt.Registry) error { + if swag.IsZero(o.PeriodStartFrom) { // not required + return nil + } + + if err := validate.FormatOf("body"+"."+"period_start_from", "body", "date-time", o.PeriodStartFrom.String(), formats); err != nil { + return err + } + + return nil +} + +func (o *GetPGSMSettingsBody) validatePeriodStartTo(formats strfmt.Registry) error { + if swag.IsZero(o.PeriodStartTo) { // not required + return nil + } + + if err := validate.FormatOf("body"+"."+"period_start_to", "body", "date-time", o.PeriodStartTo.String(), formats); err != nil { + return err + } + + return nil +} + +func (o *GetPGSMSettingsBody) validateLabels(formats strfmt.Registry) error { + if swag.IsZero(o.Labels) { // not required + return nil + } + + for i := 0; i < len(o.Labels); i++ { + if swag.IsZero(o.Labels[i]) { // not required + continue + } + + if o.Labels[i] != nil { + if err := o.Labels[i].Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "labels" + "." + strconv.Itoa(i)) + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "labels" + "." + strconv.Itoa(i)) + } + return err + } + } + + } + + return nil +} + +// ContextValidate validate this get p g s m settings body based on the context it is used +func (o *GetPGSMSettingsBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateLabels(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *GetPGSMSettingsBody) contextValidateLabels(ctx context.Context, formats strfmt.Registry) error { + + for i := 0; i < len(o.Labels); i++ { + + if o.Labels[i] != nil { + if err := o.Labels[i].ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("body" + "." + "labels" + "." + strconv.Itoa(i)) + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("body" + "." + "labels" + "." + strconv.Itoa(i)) + } + return err + } + } + + } + + return nil +} + +// MarshalBinary interface implementation +func (o *GetPGSMSettingsBody) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *GetPGSMSettingsBody) UnmarshalBinary(b []byte) error { + var res GetPGSMSettingsBody + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/*GetPGSMSettingsDefaultBody get p g s m settings default body +swagger:model GetPGSMSettingsDefaultBody +*/ +type GetPGSMSettingsDefaultBody struct { + + // error + Error string `json:"error,omitempty"` + + // code + Code int32 `json:"code,omitempty"` + + // message + Message string `json:"message,omitempty"` + + // details + Details []*GetPGSMSettingsDefaultBodyDetailsItems0 `json:"details"` +} + +// Validate validates this get p g s m settings default body +func (o *GetPGSMSettingsDefaultBody) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateDetails(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *GetPGSMSettingsDefaultBody) validateDetails(formats strfmt.Registry) error { + if swag.IsZero(o.Details) { // not required + return nil + } + + for i := 0; i < len(o.Details); i++ { + if swag.IsZero(o.Details[i]) { // not required + continue + } + + if o.Details[i] != nil { + if err := o.Details[i].Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("GetPGSMSettings default" + "." + "details" + "." + strconv.Itoa(i)) + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("GetPGSMSettings default" + "." + "details" + "." + strconv.Itoa(i)) + } + return err + } + } + + } + + return nil +} + +// ContextValidate validate this get p g s m settings default body based on the context it is used +func (o *GetPGSMSettingsDefaultBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateDetails(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *GetPGSMSettingsDefaultBody) contextValidateDetails(ctx context.Context, formats strfmt.Registry) error { + + for i := 0; i < len(o.Details); i++ { + + if o.Details[i] != nil { + if err := o.Details[i].ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("GetPGSMSettings default" + "." + "details" + "." + strconv.Itoa(i)) + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("GetPGSMSettings default" + "." + "details" + "." + strconv.Itoa(i)) + } + return err + } + } + + } + + return nil +} + +// MarshalBinary interface implementation +func (o *GetPGSMSettingsDefaultBody) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *GetPGSMSettingsDefaultBody) UnmarshalBinary(b []byte) error { + var res GetPGSMSettingsDefaultBody + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/*GetPGSMSettingsDefaultBodyDetailsItems0 get p g s m settings default body details items0 +swagger:model GetPGSMSettingsDefaultBodyDetailsItems0 +*/ +type GetPGSMSettingsDefaultBodyDetailsItems0 struct { + + // type url + TypeURL string `json:"type_url,omitempty"` + + // value + // Format: byte + Value strfmt.Base64 `json:"value,omitempty"` +} + +// Validate validates this get p g s m settings default body details items0 +func (o *GetPGSMSettingsDefaultBodyDetailsItems0) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this get p g s m settings default body details items0 based on context it is used +func (o *GetPGSMSettingsDefaultBodyDetailsItems0) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *GetPGSMSettingsDefaultBodyDetailsItems0) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *GetPGSMSettingsDefaultBodyDetailsItems0) UnmarshalBinary(b []byte) error { + var res GetPGSMSettingsDefaultBodyDetailsItems0 + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/*GetPGSMSettingsOKBody SettingsReply is settings rows as a list. +swagger:model GetPGSMSettingsOKBody +*/ +type GetPGSMSettingsOKBody struct { + + // settings items + SettingsItems []*GetPGSMSettingsOKBodySettingsItemsItems0 `json:"settings_items"` +} + +// Validate validates this get p g s m settings OK body +func (o *GetPGSMSettingsOKBody) Validate(formats strfmt.Registry) error { + var res []error + + if err := o.validateSettingsItems(formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *GetPGSMSettingsOKBody) validateSettingsItems(formats strfmt.Registry) error { + if swag.IsZero(o.SettingsItems) { // not required + return nil + } + + for i := 0; i < len(o.SettingsItems); i++ { + if swag.IsZero(o.SettingsItems[i]) { // not required + continue + } + + if o.SettingsItems[i] != nil { + if err := o.SettingsItems[i].Validate(formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("getPGSMSettingsOk" + "." + "settings_items" + "." + strconv.Itoa(i)) + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("getPGSMSettingsOk" + "." + "settings_items" + "." + strconv.Itoa(i)) + } + return err + } + } + + } + + return nil +} + +// ContextValidate validate this get p g s m settings OK body based on the context it is used +func (o *GetPGSMSettingsOKBody) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + var res []error + + if err := o.contextValidateSettingsItems(ctx, formats); err != nil { + res = append(res, err) + } + + if len(res) > 0 { + return errors.CompositeValidationError(res...) + } + return nil +} + +func (o *GetPGSMSettingsOKBody) contextValidateSettingsItems(ctx context.Context, formats strfmt.Registry) error { + + for i := 0; i < len(o.SettingsItems); i++ { + + if o.SettingsItems[i] != nil { + if err := o.SettingsItems[i].ContextValidate(ctx, formats); err != nil { + if ve, ok := err.(*errors.Validation); ok { + return ve.ValidateName("getPGSMSettingsOk" + "." + "settings_items" + "." + strconv.Itoa(i)) + } else if ce, ok := err.(*errors.CompositeError); ok { + return ce.ValidateName("getPGSMSettingsOk" + "." + "settings_items" + "." + strconv.Itoa(i)) + } + return err + } + } + + } + + return nil +} + +// MarshalBinary interface implementation +func (o *GetPGSMSettingsOKBody) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *GetPGSMSettingsOKBody) UnmarshalBinary(b []byte) error { + var res GetPGSMSettingsOKBody + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/*GetPGSMSettingsOKBodySettingsItemsItems0 SettingsItem represents one row in settings. +swagger:model GetPGSMSettingsOKBodySettingsItemsItems0 +*/ +type GetPGSMSettingsOKBodySettingsItemsItems0 struct { + + // name + Name string `json:"name,omitempty"` + + // value + Value string `json:"value,omitempty"` + + // default value + DefaultValue string `json:"default_value,omitempty"` + + // description + Description string `json:"description,omitempty"` + + // minimum + Minimum string `json:"minimum,omitempty"` + + // maximum + Maximum string `json:"maximum,omitempty"` + + // options + Options string `json:"options,omitempty"` + + // restart + Restart string `json:"restart,omitempty"` +} + +// Validate validates this get p g s m settings OK body settings items items0 +func (o *GetPGSMSettingsOKBodySettingsItemsItems0) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this get p g s m settings OK body settings items items0 based on context it is used +func (o *GetPGSMSettingsOKBodySettingsItemsItems0) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *GetPGSMSettingsOKBodySettingsItemsItems0) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *GetPGSMSettingsOKBodySettingsItemsItems0) UnmarshalBinary(b []byte) error { + var res GetPGSMSettingsOKBodySettingsItemsItems0 + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} + +/*GetPGSMSettingsParamsBodyLabelsItems0 MapFieldEntry allows to pass labels/dimensions in form like {"server": ["db1", "db2"...]}. +swagger:model GetPGSMSettingsParamsBodyLabelsItems0 +*/ +type GetPGSMSettingsParamsBodyLabelsItems0 struct { + + // key + Key string `json:"key,omitempty"` + + // value + Value []string `json:"value"` +} + +// Validate validates this get p g s m settings params body labels items0 +func (o *GetPGSMSettingsParamsBodyLabelsItems0) Validate(formats strfmt.Registry) error { + return nil +} + +// ContextValidate validates this get p g s m settings params body labels items0 based on context it is used +func (o *GetPGSMSettingsParamsBodyLabelsItems0) ContextValidate(ctx context.Context, formats strfmt.Registry) error { + return nil +} + +// MarshalBinary interface implementation +func (o *GetPGSMSettingsParamsBodyLabelsItems0) MarshalBinary() ([]byte, error) { + if o == nil { + return nil, nil + } + return swag.WriteJSON(o) +} + +// UnmarshalBinary interface implementation +func (o *GetPGSMSettingsParamsBodyLabelsItems0) UnmarshalBinary(b []byte) error { + var res GetPGSMSettingsParamsBodyLabelsItems0 + if err := swag.ReadJSON(b, &res); err != nil { + return err + } + *o = res + return nil +} diff --git a/api/qanpb/json/client/object_details/object_details_client.go b/api/qanpb/json/client/object_details/object_details_client.go index 08c51ad07d..8b6e51e1be 100644 --- a/api/qanpb/json/client/object_details/object_details_client.go +++ b/api/qanpb/json/client/object_details/object_details_client.go @@ -34,6 +34,8 @@ type ClientService interface { GetMetrics(params *GetMetricsParams, opts ...ClientOption) (*GetMetricsOK, error) + GetPGSMSettings(params *GetPGSMSettingsParams, opts ...ClientOption) (*GetPGSMSettingsOK, error) + GetQueryExample(params *GetQueryExampleParams, opts ...ClientOption) (*GetQueryExampleOK, error) GetQueryPlan(params *GetQueryPlanParams, opts ...ClientOption) (*GetQueryPlanOK, error) @@ -152,6 +154,43 @@ func (a *Client) GetMetrics(params *GetMetricsParams, opts ...ClientOption) (*Ge return nil, runtime.NewAPIError("unexpected success response: content available as default response in error", unexpectedSuccess, unexpectedSuccess.Code()) } +/* + GetPGSMSettings gets p g s m settings gets p g s m settings from settings view +*/ +func (a *Client) GetPGSMSettings(params *GetPGSMSettingsParams, opts ...ClientOption) (*GetPGSMSettingsOK, error) { + // TODO: Validate the params before sending + if params == nil { + params = NewGetPGSMSettingsParams() + } + op := &runtime.ClientOperation{ + ID: "GetPGSMSettings", + Method: "POST", + PathPattern: "/v0/qan/ObjectDetails/GetPGSMSettings", + ProducesMediaTypes: []string{"application/json"}, + ConsumesMediaTypes: []string{"application/json"}, + Schemes: []string{"http", "https"}, + Params: params, + Reader: &GetPGSMSettingsReader{formats: a.formats}, + Context: params.Context, + Client: params.HTTPClient, + } + for _, opt := range opts { + opt(op) + } + + result, err := a.transport.Submit(op) + if err != nil { + return nil, err + } + success, ok := result.(*GetPGSMSettingsOK) + if ok { + return success, nil + } + // unexpected success response + unexpectedSuccess := result.(*GetPGSMSettingsDefault) + return nil, runtime.NewAPIError("unexpected success response: content available as default response in error", unexpectedSuccess, unexpectedSuccess.Code()) +} + /* GetQueryExample gets query example gets list of query examples */ diff --git a/api/qanpb/json/qanpb.json b/api/qanpb/json/qanpb.json index 7c91867ee9..1603affb0f 100644 --- a/api/qanpb/json/qanpb.json +++ b/api/qanpb/json/qanpb.json @@ -1718,6 +1718,157 @@ } } }, + "/v0/qan/ObjectDetails/GetPGSMSettings": { + "post": { + "tags": [ + "ObjectDetails" + ], + "summary": "GetPGSMSettings gets PGSM settings from settings view.", + "operationId": "GetPGSMSettings", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "description": "SettingsRequest defines filtering by agentid.", + "type": "object", + "properties": { + "labels": { + "type": "array", + "items": { + "description": "MapFieldEntry allows to pass labels/dimensions in form like {\"server\": [\"db1\", \"db2\"...]}.", + "type": "object", + "properties": { + "key": { + "type": "string", + "x-order": 0 + }, + "value": { + "type": "array", + "items": { + "type": "string" + }, + "x-order": 1 + } + } + }, + "x-order": 2 + }, + "period_start_from": { + "type": "string", + "format": "date-time", + "x-order": 0 + }, + "period_start_to": { + "type": "string", + "format": "date-time", + "x-order": 1 + }, + "queryid": { + "type": "string", + "x-order": 3 + } + } + } + } + ], + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "description": "SettingsReply is settings rows as a list.", + "type": "object", + "properties": { + "settings_items": { + "type": "array", + "items": { + "description": "SettingsItem represents one row in settings.", + "type": "object", + "properties": { + "default_value": { + "type": "string", + "x-order": 2 + }, + "description": { + "type": "string", + "x-order": 3 + }, + "maximum": { + "type": "string", + "format": "int64", + "x-order": 5 + }, + "minimum": { + "type": "string", + "format": "int64", + "x-order": 4 + }, + "name": { + "type": "string", + "x-order": 0 + }, + "options": { + "type": "string", + "x-order": 6 + }, + "restart": { + "type": "string", + "x-order": 7 + }, + "value": { + "type": "string", + "x-order": 1 + } + } + }, + "x-order": 0 + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "x-order": 1 + }, + "details": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type_url": { + "type": "string", + "x-order": 0 + }, + "value": { + "type": "string", + "format": "byte", + "x-order": 1 + } + } + }, + "x-order": 3 + }, + "error": { + "type": "string", + "x-order": 0 + }, + "message": { + "type": "string", + "x-order": 2 + } + } + } + } + } + } + }, "/v0/qan/ObjectDetails/GetQueryExample": { "post": { "tags": [ diff --git a/api/qanpb/object_details.pb.go b/api/qanpb/object_details.pb.go index 5ffb17a94c..bc73ece0e7 100644 --- a/api/qanpb/object_details.pb.go +++ b/api/qanpb/object_details.pb.go @@ -1060,6 +1060,230 @@ func (x *HistogramItem) GetFrequency() uint32 { return 0 } +// SettingsRequest defines filtering by agentid. +type SettingsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PeriodStartFrom *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=period_start_from,json=periodStartFrom,proto3" json:"period_start_from,omitempty"` + PeriodStartTo *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=period_start_to,json=periodStartTo,proto3" json:"period_start_to,omitempty"` + Labels []*MapFieldEntry `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty"` + Queryid string `protobuf:"bytes,4,opt,name=queryid,proto3" json:"queryid,omitempty"` +} + +func (x *SettingsRequest) Reset() { + *x = SettingsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_qanpb_object_details_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SettingsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SettingsRequest) ProtoMessage() {} + +func (x *SettingsRequest) ProtoReflect() protoreflect.Message { + mi := &file_qanpb_object_details_proto_msgTypes[15] + 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 SettingsRequest.ProtoReflect.Descriptor instead. +func (*SettingsRequest) Descriptor() ([]byte, []int) { + return file_qanpb_object_details_proto_rawDescGZIP(), []int{15} +} + +func (x *SettingsRequest) GetPeriodStartFrom() *timestamppb.Timestamp { + if x != nil { + return x.PeriodStartFrom + } + return nil +} + +func (x *SettingsRequest) GetPeriodStartTo() *timestamppb.Timestamp { + if x != nil { + return x.PeriodStartTo + } + return nil +} + +func (x *SettingsRequest) GetLabels() []*MapFieldEntry { + if x != nil { + return x.Labels + } + return nil +} + +func (x *SettingsRequest) GetQueryid() string { + if x != nil { + return x.Queryid + } + return "" +} + +// SettingsReply is settings rows as a list. +type SettingsReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SettingsItems []*SettingsItem `protobuf:"bytes,1,rep,name=settings_items,json=settingsItems,proto3" json:"settings_items,omitempty"` +} + +func (x *SettingsReply) Reset() { + *x = SettingsReply{} + if protoimpl.UnsafeEnabled { + mi := &file_qanpb_object_details_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SettingsReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SettingsReply) ProtoMessage() {} + +func (x *SettingsReply) ProtoReflect() protoreflect.Message { + mi := &file_qanpb_object_details_proto_msgTypes[16] + 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 SettingsReply.ProtoReflect.Descriptor instead. +func (*SettingsReply) Descriptor() ([]byte, []int) { + return file_qanpb_object_details_proto_rawDescGZIP(), []int{16} +} + +func (x *SettingsReply) GetSettingsItems() []*SettingsItem { + if x != nil { + return x.SettingsItems + } + return nil +} + +// SettingsItem represents one row in settings. +type SettingsItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + DefaultValue string `protobuf:"bytes,3,opt,name=default_value,json=defaultValue,proto3" json:"default_value,omitempty"` + Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` + Minimum int64 `protobuf:"varint,5,opt,name=minimum,proto3" json:"minimum,omitempty"` + Maximum int64 `protobuf:"varint,6,opt,name=maximum,proto3" json:"maximum,omitempty"` + Options string `protobuf:"bytes,7,opt,name=options,proto3" json:"options,omitempty"` + Restart string `protobuf:"bytes,8,opt,name=restart,proto3" json:"restart,omitempty"` +} + +func (x *SettingsItem) Reset() { + *x = SettingsItem{} + if protoimpl.UnsafeEnabled { + mi := &file_qanpb_object_details_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SettingsItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SettingsItem) ProtoMessage() {} + +func (x *SettingsItem) ProtoReflect() protoreflect.Message { + mi := &file_qanpb_object_details_proto_msgTypes[17] + 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 SettingsItem.ProtoReflect.Descriptor instead. +func (*SettingsItem) Descriptor() ([]byte, []int) { + return file_qanpb_object_details_proto_rawDescGZIP(), []int{17} +} + +func (x *SettingsItem) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *SettingsItem) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +func (x *SettingsItem) GetDefaultValue() string { + if x != nil { + return x.DefaultValue + } + return "" +} + +func (x *SettingsItem) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *SettingsItem) GetMinimum() int64 { + if x != nil { + return x.Minimum + } + return 0 +} + +func (x *SettingsItem) GetMaximum() int64 { + if x != nil { + return x.Maximum + } + return 0 +} + +func (x *SettingsItem) GetOptions() string { + if x != nil { + return x.Options + } + return "" +} + +func (x *SettingsItem) GetRestart() string { + if x != nil { + return x.Restart + } + return "" +} + var File_qanpb_object_details_proto protoreflect.FileDescriptor var file_qanpb_object_details_proto_rawDesc = []byte{ @@ -1247,58 +1471,101 @@ var file_qanpb_object_details_proto_rawDesc = []byte{ 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x66, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x79, 0x32, 0x8a, 0x05, 0x0a, 0x0d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x71, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x12, 0x1b, 0x2e, 0x71, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x19, 0x2e, 0x71, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x2b, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x25, 0x22, 0x20, 0x2f, 0x76, 0x30, 0x2f, 0x71, 0x61, 0x6e, 0x2f, 0x4f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2f, 0x47, 0x65, 0x74, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x85, 0x01, 0x0a, 0x0f, 0x47, 0x65, - 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x20, 0x2e, - 0x71, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1e, 0x2e, 0x71, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, - 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x22, 0x25, 0x2f, 0x76, 0x30, 0x2f, 0x71, 0x61, 0x6e, - 0x2f, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2f, 0x47, - 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x01, - 0x2a, 0x12, 0x87, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, - 0x27, 0x2e, 0x71, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x71, 0x61, 0x6e, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, - 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x22, 0x1f, 0x2f, 0x76, 0x30, 0x2f, 0x71, 0x61, 0x6e, - 0x2f, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2f, 0x47, - 0x65, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x79, 0x0a, 0x0c, 0x47, - 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x1d, 0x2e, 0x71, 0x61, - 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, - 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x71, 0x61, 0x6e, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, - 0x61, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x22, - 0x22, 0x2f, 0x76, 0x30, 0x2f, 0x71, 0x61, 0x6e, 0x2f, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2f, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, - 0x6c, 0x61, 0x6e, 0x3a, 0x01, 0x2a, 0x12, 0x79, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x12, 0x1d, 0x2e, 0x71, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x52, 0x65, + 0x65, 0x6e, 0x63, 0x79, 0x22, 0xeb, 0x01, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x11, 0x70, 0x65, 0x72, 0x69, + 0x6f, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x0f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x46, 0x72, 0x6f, 0x6d, + 0x12, 0x42, 0x0a, 0x0f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x5f, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x54, 0x6f, 0x12, 0x32, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x71, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x4d, 0x61, 0x70, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x69, 0x64, 0x22, 0x51, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x12, 0x40, 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x5f, + 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x71, 0x61, + 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x0d, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, + 0x49, 0x74, 0x65, 0x6d, 0x73, 0x22, 0xe7, 0x01, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x73, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, + 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, + 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x32, + 0x89, 0x06, 0x0a, 0x0d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x73, 0x12, 0x71, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, + 0x1b, 0x2e, 0x71, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x71, + 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x22, + 0x20, 0x2f, 0x76, 0x30, 0x2f, 0x71, 0x61, 0x6e, 0x2f, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2f, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x85, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x12, 0x20, 0x2e, 0x71, 0x61, 0x6e, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, + 0x70, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x71, 0x61, 0x6e, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x45, 0x78, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x2a, 0x22, 0x25, 0x2f, 0x76, 0x30, 0x2f, 0x71, 0x61, 0x6e, 0x2f, 0x4f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2f, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x45, 0x78, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x87, 0x01, 0x0a, + 0x09, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x27, 0x2e, 0x71, 0x61, 0x6e, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x71, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x24, 0x22, 0x1f, 0x2f, 0x76, 0x30, 0x2f, 0x71, 0x61, 0x6e, 0x2f, 0x4f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2f, 0x47, 0x65, 0x74, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x3a, 0x01, 0x2a, 0x12, 0x79, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x1d, 0x2e, 0x71, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x71, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x52, 0x65, 0x70, + 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x22, 0x22, 0x2f, 0x76, 0x30, 0x2f, 0x71, 0x61, 0x6e, 0x2f, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x73, 0x2f, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x3a, 0x01, - 0x2a, 0x42, 0x9f, 0x01, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x2e, 0x71, 0x61, 0x6e, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x12, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2b, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x61, 0x2f, - 0x70, 0x6d, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x71, 0x61, 0x6e, 0x70, 0x62, 0x3b, 0x71, 0x61, - 0x6e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x51, 0x58, 0x58, 0xaa, 0x02, - 0x0b, 0x51, 0x61, 0x6e, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x0b, 0x51, - 0x61, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x17, 0x51, 0x61, 0x6e, - 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0c, 0x51, 0x61, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x2f, 0x47, 0x65, 0x74, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x6c, 0x61, 0x6e, 0x3a, 0x01, + 0x2a, 0x12, 0x79, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, + 0x6d, 0x12, 0x1d, 0x2e, 0x71, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1b, 0x2e, 0x71, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x2d, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x22, 0x22, 0x2f, 0x76, 0x30, 0x2f, 0x71, 0x61, 0x6e, 0x2f, 0x4f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2f, 0x47, 0x65, 0x74, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x3a, 0x01, 0x2a, 0x12, 0x7d, 0x0a, 0x0f, + 0x47, 0x65, 0x74, 0x50, 0x47, 0x53, 0x4d, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, + 0x1c, 0x2e, 0x71, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, + 0x71, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x2a, 0x22, 0x25, 0x2f, 0x76, 0x30, 0x2f, 0x71, 0x61, 0x6e, 0x2f, 0x4f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2f, 0x47, 0x65, 0x74, 0x50, 0x47, 0x53, 0x4d, + 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x3a, 0x01, 0x2a, 0x42, 0x9f, 0x01, 0x0a, 0x0f, + 0x63, 0x6f, 0x6d, 0x2e, 0x71, 0x61, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, + 0x12, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x70, 0x65, 0x72, 0x63, 0x6f, 0x6e, 0x61, 0x2f, 0x70, 0x6d, 0x6d, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x71, 0x61, 0x6e, 0x70, 0x62, 0x3b, 0x71, 0x61, 0x6e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0xa2, 0x02, 0x03, 0x51, 0x58, 0x58, 0xaa, 0x02, 0x0b, 0x51, 0x61, 0x6e, 0x2e, 0x56, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x0b, 0x51, 0x61, 0x6e, 0x5c, 0x56, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x17, 0x51, 0x61, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, + 0x0c, 0x51, 0x61, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1313,7 +1580,7 @@ func file_qanpb_object_details_proto_rawDescGZIP() []byte { return file_qanpb_object_details_proto_rawDescData } -var file_qanpb_object_details_proto_msgTypes = make([]protoimpl.MessageInfo, 19) +var file_qanpb_object_details_proto_msgTypes = make([]protoimpl.MessageInfo, 22) var file_qanpb_object_details_proto_goTypes = []interface{}{ (*MetricsRequest)(nil), // 0: qan.v1beta1.MetricsRequest (*MetricsReply)(nil), // 1: qan.v1beta1.MetricsReply @@ -1330,55 +1597,64 @@ var file_qanpb_object_details_proto_goTypes = []interface{}{ (*HistogramRequest)(nil), // 12: qan.v1beta1.HistogramRequest (*HistogramReply)(nil), // 13: qan.v1beta1.HistogramReply (*HistogramItem)(nil), // 14: qan.v1beta1.HistogramItem - nil, // 15: qan.v1beta1.MetricsReply.MetricsEntry - nil, // 16: qan.v1beta1.MetricsReply.TextMetricsEntry - nil, // 17: qan.v1beta1.MetricsReply.TotalsEntry - nil, // 18: qan.v1beta1.ObjectDetailsLabelsReply.LabelsEntry - (*timestamppb.Timestamp)(nil), // 19: google.protobuf.Timestamp - (*MapFieldEntry)(nil), // 20: qan.v1beta1.MapFieldEntry - (*Point)(nil), // 21: qan.v1beta1.Point - (ExampleFormat)(0), // 22: qan.v1beta1.ExampleFormat - (ExampleType)(0), // 23: qan.v1beta1.ExampleType + (*SettingsRequest)(nil), // 15: qan.v1beta1.SettingsRequest + (*SettingsReply)(nil), // 16: qan.v1beta1.SettingsReply + (*SettingsItem)(nil), // 17: qan.v1beta1.SettingsItem + nil, // 18: qan.v1beta1.MetricsReply.MetricsEntry + nil, // 19: qan.v1beta1.MetricsReply.TextMetricsEntry + nil, // 20: qan.v1beta1.MetricsReply.TotalsEntry + nil, // 21: qan.v1beta1.ObjectDetailsLabelsReply.LabelsEntry + (*timestamppb.Timestamp)(nil), // 22: google.protobuf.Timestamp + (*MapFieldEntry)(nil), // 23: qan.v1beta1.MapFieldEntry + (*Point)(nil), // 24: qan.v1beta1.Point + (ExampleFormat)(0), // 25: qan.v1beta1.ExampleFormat + (ExampleType)(0), // 26: qan.v1beta1.ExampleType } var file_qanpb_object_details_proto_depIdxs = []int32{ - 19, // 0: qan.v1beta1.MetricsRequest.period_start_from:type_name -> google.protobuf.Timestamp - 19, // 1: qan.v1beta1.MetricsRequest.period_start_to:type_name -> google.protobuf.Timestamp - 20, // 2: qan.v1beta1.MetricsRequest.labels:type_name -> qan.v1beta1.MapFieldEntry - 15, // 3: qan.v1beta1.MetricsReply.metrics:type_name -> qan.v1beta1.MetricsReply.MetricsEntry - 16, // 4: qan.v1beta1.MetricsReply.text_metrics:type_name -> qan.v1beta1.MetricsReply.TextMetricsEntry - 21, // 5: qan.v1beta1.MetricsReply.sparkline:type_name -> qan.v1beta1.Point - 17, // 6: qan.v1beta1.MetricsReply.totals:type_name -> qan.v1beta1.MetricsReply.TotalsEntry - 19, // 7: qan.v1beta1.QueryExampleRequest.period_start_from:type_name -> google.protobuf.Timestamp - 19, // 8: qan.v1beta1.QueryExampleRequest.period_start_to:type_name -> google.protobuf.Timestamp - 20, // 9: qan.v1beta1.QueryExampleRequest.labels:type_name -> qan.v1beta1.MapFieldEntry + 22, // 0: qan.v1beta1.MetricsRequest.period_start_from:type_name -> google.protobuf.Timestamp + 22, // 1: qan.v1beta1.MetricsRequest.period_start_to:type_name -> google.protobuf.Timestamp + 23, // 2: qan.v1beta1.MetricsRequest.labels:type_name -> qan.v1beta1.MapFieldEntry + 18, // 3: qan.v1beta1.MetricsReply.metrics:type_name -> qan.v1beta1.MetricsReply.MetricsEntry + 19, // 4: qan.v1beta1.MetricsReply.text_metrics:type_name -> qan.v1beta1.MetricsReply.TextMetricsEntry + 24, // 5: qan.v1beta1.MetricsReply.sparkline:type_name -> qan.v1beta1.Point + 20, // 6: qan.v1beta1.MetricsReply.totals:type_name -> qan.v1beta1.MetricsReply.TotalsEntry + 22, // 7: qan.v1beta1.QueryExampleRequest.period_start_from:type_name -> google.protobuf.Timestamp + 22, // 8: qan.v1beta1.QueryExampleRequest.period_start_to:type_name -> google.protobuf.Timestamp + 23, // 9: qan.v1beta1.QueryExampleRequest.labels:type_name -> qan.v1beta1.MapFieldEntry 6, // 10: qan.v1beta1.QueryExampleReply.query_examples:type_name -> qan.v1beta1.QueryExample - 22, // 11: qan.v1beta1.QueryExample.example_format:type_name -> qan.v1beta1.ExampleFormat - 23, // 12: qan.v1beta1.QueryExample.example_type:type_name -> qan.v1beta1.ExampleType - 19, // 13: qan.v1beta1.ObjectDetailsLabelsRequest.period_start_from:type_name -> google.protobuf.Timestamp - 19, // 14: qan.v1beta1.ObjectDetailsLabelsRequest.period_start_to:type_name -> google.protobuf.Timestamp - 18, // 15: qan.v1beta1.ObjectDetailsLabelsReply.labels:type_name -> qan.v1beta1.ObjectDetailsLabelsReply.LabelsEntry - 19, // 16: qan.v1beta1.HistogramRequest.period_start_from:type_name -> google.protobuf.Timestamp - 19, // 17: qan.v1beta1.HistogramRequest.period_start_to:type_name -> google.protobuf.Timestamp - 20, // 18: qan.v1beta1.HistogramRequest.labels:type_name -> qan.v1beta1.MapFieldEntry + 25, // 11: qan.v1beta1.QueryExample.example_format:type_name -> qan.v1beta1.ExampleFormat + 26, // 12: qan.v1beta1.QueryExample.example_type:type_name -> qan.v1beta1.ExampleType + 22, // 13: qan.v1beta1.ObjectDetailsLabelsRequest.period_start_from:type_name -> google.protobuf.Timestamp + 22, // 14: qan.v1beta1.ObjectDetailsLabelsRequest.period_start_to:type_name -> google.protobuf.Timestamp + 21, // 15: qan.v1beta1.ObjectDetailsLabelsReply.labels:type_name -> qan.v1beta1.ObjectDetailsLabelsReply.LabelsEntry + 22, // 16: qan.v1beta1.HistogramRequest.period_start_from:type_name -> google.protobuf.Timestamp + 22, // 17: qan.v1beta1.HistogramRequest.period_start_to:type_name -> google.protobuf.Timestamp + 23, // 18: qan.v1beta1.HistogramRequest.labels:type_name -> qan.v1beta1.MapFieldEntry 14, // 19: qan.v1beta1.HistogramReply.histogram_items:type_name -> qan.v1beta1.HistogramItem - 2, // 20: qan.v1beta1.MetricsReply.MetricsEntry.value:type_name -> qan.v1beta1.MetricValues - 2, // 21: qan.v1beta1.MetricsReply.TotalsEntry.value:type_name -> qan.v1beta1.MetricValues - 9, // 22: qan.v1beta1.ObjectDetailsLabelsReply.LabelsEntry.value:type_name -> qan.v1beta1.ListLabelValues - 0, // 23: qan.v1beta1.ObjectDetails.GetMetrics:input_type -> qan.v1beta1.MetricsRequest - 4, // 24: qan.v1beta1.ObjectDetails.GetQueryExample:input_type -> qan.v1beta1.QueryExampleRequest - 7, // 25: qan.v1beta1.ObjectDetails.GetLabels:input_type -> qan.v1beta1.ObjectDetailsLabelsRequest - 10, // 26: qan.v1beta1.ObjectDetails.GetQueryPlan:input_type -> qan.v1beta1.QueryPlanRequest - 12, // 27: qan.v1beta1.ObjectDetails.GetHistogram:input_type -> qan.v1beta1.HistogramRequest - 1, // 28: qan.v1beta1.ObjectDetails.GetMetrics:output_type -> qan.v1beta1.MetricsReply - 5, // 29: qan.v1beta1.ObjectDetails.GetQueryExample:output_type -> qan.v1beta1.QueryExampleReply - 8, // 30: qan.v1beta1.ObjectDetails.GetLabels:output_type -> qan.v1beta1.ObjectDetailsLabelsReply - 11, // 31: qan.v1beta1.ObjectDetails.GetQueryPlan:output_type -> qan.v1beta1.QueryPlanReply - 13, // 32: qan.v1beta1.ObjectDetails.GetHistogram:output_type -> qan.v1beta1.HistogramReply - 28, // [28:33] is the sub-list for method output_type - 23, // [23:28] is the sub-list for method input_type - 23, // [23:23] is the sub-list for extension type_name - 23, // [23:23] is the sub-list for extension extendee - 0, // [0:23] is the sub-list for field type_name + 22, // 20: qan.v1beta1.SettingsRequest.period_start_from:type_name -> google.protobuf.Timestamp + 22, // 21: qan.v1beta1.SettingsRequest.period_start_to:type_name -> google.protobuf.Timestamp + 23, // 22: qan.v1beta1.SettingsRequest.labels:type_name -> qan.v1beta1.MapFieldEntry + 17, // 23: qan.v1beta1.SettingsReply.settings_items:type_name -> qan.v1beta1.SettingsItem + 2, // 24: qan.v1beta1.MetricsReply.MetricsEntry.value:type_name -> qan.v1beta1.MetricValues + 2, // 25: qan.v1beta1.MetricsReply.TotalsEntry.value:type_name -> qan.v1beta1.MetricValues + 9, // 26: qan.v1beta1.ObjectDetailsLabelsReply.LabelsEntry.value:type_name -> qan.v1beta1.ListLabelValues + 0, // 27: qan.v1beta1.ObjectDetails.GetMetrics:input_type -> qan.v1beta1.MetricsRequest + 4, // 28: qan.v1beta1.ObjectDetails.GetQueryExample:input_type -> qan.v1beta1.QueryExampleRequest + 7, // 29: qan.v1beta1.ObjectDetails.GetLabels:input_type -> qan.v1beta1.ObjectDetailsLabelsRequest + 10, // 30: qan.v1beta1.ObjectDetails.GetQueryPlan:input_type -> qan.v1beta1.QueryPlanRequest + 12, // 31: qan.v1beta1.ObjectDetails.GetHistogram:input_type -> qan.v1beta1.HistogramRequest + 15, // 32: qan.v1beta1.ObjectDetails.GetPGSMSettings:input_type -> qan.v1beta1.SettingsRequest + 1, // 33: qan.v1beta1.ObjectDetails.GetMetrics:output_type -> qan.v1beta1.MetricsReply + 5, // 34: qan.v1beta1.ObjectDetails.GetQueryExample:output_type -> qan.v1beta1.QueryExampleReply + 8, // 35: qan.v1beta1.ObjectDetails.GetLabels:output_type -> qan.v1beta1.ObjectDetailsLabelsReply + 11, // 36: qan.v1beta1.ObjectDetails.GetQueryPlan:output_type -> qan.v1beta1.QueryPlanReply + 13, // 37: qan.v1beta1.ObjectDetails.GetHistogram:output_type -> qan.v1beta1.HistogramReply + 16, // 38: qan.v1beta1.ObjectDetails.GetPGSMSettings:output_type -> qan.v1beta1.SettingsReply + 33, // [33:39] is the sub-list for method output_type + 27, // [27:33] is the sub-list for method input_type + 27, // [27:27] is the sub-list for extension type_name + 27, // [27:27] is the sub-list for extension extendee + 0, // [0:27] is the sub-list for field type_name } func init() { file_qanpb_object_details_proto_init() } @@ -1568,6 +1844,42 @@ func file_qanpb_object_details_proto_init() { return nil } } + file_qanpb_object_details_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SettingsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_qanpb_object_details_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SettingsReply); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_qanpb_object_details_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SettingsItem); 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{ @@ -1575,7 +1887,7 @@ func file_qanpb_object_details_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_qanpb_object_details_proto_rawDesc, NumEnums: 0, - NumMessages: 19, + NumMessages: 22, NumExtensions: 0, NumServices: 1, }, diff --git a/api/qanpb/object_details.pb.gw.go b/api/qanpb/object_details.pb.gw.go index 88215b4ec3..da511f61a0 100644 --- a/api/qanpb/object_details.pb.gw.go +++ b/api/qanpb/object_details.pb.gw.go @@ -203,6 +203,40 @@ func local_request_ObjectDetails_GetHistogram_0(ctx context.Context, marshaler r } +func request_ObjectDetails_GetPGSMSettings_0(ctx context.Context, marshaler runtime.Marshaler, client ObjectDetailsClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SettingsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetPGSMSettings(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_ObjectDetails_GetPGSMSettings_0(ctx context.Context, marshaler runtime.Marshaler, server ObjectDetailsServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SettingsRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetPGSMSettings(ctx, &protoReq) + return msg, metadata, err + +} + // RegisterObjectDetailsHandlerServer registers the http handlers for service ObjectDetails to "mux". // UnaryRPC :call ObjectDetailsServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. @@ -324,6 +358,29 @@ func RegisterObjectDetailsHandlerServer(ctx context.Context, mux *runtime.ServeM }) + mux.Handle("POST", pattern_ObjectDetails_GetPGSMSettings_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_ObjectDetails_GetPGSMSettings_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_ObjectDetails_GetPGSMSettings_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -465,6 +522,26 @@ func RegisterObjectDetailsHandlerClient(ctx context.Context, mux *runtime.ServeM }) + mux.Handle("POST", pattern_ObjectDetails_GetPGSMSettings_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_ObjectDetails_GetPGSMSettings_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_ObjectDetails_GetPGSMSettings_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + return nil } @@ -478,6 +555,8 @@ var ( pattern_ObjectDetails_GetQueryPlan_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v0", "qan", "ObjectDetails", "GetQueryPlan"}, "", runtime.AssumeColonVerbOpt(true))) pattern_ObjectDetails_GetHistogram_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v0", "qan", "ObjectDetails", "GetHistogram"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_ObjectDetails_GetPGSMSettings_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v0", "qan", "ObjectDetails", "GetPGSMSettings"}, "", runtime.AssumeColonVerbOpt(true))) ) var ( @@ -490,4 +569,6 @@ var ( forward_ObjectDetails_GetQueryPlan_0 = runtime.ForwardResponseMessage forward_ObjectDetails_GetHistogram_0 = runtime.ForwardResponseMessage + + forward_ObjectDetails_GetPGSMSettings_0 = runtime.ForwardResponseMessage ) diff --git a/api/qanpb/object_details.proto b/api/qanpb/object_details.proto index a6dfbf861c..53d56d3e49 100644 --- a/api/qanpb/object_details.proto +++ b/api/qanpb/object_details.proto @@ -45,6 +45,13 @@ service ObjectDetails { body: "*" }; } + // GetPGSMSettings gets PGSM settings from settings view. + rpc GetPGSMSettings(SettingsRequest) returns (SettingsReply) { + option (google.api.http) = { + post: "/v0/qan/ObjectDetails/GetPGSMSettings" + body: "*" + }; + } } // MetricsRequest defines filtering of metrics for specific value of dimension (ex.: host=hostname1 or queryid=1D410B4BE5060972. @@ -169,3 +176,28 @@ message HistogramItem { string range = 1; uint32 frequency = 2; } + +// SettingsRequest defines filtering by agentid. +message SettingsRequest { + google.protobuf.Timestamp period_start_from = 1; + google.protobuf.Timestamp period_start_to = 2; + repeated MapFieldEntry labels = 3; + string queryid = 4; +} + +// SettingsReply is settings rows as a list. +message SettingsReply { + repeated SettingsItem settings_items = 1; +} + +// SettingsItem represents one row in settings. +message SettingsItem { + string name = 1; + string value = 2; + string default_value = 3; + string description = 4; + int64 minimum = 5; + int64 maximum = 6; + string options = 7; + string restart = 8; +} diff --git a/api/qanpb/object_details.validator.pb.go b/api/qanpb/object_details.validator.pb.go index d0f41376f2..c81ec74ab2 100644 --- a/api/qanpb/object_details.validator.pb.go +++ b/api/qanpb/object_details.validator.pb.go @@ -149,3 +149,36 @@ func (this *HistogramReply) Validate() error { func (this *HistogramItem) Validate() error { return nil } +func (this *SettingsRequest) Validate() error { + if this.PeriodStartFrom != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.PeriodStartFrom); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("PeriodStartFrom", err) + } + } + if this.PeriodStartTo != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.PeriodStartTo); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("PeriodStartTo", err) + } + } + for _, item := range this.Labels { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("Labels", err) + } + } + } + return nil +} +func (this *SettingsReply) Validate() error { + for _, item := range this.SettingsItems { + if item != nil { + if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil { + return github_com_mwitkow_go_proto_validators.FieldError("SettingsItems", err) + } + } + } + return nil +} +func (this *SettingsItem) Validate() error { + return nil +} diff --git a/api/qanpb/object_details_grpc.pb.go b/api/qanpb/object_details_grpc.pb.go index 8dc56d0f15..cd5ada694a 100644 --- a/api/qanpb/object_details_grpc.pb.go +++ b/api/qanpb/object_details_grpc.pb.go @@ -33,6 +33,8 @@ type ObjectDetailsClient interface { GetQueryPlan(ctx context.Context, in *QueryPlanRequest, opts ...grpc.CallOption) (*QueryPlanReply, error) // GetHistogram gets histogram items for specific filtering. GetHistogram(ctx context.Context, in *HistogramRequest, opts ...grpc.CallOption) (*HistogramReply, error) + // GetPGSMSettings gets PGSM settings from settings view. + GetPGSMSettings(ctx context.Context, in *SettingsRequest, opts ...grpc.CallOption) (*SettingsReply, error) } type objectDetailsClient struct { @@ -88,6 +90,15 @@ func (c *objectDetailsClient) GetHistogram(ctx context.Context, in *HistogramReq return out, nil } +func (c *objectDetailsClient) GetPGSMSettings(ctx context.Context, in *SettingsRequest, opts ...grpc.CallOption) (*SettingsReply, error) { + out := new(SettingsReply) + err := c.cc.Invoke(ctx, "/qan.v1beta1.ObjectDetails/GetPGSMSettings", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // ObjectDetailsServer is the server API for ObjectDetails service. // All implementations must embed UnimplementedObjectDetailsServer // for forward compatibility @@ -102,6 +113,8 @@ type ObjectDetailsServer interface { GetQueryPlan(context.Context, *QueryPlanRequest) (*QueryPlanReply, error) // GetHistogram gets histogram items for specific filtering. GetHistogram(context.Context, *HistogramRequest) (*HistogramReply, error) + // GetPGSMSettings gets PGSM settings from settings view. + GetPGSMSettings(context.Context, *SettingsRequest) (*SettingsReply, error) mustEmbedUnimplementedObjectDetailsServer() } @@ -124,6 +137,9 @@ func (UnimplementedObjectDetailsServer) GetQueryPlan(context.Context, *QueryPlan func (UnimplementedObjectDetailsServer) GetHistogram(context.Context, *HistogramRequest) (*HistogramReply, error) { return nil, status.Errorf(codes.Unimplemented, "method GetHistogram not implemented") } +func (UnimplementedObjectDetailsServer) GetPGSMSettings(context.Context, *SettingsRequest) (*SettingsReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetPGSMSettings not implemented") +} func (UnimplementedObjectDetailsServer) mustEmbedUnimplementedObjectDetailsServer() {} // UnsafeObjectDetailsServer may be embedded to opt out of forward compatibility for this service. @@ -227,6 +243,24 @@ func _ObjectDetails_GetHistogram_Handler(srv interface{}, ctx context.Context, d return interceptor(ctx, in, info, handler) } +func _ObjectDetails_GetPGSMSettings_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SettingsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ObjectDetailsServer).GetPGSMSettings(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/qan.v1beta1.ObjectDetails/GetPGSMSettings", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ObjectDetailsServer).GetPGSMSettings(ctx, req.(*SettingsRequest)) + } + return interceptor(ctx, in, info, handler) +} + // ObjectDetails_ServiceDesc is the grpc.ServiceDesc for ObjectDetails service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -254,6 +288,10 @@ var ObjectDetails_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetHistogram", Handler: _ObjectDetails_GetHistogram_Handler, }, + { + MethodName: "GetPGSMSettings", + Handler: _ObjectDetails_GetPGSMSettings_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "qanpb/object_details.proto", diff --git a/api/swagger/swagger-dev-only.json b/api/swagger/swagger-dev-only.json index 75ccd0ad07..e35a8e9af1 100644 --- a/api/swagger/swagger-dev-only.json +++ b/api/swagger/swagger-dev-only.json @@ -1719,6 +1719,157 @@ } } }, + "/v0/qan/ObjectDetails/GetPGSMSettings": { + "post": { + "tags": [ + "ObjectDetails" + ], + "summary": "GetPGSMSettings gets PGSM settings from settings view.", + "operationId": "GetPGSMSettings", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "description": "SettingsRequest defines filtering by agentid.", + "type": "object", + "properties": { + "period_start_from": { + "type": "string", + "format": "date-time", + "x-order": 0 + }, + "period_start_to": { + "type": "string", + "format": "date-time", + "x-order": 1 + }, + "labels": { + "type": "array", + "items": { + "description": "MapFieldEntry allows to pass labels/dimensions in form like {\"server\": [\"db1\", \"db2\"...]}.", + "type": "object", + "properties": { + "key": { + "type": "string", + "x-order": 0 + }, + "value": { + "type": "array", + "items": { + "type": "string" + }, + "x-order": 1 + } + } + }, + "x-order": 2 + }, + "queryid": { + "type": "string", + "x-order": 3 + } + } + } + } + ], + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "description": "SettingsReply is settings rows as a list.", + "type": "object", + "properties": { + "settings_items": { + "type": "array", + "items": { + "description": "SettingsItem represents one row in settings.", + "type": "object", + "properties": { + "name": { + "type": "string", + "x-order": 0 + }, + "value": { + "type": "string", + "x-order": 1 + }, + "default_value": { + "type": "string", + "x-order": 2 + }, + "description": { + "type": "string", + "x-order": 3 + }, + "minimum": { + "type": "string", + "format": "int64", + "x-order": 4 + }, + "maximum": { + "type": "string", + "format": "int64", + "x-order": 5 + }, + "options": { + "type": "string", + "x-order": 6 + }, + "restart": { + "type": "string", + "x-order": 7 + } + } + }, + "x-order": 0 + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "x-order": 0 + }, + "code": { + "type": "integer", + "format": "int32", + "x-order": 1 + }, + "message": { + "type": "string", + "x-order": 2 + }, + "details": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type_url": { + "type": "string", + "x-order": 0 + }, + "value": { + "type": "string", + "format": "byte", + "x-order": 1 + } + } + }, + "x-order": 3 + } + } + } + } + } + } + }, "/v0/qan/ObjectDetails/GetQueryExample": { "post": { "tags": [ diff --git a/api/swagger/swagger-dev.json b/api/swagger/swagger-dev.json index 081684d710..abc14a4ade 100644 --- a/api/swagger/swagger-dev.json +++ b/api/swagger/swagger-dev.json @@ -1759,6 +1759,157 @@ } } }, + "/v0/qan/ObjectDetails/GetPGSMSettings": { + "post": { + "tags": [ + "ObjectDetails" + ], + "summary": "GetPGSMSettings gets PGSM settings from settings view.", + "operationId": "GetPGSMSettings", + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "description": "SettingsRequest defines filtering by agentid.", + "type": "object", + "properties": { + "period_start_from": { + "type": "string", + "format": "date-time", + "x-order": 0 + }, + "period_start_to": { + "type": "string", + "format": "date-time", + "x-order": 1 + }, + "labels": { + "type": "array", + "items": { + "description": "MapFieldEntry allows to pass labels/dimensions in form like {\"server\": [\"db1\", \"db2\"...]}.", + "type": "object", + "properties": { + "key": { + "type": "string", + "x-order": 0 + }, + "value": { + "type": "array", + "items": { + "type": "string" + }, + "x-order": 1 + } + } + }, + "x-order": 2 + }, + "queryid": { + "type": "string", + "x-order": 3 + } + } + } + } + ], + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "description": "SettingsReply is settings rows as a list.", + "type": "object", + "properties": { + "settings_items": { + "type": "array", + "items": { + "description": "SettingsItem represents one row in settings.", + "type": "object", + "properties": { + "name": { + "type": "string", + "x-order": 0 + }, + "value": { + "type": "string", + "x-order": 1 + }, + "default_value": { + "type": "string", + "x-order": 2 + }, + "description": { + "type": "string", + "x-order": 3 + }, + "minimum": { + "type": "string", + "format": "int64", + "x-order": 4 + }, + "maximum": { + "type": "string", + "format": "int64", + "x-order": 5 + }, + "options": { + "type": "string", + "x-order": 6 + }, + "restart": { + "type": "string", + "x-order": 7 + } + } + }, + "x-order": 0 + } + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "type": "object", + "properties": { + "error": { + "type": "string", + "x-order": 0 + }, + "code": { + "type": "integer", + "format": "int32", + "x-order": 1 + }, + "message": { + "type": "string", + "x-order": 2 + }, + "details": { + "type": "array", + "items": { + "type": "object", + "properties": { + "type_url": { + "type": "string", + "x-order": 0 + }, + "value": { + "type": "string", + "format": "byte", + "x-order": 1 + } + } + }, + "x-order": 3 + } + } + } + } + } + } + }, "/v0/qan/ObjectDetails/GetQueryExample": { "post": { "tags": [