Documentation ¶
Index ¶
Constants ¶
View Source
const ( DATE_TIME_LAYOUT = "2006-01-02 15:04:05" DATE_LAYOUT = "2006-01-02" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Batch ¶
type Batch struct { MaxSize int // максимальное кол-во метрик LastSendAt time.Time // дата и время последней отправки батча // contains filtered or unexported fields }
Пачка метрик, отправляемая в ClickHouse через RabbitMQ.
func (*Batch) MarshalJSON ¶
Сериализует список метрик в JSON.
type ClickHouseService ¶
type ClickHouseService struct { // Коллектор, запущенный в DRY режиме эмулирует сбор метрики, // но никуда их не отправляет. // Может быть использовано для dev режима, где нет необходимости в метриках. DRY bool Exchange string // обменник, через который будет отправляться метрики Queue string // очередь, в которую будут складываться метрики BridgeExchange string // промежуточный обменник между главным обменником и очередью RoutingKey string // ключ маршрутизации (по умолчанию соответствует названию очереди) Period time.Duration // период отправки сообщений в RabbitMQ BatchSize int // размер пакета с метриками BatchTTL time.Duration // время жизни одного батча // contains filtered or unexported fields }
Сервис для общения с ClickHouse через RabbitMQ.
func NewClickHouseService ¶
func NewClickHouseService(ctx context.Context, connection *rabbit.Connection) (*ClickHouseService, error)
Инициализирует новый сервис для отправки метрик в ClickHouse.
func (*ClickHouseService) AddMetric ¶
func (chs *ClickHouseService) AddMetric(metric Metric) error
Добавляет метрику в батч. Ничего не делает если коллектор запущен в DRY режиме.
func (*ClickHouseService) Collect ¶
func (chs *ClickHouseService) Collect(ctx context.Context) error
Запускает цикл по обработке метрик. Ничего не делает если коллектор запущен в DRY режиме.
func (*ClickHouseService) ForceAddMetric ¶
func (chs *ClickHouseService) ForceAddMetric(metric Metric) error
Добавляет метрику напрямую в RabbitMQ, минуя механизм с батчами. Ничего не делает если коллектор запущен в DRY режиме.
func (*ClickHouseService) Shutdown ¶
func (chs *ClickHouseService) Shutdown() error
Завершает процесс по отправке метрик в RabbitMQ.
type Metric ¶
type Metric struct { Name string // название метрики CreatedAt time.Time // дата и время создания метрики Value uint64 // целочисленная метрика ValueFloat float64 // дробная метрика ValueString string // строковая метрика ValueDateTime time.Time // временная метрика Duration float64 // длительность выполняемой операции ModelType string // тип/класс связанной структуры ModelID string // ID связанной структуры UserID uint64 // ID пользователя, с которым связана метрика CompanyID uint64 // ID компании, с которой связана метрика DomainID uint64 // ID домена, с которым связана метрика Expirable bool // метрика протухаемая? Labels []string // доп. лейблы }
Метрика общего вида.
func NewMetric ¶
func NewMetric( name string, createdAt *time.Time, value uint64, valueFloat float64, valueString string, valueDateTime *time.Time, duration float64, modelType string, modelID string, userID uint64, domainID uint64, companyID uint64, expirable bool, labels []string, ) Metric
Возвращает новую метрику с предзаполненными полями.
func (*Metric) MarshalJSON ¶
Click to show internal directories.
Click to hide internal directories.