Module: HTM::Observability¶
Observability module for monitoring and metrics collection
Provides comprehensive monitoring of HTM components including: * Connection pool health monitoring with alerts * Query timing and performance metrics * Cache efficiency tracking * Service health checks * Memory usage statistics
@example
@example
pool_stats = HTM::Observability.connection_pool_stats
if pool_stats[:status] == :exhausted
logger.error "Connection pool exhausted!"
end
@example
if HTM::Observability.healthy?
puts "All systems operational"
else
puts "Health check failed: #{HTM::Observability.health_check[:issues]}"
end
Class Methods¶
cache_stats()¶
Get query cache statistics
@return [Hash, nil] Cache stats or nil if unavailable
circuit_breaker_stats()¶
Get circuit breaker states for all services
@return [Hash] Circuit breaker states:
- :embedding_service - State and failure count
- :tag_service - State and failure count
collect_all()¶
Collect all observability metrics
@return [Hash] Comprehensive metrics including:
- :connection_pool - Pool stats with health status
- :cache - Query cache hit rates and size
- :circuit_breakers - Service circuit breaker states
- :query_timings - Recent query performance
- :service_timings - Embedding/tag generation times
- :memory_usage - System memory stats
connection_pool_stats()¶
Get connection pool statistics with health status
@return [Hash] Pool statistics including:
- :size - Maximum pool size
- :connections - Current total connections
- :in_use - Connections currently checked out
- :available - Connections available for checkout
- :utilization - Usage percentage (0.0-1.0)
- :status - Health status (:healthy, :warning, :critical, :exhausted)
- :wait_timeout - Connection wait timeout (ms)
health_check()¶
Perform comprehensive health check
@return [Hash] Health check results:
- :healthy - Boolean overall health status
- :checks - Individual check results
- :issues - Array of identified issues
healthy?()¶
Quick health check - returns boolean
@return [Boolean] true if system is healthy
memory_stats()¶
Get memory usage statistics
@return [Hash] Memory stats
query_timing_stats()¶
Get query timing statistics
@return [Hash] Timing statistics including avg, min, max, p95
record_embedding_timing(duration_ms )¶
Record embedding generation timing
@param [Float] Generation duration in milliseconds
record_query_timing(duration_ms , query_type: :unknown)¶
Record query timing for metrics
@param [Float] Query duration in milliseconds
@param [Symbol] Type of query (:vector, :fulltext, :hybrid)
record_tag_timing(duration_ms )¶
Record tag extraction timing
@param [Float] Extraction duration in milliseconds
reset_metrics!()¶
Clear all collected timing metrics
@return [void]
service_timing_stats()¶
Get service timing statistics (embedding and tag extraction)
@return [Hash] Timing stats for embedding and tag services