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 IP | Destination IP | Destination Port | Protocol | Direction |
---|---|---|---|---|
IP address of the server where KeyDB is installed | vuSmartMaps Data Collector End Point | 9092* | TCP | Inbound |
*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
Name | Description | Data Type |
---|---|---|
timestamp | The timestamp with millisecond precision when the data was captured. | DateTime64(3) |
hostname | The name of the host or server where the data is being collected. | String |
vublock_name | The name of the virtual block or volume being monitored. | String |
topic_name | The name of the topic being monitored or logged. | String |
type | The type of data or metric being collected. | String |
dataset | The name of the dataset from which the metrics are collected. | String |
module | The module responsible for generating the data. | String |
stderr | Any standard error messages that may be logged. | String |
command | The command or operation executed during data collection. | String |
name | The name associated with the record or data entry. | String |
version | The version of the software or module. | String |
ephemeral_id | A temporary unique identifier for this specific instance of data collection. | String |
id | A unique identifier for the record or log entry. | String |
total_error_replies | The total number of error replies encountered. | UInt32 |
sync_full | The total number of full syncs that have occurred. | UInt32 |
avg_lock_contention | The average lock contention time in seconds. | Float64 |
total_reads_processed | The total number of read operations processed. | UInt64 |
total_net_input_bytes | The total number of network input bytes processed. | Float64 |
expire_cycle_cpu_milliseconds | The CPU time consumed by expire cycles in milliseconds. | UInt32 |
total_writes_processed | The total number of write operations processed. | UInt64 |
total_net_output_bytes | The total number of network output bytes processed. | Float64 |
pubsub_channels | The number of active Pub/Sub channels. | UInt32 |
expired_time_cap_reached_count | The count of times the expiration time cap has been reached. | UInt32 |
sync_partial_err | The number of partial sync errors that have occurred. | UInt32 |
unexpected_error_replies | The number of unexpected error replies received. | UInt32 |
active_defrag_key_hits | The number of active defragmentation key hits. | UInt32 |
instantaneous_input_kbps | The current rate of network input in kilobits per second (kbps). | Float64 |
expired_stale_perc | The percentage of keys expired that were stale. | Float64 |
active_defrag_misses | The number of active defragmentation key misses. | UInt32 |
sync_partial_ok | The number of successful partial sync operations. | UInt32 |
pubsub_patterns | The number of active Pub/Sub patterns. | UInt32 |
slave_expires_tracked_keys | The number of keys being tracked for expiration on slave nodes. | UInt32 |
tracking_total_prefixes | The total number of prefixes being tracked for key changes. | UInt32 |
latest_fork_usec | The time taken for the latest fork operation in microseconds. | UInt64 |
storage_provider_read_hits | The number of successful read hits from the storage provider. | UInt32 |
tracking_total_keys | The total number of keys being tracked for changes. | UInt32 |
rejected_connections | The number of rejected client connections. | UInt32 |
tracking_total_items | The total number of items being tracked in the database. | UInt32 |
total_commands_processed | The total number of commands processed by the database. | UInt64 |
expired_keys | The total number of keys that have expired. | UInt32 |
total_forks | The total number of fork operations performed. | UInt32 |
dump_payload_sanitizations | The number of dump payloads that have been sanitized. | UInt32 |
instantaneous_lock_contention | The current rate of lock contention in the system. | Float64 |
keyspace_misses | The number of keyspace misses (attempts to retrieve non-existent keys). | UInt32 |
active_defrag_key_misses | The number of key misses during active defragmentation. | UInt32 |
evicted_keys | The number of keys that have been evicted from the database. | UInt32 |
instantaneous_output_kbps | The current rate of network output in kilobits per second (kbps). | Float64 |
storage_provider_read_misses | The number of storage provider read misses. | UInt32 |
keyspace_hits | The number of keyspace hits (successful key retrievals). | UInt32 |
instantaneous_ops_per_sec | The number of operations being processed per second. | UInt32 |
total_connections_received | The total number of client connections received. | UInt64 |
migrate_cached_sockets | The number of cached sockets used during migration. | UInt32 |
active_defrag_hits | The number of hits during active defragmentation. | UInt32 |
allocator_active | The amount of memory currently allocated by the memory allocator. | Float64 |
used_memory_rss | The amount of memory used by the system as reported by the operating system. | Float64 |
maxmemory | The maximum amount of memory configured for the system or process. | Float64 |
mem_fragmentation_ratio | The ratio of memory fragmentation (used memory vs. allocated memory). | Float32 |
used_memory | The total amount of memory currently used. | Float64 |
total_system_memory | The total memory available in the system. | Float64 |
used_memory_peak | The peak amount of memory used at any point. | Float64 |
used_memory_overhead | The overhead memory used by the system. | Float64 |
used_memory_dataset | The amount of memory used by datasets. | Float64 |
allocator_allocated | The amount of memory currently allocated by the system allocator. | Float64 |
tcp_port | The TCP port on which the server is running. | UInt16 |
process_id | The process ID of the server or application. | UInt32 |
availability_zone | The availability zone of the server in a cloud environment. | String |
redis_git_sha1 | The Git SHA1 hash of the Redis build. | String |
run_id | A unique ID for the running instance of the Redis server. | String |
redis_mode | The operating mode of Redis (e.g., standalone, cluster). | String |
os | The operating system on which the Redis server is running. | String |
redis_git_dirty | Indicates if the Redis Git codebase has uncommitted changes. | UInt32 |
uptime_in_seconds | The total uptime of the server in seconds. | UInt64 |
atomicvar_api | The atomic variable API used by Redis. | String |
gcc_version | The version of the GCC compiler used to build Redis. | String |
uptime_in_days | The total uptime of the server in days. | UInt32 |
server_time_usec | The server's current time in microseconds. | UInt64 |
executable | The path to the Redis executable file. | String |
features | The features enabled in the Redis server. | String |
redis_version | The version of Redis being used. | String |
arch_bits | The architecture bit width (e.g., 32-bit, 64-bit) of the system. | UInt32 |
hz | The server’s configured frequency (operations per second). | UInt32 |
redis_build_id | A unique identifier for the build of Redis. | String |
multiplexing_api | The API used for I/O multiplexing in Redis. | String |
configured_hz | The configured server frequency (hz). | UInt32 |
process_supervised | Indicates if the Redis process is supervised by another system (e.g., systemd, upstart). | String |
config_file | The path to the Redis configuration file. | String |
lru_clock | The current LRU (Least Recently Used) clock in the server. | UInt64 |
cluster_enabled | Indicates if Redis clustering is enabled. | UInt32 |
connected_clients | The number of clients currently connected to the Redis server. | UInt32 |
blocked_clients | The number of clients blocked by Redis. | UInt32 |
rdb_changes_since_last_save | The number of changes to the database since the last RDB save operation. | UInt32 |
rdb_last_save_time | The timestamp of the last RDB save operation. | UInt64 |
long_lock_waits | The number of times a long lock wait occurred. | UInt32 |
server_threads | The number of server threads in use. | UInt32 |
used_cpu_sys | The total CPU time used by the system (in seconds). | Float64 |
used_cpu_user | The total CPU time used by user processes (in seconds). | Float64 |
used_cpu_sys_children | The total CPU time used by system child processes (in seconds). | Float64 |
used_cpu_sys_main_thread | The total CPU time used by the main system thread (in seconds). | Float64 |
used_cpu_user_children | The total CPU time used by user child processes (in seconds). | Float64 |
target | The Name address associated with the target or server. | String |
ip_0 | The IP address associated with the target or server. | String |
second_repl_offset | The second replication offset for Redis. | Int32 |
repl_backlog_first_byte_offset | The first byte offset in the replication backlog. | UInt64 |
master_failover_state | The current failover state of the master Redis server. | String |
role | The role of the server (e.g., master, replica). | String |
repl_backlog_active | Indicates if the replication backlog is active. | UInt32 |
repl_backlog_size | The size of the replication backlog in bytes. | Float64 |
connected_slaves | The number of connected slave servers. | UInt32 |
repl_backlog_histlen | The length of the replication backlog history. | UInt32 |
master_replid | The replication ID of the master server. | String |
master_replid2 | The second replication ID for a failover master. | String |
master_repl_offset | The current replication offset on the master server. | UInt64 |
slave_repl_offset | The current replication offset on the slave server | UInt64 |
master_link_status | The status of the link to the master server | String |
command_total_calls | The total number of times a command has been executed | UInt64 |
command_total_cpu_time | The total CPU time spent on executing the command | UInt64 |
command_avg_time_per_call_usec | The average time taken per command call in microseconds | Float64 |
command_rejected_calls | The total number of rejected command calls | UInt64 |
latency_event | The type of latency event | String |
latency_timestamp | The timestamp when the latency event occurred | DateTime |
latency_occurances | The number of times the latency event has occurred | UInt64 |
latency_duration | The duration of the latency event in microseconds | UInt64 |