feat: Update protobuf from idpe and influxdb

pull/24376/head
Carol (Nichols || Goulding) 2020-04-30 14:05:29 -04:00
parent 415c8d5c5c
commit fbf25a5f8b
2 changed files with 106 additions and 5 deletions

View File

@ -150,7 +150,7 @@ Considerations:
on boot it should load up its S3 file index and keep in memory
*/
// From https://github.com/influxdata/influxdb/blob/master/storage/reads/datatypes/storage_common.proto
// From https://github.com/influxdata/idpe/blob/master/storage/read/service.proto
service Storage {
// ReadFilter performs a filter operation at storage
@ -167,8 +167,18 @@ service Storage {
// Capabilities returns a map of keys and values identifying the capabilities supported by the storage engine
rpc Capabilities (google.protobuf.Empty) returns (CapabilitiesResponse);
rpc MeasurementNames(MeasurementNamesRequest) returns (stream StringValuesResponse);
rpc MeasurementTagKeys(MeasurementTagKeysRequest) returns (stream StringValuesResponse);
rpc MeasurementTagValues(MeasurementTagValuesRequest) returns (stream StringValuesResponse);
rpc MeasurementFields(MeasurementFieldsRequest) returns (stream MeasurementFieldsResponse);
}
// From https://github.com/influxdata/influxdb/blob/master/storage/reads/datatypes/storage_common.proto
message ReadFilterRequest {
google.protobuf.Any read_source = 1;
TimestampRange range = 2;
@ -202,6 +212,8 @@ message Aggregate {
NONE = 0;
SUM = 1;
COUNT = 2;
MIN = 3;
MAX = 4;
}
AggregateType type = 1;
@ -309,11 +321,63 @@ message TagValuesRequest {
string tag_key = 4;
}
// Response message for Storage.TagKeys and Storage.TagValues.
// Response message for Storage.TagKeys, Storage.TagValues Storage.MeasurementNames,
// Storage.MeasurementTagKeys and Storage.MeasurementTagValues.
message StringValuesResponse {
repeated bytes values = 1;
}
// MeasurementNamesRequest is the request message for Storage.MeasurementNames.
message MeasurementNamesRequest {
google.protobuf.Any source = 1;
TimestampRange range = 2;
}
// MeasurementTagKeysRequest is the request message for Storage.MeasurementTagKeys.
message MeasurementTagKeysRequest {
google.protobuf.Any source = 1;
string measurement = 2;
TimestampRange range = 3;
Predicate predicate = 4;
}
// MeasurementTagValuesRequest is the request message for Storage.MeasurementTagValues.
message MeasurementTagValuesRequest {
google.protobuf.Any source = 1;
string measurement = 2;
string tag_key = 3;
TimestampRange range = 4;
Predicate predicate = 5;
}
// MeasurementFieldsRequest is the request message for Storage.MeasurementFields.
message MeasurementFieldsRequest {
google.protobuf.Any source = 1;
string measurement = 2;
TimestampRange range = 3;
Predicate predicate = 4;
}
// MeasurementFieldsResponse is the response message for Storage.MeasurementFields.
message MeasurementFieldsResponse {
enum FieldType {
FLOAT = 0;
INTEGER = 1;
UNSIGNED = 2;
STRING = 3;
BOOLEAN = 4;
UNDEFINED = 5;
}
message MessageField {
string key = 1;
FieldType type = 2;
sfixed64 timestamp = 3;
}
repeated MessageField fields = 1;
}
// From https://github.com/influxdata/idpe/blob/master/storage/read/source.proto
message ReadSource {

View File

@ -5,9 +5,10 @@ use delorean::delorean::{
},
storage_server::Storage,
CapabilitiesResponse, CreateBucketRequest, CreateBucketResponse, DeleteBucketRequest,
DeleteBucketResponse, GetBucketsResponse, Organization, Predicate, ReadFilterRequest,
ReadGroupRequest, ReadResponse, ReadSource, StringValuesResponse, Tag, TagKeysRequest,
TagValuesRequest, TimestampRange,
DeleteBucketResponse, GetBucketsResponse, MeasurementFieldsRequest, MeasurementFieldsResponse,
MeasurementNamesRequest, MeasurementTagKeysRequest, MeasurementTagValuesRequest, Organization,
Predicate, ReadFilterRequest, ReadGroupRequest, ReadResponse, ReadSource, StringValuesResponse,
Tag, TagKeysRequest, TagValuesRequest, TimestampRange,
};
use delorean::id::Id;
use delorean::storage::partitioned_store::{PartitionKeyValues, ReadValues};
@ -337,6 +338,42 @@ impl Storage for GrpcServer {
) -> Result<tonic::Response<CapabilitiesResponse>, Status> {
Err(Status::unimplemented("Not yet implemented"))
}
type MeasurementNamesStream = mpsc::Receiver<Result<StringValuesResponse, Status>>;
async fn measurement_names(
&self,
_: tonic::Request<MeasurementNamesRequest>,
) -> Result<tonic::Response<Self::MeasurementNamesStream>, Status> {
Err(Status::unimplemented("Not yet implemented"))
}
type MeasurementTagKeysStream = mpsc::Receiver<Result<StringValuesResponse, Status>>;
async fn measurement_tag_keys(
&self,
_: tonic::Request<MeasurementTagKeysRequest>,
) -> Result<tonic::Response<Self::MeasurementTagKeysStream>, Status> {
Err(Status::unimplemented("Not yet implemented"))
}
type MeasurementTagValuesStream = mpsc::Receiver<Result<StringValuesResponse, Status>>;
async fn measurement_tag_values(
&self,
_: tonic::Request<MeasurementTagValuesRequest>,
) -> Result<tonic::Response<Self::MeasurementTagValuesStream>, Status> {
Err(Status::unimplemented("Not yet implemented"))
}
type MeasurementFieldsStream = mpsc::Receiver<Result<MeasurementFieldsResponse, Status>>;
async fn measurement_fields(
&self,
_: tonic::Request<MeasurementFieldsRequest>,
) -> Result<tonic::Response<Self::MeasurementFieldsStream>, Status> {
Err(Status::unimplemented("Not yet implemented"))
}
}
async fn send_series_filters(