Skip to content

INFO

Returns server information and statistics.

INFO [section ...]
ArgumentTypeRequiredDescription
sectionstringNoOne or more of server, cluster, kronotop, clients, memory, threads, traffic, transactions, tasks, volume, bucket, vector, zmap. all, default and everything select every section. Case does not matter.

A verbatim string (txt) in RESP3, a bulk string in RESP2. It holds key:value lines grouped under # Section headers. Sections are separated by an empty line.

These rules apply to all sections:

  • Each byte field is followed by a _human field that repeats the value in a readable unit.
  • Counters are totals since the member started. They begin at zero on restart.
  • A value of -1 means the JVM does not define it. The _human pair then says unlimited.
FieldDescription
server_nameAlways kronotop.
kronotop_versionVersion set at build time. unknown when not available.
kronotop_git_sha1Git commit set at build time. unknown when not available.
kronotop_build_timeWhen the binary was built. unknown when not available.
server_modeAlways standalone.
osOperating system name, version and architecture.
arch_bitsPointer size of the JVM, 64 or 32.
java_versionVersion of the running JVM.
process_idOperating system process id.
run_idChanges on every restart of the process.
tcp_portPort the client listener is bound to. When the config sets port 0, this is the port picked at startup.
server_time_usecServer clock in microseconds since the Unix epoch.
uptime_in_secondsSeconds since the JVM started.
process_cpu_time_msecCPU time used by the process, in milliseconds.
fdb_api_versionFoundationDB API version from the config.
listener0Client listener. The line has the bind host, the bound port and one advertise=host:port entry per advertised address. When no advertise address is configured, the entry is derived from the bind address.
listener1Internal cluster listener. Same format as listener0.
FieldDescription
cluster_enabledAlways 0.
FieldDescription
cluster_nameName of the cluster this member belongs to.
member_idId of this member.
member_statusOne of RUNNING, UNAVAILABLE, STOPPED, UNKNOWN.
bucket_shardsNumber of Bucket shards in the cluster.
stash_shardsNumber of Stash shards. Present only when stash.enabled is true.
known_membersMembers this member has ever seen.
alive_membersMembers with a recent heartbeat.
primary_shardsShards where this member is the primary.
standby_shardsShards where this member is a standby.

resp2_clients and resp3_clients together equal connected_clients.

FieldDescription
connected_clientsAll open connections on both listeners, client and internal.
clients_in_transactionSessions between BEGIN and COMMIT or ROLLBACK.
clients_in_multiSessions between MULTI and EXEC or DISCARD. Present only when stash.enabled is true.
snapshot_read_clientsSessions with SNAPSHOTREAD ON.
resp2_clientsConnections that negotiated RESP2.
resp3_clientsConnections that negotiated RESP3.

heap_* fields cover the JVM heap. non_heap_* fields cover JVM memory outside the heap, such as class metadata and compiled code. Direct buffers are not included in either. All byte fields are in bytes.

FieldDescription
heap_used_memoryHeap memory in use.
heap_committed_memoryHeap memory reserved from the operating system.
heap_max_memoryHeap limit.
non_heap_used_memoryNon-heap memory in use.
non_heap_committed_memoryNon-heap memory reserved from the operating system.
non_heap_max_memoryNon-heap limit. Usually -1.
direct_buffer_countNumber of direct buffers.
direct_buffer_used_memoryMemory the JVM uses for direct buffers.
direct_buffer_total_capacityTotal size of the direct buffers.
mapped_buffer_countNumber of mapped volume segments.
mapped_buffer_total_capacityMapped range of the memory-mapped files, not the part loaded in RAM.
netty_used_direct_memoryDirect memory held by the network buffer pool. This is the size of the pooled memory blocks, not only the bytes in use by open requests. Depending on the JVM options, it is also counted in direct_buffer_*.
netty_used_heap_memoryHeap memory held by the network buffer pool. Same rule as netty_used_direct_memory.
total_allocated_memoryTotal heap memory allocated since startup. It only grows. Read it twice and divide the difference by the time between the reads to get the allocation rate. -1 when the JVM does not measure it, missing when the JVM cannot.
gc_countNumber of garbage collections since startup.
gc_time_msecTime spent in garbage collection since startup, in milliseconds.
gc_freed_memoryTotal memory freed by garbage collection. Counting begins when the member starts. Collections that ran before that moment are counted in gc_count and gc_time_msec, but not here. It covers the heap, the class metadata areas and the compiled code area. Objects moved from one memory area to another are not counted as freed. It can be slightly higher than total_allocated_memory, because it also counts unused space the JVM leaves in memory blocks, freed class metadata and freed compiled code.

Only platform threads are counted. Virtual threads are not included.

FieldDescription
thread_countLive threads, daemon and non-daemon.
daemon_thread_countLive daemon threads.
peak_thread_countHighest thread_count seen since the JVM started.
total_started_threadsThreads started since the JVM started. It only grows.

Each field appears twice: once with the external_ prefix for the client port, once with the internal_ prefix for the cluster port.

FieldDescription
*_total_commands_processedCommands received on that port.
*_commands_succeededCommands answered without an error.
*_commands_failedCommands answered with an error.
*_read_bytesBytes read from the connections of that port. With TLS enabled, the encrypted bytes are counted.
*_written_bytesBytes written to the connections of that port. With TLS enabled, the encrypted bytes are counted.
FieldDescription
transactions_createdTransactions created since the member started.
transactions_activeOpen transactions a client or a task is working in. Watch transactions are not included.
transactions_watchingOpen transactions that hold a watch and stay open until an event arrives.
oldest_active_transaction_usecAge of the oldest active transaction in microseconds. 0 when no transaction is active. Watch transactions are not included.
transactions_committedCommits that succeeded.
transactions_conflictedCommits rejected by FoundationDB because of a conflict.
transactions_commit_failedCommits that failed for another reason.
transactions_rolled_backTransactions closed with ROLLBACK.
transactions_closed_without_commitTransactions closed without a commit attempt or a rollback, for example read-only sessions or a closed connection.
transaction_readsSingle key reads.
transaction_range_readsRange reads.
transaction_writesSingle key writes.
transaction_deletesSingle key deletes.
transaction_range_deletesRange deletes.
transaction_mutationsAtomic mutations.
transaction_bytes_readBytes read from FoundationDB.
transaction_bytes_writtenBytes written to FoundationDB.
avg_commit_latency_usecCommit latency averaged over all commit attempts, in microseconds.
max_commit_latency_usecHighest commit latency seen, in microseconds.
avg_transaction_duration_usecAverage lifetime of a closed transaction, from create to close, in microseconds.
FieldDescription
task_countBackground tasks registered on this member.
running_tasksTasks that were running when INFO was called.
FieldDescription
volume_countOpen volumes on this member.
volumeNOne line per open volume, in name order, starting at volume0. The line has the volume name, its status (READWRITE, READONLY or INOPERABLE), vacuum_active (1 while a vacuum runs on that volume) and the operation counters appends, deletes, updates, gets, bytes_appended, bytes_read and segments_created. VOLUME.STATS RESET clears the counters.
FieldDescription
plan_cache_sizeNumber of cached query plans.
plan_cache_hitsQuery plan lookups served from the cache. EXPLAIN lookups are not counted.
plan_cache_missesQuery plan lookups that missed the cache. An expired entry is a miss. EXPLAIN lookups are not counted.
open_cursorsOpen BUCKET.QUERY, BUCKET.DELETE and BUCKET.UPDATE cursors across all sessions.
bucket_insertsBUCKET.INSERT calls. One call is one count, no matter how many documents it touched.
bucket_queriesBUCKET.QUERY calls.
bucket_updatesBUCKET.UPDATE calls.
bucket_deletesBUCKET.DELETE calls.
bucket_advancesBUCKET.ADVANCE calls.
bucket_vector_searchesBUCKET.VECTOR calls.
bucket_purgesBUCKET.PURGE calls.
bucket_removesBUCKET.REMOVE calls.
index_maintenance_workersIndex maintenance workers running on this member.
index_maintenance_processed_entriesEntries processed by index maintenance workers on this member since start.
index_maintenance_retried_conflictsCommit conflicts index maintenance workers retried since start.
index_maintenance_last_runMost recent run time in milliseconds since the Unix epoch, or 0 when no worker is running.
FieldDescription
vector_indexesVector graph indexes held in memory.
vector_bytes_usedTotal heap usage of those indexes, in bytes.
vector_on_disk_indexesVector graph indexes flushed to disk and open for search.
vector_flush_queue_sizeFlush tasks waiting for the flush maintainer.
vector_flush_failuresFlush attempts that failed since start. The on-heap index stays in memory and is retried.
vector_sync_queue_sizeFlushed graphs waiting to be written to Volume.
vector_sync_failuresSync attempts that failed since start. The task is queued again, except during shutdown. The next start picks it up.
vector_lost_graphsFlushed graphs that never reached Volume and whose files are not on this member. Their vectors stay out of the index until it is rebuilt. Counted again on every start.
vector_restore_failuresGraphs skipped while loading from Volume since start, because their chunks were corrupt, incomplete, missing or unreadable. Retried on the next start.
FieldDescription
zmap_setsZSET and the typed ZSET* calls. One call is one count.
zmap_getsZGET, ZGETKEY and the typed ZGET* calls.
zmap_range_readsZGETRANGE and ZGETRANGESIZE calls.
zmap_deletesZDEL and ZDELRANGE calls.
zmap_mutationsZMUTATE and the ZINC* calls.
zmap_watchesZWATCH calls.
zmap_watched_keysDistinct keys with an active ZWATCH, which equals the number of FoundationDB watches.
zmap_watch_waitersClients blocked on those watches.
zmap_watch_firesWatches that fired. One fire wakes every waiter on the key and counts once.

Without arguments, all sections are returned. With one or more section names, only the named sections are returned, in the order above. Unknown names are ignored. If no name matches, the reply is an empty string.

The command reads only in-memory state. It does not touch FoundationDB and does not require the cluster to be initialized.

server_mode is always standalone and cluster_enabled is always 0. Kronotop does not use slot-based routing at the protocol level, so clients must connect in standalone mode.

No command-specific errors.