The following sections give a summary of each of the diagnostics tools. See the online help for detailed instructions on commands and qualifiers.
The kcollect command collects logs, error files, and configuration information for both the base system and the database. This information can help debug issues with the database operation.
kcollect [--release={release-name}] [--dir={directory-path}]
Additional qualifiers:
--context={context-name}
--namespace={namespace-name}
--no-cores
--no-zip
--password={password}
--username={user-name}
If there is only one database release running in the namespace, the release name defaults to that release.
Otherwise, you should specify the release name of the database cluster with the --release
qualifier.
Similarly, the output directory where the resulting collection is stored defaults to the /tmp
directory. If you are using an additional PVC, you can use the --dir
qualifier to redirect the
output.
The command for running the collect tool changed in version 1.2.0. See the online help for the helm voltadmin command on the diagnostics pod for information on running the collect function on earlier versions.
The meshmonitor command starts network monitoring on the database cluster, recording network performance between the cluster nodes. This tool is useful in diagnosing issues such as network delays and instability, mysterious timeouts and hangs, and scheduling problems that impact database performance.
meshmonitor [qualifier]... start
meshmonitor [qualifier]... stop
meshmonitor [qualifier]... collect
Qualifiers:
--dir={directory-path}
--release={release-name}
There are three commands available for mesh monitor. The start command starts monitoring on the
cluster nodes. The stop command stops monitoring, collects the results, and saves them as a compressed
file in the output directory (/tmp
by default). The collect command collects
current results and saves them without stopping the monitoring.
For a quick analysis of potential network issues, you can use the meshmonitor start and stop commands to start monitoring for an hour or so, then stop and collect the data. This is useful if you are seeing problems with database connectivity or latency and want to see if network performance may be the cause.
For extended monitoring, you can use the meshmonitor start command to initiate monitoring, then intermittently use the collect command to collect and review the results without interrupting further monitoring. When you are done, you can use the stop command to cancel monitoring and collect the final data.
Note that monitoring continues only as long as the database pod is running. If the pod or pods stop for any reason (for example a crash or a reboot), the monitoring will not automatically restart. You can use the meshmonitor start command to restart monitoring in this situation.
The meshmonitor command was introduced in version 1.5.0 of the diagnostic pod. The network monitoring code itself was added to the VoltDB server software in V14.2.0. So, for the time being, monitoring cannot be turned on for earlier versions of VoltDB and the meshmonitor command will report that the command is unsupported for the VoltDB version running on the cluster. However, the monitoring code will be included in all future releases of VoltDB and, in upcoming updates, it will be added to the earlier LTS versions as well.
The ksnapshot command takes a native database snapshot of the database's current contents,
collects the resulting files and saves them as a compressed file in the output directory (/tmp
by
default).
ksnapshot [--release={release-name}] [--outdir={directory-path}]
If there is only one database release running in the namespace, the release name defaults to that release.
Otherwise, you should specify the release name of the database cluster with the --release
qualifier.
Similarly, the output directory where the resulting collection is stored defaults to the /tmp
directory. If you are using an additional PVC, you can use the --outdir
qualifier to redirect the
output.
The ksnapshot command was introduced in version 1.3.0 of the diagnostics pod.
The ksqlcmd command lets you enter interactive SQL commands and execute stored procedures (including system procedures) on the database.
ksqlcmd [--release={release-name}]
The ksqlcmd command is identical to the sqlcmd command except with the
--release
qualifier in place of the --servers
and --port
qualifiers for specifying which database you want to connect to. By default, the command connects to the "default" release
listed in the welcome message when you connect to the diagnostics pod. The command also uses the TLS/SSL security
configuration specified for the diagnostics pod when connecting to the database, as described in Section A.1.2, “Using the Diagnostic Tools Securely with TLS/SSL”.