syntax = "proto3"; package logproto; import "google/protobuf/timestamp.proto"; import "github.com/gogo/protobuf/gogoproto/gogo.proto"; import "google.golang.org/grpc/health/grpc_health_v1/health.proto"; service Pusher { rpc Push(PushRequest) returns (PushResponse) {}; rpc Check(grpc.health.v1.HealthCheckRequest) returns (grpc.health.v1.HealthCheckResponse); } service Querier { rpc Query(QueryRequest) returns (stream QueryResponse) {}; } message PushRequest { repeated Stream streams = 1; } message PushResponse { } message QueryRequest { string query = 1; uint32 limit = 2; google.protobuf.Timestamp start = 3 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; google.protobuf.Timestamp end = 4 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; } message QueryResponse { repeated Stream streams = 1; } message Stream { string labels = 1; repeated Entry entries = 2 [(gogoproto.nullable) = false]; } message Entry { google.protobuf.Timestamp timestamp = 1 [(gogoproto.stdtime) = true, (gogoproto.nullable) = false]; string line = 2; }