Skip to main content

🔬 SquirrelDB Time Series Database exposed Prometheus Metrics

SquirrelDB exposes Prometheus metrics on /metrics.

API​

Metric nameDescription
squirreldb_api_requests_secondsTotal processing time in seconds (including sending response to client)

Batch​

Batch keeps recent points in fast storage for efficient access and is in charge of writing batch of metrics to Cassandra.

Metric nameDescription
squirreldb_batch_background_secondsTotal background processing time in seconds
squirreldb_batch_conflict_write_memorystore_totalTotal number of write conflicts during purge of old points in the memory store
squirreldb_batch_duplicated_points_totalTotal duplicated points eliminated by batcher during write request
squirreldb_batch_new_points_during_tsdb_write_totalTotal number of points arrived during TSDB write (which required a 2nd write in memory store)
squirreldb_batch_non_owner_write_totalTotal number of metrics written to TSDB by a SquirrelDB not owner of the metric
squirreldb_batch_requests_secondsTotal processing time in seconds
squirreldb_batch_transfer_owner_totalTotal number of metrics whose ownership was transferred to another SquirrelDB.

Cluster​

Cluster is the component in charge of the communication between SquirrelDBs in a cluster.

Metric nameDescription
squirreldb_cluster_message_processing_secondsTotal processing time spent to send/receive messages

Index​

The index provides efficient indexing of metrics by their labels.

Metric nameDescription
squirreldb_index_cache_access_totalTotal number of access of each cache
squirreldb_index_cache_sizeTotal number of entries in the in-memory cache
squirreldb_index_cassandra_queries_secondsTotal processing time spent in Cassandra in seconds
squirreldb_index_create_secondsTotal metric creation time in seconds (excluding time to take the lock)
squirreldb_index_expire_conflict_totalTotal number of conflicts in expiration updates
squirreldb_index_expire_ghost_metrics_totalTotal number of "ghost" metrics deleted by the expiration task (partially created metrics)
squirreldb_index_expire_lock_secondsTotal processing time with the new-metric lock held by the task in seconds. This is a global lock across all SquirrelDB.
squirreldb_index_expire_metrics_delete_totalTotal number of metrics deleted by the expiration task
squirreldb_index_expire_metrics_totalTotal number of metrics processed by the expiration task (deleted or not)
squirreldb_index_expire_move_secondsTotal processing time to move metrics ID from one expiration list to another in seconds
squirreldb_index_expire_secondsTotal processing time of the expiration task in seconds
squirreldb_index_lookup_id_concurrent_new_totalTotal number of concurrent creation of the same metric
squirreldb_index_lookup_id_new_totalTotal number of metrics created
squirreldb_index_lookup_id_refresh_totalTotal lookup for metric ID that caused a refresh of TTL
squirreldb_index_lookup_id_request_secondsTotal lookup request for metric IDs (from labels) time in seconds
squirreldb_index_lookup_labels_secondsTotal lookup for labels (from ID) time in seconds
squirreldb_index_search_metrics_secondsTotal time spent searching for metrics (from labels selector)
squirreldb_index_search_metrics_totalTotal number of metrics matching a search from labels selector
squirreldb_index_update_postings_secondsTotal postings updates time in seconds (including time to take the lock)

Locks​

Locks is a component in charge of acquiring locks to prevent data races.

Metric nameDescription
squirreldb_locks_cassandra_queries_secondsTotal processing time spent in Cassandra in seconds
squirreldb_locks_lock_pendingNumber of goroutine trying to acquire a lock
squirreldb_locks_lock_secondsTotal time spent to acquire a lock (including waiting time) in seconds
squirreldb_locks_lock_success_totalTotal number of successfully acquired locks
squirreldb_locks_unlock_secondsTotal time spent to release a lock in seconds

Mutable labels​

Mutable labels metrics.

Metric nameDescription
squirreldb_mutable_cache_access_totalTotal number of access to the cache
squirreldb_mutable_cache_sizeNumber of entries stored in the cache

PromQL​

PromQL query metrics.

Metric nameDescription
squirreldb_queryable_cached_points_totalTotal points read from cache. The cache only work within the same PromQL query
squirreldb_queryable_requests_pointsTotal points processed by PromQL queries
squirreldb_queryable_series_evaluatedTotal series evaluated by PromQL queries

Redis​

SquirrelDB uses Redis for short term storage.

Metric nameDescription
squirreldb_redis_operations_points_totalTotal points processed by Redis operation
squirreldb_redis_operations_secondsTotal processing time of Redis operations in seconds

Remote write​

Prometheus remote write metrics.

Metric nameDescription
squirreldb_remote_storage_write_requests_pointsTotal number of points written

TSDB​

The TSDB provides long term storage using Cassandra.

Metric nameDescription
squirreldb_tsdb_aggregated_until_secondsMost recent timestamp for which all shard are aggregated
squirreldb_tsdb_aggregation_secondsTotal processing time spent for aggregating each shard
squirreldb_tsdb_cassandra_queries_secondsTotal processing time spent in Cassandra itself in seconds
squirreldb_tsdb_requests_points_totalTotal points processed by persistent TSDB
squirreldb_tsdb_requests_secondsTotal processing time in seconds

Go​

Metrics are exposed by the Go Prometheus collector.

Metric nameDescription
go_goroutinesNumber of goroutines that currently exist
go_infoInformation about the Go environment
go_memstats_alloc_bytesNumber of bytes allocated and still in use
go_memstats_heap_alloc_bytesNumber of heap bytes allocated and still in use
go_memstats_sys_bytesNumber of bytes obtained from system
go_threadsNumber of OS threads created

Process​

Metrics are exposed by the Prometheus process collector.

Metric nameDescription
process_cpu_seconds_totalTotal user and system CPU time spent in seconds
process_max_fdsMaximum number of open file descriptors
process_open_fdsNumber of open file descriptors
process_resident_memory_bytesResident memory size in bytes
process_start_time_secondsStart time of the process since unix epoch in seconds
process_virtual_memory_bytesVirtual memory size in bytes
process_virtual_memory_max_bytesMaximum amount of virtual memory available in bytes