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.