syntax = "proto3"; option go_package = "proto"; package plugins; import "google/protobuf/timestamp.proto"; message TsdbQuery { Timerange timerange = 1; DatasourceInfo datasource = 2; repeated Query queries = 3; } message Query { string refId = 1; string modelJson = 2; int64 MaxDataPoints = 3; int64 intervalMs = 4; DatasourceInfo datasource = 5; } message Timerange { string from = 1; string to = 2; google.protobuf.Timestamp now = 3; } message Response { string message = 1; repeated QueryResult results = 2; } message QueryResult { string error = 1; string errorString = 2; string refId = 3; string metaJson = 4; repeated TimeSeries series = 5; //repeat Table tables = x; } message DatasourceInfo { int64 id = 1; int64 orgId = 2; string name = 3; string type = 4; string access = 5; string url = 6; bool basicAuth = 7; string basicAuthUser = 8; string basicAuthPassword = 9; string jsonData = 10; string secureJsonData = 11; } message TimeSeries { string name = 1; map tags = 2; repeated Point points = 3; } message Point { google.protobuf.Timestamp timestamp = 1; double value = 2; } service TsdbPlugin { rpc Query(TsdbQuery) returns (Response); }