Documentation
¶
Index ¶
- func DecrementActiveRequests()
- func DetermineErrorType(err error) string
- func DetermineQueryType(query string) string
- func IncrementActiveRequests()
- func MetricsHandler() fiber.Handler
- func Middleware(config ...MetricsConfig) fiber.Handler
- func NormalizeEndpointPath(path string) string
- func RecordAIOperation(source *models.Source, operation string, success bool, duration time.Duration, ...)
- func RecordAPITokenOperation(operation string, success bool, user *models.User, tokenName string)
- func RecordAuthAttempt(method string, success bool, user *models.User)
- func RecordAuthorizationFailure(endpoint string, user *models.User, reason string)
- func RecordClickHouseConnectionStatus(source *models.Source, healthy bool)
- func RecordClickHouseReconnection(source *models.Source, success bool)
- func RecordClickHouseValidation(source *models.Source, success bool)
- func RecordCollectionOperation(source *models.Source, team *models.Team, operation string, success bool, ...)
- func RecordHTTPError(method, endpoint, errorType string, statusCode int, user *models.User)
- func RecordHTTPRequest(method, endpoint string, statusCode int, duration time.Duration, ...)
- func RecordHistogram(source *models.Source, success bool, duration time.Duration, user *models.User)
- func RecordQuery(source *models.Source, queryType string, success bool, duration time.Duration, ...)
- func RecordQueryError(source *models.Source, errorType string)
- func RecordQueryTimeout(source *models.Source, queryType string)
- func RecordSessionOperation(operation string, success bool, user *models.User)
- func RecordSourceOperation(source *models.Source, operation string, success bool, user *models.User)
- func RecordTeamOperation(team *models.Team, operation string, success bool, user *models.User)
- func UpdateActiveSessions(count int)
- func UpdateActiveUsers(count int)
- type ClickHouseMetrics
- func (m *ClickHouseMetrics) RecordConnectionValidation(success bool)
- func (m *ClickHouseMetrics) RecordHistogramMetrics(success bool, duration time.Duration, user *models.User)
- func (m *ClickHouseMetrics) RecordQueryMetrics(queryType string, success bool, duration time.Duration, rowsReturned int64, ...)
- func (m *ClickHouseMetrics) RecordReconnection(success bool)
- func (m *ClickHouseMetrics) StartQuery(queryType string, user *models.User) *QueryMetricsHelper
- func (m *ClickHouseMetrics) UpdateConnectionStatus(healthy bool)
- type MetricsConfig
- type MetricsQueryHook
- type QueryMetricsHelper
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DecrementActiveRequests ¶
func DecrementActiveRequests()
func DetermineErrorType ¶
DetermineErrorType determines the type of error from an error object
func DetermineQueryType ¶
DetermineQueryType analyzes the query string to determine its type
func IncrementActiveRequests ¶
func IncrementActiveRequests()
func MetricsHandler ¶
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 ¶
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 ¶
RecordAPITokenOperation records API token operation metrics
func RecordAuthAttempt ¶
RecordAuthAttempt records authentication attempt metrics
func RecordAuthorizationFailure ¶
RecordAuthorizationFailure records authorization failure metrics
func RecordClickHouseConnectionStatus ¶
RecordClickHouseConnectionStatus sets connection status for a source
func RecordClickHouseReconnection ¶
RecordClickHouseReconnection records reconnection attempts
func RecordClickHouseValidation ¶
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 ¶
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 ¶
RecordQueryError records query error metrics
func RecordQueryTimeout ¶
RecordQueryTimeout records query timeout metrics
func RecordSessionOperation ¶
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 ¶
RecordTeamOperation records team operation metrics
func UpdateActiveSessions ¶
func UpdateActiveSessions(count int)
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 ¶
BeforeQuery is called before query execution
type QueryMetricsHelper ¶
type QueryMetricsHelper struct {
// contains filtered or unexported fields
}
QueryMetricsHelper provides a helper for timing query operations