Skip to content
Snippets Groups Projects

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

Merged Pavel Antonov requested to merge feature/PRXS-951-Log into master
1 file
+ 1
1
Compare changes
  • Side-by-side
  • Inline
+ 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