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