amqprometheus

package
v0.1.11 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 28, 2022 License: MIT Imports: 11 Imported by: 0

Documentation

Index

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 (ps *PrometheusService) Duration(since time.Time, metric string, labels metrics.Labels)

Рассчитывает метрику длительности выполнения кода. Значение метрики вычисляется в микросекундах.

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL