github.com/m3db/m3@v1.5.1-0.20231129193456-75a402aa583b/src/query/generated/proto/rpcpb/query.proto (about)

     1  syntax = "proto3";
     2  
     3  package rpc;
     4  
     5  option go_package = "rpcpb";
     6  
     7  import "github.com/m3db/m3/src/metrics/generated/proto/policypb/policy.proto";
     8  
     9  service Query {
    10  	rpc Health(HealthRequest)             returns (HealthResponse);
    11  	rpc Fetch(FetchRequest)               returns (stream FetchResponse);
    12  	rpc Search(SearchRequest)             returns (stream SearchResponse);
    13  	rpc CompleteTags(CompleteTagsRequest) returns (stream CompleteTagsResponse);
    14  }
    15  
    16  message HealthRequest {
    17  }
    18  
    19  message HealthResponse {
    20  	string uptimeDuration = 1;
    21  	int64 uptimeNanoseconds = 2;
    22  }
    23  
    24  message FetchRequest {
    25  	int64 start               = 1;
    26  	int64 end                 = 2;
    27  	oneof matchers {
    28  		TagMatchers tagMatchers = 3;
    29  	}
    30  	FetchOptions options = 4;
    31  }
    32  
    33  message TagMatchers {
    34  	repeated TagMatcher tagMatchers = 1;
    35  }
    36  
    37  message TagMatcher {
    38  	bytes name       = 1;
    39  	bytes value      = 2;
    40  	MatcherType type = 3;
    41  }
    42  
    43  enum MatcherType {
    44  	EQUAL     = 0;
    45  	NOTEQUAL  = 1;
    46  	REGEXP    = 2;
    47  	NOTREGEXP = 3;
    48  	// EXISTS and NOTEXISTS apply only to
    49  	// matcher name rather than value.
    50  	EXISTS    = 4;
    51  	NOTEXISTS = 5;
    52  	// ALL supercedes other matcher types
    53  	// and does no filtering.
    54  	ALL       = 6;
    55  }
    56  
    57  message FetchOptions {
    58  	int64 limit                      = 1;
    59  	RestrictQueryOptions restrict    = 2;
    60  	int64 lookbackDuration           = 3;
    61  	FanoutOption unaggregated        = 4;
    62  	FanoutOption aggregated          = 5;
    63  	FanoutOption aggregatedOptimized = 6;
    64  	// Deprecated: all requests will include resolution.
    65  	bool includeResolution           = 7 [deprecated=true];
    66  	bytes source                     = 8;
    67  }
    68  
    69  message RestrictQueryOptions {
    70  	RestrictQueryType restrictQueryType = 3;
    71  	RestrictQueryTags restrictQueryTags = 4;
    72  }
    73  
    74  message RestrictQueryType {
    75  	MetricsType metricsType                     = 1;
    76  	policypb.StoragePolicy metricsStoragePolicy = 2;
    77  }
    78  
    79  message RestrictQueryTags {
    80  	TagMatchers restrict = 1;
    81  	repeated bytes strip = 2;
    82  }
    83  
    84  enum MetricsType {
    85  	UNKNOWN_METRICS_TYPE      = 0;
    86  	UNAGGREGATED_METRICS_TYPE = 1;
    87  	AGGREGATED_METRICS_TYPE   = 2;
    88  }
    89  
    90  enum FanoutOption {
    91  	DEFAULT_OPTION   = 0;
    92  	FORCE_ENABLED    = 1;
    93  	FORCE_DISABLED   = 2;
    94  }
    95  
    96  message FetchResponse {
    97  	repeated Series series = 1;
    98  	ResultMetadata meta    = 2;
    99  }
   100  
   101  message Series {
   102  	SeriesMetadata meta               = 1;
   103  	oneof value {
   104  		DecompressedSeries decompressed = 2;
   105  		M3CompressedSeries compressed   = 3;
   106  	}
   107  }
   108  
   109  message SeriesMetadata {
   110  	bytes id         = 1;
   111  	int64 startTime  = 2;
   112  	int64 endTime    = 3;
   113  }
   114  
   115  message DecompressedSeries {
   116  	repeated Datapoint datapoints = 1;
   117  	repeated Tag tags             = 2;
   118  }
   119  
   120  message Datapoint {
   121  	int64 timestamp = 1;
   122  	double value    = 2;
   123  }
   124  
   125  message Tag {
   126  	bytes name  = 1;
   127  	bytes value = 2;
   128  }
   129  
   130  message M3CompressedSeries {
   131  	bytes compressedTags                        = 1;
   132  	repeated M3CompressedValuesReplica replicas = 2;
   133  }
   134  
   135  message M3CompressedValuesReplica {
   136  	repeated M3Segments segments = 1;
   137  }
   138  
   139  message M3Segments {
   140  	M3Segment merged            = 1;
   141  	repeated M3Segment unmerged = 2;
   142  }
   143  
   144  message M3Segment {
   145  	bytes head      = 1;
   146  	bytes tail      = 2;
   147  	int64 startTime = 3;
   148  	int64 blockSize = 4;
   149  	uint32 checksum = 5;
   150  }
   151  
   152  message SearchRequest {
   153  	oneof matchers {
   154  		TagMatchers tagMatchers = 1;
   155  	}
   156  	int64 start               = 2;
   157  	int64 end                 = 3;
   158  	FetchOptions options      = 4;
   159  }
   160  
   161  message M3TagProperty {
   162  	bytes id             = 1;
   163  	bytes compressedTags = 2;
   164  }
   165  
   166  message M3TagProperties {
   167  	repeated M3TagProperty properties = 1;
   168  }
   169  
   170  message TagProperty {
   171  	bytes key    = 1;
   172  	bytes values = 2;
   173  }
   174  
   175  message TagProperties {
   176  	repeated TagProperty properties = 1;
   177  }
   178  
   179  message SearchResponse {
   180  	oneof value {
   181  		TagProperties decompressed = 1;
   182  		M3TagProperties compressed = 2;
   183  	}
   184  
   185  	ResultMetadata meta          = 3;
   186  }
   187  
   188  enum CompleteTagsType {
   189  	// Requests tag names and values
   190  	DEFAULT = 0;
   191  	// Requests tag names only
   192  	TAGNAME = 1;
   193  }
   194  
   195  message CompleteTagsRequestOptions {
   196  	CompleteTagsType type         = 1;
   197  	repeated bytes filterNameTags = 2;
   198  	int64 start                   = 3;
   199  	int64 end                     = 4;
   200  	FetchOptions options          = 5;
   201  }
   202  
   203  message CompleteTagsRequest {
   204  	oneof matchers {
   205  		TagMatchers tagMatchers          = 1;
   206  	}
   207  
   208  	CompleteTagsRequestOptions options = 2;
   209  }
   210  
   211  message TagNames {
   212  	repeated bytes names = 1;
   213  }
   214  
   215  message TagValue {
   216  	bytes key             = 1;
   217  	repeated bytes values = 2;
   218  }
   219  
   220  message TagValues {
   221  	repeated TagValue values = 1;
   222  }
   223  
   224  message CompleteTagsResponse {
   225  	oneof value {
   226  		TagValues default   = 1;
   227  		TagNames namesOnly  = 2;
   228  	}
   229  
   230  	ResultMetadata meta   = 3;
   231  }
   232  
   233  message ResultMetadata {
   234  	bool exhaustive            = 1;
   235  	repeated Warning warnings  = 2;
   236  	repeated int64 resolutions = 3;
   237  }
   238  
   239  message Warning {
   240  	bytes name    = 1;
   241  	bytes message = 2;
   242  }