SG Collect Info
Using sgcollect to gather system information, diagnostics and metrics
This topic describes the command line utility, sgcollect, its use and the output it collates.
|
Constraints
Do not use the |
Introduction
The command line utility sgcollect_info provides detailed statistics for a specific Sync Gateway node.
This tool must be run on each node individually, not on all simultaneously.
sgcollect_info outputs the following statistics in a zip file:
-
Logs
-
Configuration
-
Expvars (exported variables) that contain important stats
-
System Level OS stats
-
Golang profile output (runtime memory and cpu profiling info)
CLI Command and Parameters
To see the CLI command line parameters, run:
./sgcollect_info --help
You can can use sgcollect to collect and save information locally and-or to collect and upload the information to Couchbase — see: Example 1.
-
Collect and Save Locally
-
Collect and Upload to Couchbase
./sgcollect_info /tmp/sgcollect_info.zip
Collect Sync Gateway diagnostics and upload them to Couchbase Support:
./sgcollect_info \
--sync-gateway-config=/path/to/config.json \
--sync-gateway-executable=/usr/bin/sync_gateway \
--upload-host=uploads.couchbase.com \
--customer=Acme \
--ticket=123 \
/tmp/sgcollect_info.zip
REST Endpoint
You can also run sgcollect_info from the Admin REST API using the _sgcollect_info endpoint.
Zipfile Contents
The tool creates the following log files in the ouput file.
| Log file | Description |
|---|---|
|
The http access log for sync gateway (i.e which GETs and PUTs it has received and from which IPs) |
|
The http access log for sg_accel (i.e which GETs and PUTs it has received and from which IPs) |
|
The error log (all logging sent to stderr by sg_accel) for the sg_accel process |
|
The error log (all logging sent to stderr by sync_gateway) for the sync_gateway process |
|
The output of http://localhost:4895 for the running sync gateway |
|
The output of http://localhost:4895/db_name for the running sync gateway |
|
The on-disk configuration file used by sync_gateway when it was launched |
|
The on-disk configuration file used by sg_accel when it was launched |
|
The configuration used by sync gateway as it is running (may not match the on-disk config as it can be changed on-the-fly) |
|
The config used by sync gateway for the database specified by db_name |
|
The expvars (global exposed variables - see https://www.mikeperham.com/2014/12/17/expvar-metrics-for-golang/ for the running sync gateway instance) |
|
The command line arguments passed to sgcollect_info for this particular output |
|
OS-level System Stats |
|
Exported Variables (expvars) from Sync Gateway which show runtime stats |
|
Goroutine pprof profile output |
|
Heap pprof profile output |
|
CPU profile pprof profile output |
|
System level logs like /var/log/dmesg on Linux |
|
The Sync Gateway binary executable |
|
The pprof output that collects directly via an http client rather than using go tool, in case Go is not installed |
File Concatenation
SGCollect Info has been updated to use the continuous logging feature introduced in 2.1, and collects the four leveled files (sg_error.log, sg_warn.log, sg_info.log and sg_debug.log).
These new log files are rotated and compressed by Sync Gateway, so sgcollect_info decompresses these rotated logs, and concatenates them back into a single file upon collection.
For example, if you have sg_debug.log, and sg_debug-2018-04-23T16-57-13.218.log.gz and then run sgcollect_info as normal, both of these files get put into a sg_debug.log file inside the zip output folder.
Log Redaction
SGCollect Info now supports log redaction post-processing.
In order to utilize this, Sync Gateway needs to be run with the logging.redaction_level property set to "partial".
Two new command line options have been added to sgcollect_info:
-
--log-redaction-level=REDACT_LEVEL: redaction level for the logs collected,noneandpartialsupported. Defaults tonone.When
--log-redaction-levelis set to partial, two zip files are produced, and tagged contents in the redacted one should be hashed in the same way ascbcollect_info:$ ./sgcollect_info --log-redaction-level=partial sgout.zip ... Zipfile built: sgout-redacted.zip Zipfile built: sgout.zip -
--log-redaction-salt=SALT_VALUE: salt used in the hashing of tagged data when enabling redaction. Defaults to a random uuid.