Skip to main content
Version: NG-2.13

KeyDB

Introduction

KeyDB is a high performance open source database used at Snap, and a powerful drop-in alternative to Redis. While many databases keep the best features locked in their paid offerings, KeyDB remains fully open source. This best enables Snap & the community to collaborate and benefit together in the projects development.

Getting Started

Compatibility

The KeyDB O11ySource is compatible with all versions of Cassandra equal to or greater than 6.1.

Data Collection Method

vuSmartMaps collects health and performance data for KeyDB using VuNet's Healthbeat agent. This agent collects data based on the source configuration.

Prerequisites

Dependent Configuration

To configure this O11ySource, create a 'credential' of type 'user' under the 'Definition' tab.

Inputs for Configuring Data Source

  • Instance Name: Please enter the name of the KeyDB Package instance
  • Key Path: For example,if Keydb is installed in /opt, the bin directory is typically /opt/keydb-server/. Please give the absolute path of keydb-server directory for your installation here.
  • Port: Provide the KeyDB port details
  • Credentials: Provide the KeyDB Credentials details
  • Server Role: Select the Server Role
  • Period: How frequently data is gathered. The period should be between 60 seconds – 3000 seconds.

Firewall Requirement

To collect data from this O11ySource, ensure the following ports are opened:

Source IPDestination IPDestination PortProtocolDirection
IP address of the server where KeyDB is installedvuSmartMaps Data Collector End Point9092*TCPInbound

*Before providing the firewall requirements, please update the port based on the customer environment.

Configuring the Target

Healthbeat should be installed and running in the server where KeyDB is installed.

Configuration Steps

  • Enable the KeyDB O11ySource.
  • Select the Sources tab and press the + button to add a new KeyDB instance to be monitored.
  • Add the required details and then click on Next.
  • The following packages will be available for download based on the OS:Download <OS> Healthbeat Installation Binary - Downloads the full Healthbeat package with required configurations for a fresh installationDownload <OS> Healthbeat Update Configuration Binary - Downloads the agent configuration package to update an existing Healthbeat installation
  • Download the agent installation or update package, then click Finish to close the data source window.

Metrics Collected

NameDescriptionData Type
timestampThe timestamp with millisecond precision when the data was captured.DateTime64(3)
hostnameThe name of the host or server where the data is being collected.String
vublock_nameThe name of the virtual block or volume being monitored.String
topic_nameThe name of the topic being monitored or logged.String
typeThe type of data or metric being collected.String
datasetThe name of the dataset from which the metrics are collected.String
moduleThe module responsible for generating the data.String
stderrAny standard error messages that may be logged.String
commandThe command or operation executed during data collection.String
nameThe name associated with the record or data entry.String
versionThe version of the software or module.String
ephemeral_idA temporary unique identifier for this specific instance of data collection.String
idA unique identifier for the record or log entry.String
total_error_repliesThe total number of error replies encountered.UInt32
sync_fullThe total number of full syncs that have occurred.UInt32
avg_lock_contentionThe average lock contention time in seconds.Float64
total_reads_processedThe total number of read operations processed.UInt64
total_net_input_bytesThe total number of network input bytes processed.Float64
expire_cycle_cpu_millisecondsThe CPU time consumed by expire cycles in milliseconds.UInt32
total_writes_processedThe total number of write operations processed.UInt64
total_net_output_bytesThe total number of network output bytes processed.Float64
pubsub_channelsThe number of active Pub/Sub channels.UInt32
expired_time_cap_reached_countThe count of times the expiration time cap has been reached.UInt32
sync_partial_errThe number of partial sync errors that have occurred.UInt32
unexpected_error_repliesThe number of unexpected error replies received.UInt32
active_defrag_key_hitsThe number of active defragmentation key hits.UInt32
instantaneous_input_kbpsThe current rate of network input in kilobits per second (kbps).Float64
expired_stale_percThe percentage of keys expired that were stale.Float64
active_defrag_missesThe number of active defragmentation key misses.UInt32
sync_partial_okThe number of successful partial sync operations.UInt32
pubsub_patternsThe number of active Pub/Sub patterns.UInt32
slave_expires_tracked_keysThe number of keys being tracked for expiration on slave nodes.UInt32
tracking_total_prefixesThe total number of prefixes being tracked for key changes.UInt32
latest_fork_usecThe time taken for the latest fork operation in microseconds.UInt64
storage_provider_read_hitsThe number of successful read hits from the storage provider.UInt32
tracking_total_keysThe total number of keys being tracked for changes.UInt32
rejected_connectionsThe number of rejected client connections.UInt32
tracking_total_itemsThe total number of items being tracked in the database.UInt32
total_commands_processedThe total number of commands processed by the database.UInt64
expired_keysThe total number of keys that have expired.UInt32
total_forksThe total number of fork operations performed.UInt32
dump_payload_sanitizationsThe number of dump payloads that have been sanitized.UInt32
instantaneous_lock_contentionThe current rate of lock contention in the system.Float64
keyspace_missesThe number of keyspace misses (attempts to retrieve non-existent keys).UInt32
active_defrag_key_missesThe number of key misses during active defragmentation.UInt32
evicted_keysThe number of keys that have been evicted from the database.UInt32
instantaneous_output_kbpsThe current rate of network output in kilobits per second (kbps).Float64
storage_provider_read_missesThe number of storage provider read misses.UInt32
keyspace_hitsThe number of keyspace hits (successful key retrievals).UInt32
instantaneous_ops_per_secThe number of operations being processed per second.UInt32
total_connections_receivedThe total number of client connections received.UInt64
migrate_cached_socketsThe number of cached sockets used during migration.UInt32
active_defrag_hitsThe number of hits during active defragmentation.UInt32
allocator_activeThe amount of memory currently allocated by the memory allocator.Float64
used_memory_rssThe amount of memory used by the system as reported by the operating system.Float64
maxmemoryThe maximum amount of memory configured for the system or process.Float64
mem_fragmentation_ratioThe ratio of memory fragmentation (used memory vs. allocated memory).Float32
used_memoryThe total amount of memory currently used.Float64
total_system_memoryThe total memory available in the system.Float64
used_memory_peakThe peak amount of memory used at any point.Float64
used_memory_overheadThe overhead memory used by the system.Float64
used_memory_datasetThe amount of memory used by datasets.Float64
allocator_allocatedThe amount of memory currently allocated by the system allocator.Float64
tcp_portThe TCP port on which the server is running.UInt16
process_idThe process ID of the server or application.UInt32
availability_zoneThe availability zone of the server in a cloud environment.String
redis_git_sha1The Git SHA1 hash of the Redis build.String
run_idA unique ID for the running instance of the Redis server.String
redis_modeThe operating mode of Redis (e.g., standalone, cluster).String
osThe operating system on which the Redis server is running.String
redis_git_dirtyIndicates if the Redis Git codebase has uncommitted changes.UInt32
uptime_in_secondsThe total uptime of the server in seconds.UInt64
atomicvar_apiThe atomic variable API used by Redis.String
gcc_versionThe version of the GCC compiler used to build Redis.String
uptime_in_daysThe total uptime of the server in days.UInt32
server_time_usecThe server's current time in microseconds.UInt64
executableThe path to the Redis executable file.String
featuresThe features enabled in the Redis server.String
redis_versionThe version of Redis being used.String
arch_bitsThe architecture bit width (e.g., 32-bit, 64-bit) of the system.UInt32
hzThe server’s configured frequency (operations per second).UInt32
redis_build_idA unique identifier for the build of Redis.String
multiplexing_apiThe API used for I/O multiplexing in Redis.String
configured_hzThe configured server frequency (hz).UInt32
process_supervisedIndicates if the Redis process is supervised by another system (e.g., systemd, upstart).String
config_fileThe path to the Redis configuration file.String
lru_clockThe current LRU (Least Recently Used) clock in the server.UInt64
cluster_enabledIndicates if Redis clustering is enabled.UInt32
connected_clientsThe number of clients currently connected to the Redis server.UInt32
blocked_clientsThe number of clients blocked by Redis.UInt32
rdb_changes_since_last_saveThe number of changes to the database since the last RDB save operation.UInt32
rdb_last_save_timeThe timestamp of the last RDB save operation.UInt64
long_lock_waitsThe number of times a long lock wait occurred.UInt32
server_threadsThe number of server threads in use.UInt32
used_cpu_sysThe total CPU time used by the system (in seconds).Float64
used_cpu_userThe total CPU time used by user processes (in seconds).Float64
used_cpu_sys_childrenThe total CPU time used by system child processes (in seconds).Float64
used_cpu_sys_main_threadThe total CPU time used by the main system thread (in seconds).Float64
used_cpu_user_childrenThe total CPU time used by user child processes (in seconds).Float64
targetThe Name address associated with the target or server.String
ip_0The IP address associated with the target or server.String
second_repl_offsetThe second replication offset for Redis.Int32
repl_backlog_first_byte_offsetThe first byte offset in the replication backlog.UInt64
master_failover_stateThe current failover state of the master Redis server.String
roleThe role of the server (e.g., master, replica).String
repl_backlog_activeIndicates if the replication backlog is active.UInt32
repl_backlog_sizeThe size of the replication backlog in bytes.Float64
connected_slavesThe number of connected slave servers.UInt32
repl_backlog_histlenThe length of the replication backlog history.UInt32
master_replidThe replication ID of the master server.String
master_replid2The second replication ID for a failover master.String
master_repl_offsetThe current replication offset on the master server.UInt64
slave_repl_offsetThe current replication offset on the slave serverUInt64
master_link_statusThe status of the link to the master serverString
command_total_callsThe total number of times a command has been executedUInt64
command_total_cpu_timeThe total CPU time spent on executing the commandUInt64
command_avg_time_per_call_usecThe average time taken per command call in microsecondsFloat64
command_rejected_callsThe total number of rejected command callsUInt64
latency_eventThe type of latency eventString
latency_timestampThe timestamp when the latency event occurredDateTime
latency_occurancesThe number of times the latency event has occurredUInt64
latency_durationThe duration of the latency event in microsecondsUInt64