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
+ 102
0
 
syntax = "proto3";
 
 
package log;
 
 
import "google/protobuf/timestamp.proto";
 
import "google/protobuf/any.proto";
 
import "common/error.proto";
 
 
option go_package = "git.perx.ru/perxis/perxis-go/proto/log;log";
 
 
// LogLevel задает уровень журналирования.
 
enum LogLevel {
 
// INFO - обозначает сообщения с нормальным, операционным уровнем журналирования.
 
INFO = 0;
 
// WARNING - обозначает сообщения, которые содержат потенциально вредные ситуации.
 
WARNING = 1;
 
// ERROR - обозначает другие ошибки в работе.
 
ERROR = 2;
 
// CRITICAL - обозначает серьезные ошибки, из-за которых программа может не выполнять некоторые функции.
 
CRITICAL = 3;
 
// FATAL - обозначает очень серьезные ошибки, которые могут привести к остановке приложения.
 
FATAL = 4;
 
}
 
 
// LogEntry представляет собой структуру данных для хранения информации о журнале.
 
message LogEntry {
 
// id является уникальным идентификатором каждой записи в журнале.
 
string id = 1;
 
 
// timestamp указывает на временную метку, указывающую когда было создано данное сообщение.
 
google.protobuf.Timestamp timestamp = 2;
 
 
// level это поле, обозначающее уровень приоритета сообщения в логе.
 
 
LogLevel level = 3;
 
// message это основное сообщение, которое требуется записать в лог.
 
 
string message = 4;
 
// category указывает на категорию события.
 
// Примеры:
 
// -
 
string category = 5;
 
// component обозначает компонент системы, где произошло данное событие.
 
// Примеры:
 
// - Items.Service
 
// - Items.API
 
// - Users.Service
 
// - Users.API
 
// - Janitor.Service
 
// - Tasks.Worker
 
 
string component = 6;
 
// action описывает действие, которое было произведено. Это поле может принимать разные значения в зависимости от сервиса.
 
// Примеры:
 
// - item.create
 
// - item.update
 
// - organization.create
 
// - action.run
 
// - reference.create
 
string event = 7;
 
 
// object это идентификатор объекта связанного с событием
 
// Идентификатор объекта должен быть в формате GlobalID:
 
// <контекст>/<тип объекта>/<идентификатор объекта>
 
// где:
 
// - <контекст> - представляет собой иднетификатор родительского объекта, если таковой имеется
 
// - <тип объекта> - представляет собой тип объекта, например:
 
// spaces, envs, cols, items, revs, fields, clients, roles, orgs, users
 
// - <идентификатор объекта> - представляет собой идентификатор объекта
 
//
 
// Примеры:
 
// /spaces/<space_id> - пространство
 
// /spaces/<space_id>/envs/<env_id> - окружение
 
// /spaces/<space_id>/envs/<env_id>/cols/<collection_id> - коллекция
 
// /spaces/<space_id>/cols/<collection_id> - коллекция в окружении "master"
 
// /spaces/<space_id>/envs/<env_id>/schema/<collection_id> - схема коллекции
 
// /spaces/<space_id>/envs/<env_id>/cols/<collection_id>/items/<item_id> - элемент коллекции
 
// /spaces/<space_id>/cols/<collection_id>/items/<item_id> - элемент коллекции в окружении "master"
 
// /spaces/<space_id>/envs/<env_id>/cols/<collection_id>/items/<item_id>/fields/<field_name> - поле элемента коллекции
 
// /spaces/<space_id>/envs/<env_id>/cols/<collection_id>/items/<item_id>/revs/<rev_id> - ревизия элемента коллекции
 
// /spaces/<space_id>/clients/<client_id> - клиент
 
// /spaces/<space_id>/roles/<role_id> - роль
 
// /orgs/<org_id> - организация
 
// /users/<user_id> - пользователь
 
// /services/<service_id> - сервис
 
string object = 8;
 
 
// caller содержит идентификатор сущности вызвавшей событиe, аналогично полю object
 
//
 
// Примеры:
 
// /users/<user_id> - пользователь
 
// /spaces/<space_id>/clients/<client_id> - клиент
 
// /services/<service_id> - сервис
 
string caller = 9;
 
 
// attr содержит дополнительные связанные с событием атрибуты в формате Any
 
// позволяет добавить дополнительные данные в событие
 
google.protobuf.Any attr = 10;
 
 
// tags содержит теги связанные с событием, на усмотрение сервиса
 
repeated string tags = 11;
 
}
 
\ No newline at end of file
Loading