syntax = "proto3";

// option go_package = ".;main";
// option go_package = "./api";
option go_package = ".";

// для генерации сервиса:
// protoc --go_out=. --go-grpc_out=. *.proto
// а лучше воспользуйтесь командой make gen из прилагаемого мейкфайла

// у вас должен быть установлен protoc 
// полученный при генерации код (service.pb.go и service_grpc.pb.go) при загрузки в автогрейдер надо будет положить в service.go
// на время локальной разработки можно ничего не делать

package main;

message Event {
    int64  timestamp = 1;
    string consumer  = 2;
    string method    = 3;
    string host      = 4; // читайте это поле как remote_addr
}

message Stat {
    int64               timestamp   = 1;
    map<string, uint64> by_method   = 2;
    map<string, uint64> by_consumer = 3;
}

message StatInterval {
    uint64              interval_seconds   = 1;
}

message Nothing {
    bool dummy = 1;
}

service Admin {
    rpc Logging (Nothing) returns (stream Event) {}
    rpc Statistics (StatInterval) returns (stream Stat) {}
}

service Biz {
    rpc Check(Nothing) returns(Nothing) {}
    rpc Add(Nothing) returns(Nothing) {}
    rpc Test(Nothing) returns(Nothing) {}
}