Skip to content

drpcli debug

drpcli debug

Gather runtime debug data of [type] from DRP and save it to [target]

Synopsis

Gather various types of runtime profiling and diagnostic data from a running dr-provision server via the /api/v3/debug or /api/v3/drp_debug endpoints.

Supported debug types:

  • profile - CPU utilization profile. Samples which functions consume CPU every 10 ms. Defaults to 30 seconds if --seconds is not specified.
  • trace - Execution trace including goroutine scheduling, syscalls, and GC events. Defaults to 1 second if --seconds is not specified.
  • heap - Memory profile of all live heap allocations. Always point-in-time.
  • heapdump - Full dump of all live objects. Use only when directed by support.
  • allocs - Memory profile of all allocations since program start, including freed memory. Always point-in-time.
  • block - Stack traces of goroutines blocked on synchronization primitives. Always point-in-time.
  • mutex - Stack traces of goroutines holding contended mutexes. Always point-in-time.
  • threadcreate - Stack traces of goroutines that created OS threads. Always point-in-time.
  • goroutine - Stack traces of all currently running goroutines. Always point-in-time.
  • index - Returns stack indexes with object flags via /api/v3/drp_debug. Use --prefix to limit results to a specific object type.
Text Only
drpcli debug [type] [target] [flags]

Examples

Text Only
  # Collect a 30-second CPU profile and save to profile.out
  drpcli debug profile profile.out

  # Collect a 10-second CPU profile
  drpcli debug profile profile.out --seconds 10

  # Collect a 1-second execution trace
  drpcli debug trace trace.out

  # Capture a heap memory snapshot
  drpcli debug heap heap.out

  # Capture all goroutine stack traces
  drpcli debug goroutine goroutines.out

  # Capture a mutex contention profile
  drpcli debug mutex mutex.out

  # Retrieve the debug index for a specific prefix
  drpcli debug index index.out --prefix machines

Options

Text Only
  -h, --help            help for debug
      --prefix string   Limits the index call to just this prefix type.
      --seconds int     How much debug data to gather, for types that gather data over time.

Options inherited from parent commands

Text Only
      --ca-cert string                     CA certificate used to verify the server certs (with the system set)
  -c, --catalog string                     The catalog file to use to get product information (default "https://repo.rackn.io")
      --catalog-path string                The path to where the catalog file exists on the drp server. By default and historically this has been /files/rebar-catalog. For example, if no catalog urls are provided, the complete path will be https://drp-ip:8090/files/rebar-catalog (default "/files/rebar-catalog")
  -S, --catalog-source string              A location from which catalog items can be downloaded. For example, in airgapped mode it would be the local catalog
      --client-cert string                 Client certificate to use for communicating to the server - replaces RS_KEY, RS_TOKEN, RS_USERNAME, RS_PASSWORD
      --client-key string                  Client key to use for communicating to the server - replaces RS_KEY, RS_TOKEN, RS_USERNAME, RS_PASSWORD
  -C, --colors string                      The colors for JSON and Table/Text colorization.  8 values in the for 0=val,val;1=val,val2... (default "0=32;1=33;2=36;3=90;4=34,1;5=35;6=95;7=32;8=92")
  -d, --debug                              Whether the CLI should run in debug mode
  -D, --download-proxy string              HTTP Proxy to use for downloading catalog and content
  -E, --endpoint string                    The Digital Rebar Provision API endpoint to talk to (default "https://127.0.0.1:8092")
  -X, --exit-early                         Cause drpcli to exit if a command results in an object that has errors
      --fetch-catalogs all                 Determines which catalog urls to use to fetch the catalog. If set to all, all the catalog urls defined with catalog_url and catalog_urls as well as the default catalog will be used. If set to server, only the catalog urls defined on the server will be used. If set to cli, then the specific url specified with the -c flag will be used. It defaults to `all`. Allowed values `all, `server`, `cli`. (default "all")
  -f, --force                              When needed, attempt to force the operation - used on some update/patch calls
      --force-new-session                  Should the client always create a new session
  -F, --format string                      The serialization we expect for output.  Can be "json" or "yaml" or "text" or "table" (default "json")
      --http-request-retry-count int       Specifies the number of retries for downloads in case of failure
      --http-request-retry-delay-max int   Specifies the maximum delay (in seconds) between HTTP/HTTPS retry attempts (default 60)
      --ignore-unix-proxy                  Should the client ignore unix proxies
  -N, --no-color                           Whether the CLI should output colorized strings
  -H, --no-header                          Should header be shown in "text" or "table" mode
  -x, --no-token                           Do not use token auth or token cache
  -P, --password string                    password of the Digital Rebar Provision user (default "r0cketsk8ts")
  -p, --platform string                    Platform to filter details by. Defaults to current system. Format: arch/os
  -J, --print-fields string                The fields of the object to display in "text" or "table" mode. Comma separated
  -r, --ref string                         A reference object for update commands that can be a file name, yaml, or json blob
      --server-verify                      Should the client verify the server cert
  -G, --show-global-help-flags             Show global flags in help message
  -T, --token string                       token of the Digital Rebar Provision access
  -t, --trace string                       The log level API requests should be logged at on the server side
  -Z, --trace-token string                 A token that individual traced requests should report in the server logs
  -j, --truncate-length int                Truncate columns at this length (default 40)
  -u, --url-proxy string                   URL Proxy for passing actions through another DRP
  -U, --username string                    Name of the Digital Rebar Provision user to talk to (default "rocketskates")

SEE ALSO

  • drpcli - A CLI application for interacting with the DigitalRebar Provision API
Auto generated by spf13/cobra on 18-Mar-2026