The Vault server process collects various runtime metrics about the performance of different libraries and subsystems. These metrics are aggregated on a ten second interval and are retained for one minute.
To view the raw data, you must send a signal to the Vault process: on Unix-style operating systems, this is `USR1` while on Windows it is `BREAK`. When the Vault process receives this signal it will dump the current telemetry information to the process's `stderr`.
Telemetry information can also be streamed directly from Vault to a range of metrics aggregation solutions as described in the [telemetry Stanza documentation][telemetry-stanza].
The following sections describe available Vault metrics. The metrics interval can be assumed to be 10 seconds when manually triggering metrics output using the above described signals.
|`vault.runtime.alloc_bytes` | This measures the number of bytes allocated by the Vault process. This may burst from time to time but should return to a steady state value.| Number of bytes | Gauge |
|`vault.runtime.free_count`| This measures the number of `free` operations | Number of operations | Gauge |
|`vault.runtime.heap_objects`| This measures the number of objects on the heap and is a good general memory pressure indicator | Number of heap objects | Gauge |
|`vault.runtime.malloc_count`| This measures the number of `malloc` operations | Number of operations | Gauge |
|`vault.runtime.num_goroutines`| This measures the number of goroutines and serves as a general load indicator | Number of goroutines| Gauge |
|`vault.runtime.sys_bytes`| This measures the number of bytes allocated to Vault and includes what is being used by the heap and what has been reclaimed but not given back| Number of bytes | Gauge |
|`vault.runtime.total_gc_pause_ns` | This measures the total garbage collector pause time since the Vault instance was last started | Nanosecond | Summary |
| `vault.runtime.total_gc_runs` | Total number of garbage collection runs since the Vault instance was last started | Number of operations | Gauge |
`vault.expire.fetch-lease-times`| This measures the number of lease time fetch operations | Number of operations | Gauge |
`vault.expire.fetch-lease-times-by-token`| This measures the number of operations which compute lease times by token | Number of operations | Gauge |
`vault.expire.num_leases`| This measures the number of expired leases | Number of expired leases | Gauge |
`vault.expire.revoke`| This measures the number of revoke operations | Number of operations | Counter |
`vault.expire.revoke-force`| This measures the number of forced revoke operations | Number of operations | Counter |
`vault.expire.revoke-prefix`| This measures the number of operations used to revoke all secrets with a given prefix | Number of operations | Counter |
`vault.expire.revoke-by-token`| This measures the number of operations used to revoke all secrets issued with a given token | Number of operations | Counter |
`vault.expire.renew`| This measures the number of renew operations | Number of operations | Counter |
`vault.expire.renew-token`| This measures the number of renew token operations to renew a token which does not need to invoke a logical backend | Number of operations | Gauge |
`vault.expire.register`| This measures the number of register operations which take a request and response with an associated lease and register a lease entry with lease ID | Number of operations | Gauge |
`vault.expire.register-auth`| This measures the number of register auth operations which create lease entries without lease ID | Number of operations | Gauge |
`vault.policy.get_policy`| This measures the number of policy get operations | Number of operations | Counter |
`vault.policy.list_policies`| This measures the number of policy list operations | Number of operations | Counter |
`vault.policy.delete_policy`| This measures the number of policy delete operations | Number of operations | Counter |
`vault.policy.set_policy`| This measures the number of policy set operations | Number of operations | Gauge |
`vault.token.create`| This measures the number of token create operations | Number of operations | Gauge |
`vault.token.createAccessor`| This measures the number of Token ID identifier operations | Number of operations | Gauge |
`vault.token.lookup`| This measures the number of token lookups | Number of lookups | Counter |
`vault.token.revoke`| This measures the number of token revocation operations | Number of operations | Gauge |
`vault.token.revoke-tree`| This measures the number of revoke tree operations | Number of operations | Gauge |
`vault.token.store`| This measures the number of operations to store an updated token entry without writing to the secondary index | Number of operations | Gauge |
**[S]** Summary (Number of requests): Number of audit log requests
### vault.audit.log_response
**[S]** Summary (Number of responses): Number of audit log responses
### vault.audit.log_request_failure
**[C]** Counter (Number of failures): Number of audit log request failures
**NOTE**: This is a particularly important metric. Any non-zero value here indicates that there was a failure to make an audit log request to any of the configured audit log backends; **when Vault cannot log to any of the configured audit log backends it ceases all user operations**, and you should begin troubleshooting the audit log backends immediately if this metric continually increases.
### vault.audit.log_response_failure
**[C]** Counter (Number of failures): Number of audit log response failures
**NOTE**: This is a particularly important metric. Any non-zero value here indicates that there was a failure to receive a response to a request made to one of the configured audit log backends; **when Vault cannot log to any of the configured audit log backends it ceases all user operations**, and you should begin troubleshooting the audit log backends immediately if this metric continually increases.
### vault.barrier.delete
**[S]** Summary (Number of operations): Number of DELETE operations at the barrier
### vault.barrier.get
**[S]** Summary (Number of operations): Number of GET operations at the barrier
### vault.barrier.put
**[S]** Summary (Number of operations): Number of PUT operations at the barrier
### vault.barrier.list
**[S]** Summary (Number of operations): Number of LIST operations at the barrier
### vault.core.check_token
**[S]** Summary (Number of checks): Number of token checks handled by Vault core
### vault.core.fetch_acl_and_token
**[S]** Summary (Number of fetches): Number of ACL and corresponding token entry fetches handled by Vault core
### vault.core.handle_request
**[S]** Summary (Number of requests) Number of requests handled by Vault core
### vault.core.handle_login_request
**[S]** Summary (Number of requests): Number of login requests handled by Vault core
### vault.core.leadership_setup_failed
**[S]** Summary (Number of failures): Number of cluster leadership setup failures which have occurred in a highly available Vault cluster
This should be monitored and alerted on for overall cluster leadership status
### vault.core.leadership_lost
**[S]** Summary (Number of losses): Number of cluster leadership losses which have occurred in a highly available Vault cluster
This should be monitored and alerted on for overall cluster leadership status
### vault.core.post_unseal
**[G]** Gauge (Number of operations): Number of post-unseal operations handled by Vault core
### vault.core.pre_seal
**[G]** Gauge (Number of operations) Number of pre-seal operations
### vault.core.seal-with-request
**[G]** Gauge (Number of operations): Number of requested seal operations
### vault.core.seal
**[G]** Gauge (Number of operations): Number of seal operations
### vault.core.seal-internal
**[G]** Gauge (Number of operations): Number of internal seal operations
### vault.core.step_down
**[S]** Summary (Number of step downs): Number of cluster leadership step downs
This should be monitored and alerted on for overall cluster leadership status
### vault.core.unseal
**[S]** Summary (Number of operations): Number of unseal operations
### vault.runtime.alloc_bytes
**[G]** Gauge (Number of bytes): Number of bytes allocated by the Vault process.
This could burst from time to time, but should return to a steady state value.
### vault.runtime.free_count
**[G]** Gauge (Number of objects): Number of freed objects
### vault.runtime.heap_objects
**[G]** Gauge (Number of objects): Number of objects on the heap
This is a good general memory pressure indicator worth establishing a baseline and thresholds for alerting.
### vault.runtime.malloc_count
**[G]** Gauge (Number of objects): Cumulative count of allocated heap objects
### vault.runtime.num_goroutines
**[G]** Gauge (Number of goroutines): Number of goroutines
This serves as a general system load indicator worth establishing a baseline and thresholds for alerting.
### vault.runtime.sys_bytes
**[G]** Gauge (Number of bytes): Number of bytes allocated to Vault
This includes what is being used by Vault's heap and what has been reclaimed but not given back to the operating system.
### vault.runtime.total_gc_pause_ns
**[S]** Summary (Nanoseconds): The total garbage collector pause time since Vault was last started
### vault.runtime.total_gc_runs
**[G]** Gauge (Number of operations): Total number of garbage collection runs since Vault was last started