metrics

package
v1.6.0 Latest Latest
Warning

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

Go to latest
Published: Dec 11, 2025 License: AGPL-3.0 Imports: 3 Imported by: 0

Documentation

Overview

Package metrics provides production performance monitoring for GoSQLX

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Disable

func Disable()

Disable deactivates metrics collection

func Enable

func Enable()

Enable activates metrics collection

func IsEnabled

func IsEnabled() bool

IsEnabled returns whether metrics collection is active

func RecordASTPoolGet added in v1.6.0

func RecordASTPoolGet()

RecordASTPoolGet records an AST pool retrieval

func RecordASTPoolPut added in v1.6.0

func RecordASTPoolPut()

RecordASTPoolPut records an AST pool return

func RecordExpressionPoolGet added in v1.6.0

func RecordExpressionPoolGet()

RecordExpressionPoolGet records an expression pool retrieval

func RecordExpressionPoolPut added in v1.6.0

func RecordExpressionPoolPut()

RecordExpressionPoolPut records an expression pool return

func RecordParse added in v1.6.0

func RecordParse(duration time.Duration, statementCount int, err error)

RecordParse records a parse operation

func RecordPoolGet

func RecordPoolGet(fromPool bool)

RecordPoolGet records a tokenizer pool retrieval

func RecordPoolPut

func RecordPoolPut()

RecordPoolPut records a tokenizer pool return

func RecordStatementPoolGet added in v1.6.0

func RecordStatementPoolGet()

RecordStatementPoolGet records a statement pool retrieval

func RecordStatementPoolPut added in v1.6.0

func RecordStatementPoolPut()

RecordStatementPoolPut records a statement pool return

func RecordTokenization

func RecordTokenization(duration time.Duration, querySize int, err error)

RecordTokenization records a tokenization operation

func Reset

func Reset()

Reset clears all metrics (useful for testing)

Types

type Metrics

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

Metrics collects runtime performance data for GoSQLX operations

type Stats

type Stats struct {
	// Tokenization counts
	TokenizeOperations int64   `json:"tokenize_operations"`
	TokenizeErrors     int64   `json:"tokenize_errors"`
	TokenizeErrorRate  float64 `json:"tokenize_error_rate"`

	// Parser counts
	ParseOperations   int64   `json:"parse_operations"`
	ParseErrors       int64   `json:"parse_errors"`
	ParseErrorRate    float64 `json:"parse_error_rate"`
	StatementsCreated int64   `json:"statements_created"`

	// Tokenization performance metrics
	AverageTokenizeDuration     time.Duration `json:"average_tokenize_duration"`
	TokenizeOperationsPerSecond float64       `json:"tokenize_operations_per_second"`

	// Parser performance metrics
	AverageParseDuration     time.Duration `json:"average_parse_duration"`
	ParseOperationsPerSecond float64       `json:"parse_operations_per_second"`

	// Tokenizer pool metrics
	PoolGets     int64   `json:"pool_gets"`
	PoolPuts     int64   `json:"pool_puts"`
	PoolBalance  int64   `json:"pool_balance"`
	PoolMissRate float64 `json:"pool_miss_rate"`

	// AST pool metrics
	ASTPoolGets    int64 `json:"ast_pool_gets"`
	ASTPoolPuts    int64 `json:"ast_pool_puts"`
	ASTPoolBalance int64 `json:"ast_pool_balance"`

	// Statement pool metrics
	StmtPoolGets    int64 `json:"stmt_pool_gets"`
	StmtPoolPuts    int64 `json:"stmt_pool_puts"`
	StmtPoolBalance int64 `json:"stmt_pool_balance"`

	// Expression pool metrics
	ExprPoolGets    int64 `json:"expr_pool_gets"`
	ExprPoolPuts    int64 `json:"expr_pool_puts"`
	ExprPoolBalance int64 `json:"expr_pool_balance"`

	// Query size metrics
	MinQuerySize        int64   `json:"min_query_size"`
	MaxQuerySize        int64   `json:"max_query_size"`
	AverageQuerySize    float64 `json:"average_query_size"`
	TotalBytesProcessed int64   `json:"total_bytes_processed"`

	// Timing
	Uptime            time.Duration `json:"uptime"`
	LastOperationTime time.Time     `json:"last_operation_time"`

	// Error breakdown
	ErrorsByType map[string]int64 `json:"errors_by_type"`

	// Legacy field for backwards compatibility
	ErrorRate float64 `json:"error_rate"`
}

Stats represents current performance statistics

func GetStats

func GetStats() Stats

GetStats returns current performance statistics

func LogStats

func LogStats() Stats

LogStats logs current statistics (useful for debugging)

Jump to

Keyboard shortcuts

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