stream

package
v0.74.1 Latest Latest
Warning

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

Go to latest
Published: Jan 9, 2026 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrPayloadFull is returned when the payload buffer is full
	ErrPayloadFull = errors.New("reached maximum payload size")

	// ErrItemTooBig is returned when a item alone exceeds maximum payload size
	ErrItemTooBig = errors.New("item alone exceeds maximum payload size")
)

Functions

This section is empty.

Types

type ColumnCompressor added in v0.74.0

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

ColumnCompressor builds columnar payloads while observing compressed and uncompressed size limits.

func NewColumnCompressor added in v0.74.0

func NewColumnCompressor(compression metricscompression.Component, numColumns int, maxCompressedSize, maxUncompressedSize int) ColumnCompressor

NewColumnCompressor creates a new instance

func (*ColumnCompressor) AddItem added in v0.74.0

func (cc *ColumnCompressor) AddItem(txn *ColumnTransaction) error

AddItem tries to add a transaction to the compressed payload.

Returns ErrPayloadFull if the transaction does not fit within current limits.

func (*ColumnCompressor) Close added in v0.74.0

func (cc *ColumnCompressor) Close() error

Close finishes compression of all pending data.

func (*ColumnCompressor) CompressedBytes added in v0.74.0

func (cc *ColumnCompressor) CompressedBytes(column int) []byte

CompressedBytes returns compressed bytes for a column.

func (*ColumnCompressor) NewTransaction added in v0.74.0

func (cc *ColumnCompressor) NewTransaction() *ColumnTransaction

NewTransaction creates a new transaction for the compressor.

func (*ColumnCompressor) Reset added in v0.74.0

func (cc *ColumnCompressor) Reset()

Reset clears compressor state and prepares it to build a new payload.

func (*ColumnCompressor) UncompressedLen added in v0.74.0

func (cc *ColumnCompressor) UncompressedLen(column int) int

UncompressedLen returns length of uncompressed data in a column.

type ColumnTransaction added in v0.74.0

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

ColumnTransaction contains data that is being added to the compressed stream

func (*ColumnTransaction) Float32 added in v0.74.0

func (ct *ColumnTransaction) Float32(column int, v float32)

Float32 adds a little-endian encoded float32 value to a column

func (*ColumnTransaction) Float64 added in v0.74.0

func (ct *ColumnTransaction) Float64(column int, v float64)

Float64 adds a little-endian encoded float64 value to a column

func (*ColumnTransaction) Int64 added in v0.74.0

func (ct *ColumnTransaction) Int64(column int, v int64)

Int64 adds a varint encoded integer to a column

func (*ColumnTransaction) Reset added in v0.74.0

func (ct *ColumnTransaction) Reset()

Reset prepares transaction to receive a new item

func (*ColumnTransaction) Sint64 added in v0.74.0

func (ct *ColumnTransaction) Sint64(column int, v int64)

Sint64 adds a zigzag encoded integer to a column

func (*ColumnTransaction) Uint64 added in v0.74.0

func (ct *ColumnTransaction) Uint64(column int, v uint64)

Uint64 adds a varint encoded unsigned integer to a column

func (*ColumnTransaction) Write added in v0.74.0

func (ct *ColumnTransaction) Write(column int, b []byte)

Write adds a sequence of bytes to a column

type Compressor

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

Compressor is in charge of compressing items for a single payload

func NewCompressor

func NewCompressor(input, output *bytes.Buffer, maxPayloadSize, maxUncompressedSize int, header, footer []byte, separator []byte, compressor compression.Compressor) (*Compressor, error)

NewCompressor returns a new instance of a Compressor

func (*Compressor) AddItem

func (c *Compressor) AddItem(data []byte) error

AddItem will try to add the given item

func (*Compressor) Close

func (c *Compressor) Close() ([]byte, error)

Close closes the Compressor, flushing any remaining uncompressed data

func (*Compressor) Write added in v0.54.0

func (c *Compressor) Write(data []byte) (int, error)

type JSONPayloadBuilder

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

JSONPayloadBuilder is used to build payloads. JSONPayloadBuilder allocates memory based on what was previously need to serialize payloads. Keep that in mind and use multiple JSONPayloadBuilders for different sources.

func NewJSONPayloadBuilder

func NewJSONPayloadBuilder(shareAndLockBuffers bool, config config.Component, compressor compression.Component, logger log.Component) *JSONPayloadBuilder

NewJSONPayloadBuilder returns a new JSONPayloadBuilder

func (*JSONPayloadBuilder) BuildWithOnErrItemTooBigPolicy

BuildWithOnErrItemTooBigPolicy serializes a metadata payload and sends it to the forwarder

type OnErrItemTooBigPolicy

type OnErrItemTooBigPolicy int

OnErrItemTooBigPolicy defines the behavior when OnErrItemTooBig occurs.

const (
	// DropItemOnErrItemTooBig skips the error and continues when ErrItemTooBig is encountered
	DropItemOnErrItemTooBig OnErrItemTooBigPolicy = iota

	// FailOnErrItemTooBig returns the error and stop when ErrItemTooBig is encountered
	FailOnErrItemTooBig
)

Jump to

Keyboard shortcuts

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