collect-kube
Description
Build a diagnostics report for the Kubernetes (kube) cluster.
Available collectors
Note that some collectors are excluded by default.
+------------------------------------------------+----------+--------+----------------------------------------------------------------------------------+ | ID | EXCLUDED | GLOBAL | DESCRIPTION | +------------------------------------------------+----------+--------+----------------------------------------------------------------------------------+ | analyzeTables | EXCLUDED | | Save column statistical information, and histograms recorded on each table, into | | | | | a JSON file | | cgroupInfo | EXCLUDED | | Collects cgroup information for each SingleStoreDB process | | chronydStatus | EXCLUDED | | Collects status of the `chronyd` service | | clusterTopology | | | Runs SHOW LEAVES, SHOW AGGREGATORS, and SHOW LEAF STATUS EXTENDED on the Master | | | | | Aggregator | | cpuFreqInfo | | | Collects information about CPU frequency configuration | | cpuMemoryBandwidth | | | Measures CPU-memory bandwidth | | cpuThreadingInfo | | | Collects information about CPUs threading configuration | | cpuUtilization | | | Records the output of `sar 1 10 -u` | | dataSkewness | EXCLUDED | | Collects information about data skew in the cluster | | df | | | Records the output of `df -h | | | | | --output=source,size,used,avail,pcent,ipcent,target` | | diskBandwidth | | | Measures disk read/write bandwidth | | diskLatency | | | Records the output of `iostat -xdm 1 10` | | dmesg | | | Records the output of `dmesg -T` | | ethtool | | | Collects information about each network interface on the host | | explainOrphanDatabases | | | Runs EXPLAIN CLEAR ORPHAN DATABASES on the Master Aggregator | | explainRebalancePartitions | | | Runs EXPLAIN REBALANCE PARTITIONS for each user database | | explainRestoreRedundancy | | | Runs EXPLAIN RESTORE REDUNDANCY for each user database | | failedHosts | | GLOBAL | List of hosts where a report could not be collected | | free | | | Records the output of `free -m` | | hosts | | | Collect information about cluster's hosts | | ifconfig | | | Records the output of `ifconfig` | | informationSchemaAvailabilityGroups | | | Collects information about availability groups from the information_schema on an | | | | | aggregator node | | informationSchemaColumnarSegments | EXCLUDED | | Collects columnstore debugging information from the information_schema on an | | | | | aggregator node | | informationSchemaDistributedDatabases | | | Collects distributed databases names on an aggregator node | | informationSchemaDistributedDatabasesOnSites | | | Collects information about database distribution across clusters | | informationSchemaIndexStatistics | | | Runs SELECT * FROM information_schema.INDEX_STATISTICS on an aggregator node | | informationSchemaInternalTableStatistics | EXCLUDED | | Runs SELECT * FROM information_schema.INTERNAL_TABLE_STATISTICS on an aggregator | | | | | node | | informationSchemaMvAggregatedReplicationStatus | EXCLUDED | | Collects replication status information on an aggregator node | | informationSchemaMvBackupHistory | | | Runs SELECT * FROM information_schema.MV_BACKUP_HISTORY on an aggregator node | | informationSchemaMvBlockedQueries | | | Runs SELECT * FROM information_schema.MV_BLOCKED_QUERIES on an aggregator node | | informationSchemaMvBottomless | | | Collects all of the MV_BOTTOMLESS tables from the information_schema on an | | | | | aggregator node | | informationSchemaMvEvents | | | Runs SELECT * FROM information_schema.MV_EVENTS on an aggregator node | | informationSchemaMvNodes | | | Runs SELECT * FROM information_schema.MV_NODES on an aggregator node | | informationSchemaMvQueries | | | Runs SELECT * FROM information_schema.MV_QUERIES on an aggregator node | | informationSchemaMvReplicationManagement | | | Collects all of the MV_REPLICATION_MANAGEMENT tables from the information_schema | | | | | on an aggregator node | | informationSchemaMvSysinfo | | | Collects all of the MV_SYSINFO tables from the information_schema on an | | | | | aggregator node | | informationSchemaPipelines | | | Collects pipeline debugging information from the information_schema on an | | | | | aggregator node | | informationSchemaProcesslist | | | Records the PROCESSLIST for each node | | informationSchemaRoutines | | | Collects all of the user-defined functions and stored procedures from the | | | | | information_schema on an aggregator node | | informationSchemaStatistics | | | Collects information_schema.statistics on each node | | informationSchemaTableStatistics | | | Runs SELECT * FROM information_schema.TABLE_STATISTICS on an aggregator node | | informationSchemaTables | | | Collects table metadata from each node | | informationSchemaUserPrivileges | | | Collects information_schema.USER_PRIVILEGES from each node | | installedPermissions | | | Collects information about file and directory permissions on a cluster | | ipAddr | | | Records the output of `ip addr` | | ipLink | | | Records the output of `ip link` | | ipRoute | | | Records the output of `ip route` | | licenseMetadata | | | Collects the output of `memsqlctl show-license` for each node | | lsblk | | | Records the output of `lsblk` | | lsblkRota | | | Records the output of `lsblk -d -o rota` | | majorPageFaults | | | Records the output of `sar 1 10 -B` | | memoryCommitted | | | Records the output of `sar 1 10 -r` | | memsqlAuditlogs | EXCLUDED | | Collects node audit logs from a host | | memsqlBacktraces | | | Collects backtrace information from each node | | memsqlCommandLogs | | | Collects the command logs from each node | | memsqlConfig | | | Collects the `memsql.cnf` file from each node | | memsqlNumaConfig | | | Collects the NUMA configuration files from each node | | memsqlPlancache | EXCLUDED | | Copies the plancache directory from each node | | memsqlStacks | | | Collects stack files from each node | | memsqlTracelogs | | | Collects the tracelogs from each node | | memsqlctlInfo | | | Collects information about memsqlctl from each node | | memsqldProcessLimits | | | Collects limits for all `memsqld` processes | | mount | | | Records the output of `mount` | | netstat | | | Records the output of `netstat -s` | | nodeDirectoriesDiskUsage | | | Collects disk usage information for each node directory | | nodeFilesDiskUsage | EXCLUDED | | Collects file-level disk usage information for each node directory | | nodes | | | Collects the output of `memsqlctl describe-node` from each node | | numactl | | | Records the output of `numactl --hardware` | | osRelease | | | Collects information from those files in /etc that describe the host operating | | | | | system | | partitionsStart | EXCLUDED | | Collects information about each partition's start sector number | | podLogs | | | Collects logs of Kube operator Pods (see memsqlTracelogs for logs of other Pods) | | proc | | | Collects diagnostic files from /proc | | procFs | | | Collects diagnostic files from /proc/fs | | processFiles | EXCLUDED | | Collects top-level of /proc/<pid> for each SingleStoreDB process | | ps | | | Records the output of `ps aux` | | psutil | | | Collects system and process information about the host | | rebootTime | | | Records the output of `last -x reboot` | | schema | | | Collects database schemas from each aggregator node | | securityLimits | | | Collects /etc/security/limits.conf | | showClusterStatus | | | Collects cluster status by running `SHOW CLUSTER STATUS` on an aggregator node | | showCronJobs | | | Collects information about Kube CronJobs | | showDatabaseStatus | | | Collects the database status for each database on each node | | showDatabasesExtended | | | Runs SHOW DATABASES EXTENDED on each node | | showDeployments | | | Collects information about Kube Deployments | | showMemsqlClusters | | | Collects information about Kube MemsqlClusters | | showPartitions | | | Collects database partition metadata from each aggregator node | | showPersistentVolumeClaims | | | Collects information about Kube PersistentVolumeClaims | | showPersistentVolumes | | | Collects information about Kube PersistentVolumes | | showPlancache | | | Runs SHOW PLANCACHE on each node | | showPods | | | Collects information about Kube Pods | | showRebalanceStatus | | | Collects rebalance status for each database on the Master Aggregator | | showReplicaSets | | | Collects information about Kube ReplicaSets | | showReplicationStatus | | | Runs SHOW REPLICATION STATUS on each node | | showResourcePools | | | Runs SHOW RESOURCE POOLS on each aggregator node | | showServices | | | Collects information about Kube Services | | showStatefulSets | | | Collects information about Kube StatefulSets | | showStatusExtended | | | Runs SHOW STATUS EXTENDED on each node | | showSvlAPITokenGroups | | | Collects information about Kube SvlAPITokenGroups | | showSvlClusters | | | Collects information about Kube SvlClusters | | showSvlDatabaseReplicas | | | Collects information about Kube SvlDatabaseReplicas | | showSvlDatabases | | | Collects information about Kube SvlDatabases | | showSvlSites | | | Collects information about Kube SvlSites | | showTableStatus | | | Collects table status for each database on each aggregator node | | showVariables | | | Runs SHOW VARIABLES LIKE '%' on each node | | showWorkloadManagementStatus | | | Runs SHOW WORKLOAD MANAGEMENT STATUS on each aggregator node | | shutdownTime | | | Records the output of `last -x shutdown` | | studioVersion | | GLOBAL | Records the output of `memsql-studio version --log /dev/null --state /dev/null` | | swapUsage | | | Records the output of `sar 1 10 -S` | | syncVariables | | | Runs query DUMP CLUSTER VARIABLES; on each node | | sysctl | | | Records the output of `sysctl -a` | | toolboxConfig | | GLOBAL | Collects Toolbox's configuration and version | | toolboxEnv | | GLOBAL | Collects global toolbox config information | | top | | | Records the output of `top -b -n 1` | | transparentHugepage | | | Collects files from /sys/kernel/mm/transparent_hugepage | | ulimit | | | Records the output of `sh -c ulimit -a` | | uptime | | | Records the output of `uptime` | +------------------------------------------------+----------+--------+----------------------------------------------------------------------------------+
Examples
Collect information on all of the available clusters from the current namespace.
sdb-report collect-kube
Collect information on all of the available clusters from the namespace ns
.
sdb-report collect-kube --namespace ns
Collect information on the cl
cluster in the namespace ns
.
sdb-report collect-kube --cluster-name cl --namespace ns
Collect information by specifying the kubeconfig
.
sdb-report collect-kube --config-file ~/dir/.kube/config
Collect information using the namespace of the context c
.
sdb-report collect-kube --context c
Collect information on SingleStoreDB Cloud v1 clusters only.
sdb-report collect-kube --version v1
Specify the container in which to run the report.
sdb-report collect-kube --container node
Usage
Usage: sdb-report collect-kube [flags] Flags: --cluster-name VALUES The specific cluster name(s) to discover, separated by commas. Leave blank for all clusters --config-file FILE_PATH The kube config filepath. Leave blank if the path is stored in the KUBECONFIG env variable or in the ~/.kube/config file (ADVANCED) --container string The name of the container in which to run the command. If not specified, the default container will be used (ADVANCED) --context string The specific kube context to switch to when a kubeconfig has multiple contexts (ADVANCED) --exclude VALUES Exclude the specified collectors --exclude-global Exclude global collectors from the report file collector -h, --help Help for collect-kube --host strings Specify host(s) to collect from (collects from all hosts by default) --include VALUES Include the specified collectors --include-performance Include collectors that create load on cluster (not recommended for active clusters) --mask-ip Mask usernames, hostnames, IP and MAC addresses in the report file collector --merge-path string The directory from which to merge reports (ADVANCED) --namespace VALUES The kube namespace(s) from which to collect reports, separated by commas. If missing, the default namespace will be used --only VALUES Only run the specified collectors --opt key=value Specify collector options (default informationSchemaPipelines.limitRows=None,informationSchemaStatistics.collectInformationSchemaStatisticsAllNodes=False,informationSchemaTables.collectInformationSchemaTablesAllNodes=False,memsqlAuditlogs.auditLogSize=10MB,memsqlAuditlogs.auditLogStartTimestamp=Not set,memsqlAuditlogs.compressAuditLog=False,memsqlCommandLogs.commandLogSize=10MB,memsqlCommandLogs.commandLogStartTimestamp=Not set,memsqlCommandLogs.compressCommandLog=False,memsqlTracelogs.compressTracelog=False,memsqlTracelogs.tracelogSize=10MB,memsqlTracelogs.tracelogStartTimestamp=Not set) -o, --output-path ABSOLUTE_PATH Write the report tarball to this file path --temp-dir ABSOLUTE_PATH The directory on the local and remote host(s) to store temporary files during collection (ADVANCED) --validate-env Run collectors that do not require SingleStoreDB installation (performance collectors included) --version {both, v1, v2} Either v1 or v2; if missing, both v1 and v2 clusters will be discovered (ADVANCED) (default both) Global Flags: --backup-cache FILE_PATH File path for the backup cache --cache-file FILE_PATH File path for the Toolbox node cache -c, --config FILE_PATH File path for the Toolbox configuration --disable-colors Disable color output in console, which some terminal sessions/environments may have difficulty with --disable-spinner Disable the progress spinner, which some terminal sessions/environments may have issues with -j, --json Enable JSON output --parallelism POSITIVE_INTEGER Maximum number of operations to run in parallel --runtime-dir DIRECTORY_PATH Where to store Toolbox runtime data --ssh-control-persist SECONDS Enable SSH ControlPersist and set it to the specified duration in seconds --ssh-max-sessions POSITIVE_INTEGER Maximum number of SSH sessions to open per host, must be at least 3 --ssh-strict-host-key-checking Enable strict host key checking for SSH connections --ssh-user-known-hosts-file FILE_PATH Path to the user known_hosts file for SSH connections. If not set, /dev/null will be used --state-file FILE_PATH Toolbox state file path -v, --verbosity count Increase logging verbosity: valid values are 1, 2, 3. Usage -v=count or --verbosity=count -y, --yes Enable non-interactive mode and assume the user would like to move forward with the proposed actions by default
Remarks
This command is interactive unless you use either --yes
or --json
flag to override interactive behavior.
Categorization of Collectors
The collectors used in reporting gather cluster information related to alerting, performance, and pre-installation environment validation. The following table maps collectors with the category of the information reported by them.
Category | Collectors |
---|---|
Alerting |
|
Performance |
|
Pre-installation Environment Validation |
In Kube clusters, the following additional collectors are used:
|
Note that some collectors do not fall under any of the three categories and are used to collect more general information about the cluster.