| syntax = "proto3"; |
| |
| package prometheus; |
| option java_package = "io.ceresdb.proto.internal"; |
| option java_outer_classname = "Prometheus"; |
| option go_package = "github.com/CeresDB/ceresdbproto/golang/pkg/ceresprompb"; |
| |
| message Expr { |
| oneof node { |
| Operand operand = 1; |
| SubExpr sub_expr = 2; |
| }; |
| } |
| |
| message SubExpr { |
| enum OperatorType { |
| AGGR = 0; |
| FUNC = 1; |
| BINARY = 2; |
| } |
| OperatorType op_type = 1; |
| string operator = 2; |
| repeated Expr operands = 3; |
| |
| // for aggr |
| repeated string group = 4; |
| bool without = 5; |
| |
| // Not used for now |
| // for binaryExpr |
| // bool return_bool = 6; |
| // bool rhs_contains_metric = 7; |
| } |
| |
| message Operand { |
| oneof value { |
| double float_val = 1; |
| string string_val = 2; |
| Selector selector = 3; |
| } |
| } |
| |
| enum FilterType { |
| LITERAL_OR = 0; |
| NOT_LITERAL_OR = 1; |
| REGEXP = 2; |
| NOT_REGEXP_MATCH = 3; |
| } |
| |
| message FilterOperator { |
| FilterType filter_type = 1; |
| repeated string params = 2; |
| } |
| |
| message Filter { |
| string tag_key = 1; |
| repeated FilterOperator operators = 2; |
| } |
| |
| message Selector { |
| string measurement = 1; |
| repeated Filter filters = 2; |
| int64 start = 3; |
| int64 end = 4; |
| int64 align_start = 5; |
| int64 align_end = 6; |
| int64 step = 7; |
| int64 range = 8; |
| int64 offset = 9; |
| string field = 10; |
| } |
| |
| message Sample { |
| double value = 1; |
| int64 timestamp = 2; |
| } |
| |
| message TimeSeries { |
| repeated Label labels = 1; |
| repeated Sample samples = 2; |
| } |
| |
| message Label { |
| string name = 1; |
| string value = 2; |
| } |
| |
| message Labels { |
| repeated Label labels = 1; |
| } |