telemetry

package
v0.23.0 Latest Latest
Warning

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

Go to latest
Published: Oct 24, 2024 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func UnregisterLogStreamMetrics

func UnregisterLogStreamMetrics(m *Metrics, lsid types.LogStreamID)

Types

type Int64HistogramRecorder added in v0.22.0

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

func NewInt64HistogramRecorder added in v0.22.0

func NewInt64HistogramRecorder(recorder metric.Int64Histogram, defaultAttrs ...attribute.KeyValue) *Int64HistogramRecorder

func (*Int64HistogramRecorder) Record added in v0.22.0

func (r *Int64HistogramRecorder) Record(ctx context.Context, rpcKind RPCKind, code codes.Code, incr int64)

type LogStreamMetrics

type LogStreamMetrics struct {

	// LogRPCServerDuration records the time spent processing inbound RPC calls
	// in microseconds. It helps to monitor and analyze the performance of RPC
	// calls in the Varlog system.
	//
	// Internally, it is a wrapper of Metrics.logRPCServerDuration with
	// attributes cache. It avoids creating a new attribute set for each
	// observation.
	LogRPCServerDuration *Int64HistogramRecorder

	// LogRPCServerLogEntrySize records the size of individual log entries
	// appended. It is useful for tracking the amount of data being processed
	// and stored in the Varlog system.
	//
	// Internally, it is a wrapper of Metrics.logRPCServerLogEntrySize with
	// attributes cache. It avoids creating a new attribute set for each
	// observation.
	LogRPCServerLogEntrySize *Int64HistogramRecorder

	// LogRPCServerBatchSize records the size of log entry batches appended.
	// This metric helps to understand the batch sizes being handled and
	// optimize the batching process in the Varlog system.
	//
	// Internally, it is a wrapper of Metrics.logRPCServerBatchSize with
	// attributes cache. It avoids creating a new attribute set for each
	// observation.
	LogRPCServerBatchSize *Int64HistogramRecorder

	// LogRPCServerLogEntriesPerBatch records the number of log entries per
	// appended batch. It provides insights into the batch processing
	// efficiency and the average number of log entries per batch in the Varlog
	// system.
	//
	// Internally, it is a wrapper of Metrics.logRPCServerLogEntriesPerBatch
	// with attributes cache. It avoids creating a new attribute set for each
	// observation.
	LogRPCServerLogEntriesPerBatch *Int64HistogramRecorder

	AppendLogs             atomic.Int64
	AppendBytes            atomic.Int64
	AppendDuration         atomic.Int64
	AppendOperations       atomic.Int64
	AppendPreparationMicro atomic.Int64
	AppendBatchCommitGap   atomic.Int64

	SequencerOperationDuration  atomic.Int64
	SequencerFanoutDuration     atomic.Int64
	SequencerOperations         atomic.Int64
	SequencerInflightOperations atomic.Int64

	WriterOperationDuration  atomic.Int64
	WriterOperations         atomic.Int64
	WriterInflightOperations atomic.Int64

	CommitterOperationDuration atomic.Int64
	CommitterOperations        atomic.Int64
	CommitterLogs              atomic.Int64

	ReplicateClientOperationDuration  atomic.Int64
	ReplicateClientOperations         atomic.Int64
	ReplicateClientInflightOperations atomic.Int64

	ReplicateServerOperations atomic.Int64

	ReplicateLogs             atomic.Int64
	ReplicateBytes            atomic.Int64
	ReplicateDuration         atomic.Int64
	ReplicateOperations       atomic.Int64
	ReplicatePreparationMicro atomic.Int64
	// contains filtered or unexported fields
}

LogStreamMetrics is a set of metrics measured in each log stream.

Synchronous metrics are of instrumentation types defined in OpenTelemetry, such as Int64Histogram.

Asynchronous metrics are defined as built-in atomic types, meaning they are just counters. Each log stream increments these counters, which are then collected by a measurement cycle managed by OpenTelemetry.

func RegisterLogStreamMetrics

func RegisterLogStreamMetrics(m *Metrics, tpid types.TopicID, lsid types.LogStreamID) (*LogStreamMetrics, error)

type Metrics

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

Metrics are a set of measurements taken in the storage node. They encompass all measurements taken from each log stream.

func RegisterMetrics

func RegisterMetrics(meter metric.Meter) (m *Metrics, err error)

func (*Metrics) GetLogStreamMetrics added in v0.22.0

func (m *Metrics) GetLogStreamMetrics(lsid types.LogStreamID) (*LogStreamMetrics, bool)

type RPCKind added in v0.22.0

type RPCKind uint8
const (
	RPCKindAppend RPCKind = iota
	RPCKindReplicate
)

Jump to

Keyboard shortcuts

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