Skip to content
Docs
Provided metrics

Provided metrics

LXD provides a number of instance metrics and internal metrics. See How to monitor metrics for instructions on how to work with these metrics.

Instance metrics

The following instance metrics are provided:

MetricDescription
lxd_cpu_effective_totalTotal number of effective CPUs
lxd_cpu_seconds_total{cpu="<cpu>", mode="<mode>"}Total number of CPU time used (in seconds)
lxd_disk_read_bytes_total{device="<dev>"}Total number of bytes read
lxd_disk_reads_completed_total{device="<dev>"}Total number of completed reads
lxd_disk_written_bytes_total{device="<dev>"}Total number of bytes written
lxd_disk_writes_completed_total{device="<dev>"}Total number of completed writes
lxd_filesystem_avail_bytes{device="<dev>",fstype="<type>"}Available space (in bytes)
lxd_filesystem_free_bytes{device="<dev>",fstype="<type>"}Free space (in bytes)
lxd_filesystem_size_bytes{device="<dev>",fstype="<type>"}Size of the file system (in bytes)
lxd_memory_Active_anon_bytesAmount of anonymous memory on active LRU list
lxd_memory_Active_bytesAmount of memory on active LRU list
lxd_memory_Active_file_bytesAmount of file-backed memory on active LRU list
lxd_memory_Cached_bytesAmount of cached memory
lxd_memory_Dirty_bytesAmount of memory waiting to be written back to the disk
lxd_memory_HugepagesFree_bytesAmount of free memory for hugetlb
lxd_memory_HugepagesTotal_bytesAmount of used memory for hugetlb
lxd_memory_Inactive_anon_bytesAmount of anonymous memory on inactive LRU list
lxd_memory_Inactive_bytesAmount of memory on inactive LRU list
lxd_memory_Inactive_file_bytesAmount of file-backed memory on inactive LRU list
lxd_memory_Mapped_bytesAmount of mapped memory
lxd_memory_MemAvailable_bytesAmount of available memory
lxd_memory_MemFree_bytesAmount of free memory
lxd_memory_MemTotal_bytesAmount of used memory
lxd_memory_OOM_kills_totalThe number of out-of-memory kills
lxd_memory_RSS_bytesAmount of anonymous and swap cache memory
lxd_memory_Shmem_bytesAmount of cached file system data that is swap-backed
lxd_memory_Swap_bytesAmount of used swap memory
lxd_memory_Unevictable_bytesAmount of unevictable memory
lxd_memory_Writeback_bytesAmount of memory queued for syncing to disk
lxd_network_receive_bytes_total{device="<dev>"}Amount of received bytes on a given interface
lxd_network_receive_drop_total{device="<dev>"}Amount of received dropped bytes on a given interface
lxd_network_receive_errs_total{device="<dev>"}Amount of received errors on a given interface
lxd_network_receive_packets_total{device="<dev>"}Amount of received packets on a given interface
lxd_network_transmit_bytes_total{device="<dev>"}Amount of transmitted bytes on a given interface
lxd_network_transmit_drop_total{device="<dev>"}Amount of transmitted dropped bytes on a given interface
lxd_network_transmit_errs_total{device="<dev>"}Amount of transmitted errors on a given interface
lxd_network_transmit_packets_total{device="<dev>"}Amount of transmitted packets on a given interface
lxd_procs_totalNumber of running processes

Internal metrics

The following internal metrics are provided:

MetricDescription
lxd_api_requests_completed_totalTotal number of completed requests. See API rates metrics.
lxd_api_requests_ongoingNumber of requests currently being handled. See API rates metrics.
lxd_go_alloc_bytes_totalTotal number of bytes allocated (even if freed)
lxd_go_alloc_bytesNumber of bytes allocated and still in use
lxd_go_buck_hash_sys_bytesNumber of bytes used by the profiling bucket hash table
lxd_go_frees_totalTotal number of frees
lxd_go_gc_sys_bytesNumber of bytes used for garbage collection system metadata
lxd_go_goroutinesNumber of goroutines that currently exist
lxd_go_heap_alloc_bytesNumber of heap bytes allocated and still in use
lxd_go_heap_idle_bytesNumber of heap bytes waiting to be used
lxd_go_heap_inuse_bytesNumber of heap bytes that are in use
lxd_go_heap_objectsNumber of allocated objects
lxd_go_heap_released_bytesNumber of heap bytes released to OS
lxd_go_heap_sys_bytesNumber of heap bytes obtained from system
lxd_go_lookups_totalTotal number of pointer lookups
lxd_go_mallocs_totalTotal number of mallocs
lxd_go_mcache_inuse_bytesNumber of bytes in use by mcache structures
lxd_go_mcache_sys_bytesNumber of bytes used for mcache structures obtained from system
lxd_go_mspan_inuse_bytesNumber of bytes in use by mspan structures
lxd_go_mspan_sys_bytesNumber of bytes used for mspan structures obtained from system
lxd_go_next_gc_bytesNumber of heap bytes when next garbage collection will take place
lxd_go_other_sys_bytesNumber of bytes used for other system allocations
lxd_go_stack_inuse_bytesNumber of bytes in use by the stack allocator
lxd_go_stack_sys_bytesNumber of bytes obtained from system for stack allocator
lxd_go_sys_bytesNumber of bytes obtained from system
lxd_operations_totalNumber of running operations
lxd_uptime_secondsDaemon uptime (in seconds)
lxd_warnings_totalNumber of active warnings

API rates metrics

The API rates metrics include lxd_api_requests_completed_total and lxd_api_requests_ongoing. These metrics can be consumed by an observability tool deployed externally (for example, the Canonical Observability Stack (opens in a new tab) or another third-party tool) to help identify failures or overload on a LXD server. You can set thresholds on the observability tools for these metrics' values to trigger alarms and take programmatic actions.

These metrics consider all endpoints in the LXD REST API, with the exception of the / endpoint. Requests using an invalid URL are also counted. Requests against the metrics server are also counted. Both introduced metrics include a label entity_type based on the main entity type that the endpoint is operating on.

lxd_api_requests_ongoing contains the number of requests that are not yet completed by the time the metrics are queried. A request is considered completed when the response is returned to the client and any asynchronous operations spawned by that request are done. lxd_api_requests_completed_total contains the number of completed requests. This metric includes an additional label named result based on the outcome of the request. The label can have one of the following values:

  • error_server, for errors on the server side, this includes responses with HTTP status codes from 500 to 599. Any failed asynchronous operations also fall into this category.
  • error_client, for responses with HTTP status codes from 400 to 499, indicating an error on the client side.
  • succeeded, for endpoints that executed successfully.

Related topics

How-to guides:

Explanation: