Skip to content
Snippets Groups Projects

Добавлено описание протокола сервиса логирования

Merged Pavel Antonov requested to merge feature/PRXS-951-Log into master
+ 97
0
 
syntax = "proto3";
 
 
package log;
 
 
import "common/common.proto";
 
import "common/error.proto";
 
import "log/log.proto";
 
import "google/protobuf/timestamp.proto";
 
 
option go_package = "git.perx.ru/perxis/perxis-go/proto/log;log";
 
 
 
// Сервис для записи активности в системе
 
// Позволяет всем компонентам системы записывать логи в единое хранилище и получать их оттуда
 
service LogService {
 
// Метод для записи логов
 
rpc Log(stream LogRequest) returns (LogResponse) {}
 
 
// Метод для записи одного лога
 
rpc LogEntry(LogRequest) returns (LogResponse) {}
 
 
// Метод для поиска логов по заданным параметрам
 
rpc Find(FindRequest) returns (FindResponse) {}
 
 
// Метод для удаления логов по заданным параметрам
 
rpc Delete(DeleteRequest) returns (DeleteResponse) {}
 
}
 
 
// Запрос для лога
 
message LogRequest {
 
// Запись лога
 
LogEntry entry = 1;
 
}
 
 
// Ответ сервера на запрос лога
 
message LogResponse {
 
// Содержит информацию об ошибке, если таковая имеется
 
common.Error error = 1;
 
}
 
 
message Filter {
 
// Запрос на поиск логов
 
// Примеры:
 
// 1. `timestamp > '2019-01-01' AND timestamp < '2019-01-02'`
 
// 2. `timestamp > '2019-01-01' AND timestamp < '2019-01-02' AND level = 'error'`
 
// 3. `component = 'api' AND object_id = '123' AND object_type = 'item' AND space = 'spc1'`
 
// 4. `id in ['1', '2', '3']`
 
repeated string q = 3; // Список выражений для фильтрации
 
}
 
 
// Запрос на поиск логов
 
message FindRequest {
 
// Фильтры для поиска
 
Filter filter = 2;
 
 
// Опции поиска
 
common.FindOptions options = 3;
 
}
 
 
// Результат поиска
 
message FindResult {
 
// Найденные записи лога
 
repeated LogEntry entries = 1;
 
 
// Использовавшийся для поиска фильтр
 
// Для
 
Filter filter = 2;
 
 
// Использовавшиеся для поиска опции
 
common.FindOptions options = 3;
 
 
// Общее количество найденных записей
 
uint32 total = 4;
 
}
 
 
// Ответ сервера на запрос поиска
 
message FindResponse {
 
oneof response {
 
// Результаты поиска
 
FindResult result = 1;
 
 
// Информация об ошибке, если таковая имеется
 
common.Error error = 2;
 
}
 
}
 
 
// Запрос на удаление логов
 
message DeleteRequest {
 
// Фильтры для удаления
 
Filter filter = 2;
 
}
 
 
// Ответ сервера на запрос удаления
 
message DeleteResponse {
 
// Информация об ошибке, если таковая имеется
 
common.Error error = 1;
 
}
 
\ No newline at end of file
Loading