memory

package
v1.4.5 Latest Latest
Warning

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

Go to latest
Published: Oct 23, 2023 License: MIT Imports: 11 Imported by: 0

README

Буфер для хранения данных в памяти.

Реализует интерфейс io.ReadWriteCloser и стратегию хранения данных в памяти приложения.

Объект конфигурации.
type Config struct {
    Compressor    string
    NameForMetric string
}

Описание полей:

Поле Описание Значение по умолчанию Доступные значения
Compressor Тип алгоритма сжатия, этот параметр может быть передан одним из 3-х методов:
- флаг командной строки --buffer.memory.compressor
- переменная окружения BUFFER_MEMORY_COMPRESSOR
- значение в конфиг файле buffer.memory.compressor
none - none - не использовать сжатие;
- lz4 - сжимает входящий поток байтов алгоритмом lz4.
NameForMetric Имя буфера в метриках, устанавливает в ручную, должно быть установлено на этапе конфигурирования приложения, до создание объекта буфера
Метрики

Метрики добавляются автоматически и не могут быть отключены.

buffer_memory_bytes - счетчик кол. записанных и прочитанных байтов. Доступные лейблы в метрике:

  • app - имя приложения;
  • name - имя буфера из поля конфига NameForMetric;
  • action - тип действия, запись - write, чтение - read;
  • compressor - тип выбранного алгоритма сжатия, если выбран алгоритм сжатия lz4 то метрика будет писаться дважды, на каждое действие записи/чтения, до сжатия и после сжатия.

Documentation

Index

Constants

View Source
const (
	CompressorFieldName = "buffer.memory.compressor"

	CompressorNone = "none"
	CompressorLZ4  = "lz4"

	CompressorDefault = CompressorNone
)
View Source
const (
	ActionFieldNameMetric     = "action"
	CompressorFieldNameMetric = "compressor"
	NameFieldNameMetric       = "name"
	ActionWriteMetric         = "write"
	ActionReadMetric          = "read"
)

Variables

This section is empty.

Functions

func New

func New(config *Config, appConfig *app.Config) (io.ReadWriteCloser, error)

func NewWithConfigurator

func NewWithConfigurator(config *Config, configurator configurator.Configurator, appConfig *app.Config) (io.ReadWriteCloser, error)

Types

type Config

type Config struct {
	Compressor    string
	NameForMetric string
}

func Configuration

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

func NewConfig

func NewConfig() *Config

type LZ4

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

func NewLZ4

func NewLZ4(buffer io.ReadWriteCloser) *LZ4

func (*LZ4) Close

func (lz4 *LZ4) Close() error

func (*LZ4) Read

func (lz4 *LZ4) Read(buffer []byte) (int, error)

func (*LZ4) Write

func (lz4 *LZ4) Write(buffer []byte) (int, error)

type Memory

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

func NewMemory

func NewMemory() *Memory

func (*Memory) Close

func (memory *Memory) Close() error

func (*Memory) Read

func (memory *Memory) Read(buffer []byte) (int, error)

func (*Memory) Write

func (memory *Memory) Write(buffer []byte) (int, error)

type Metric

type Metric struct {
	io.ReadWriteCloser
	// contains filtered or unexported fields
}

func NewMetric

func NewMetric(readWriteCloser io.ReadWriteCloser, writerCounter prometheus.Counter, readerCounter prometheus.Counter) *Metric

func (*Metric) Read

func (metric *Metric) Read(buffer []byte) (int, error)

func (*Metric) Write

func (metric *Metric) Write(buffer []byte) (int, error)

Jump to

Keyboard shortcuts

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