Documentation ¶
Index ¶
- func StreamServerPrometheusInterceptor(prometheus *PrometheusService) grpc.StreamServerInterceptor
- func UnaryServerPrometheusInterceptor(prometheus *PrometheusService) grpc.UnaryServerInterceptor
- type PrometheusService
- func (ps *PrometheusService) AddMetric(metric metrics.Metric) error
- func (ps *PrometheusService) Collect() error
- func (ps *PrometheusService) Counter(metric string, labels metrics.Labels)
- func (ps *PrometheusService) Duration(since time.Time, metric string, labels metrics.Labels)
- func (ps *PrometheusService) ForceAddMetric(metric metrics.Metric) error
- func (ps *PrometheusService) Init() error
- func (ps *PrometheusService) Shutdown() error
- func (ps *PrometheusService) SystemMetrics() error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func StreamServerPrometheusInterceptor ¶
func StreamServerPrometheusInterceptor(prometheus *PrometheusService) grpc.StreamServerInterceptor
Возвращает нового потокового перехватчика, который добавляет метрики о длительности выполнения процедуры.
func UnaryServerPrometheusInterceptor ¶
func UnaryServerPrometheusInterceptor(prometheus *PrometheusService) grpc.UnaryServerInterceptor
Возвращает нового унарного перехватчика, который добавляет метрики о длительности выполнения процедуры.
Types ¶
type PrometheusService ¶
type PrometheusService struct { // Коллектор, запущенный в DRY режиме эмулирует сбор метрики, // но никуда их не отправляет. // Может быть использовано для dev режима, где нет необходимости в метриках. DRY bool DefaultLabels metrics.Labels // дефолтные лейблы, присваиваемые всем метрикам Prefix string // префикс, добавляемый к названию всех метрик Exchange string // обменник, через который пойдет сообщение Queue string // очередь с метриками MessageTTL int // время жизни сообщения в очереди Period time.Duration // период отправки сообщений в RabbitMQ BatchSize int // размер пакета с метриками BatchTTL time.Duration // время жизни одного батча // contains filtered or unexported fields }
Сервис для общения с Prometheus через RabbitMQ.
func NewPrometheusService ¶
func NewPrometheusService(connection *r.Connection) (*PrometheusService, error)
Инициализирует новый сервис для отправки метрик в Prometheus.
func (*PrometheusService) AddMetric ¶
func (ps *PrometheusService) AddMetric(metric metrics.Metric) error
Добавляет метрику в батч, который будет отправлен в очередь. Ничего не делает если коллектор запущен в DRY режиме.
func (*PrometheusService) Collect ¶
func (ps *PrometheusService) Collect() error
Запускает цикл по обработке метрик. Ничего не делает если коллектор запущен в DRY режиме.
func (*PrometheusService) Counter ¶
func (ps *PrometheusService) Counter(metric string, labels metrics.Labels)
Добавляет counter-метрику в Prometheus. Один вызов равняется +1 к метрике.
func (*PrometheusService) Duration ¶
Рассчитывает метрику длительности выполнения кода. Значение метрики вычисляется в микросекундах.
func (*PrometheusService) ForceAddMetric ¶
func (ps *PrometheusService) ForceAddMetric(metric metrics.Metric) error
Добавляет метрику напрямую в RabbitMQ, минуя механизм с батчами. Ничего не делает если коллектор запущен в DRY режиме.
func (*PrometheusService) Init ¶
func (ps *PrometheusService) Init() error
Инициализирует очередь, связанную с метриками для Prometheus.
func (*PrometheusService) Shutdown ¶
func (ps *PrometheusService) Shutdown() error
Завершает процесс по отправке метрик в RabbitMQ.
func (*PrometheusService) SystemMetrics ¶
func (ps *PrometheusService) SystemMetrics() error
Добавляет системные метрики в Prometheus. В системные метрики входят:
- CPU, %
- Memory usage, MB