metrics

package
v1.0.0-rc1 Latest Latest
Warning

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

Go to latest
Published: Jun 17, 2026 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// LevelFieldName — имя поля в метрике для уровня логирования.
	LevelFieldName = "level"
)

Константы для метрик.

View Source
const LevelNamesFieldName = "logger.metric.levels"

LevelNamesFieldName — имя поля в конфигурации для уровней метрик.

Variables

View Source
var LevelNamesDefault = []string{compogo.Panic.String(), compogo.Error.String(), compogo.Warn.String()}

LevelNamesDefault — уровни по умолчанию: Panic, Error, Warn.

View Source
var LogrusMetricComponent = compogo.Component{
	Name: "logger.Logrus.metrics",
	Init: compogo.StepFunc(func(container compogo.Container) error {
		return container.Provides(
			NewConfig,
			NewMetricHook,
		)
	}),
	BindFlags: compogo.BindFlags(func(flagSet flag.FlagSet, container compogo.Container) error {
		return container.Invoke(func(config *Config) {
			flagSet.StringArrayVar(&config.levelNames, LevelNamesFieldName, LevelNamesDefault, "")
		})
	}),
	Configuration: compogo.StepFunc(func(container compogo.Container) error {
		return container.Invoke(Configuration)
	}),
	PreExecute: compogo.StepFunc(func(container compogo.Container) error {
		return container.Invoke(func(decorator *logrus.Logger, hook *MetricHook) {
			decorator.AddHook(hook)
		})
	}),
}

LogrusMetricComponent — компонент метрик для Logrus. Добавляет флаги для настройки метрик и устанавливает хук в логгер.

Functions

This section is empty.

Types

type Config

type Config struct {
	Levels set.Set[logrus.Level]
	// contains filtered or unexported fields
}

Config содержит конфигурацию метрик логгера.

func Configuration

func Configuration(config *Config, configurator compogo.Configurator) (*Config, error)

Configuration загружает конфигурацию метрик из Configurator. Парсит имена уровней в значения Logrus.

func NewConfig

func NewConfig() *Config

NewConfig создаёт новую конфигурацию метрик.

type MetricHook

type MetricHook struct {
	// contains filtered or unexported fields
}

MetricHook реализует хук Logrus для сбора метрик Prometheus. Считает количество логов каждого уровня.

Метрика: compogo_log_level_count{app="myapp", level="error"}

func NewMetricHook

func NewMetricHook(appConfig *compogo.Config, config *Config) *MetricHook

NewMetricHook создаёт новый хук для метрик. Регистрирует счётчик для каждого уровня из конфигурации.

Пример:

hook := NewMetricHook(appConfig, config)
logger.AddHook(hook)

func (*MetricHook) Fire

func (metric *MetricHook) Fire(entry *logrus.Entry) error

Fire вызывается при каждом логировании. Увеличивает счётчик для соответствующего уровня.

func (*MetricHook) Levels

func (metric *MetricHook) Levels() []logrus.Level

Levels возвращает уровни, на которых активируется хук.

Jump to

Keyboard shortcuts

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