obdiag gather stack

2025-11-28 06:05:02  Updated

If OceanBase Diagnostic Tool (obdiag) is independently deployed, you can run this command to collect the stack information of the specified OceanBase cluster. This command is not supported for a cluster built in the ARM architecture.

If your OceanBase cluster is deployed by using OceanBase Deployer (obd), you can run obdiag commands on obd to collect diagnostic information of the cluster. For more information about the commands, see obdiag commands.

Syntax

obdiag gather stack [options]

The following table describes the options.

Option Required? Data type Default value Description
--store_dir No string The current path where the command is executed The local path where the results are stored.
-c No string ~/.obdiag/config.yml The path of the configuration file.
--inner_config No string Empty The configurations of obdiag.
--config No string Empty The configurations of the cluster diagnosed by obdiag, in the format of --config key1=value1 --config key2=value2.

Note

For information about the parameters supported by this option, see Configure obdiag.

Examples

Method 1: Use the command out-of-the-box without a configuration file

obdiag gather stack \
    --config obcluster.servers.nodes[0].ip=xx.xx.xx.1 \
    --config obcluster.servers.nodes[1].ip=xx.xx.xx.xx.2 \
    --config obcluster.servers.nodes[2].ip=xx.xx.xx.xx.3 \
    --config obcluster.servers.global.home_path=/home/admin/oceanbase

The output is as follows:

Summary:
+-------------------+-----------+---------+--------+---------------------------------------------------------------------------------+
| Node              | Status    | Size    | Time   | PackPath                                                                        |
+===================+===========+=========+========+=================================================================================+
| xxx.xxx.xxx.xxx   | Completed | 19.926K | 10 s   | obdiag_gather_pack_20220729163951/obstack2_xxx.xxx.xxx.xxx_20220729163951.zip   |
+-------------------+-----------+---------+--------+---------------------------------------------------------------------------------+
| xxx.xxx.xxx.xxx   | Completed | 22.803K | 12 s   | obdiag_gather_pack_20220729163951/obstack2_xxx.xxx.xxx.xxx_20220729163951.zip   |
+-------------------+-----------+---------+--------+---------------------------------------------------------------------------------+
  • Collect the stack information of nodes accessible to obdiag without a password.

    obdiag gather stack \
        --config obcluster.servers.nodes[0].ip=xx.xx.xx.1 \
        --config obcluster.servers.nodes[1].ip=xx.xx.xx.xx.2 \
        --config obcluster.servers.global.home_path=/home/admin/oceanbase
    
  • Collect the stack information of nodes with different SSH logon passwords.

    obdiag gather stack \
        --config obcluster.servers.nodes[0].ip=xx.xx.xx.1 \
        --config obcluster.servers.nodes[0].ssh_username=test1 \
        --config obcluster.servers.nodes[0].ssh_password=****** \
        --config obcluster.servers.nodes[0].home_path=/home/test2/oceanbase
        --config obcluster.servers.nodes[1].ip=xx.xx.xx.xx.2
        --config obcluster.servers.nodes[1].ssh_username=test2 \
        --config obcluster.servers.nodes[1].ssh_password=****** \
        --config obcluster.servers.nodes[1].home_path=/home/test2/oceanbase
    
  • Collect the stack information of all nodes in a cluster with the connection information of the sys tenant specified. In this case, obdiag automatically obtains the IP addresses of all nodes in the cluster.

    obdiag gather stack \
        --config db_host=xx.xx.xx.xx \
        --config db_port=xxxx \
        --config tenant_sys.user=root@sys \
        --config tenant_sys.password=*** \
        --config obcluster.servers.global.home_path=/home/admin/oceanbase
    

Method 2: Use the command with a configuration file

Before you run the command, make sure that you have configured the logon information of the target nodes in the config.yml configuration file of obdiag. For more information, see Configure obdiag.

obdiag gather stack

Results

  • The command generates a folder in the specified directory. A sample folder name is obdiag_gather_pack_20240808105846.

  • You can use OBStack to obtain stack information.

  • OBStack has the following features:

    • Small blocking window: The average blocking time of threads is less than 1 ms.

    • High efficiency: OBStack can return results containing complete line numbers within a few seconds.

    • Support for parsing the names of functions in dynamic libraries.

    • Support for stack aggregation.

    • Support for paths of binary and debuginfo files.

    • Support for fetching independent threads.

Contact Us