metrics

package
v1.5.0 Latest Latest
Warning

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

Go to latest
Published: Apr 8, 2026 License: AGPL-3.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DecrementActiveRequests

func DecrementActiveRequests()

func DetermineErrorType

func DetermineErrorType(err error) string

DetermineErrorType determines the type of error from an error object

func DetermineQueryType

func DetermineQueryType(query string) string

DetermineQueryType analyzes the query string to determine its type

func IncrementActiveRequests

func IncrementActiveRequests()

func MetricsHandler

func MetricsHandler() fiber.Handler

MetricsHandler returns a Fiber handler that serves Prometheus metrics

func Middleware

func Middleware(config ...MetricsConfig) fiber.Handler

Middleware returns a Fiber middleware that collects HTTP metrics

func NormalizeEndpointPath

func NormalizeEndpointPath(path string) string

NormalizeEndpointPath normalizes Fiber route paths for consistent metric labeling

func RecordAIOperation

func RecordAIOperation(source *models.Source, operation string, success bool, duration time.Duration, user *models.User)

RecordAIOperation records AI operation metrics

func RecordAPITokenOperation

func RecordAPITokenOperation(operation string, success bool, user *models.User, tokenName string)

RecordAPITokenOperation records API token operation metrics

func RecordAuthAttempt

func RecordAuthAttempt(method string, success bool, user *models.User)

RecordAuthAttempt records authentication attempt metrics

func RecordAuthorizationFailure

func RecordAuthorizationFailure(endpoint string, user *models.User, reason string)

RecordAuthorizationFailure records authorization failure metrics

func RecordClickHouseConnectionStatus

func RecordClickHouseConnectionStatus(source *models.Source, healthy bool)

RecordClickHouseConnectionStatus sets connection status for a source

func RecordClickHouseReconnection

func RecordClickHouseReconnection(source *models.Source, success bool)

RecordClickHouseReconnection records reconnection attempts

func RecordClickHouseValidation

func RecordClickHouseValidation(source *models.Source, success bool)

RecordClickHouseValidation records connection validation metrics

func RecordCollectionOperation

func RecordCollectionOperation(source *models.Source, team *models.Team, operation string, success bool, user *models.User, collectionName string)

RecordCollectionOperation records saved query collection operations

func RecordHTTPError

func RecordHTTPError(method, endpoint, errorType string, statusCode int, user *models.User)

RecordHTTPError records HTTP error metrics

func RecordHTTPRequest

func RecordHTTPRequest(method, endpoint string, statusCode int, duration time.Duration, responseSize int64, user *models.User)

RecordHTTPRequest records HTTP request metrics with optional user context

func RecordHistogram

func RecordHistogram(source *models.Source, success bool, duration time.Duration, user *models.User)

RecordHistogram records histogram generation metrics

func RecordQuery

func RecordQuery(source *models.Source, queryType string, success bool, duration time.Duration, rowsReturned int64, user *models.User)

RecordQuery records query execution metrics with source context

func RecordQueryError

func RecordQueryError(source *models.Source, errorType string)

RecordQueryError records query error metrics

func RecordQueryTimeout

func RecordQueryTimeout(source *models.Source, queryType string)

RecordQueryTimeout records query timeout metrics

func RecordSessionOperation

func RecordSessionOperation(operation string, success bool, user *models.User)

RecordSessionOperation records session operation metrics

func RecordSourceOperation

func RecordSourceOperation(source *models.Source, operation string, success bool, user *models.User)

RecordSourceOperation records source lifecycle operation metrics

func RecordTeamOperation

func RecordTeamOperation(team *models.Team, operation string, success bool, user *models.User)

RecordTeamOperation records team operation metrics

func UpdateActiveSessions

func UpdateActiveSessions(count int)

func UpdateActiveUsers

func UpdateActiveUsers(count int)

Gauge metrics for active counts

Types

type ClickHouseMetrics

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

ClickHouseMetrics provides a metrics collector for ClickHouse operations

func NewClickHouseMetrics

func NewClickHouseMetrics(source *models.Source) *ClickHouseMetrics

NewClickHouseMetrics creates a metrics collector for a specific source

func (*ClickHouseMetrics) RecordConnectionValidation

func (m *ClickHouseMetrics) RecordConnectionValidation(success bool)

RecordConnectionValidation records connection validation metrics

func (*ClickHouseMetrics) RecordHistogramMetrics

func (m *ClickHouseMetrics) RecordHistogramMetrics(success bool, duration time.Duration, user *models.User)

RecordHistogramMetrics records histogram generation metrics

func (*ClickHouseMetrics) RecordQueryMetrics

func (m *ClickHouseMetrics) RecordQueryMetrics(
	queryType string,
	success bool,
	duration time.Duration,
	rowsReturned int64,
	errorType string,
	timedOut bool,
	user *models.User,
)

RecordQueryMetrics records comprehensive query execution metrics

func (*ClickHouseMetrics) RecordReconnection

func (m *ClickHouseMetrics) RecordReconnection(success bool)

RecordReconnection records reconnection attempt metrics

func (*ClickHouseMetrics) StartQuery

func (m *ClickHouseMetrics) StartQuery(queryType string, user *models.User) *QueryMetricsHelper

StartQuery begins tracking a query operation

func (*ClickHouseMetrics) UpdateConnectionStatus

func (m *ClickHouseMetrics) UpdateConnectionStatus(healthy bool)

UpdateConnectionStatus updates the connection health status

type MetricsConfig

type MetricsConfig struct {
	// EnableResponseSizeMetrics enables response size tracking (may impact performance)
	EnableResponseSizeMetrics bool
	// PathNormalizer normalizes endpoint paths for consistent labeling
	PathNormalizer func(path string) string
}

MetricsConfig holds configuration for the metrics middleware

func DefaultConfig

func DefaultConfig() MetricsConfig

DefaultConfig returns default configuration for metrics middleware

type MetricsQueryHook

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

MetricsQueryHook implements the ClickHouse QueryHook interface This requires the source to be available, so it's best used when you have source context

func NewMetricsQueryHook

func NewMetricsQueryHook(source *models.Source) *MetricsQueryHook

NewMetricsQueryHook creates a new metrics query hook

func (*MetricsQueryHook) AfterQuery

func (h *MetricsQueryHook) AfterQuery(ctx context.Context, query string, err error, duration time.Duration)

AfterQuery is called after query execution

func (*MetricsQueryHook) BeforeQuery

func (h *MetricsQueryHook) BeforeQuery(ctx context.Context, query string) (context.Context, error)

BeforeQuery is called before query execution

type QueryMetricsHelper

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

QueryMetricsHelper provides a helper for timing query operations

func (*QueryMetricsHelper) Finish

func (h *QueryMetricsHelper) Finish(success bool, rowsReturned int64, errorType string, timedOut bool)

Finish completes the query tracking and records metrics

Jump to

Keyboard shortcuts

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