From 8d51034d5d8dd65438a5d16e7547493cbc9122ef Mon Sep 17 00:00:00 2001 From: Lang Martin Date: Mon, 20 Jul 2020 17:00:48 -0400 Subject: [PATCH 01/14] command/operator_debug: rename DebugCommand -> OperatorDebugCommand --- command/debug.go | 60 +++++++++++++++++++++---------------------- command/debug_test.go | 4 +-- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/command/debug.go b/command/debug.go index 36901af427e..0892e96974e 100644 --- a/command/debug.go +++ b/command/debug.go @@ -24,7 +24,7 @@ import ( "github.com/posener/complete" ) -type DebugCommand struct { +type OperatorDebugCommand struct { Meta timestamp string @@ -43,12 +43,12 @@ type DebugCommand struct { } const ( - userAgent = "nomad debug" + userAgent = "nomad operator debug" ) -func (c *DebugCommand) Help() string { +func (c *OperatorDebugCommand) Help() string { helpText := ` -Usage: nomad debug [options] +Usage: nomad operator debug [options] Build an archive containing Nomad cluster configuration and state, and Consul and Vault status. Include logs and pprof profiles for selected servers and client nodes. @@ -87,7 +87,7 @@ Debug Options: in the current directory. -consul-http-addr= - The address and port of the Consul HTTP agent. Can be specified by CONSUL_HTTP_ADDR + The address and port of the Consul HTTP agent. Overrides the CONSUL_HTTP_ADDR environment variable. -consul-token= Token used to query Consul. Overrides the CONSUL_HTTP_TOKEN environment @@ -140,11 +140,11 @@ Debug Options: return strings.TrimSpace(helpText) } -func (c *DebugCommand) Synopsis() string { +func (c *OperatorDebugCommand) Synopsis() string { return "Build a debug archive" } -func (c *DebugCommand) AutocompleteFlags() complete.Flags { +func (c *OperatorDebugCommand) AutocompleteFlags() complete.Flags { return mergeAutocompleteFlags(c.Meta.AutocompleteFlags(FlagSetClient), complete.Flags{ "-duration": complete.PredictAnything, @@ -158,13 +158,13 @@ func (c *DebugCommand) AutocompleteFlags() complete.Flags { }) } -func (c *DebugCommand) AutocompleteArgs() complete.Predictor { +func (c *OperatorDebugCommand) AutocompleteArgs() complete.Predictor { return complete.PredictNothing } -func (c *DebugCommand) Name() string { return "debug" } +func (c *OperatorDebugCommand) Name() string { return "debug" } -func (c *DebugCommand) Run(args []string) int { +func (c *OperatorDebugCommand) Run(args []string) int { flags := c.Meta.FlagSet(c.Name(), FlagSetClient) flags.Usage = func() { c.Ui.Output(c.Help()) } @@ -317,7 +317,7 @@ func (c *DebugCommand) Run(args []string) int { } // collect collects data from our endpoints and writes the archive bundle -func (c *DebugCommand) collect(client *api.Client) error { +func (c *OperatorDebugCommand) collect(client *api.Client) error { // Version contains cluster meta information dir := "version" err := c.mkdir(dir) @@ -371,19 +371,19 @@ func (c *DebugCommand) collect(client *api.Client) error { } // path returns platform specific paths in the tmp root directory -func (c *DebugCommand) path(paths ...string) string { +func (c *OperatorDebugCommand) path(paths ...string) string { ps := []string{c.collectDir} ps = append(ps, paths...) return filepath.Join(ps...) } // mkdir creates directories in the tmp root directory -func (c *DebugCommand) mkdir(paths ...string) error { +func (c *OperatorDebugCommand) mkdir(paths ...string) error { return os.MkdirAll(c.path(paths...), 0755) } // startMonitors starts go routines for each node and client -func (c *DebugCommand) startMonitors(client *api.Client) { +func (c *OperatorDebugCommand) startMonitors(client *api.Client) { for _, id := range c.nodeIDs { go c.startMonitor("client", "node_id", id, client) } @@ -396,7 +396,7 @@ func (c *DebugCommand) startMonitors(client *api.Client) { // startMonitor starts one monitor api request, writing to a file. It blocks and should be // called in a go routine. Errors are ignored, we want to build the archive even if a node // is unavailable -func (c *DebugCommand) startMonitor(path, idKey, nodeID string, client *api.Client) { +func (c *OperatorDebugCommand) startMonitor(path, idKey, nodeID string, client *api.Client) { c.mkdir(path, nodeID) fh, err := os.Create(c.path(path, nodeID, "monitor.log")) if err != nil { @@ -432,7 +432,7 @@ func (c *DebugCommand) startMonitor(path, idKey, nodeID string, client *api.Clie } // collectAgentHosts calls collectAgentHost for each selected node -func (c *DebugCommand) collectAgentHosts(client *api.Client) { +func (c *OperatorDebugCommand) collectAgentHosts(client *api.Client) { for _, n := range c.nodeIDs { c.collectAgentHost("client", n, client) } @@ -444,7 +444,7 @@ func (c *DebugCommand) collectAgentHosts(client *api.Client) { } // collectAgentHost gets the agent host data -func (c *DebugCommand) collectAgentHost(path, id string, client *api.Client) { +func (c *OperatorDebugCommand) collectAgentHost(path, id string, client *api.Client) { var host *api.HostDataResponse var err error if path == "server" { @@ -459,7 +459,7 @@ func (c *DebugCommand) collectAgentHost(path, id string, client *api.Client) { } // collectPprofs captures the /agent/pprof for each listed node -func (c *DebugCommand) collectPprofs(client *api.Client) { +func (c *OperatorDebugCommand) collectPprofs(client *api.Client) { for _, n := range c.nodeIDs { c.collectPprof("client", n, client) } @@ -471,7 +471,7 @@ func (c *DebugCommand) collectPprofs(client *api.Client) { } // collectPprof captures pprof data for the node -func (c *DebugCommand) collectPprof(path, id string, client *api.Client) { +func (c *OperatorDebugCommand) collectPprof(path, id string, client *api.Client) { opts := api.PprofOptions{Seconds: 1} if path == "server" { opts.ServerID = id @@ -503,7 +503,7 @@ func (c *DebugCommand) collectPprof(path, id string, client *api.Client) { // collectPeriodic runs for duration, capturing the cluster state every interval. It flushes and stops // the monitor requests -func (c *DebugCommand) collectPeriodic(client *api.Client) { +func (c *OperatorDebugCommand) collectPeriodic(client *api.Client) { // Not monitoring any logs, just capture the nomad context before exit if len(c.nodeIDs) == 0 && len(c.serverIDs) == 0 { dir := filepath.Join("nomad", "0000") @@ -539,7 +539,7 @@ func (c *DebugCommand) collectPeriodic(client *api.Client) { } // collectOperator captures some cluster meta information -func (c *DebugCommand) collectOperator(dir string, client *api.Client) { +func (c *OperatorDebugCommand) collectOperator(dir string, client *api.Client) { rc, err := client.Operator().RaftGetConfiguration(nil) c.writeJSON(dir, "operator-raft.json", rc, err) @@ -551,7 +551,7 @@ func (c *DebugCommand) collectOperator(dir string, client *api.Client) { } // collectNomad captures the nomad cluster state -func (c *DebugCommand) collectNomad(dir string, client *api.Client) error { +func (c *OperatorDebugCommand) collectNomad(dir string, client *api.Client) error { err := c.mkdir(dir) if err != nil { return err @@ -584,7 +584,7 @@ func (c *DebugCommand) collectNomad(dir string, client *api.Client) error { } // collectConsul calls the Consul API directly to collect data -func (c *DebugCommand) collectConsul(dir, consul string) error { +func (c *OperatorDebugCommand) collectConsul(dir, consul string) error { addr := c.consul.addr(consul) if addr == "" { return nil @@ -609,7 +609,7 @@ func (c *DebugCommand) collectConsul(dir, consul string) error { } // collectVault calls the Vault API directly to collect data -func (c *DebugCommand) collectVault(dir, vault string) error { +func (c *OperatorDebugCommand) collectVault(dir, vault string) error { addr := c.vault.addr(vault) if addr == "" { return nil @@ -628,7 +628,7 @@ func (c *DebugCommand) collectVault(dir, vault string) error { } // writeBytes writes a file to the archive, recording it in the manifest -func (c *DebugCommand) writeBytes(dir, file string, data []byte) error { +func (c *OperatorDebugCommand) writeBytes(dir, file string, data []byte) error { path := filepath.Join(dir, file) c.manifest = append(c.manifest, path) path = filepath.Join(c.collectDir, path) @@ -644,7 +644,7 @@ func (c *DebugCommand) writeBytes(dir, file string, data []byte) error { } // writeJSON writes JSON responses from the Nomad API calls to the archive -func (c *DebugCommand) writeJSON(dir, file string, data interface{}, err error) error { +func (c *OperatorDebugCommand) writeJSON(dir, file string, data interface{}, err error) error { if err != nil { return c.writeError(dir, file, err) } @@ -657,7 +657,7 @@ func (c *DebugCommand) writeJSON(dir, file string, data interface{}, err error) // writeError writes a JSON error object to capture errors in the debug bundle without // reporting -func (c *DebugCommand) writeError(dir, file string, err error) error { +func (c *OperatorDebugCommand) writeError(dir, file string, err error) error { bytes, err := json.Marshal(errorWrapper{Error: err.Error()}) if err != nil { return err @@ -670,7 +670,7 @@ type errorWrapper struct { } // writeBody is a helper that writes the body of an http.Response to the archive -func (c *DebugCommand) writeBody(dir, file string, resp *http.Response, err error) { +func (c *OperatorDebugCommand) writeBody(dir, file string, resp *http.Response, err error) { if err != nil { c.writeError(dir, file, err) return @@ -691,7 +691,7 @@ func (c *DebugCommand) writeBody(dir, file string, resp *http.Response, err erro } // writeManifest creates the index files -func (c *DebugCommand) writeManifest() error { +func (c *OperatorDebugCommand) writeManifest() error { // Write the JSON path := filepath.Join(c.collectDir, "index.json") jsonFh, err := os.Create(path) @@ -727,7 +727,7 @@ func (c *DebugCommand) writeManifest() error { } // trap captures signals, and closes stopCh -func (c *DebugCommand) trap() { +func (c *OperatorDebugCommand) trap() { sigCh := make(chan os.Signal, 1) signal.Notify(sigCh, syscall.SIGHUP, diff --git a/command/debug_test.go b/command/debug_test.go index 9f16564197c..3d18ab51d33 100644 --- a/command/debug_test.go +++ b/command/debug_test.go @@ -38,7 +38,7 @@ func TestDebugFails(t *testing.T) { defer srv.Shutdown() ui := new(cli.MockUi) - cmd := &DebugCommand{Meta: Meta{Ui: ui}} + cmd := &OperatorDebugCommand{Meta: Meta{Ui: ui}} // Fails incorrect args code := cmd.Run([]string{"some", "bad", "args"}) @@ -76,7 +76,7 @@ func TestDebugCapturedFiles(t *testing.T) { defer srv.Shutdown() ui := new(cli.MockUi) - cmd := &DebugCommand{Meta: Meta{Ui: ui}} + cmd := &OperatorDebugCommand{Meta: Meta{Ui: ui}} code := cmd.Run([]string{ "-address", url, From d0a78a2ae749a2d5a5c898de8c90e4cdb97adbde Mon Sep 17 00:00:00 2001 From: Lang Martin Date: Tue, 11 Aug 2020 13:48:29 -0400 Subject: [PATCH 02/14] command/debug: help text fix --- command/debug.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/command/debug.go b/command/debug.go index 0892e96974e..73e5c875018 100644 --- a/command/debug.go +++ b/command/debug.go @@ -59,7 +59,7 @@ General Options: Debug Options: - -duration= + -duration= The duration of the log monitor command. Defaults to 2m. -interval= From bce7eb5bc36012b0b7d3efbc21d17ba7e0ef1eab Mon Sep 17 00:00:00 2001 From: Lang Martin Date: Tue, 11 Aug 2020 13:51:15 -0400 Subject: [PATCH 03/14] renamed: command/debug.go -> command/operator_debug.go --- command/{debug.go => operator_debug.go} | 0 command/{debug_test.go => operator_debug_test.go} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename command/{debug.go => operator_debug.go} (100%) rename command/{debug_test.go => operator_debug_test.go} (100%) diff --git a/command/debug.go b/command/operator_debug.go similarity index 100% rename from command/debug.go rename to command/operator_debug.go diff --git a/command/debug_test.go b/command/operator_debug_test.go similarity index 100% rename from command/debug_test.go rename to command/operator_debug_test.go From 9645949599f0917682de667e92a1454c027d35d5 Mon Sep 17 00:00:00 2001 From: Lang Martin Date: Mon, 20 Jul 2020 16:45:43 -0400 Subject: [PATCH 04/14] command/commands: rename the DebugCommand -> OperatorDebugCommand --- command/commands.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/command/commands.go b/command/commands.go index dc0166bc883..ce859bba912 100644 --- a/command/commands.go +++ b/command/commands.go @@ -202,7 +202,7 @@ func Commands(metaPtr *Meta, agentUi cli.Ui) map[string]cli.CommandFactory { }, nil }, "debug": func() (cli.Command, error) { - return &DebugCommand{ + return &OperatorDebugCommand{ Meta: meta, }, nil }, @@ -484,6 +484,11 @@ func Commands(metaPtr *Meta, agentUi cli.Ui) map[string]cli.CommandFactory { Meta: meta, }, nil }, + "operator debug": func() (cli.Command, error) { + return &OperatorDebugCommand{ + Meta: meta, + }, nil + }, "operator keygen": func() (cli.Command, error) { return &OperatorKeygenCommand{ Meta: meta, From 8a630f7b4b3d0df53e3a94540d62dcc98ab98f47 Mon Sep 17 00:00:00 2001 From: Lang Martin Date: Mon, 20 Jul 2020 16:54:29 -0400 Subject: [PATCH 05/14] website: rename debug -> operator debug --- .../pages/docs/commands/{ => operator}/debug.mdx | 15 +++++++++++---- website/pages/docs/commands/operator/index.mdx | 2 ++ 2 files changed, 13 insertions(+), 4 deletions(-) rename website/pages/docs/commands/{ => operator}/debug.mdx (84%) diff --git a/website/pages/docs/commands/debug.mdx b/website/pages/docs/commands/operator/debug.mdx similarity index 84% rename from website/pages/docs/commands/debug.mdx rename to website/pages/docs/commands/operator/debug.mdx index 0aee6b64a75..378f87eb576 100644 --- a/website/pages/docs/commands/debug.mdx +++ b/website/pages/docs/commands/operator/debug.mdx @@ -3,7 +3,7 @@ layout: docs page_title: 'Commands: debug' sidebar_title: debug description: | - Build a debug archive. + Build an archive of debug data. --- # Command: debug @@ -18,7 +18,7 @@ cluster meta information. ## Usage ```plaintext -nomad debug [options] +nomad operator debug [options] ``` This command accepts comma separated `server-id` and `node-id` IDs for @@ -72,6 +72,13 @@ This command prints the name of the timestamped archive file produced. ## Examples ```shell-session -$ nomad debug -duration 20s -interval 5s -server-id leader -node-id 6e,dd -Created debug archive: nomad-debug-2020-06-10-145821Z.tar.gz +$ nomad operator debug -duration 20s -interval 5s -server-id leader -node-id 6e,dd +Starting debugger and capturing cluster data... + Interval: '5s' + Duration: '20s' + Capture interval 0000 + Capture interval 0005 + Capture interval 0010 + Capture interval 0015 +Created debug archive: nomad-debug-2020-07-20-205223Z.tar.gz ``` diff --git a/website/pages/docs/commands/operator/index.mdx b/website/pages/docs/commands/operator/index.mdx index 1705875dea9..42aa7cb179b 100644 --- a/website/pages/docs/commands/operator/index.mdx +++ b/website/pages/docs/commands/operator/index.mdx @@ -30,6 +30,8 @@ The following subcommands are available: - [`operator autopilot set-config`][set-config] - Modify the current Autopilot configuration + +- [`operator debug`][debug] - Build an archive of debug data - [`operator keygen`][keygen] - Generates a new encryption key From dd4c082a7c6a9c1ab7a052bb5c7e73fc0302129a Mon Sep 17 00:00:00 2001 From: Lang Martin Date: Mon, 20 Jul 2020 16:58:19 -0400 Subject: [PATCH 06/14] command/agent/agent_endpoint: name in comment --- command/agent/agent_endpoint.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/command/agent/agent_endpoint.go b/command/agent/agent_endpoint.go index 23c5be21559..5456553ef83 100644 --- a/command/agent/agent_endpoint.go +++ b/command/agent/agent_endpoint.go @@ -660,7 +660,7 @@ type healthResponseAgent struct { } // AgentHostRequest runs on servers and clients, and captures information about the host system to add -// to the nomad debug archive. +// to the nomad operator debug archive. func (s *HTTPServer) AgentHostRequest(resp http.ResponseWriter, req *http.Request) (interface{}, error) { if req.Method != http.MethodGet { return nil, CodedError(405, ErrInvalidMethod) From e7380d5bfb5a3f4c7c9742fdf0824045887fbb37 Mon Sep 17 00:00:00 2001 From: Lang Martin Date: Mon, 20 Jul 2020 16:58:51 -0400 Subject: [PATCH 07/14] website/pages/api-docs/agent: name in api docs --- website/pages/api-docs/agent.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/pages/api-docs/agent.mdx b/website/pages/api-docs/agent.mdx index e9208ab22b3..2daeb9a26e7 100644 --- a/website/pages/api-docs/agent.mdx +++ b/website/pages/api-docs/agent.mdx @@ -501,7 +501,7 @@ $ curl \ This endpoint returns data about the agent's host environment from the perspective of the agent. It is included in the archive produced by -nomad debug. Known sensitive environment variables are shown as +nomad operator debug. Known sensitive environment variables are shown as ``, but the response may still contain sensitive information. From 6768562eeb1dd9b9badfb2bb4b77fd1b5c1814b7 Mon Sep 17 00:00:00 2001 From: Lang Martin Date: Thu, 6 Aug 2020 17:44:55 -0400 Subject: [PATCH 08/14] website/pages/docs/commands/operator/debug: wall of consul/vault opts --- .../pages/docs/commands/operator/debug.mdx | 46 +++++++++++++++++-- 1 file changed, 41 insertions(+), 5 deletions(-) diff --git a/website/pages/docs/commands/operator/debug.mdx b/website/pages/docs/commands/operator/debug.mdx index 378f87eb576..f1ab7a95655 100644 --- a/website/pages/docs/commands/operator/debug.mdx +++ b/website/pages/docs/commands/operator/debug.mdx @@ -61,9 +61,45 @@ configured. directory. Defaults to the current directory. If specified, no archive is built. -- `-consul-token`: Token used to query Consul. Defaults to `CONSUL_TOKEN` +- `-consul-http-addr=`: The address and port of the Consul HTTP + agent. Overrides the `CONSUL_HTTP_ADDR` environment variable. -- `-vault-token`: Token used to query Vault. Defaults to `VAULT_TOKEN` +- `-consul-token=`: Token used to query Consul. Overrides the + `CONSUL_HTTP_TOKEN` environment variable and the Consul token + file. + +- `-consul-token-file=`: Path to the Consul token file. Overrides the `CONSUL_HTTP_TOKEN_FILE` + environment variable. + +- `-consul-client-cert=`: Path to the Consul client cert file. Overrides the `CONSUL_CLIENT_CERT` + environment variable. + +- `-consul-client-key=`: Path to the Consul client key file. Overrides the `CONSUL_CLIENT_KEY` + environment variable. + +- `-consul-ca-cert=`: Path to a CA file to use with Consul. Overrides the `CONSUL_CACERT` + environment variable and the Consul CA path. + +- `-consul-ca-path=`: Path to a directory of PEM encoded CA cert files to verify the Consul + certificate. Overrides the `CONSUL_CAPATH` environment variable. + +- `-vault-address=`: The address and port of the Vault HTTP agent. Overrides the `VAULT_ADDR` + environment variable. + +- `-vault-token=`: Token used to query Vault. Overrides the `VAULT_TOKEN` environment + variable. + +- `-vault-client-cert=`: Path to the Vault client cert file. Overrides the `VAULT_CLIENT_CERT` + environment variable. + +- `-vault-client-key=`: Path to the Vault client key file. Overrides the `VAULT_CLIENT_KEY` + environment variable. + +- `-vault-ca-cert=`: Path to a CA file to use with Vault. Overrides the `VAULT_CACERT` + environment variable and the Vault CA path. + +- `-vault-ca-path=`: Path to a directory of PEM encoded CA cert files to verify the Vault + certificate. Overrides the `VAULT_CAPATH` environment variable. ## Output @@ -77,8 +113,8 @@ Starting debugger and capturing cluster data... Interval: '5s' Duration: '20s' Capture interval 0000 - Capture interval 0005 - Capture interval 0010 - Capture interval 0015 + Capture interval 0001 + Capture interval 0002 + Capture interval 0003 Created debug archive: nomad-debug-2020-07-20-205223Z.tar.gz ``` From 0fd290056c2f66bfd62d8221316860d89917daae Mon Sep 17 00:00:00 2001 From: Lang Martin Date: Tue, 11 Aug 2020 14:59:18 -0400 Subject: [PATCH 09/14] website/data/docs-navigation: fix debug listing --- website/data/docs-navigation.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/data/docs-navigation.js b/website/data/docs-navigation.js index 1fd33342aec..637773f4961 100644 --- a/website/data/docs-navigation.js +++ b/website/data/docs-navigation.js @@ -84,7 +84,6 @@ export default [ category: 'alloc', content: ['exec', 'fs', 'logs', 'restart', 'signal', 'status', 'stop'] }, - 'debug', { category: 'deployment', content: ['fail', 'list', 'pause', 'promote', 'resume', 'status', 'unblock'] @@ -127,6 +126,7 @@ export default [ content: [ 'autopilot-get-config', 'autopilot-set-config', + 'debug', 'keygen', 'keyring', 'raft-list-peers', From 12c808b5ee243225888c767c934ee23194ab11e9 Mon Sep 17 00:00:00 2001 From: Lang Martin Date: Tue, 11 Aug 2020 15:01:30 -0400 Subject: [PATCH 10/14] main: hide top level debug command --- main.go | 1 + 1 file changed, 1 insertion(+) diff --git a/main.go b/main.go index a7cf7fb8975..cbc05e227ea 100644 --- a/main.go +++ b/main.go @@ -34,6 +34,7 @@ var ( "alloc-status", "check", "client-config", + "debug", "eval-status", "executor", "keygen", From dbac377376af9f73ea0c1e033935e4121dd0dfd3 Mon Sep 17 00:00:00 2001 From: Lang Martin Date: Tue, 11 Aug 2020 15:04:20 -0400 Subject: [PATCH 11/14] command/commands: comment on the top level alias --- command/commands.go | 1 + 1 file changed, 1 insertion(+) diff --git a/command/commands.go b/command/commands.go index ce859bba912..1d67fd3e1a1 100644 --- a/command/commands.go +++ b/command/commands.go @@ -201,6 +201,7 @@ func Commands(metaPtr *Meta, agentUi cli.Ui) map[string]cli.CommandFactory { Meta: meta, }, nil }, + // operator debug was released in 0.12 as debug. This top-level alias preserves compatibility "debug": func() (cli.Command, error) { return &OperatorDebugCommand{ Meta: meta, From ee27a0e17262d749a4598507affab6cec1bbe835 Mon Sep 17 00:00:00 2001 From: Lang Martin Date: Tue, 11 Aug 2020 15:07:20 -0400 Subject: [PATCH 12/14] Update website/pages/docs/commands/operator/debug.mdx Co-authored-by: Drew Bailey <2614075+drewbailey@users.noreply.github.com> --- website/pages/docs/commands/operator/debug.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/pages/docs/commands/operator/debug.mdx b/website/pages/docs/commands/operator/debug.mdx index f1ab7a95655..c1c2fdfbf3e 100644 --- a/website/pages/docs/commands/operator/debug.mdx +++ b/website/pages/docs/commands/operator/debug.mdx @@ -1,6 +1,6 @@ --- layout: docs -page_title: 'Commands: debug' +page_title: 'Commands: operator debug' sidebar_title: debug description: | Build an archive of debug data. From e5c063a95f751d82c225ccc9dc400adbfdaaf947 Mon Sep 17 00:00:00 2001 From: Lang Martin Date: Tue, 11 Aug 2020 15:11:15 -0400 Subject: [PATCH 13/14] Update website/pages/docs/commands/operator/debug.mdx Co-authored-by: Drew Bailey <2614075+drewbailey@users.noreply.github.com> --- website/pages/docs/commands/operator/debug.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/pages/docs/commands/operator/debug.mdx b/website/pages/docs/commands/operator/debug.mdx index c1c2fdfbf3e..3a4bf381dcc 100644 --- a/website/pages/docs/commands/operator/debug.mdx +++ b/website/pages/docs/commands/operator/debug.mdx @@ -8,7 +8,7 @@ description: | # Command: debug -The `debug` command builds an archive containing Nomad cluster +The `operator debug` command builds an archive containing Nomad cluster configuration and state information, Nomad server and client node logs, and pprof profiles from the selected servers and client nodes. From 0e8c2674dbf162a6ebec021c7b49726bfce85a7b Mon Sep 17 00:00:00 2001 From: Lang Martin Date: Tue, 11 Aug 2020 15:11:25 -0400 Subject: [PATCH 14/14] Update website/pages/docs/commands/operator/debug.mdx Co-authored-by: Drew Bailey <2614075+drewbailey@users.noreply.github.com> --- website/pages/docs/commands/operator/debug.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/pages/docs/commands/operator/debug.mdx b/website/pages/docs/commands/operator/debug.mdx index 3a4bf381dcc..05158f02fd0 100644 --- a/website/pages/docs/commands/operator/debug.mdx +++ b/website/pages/docs/commands/operator/debug.mdx @@ -6,7 +6,7 @@ description: | Build an archive of debug data. --- -# Command: debug +# Command: operator debug The `operator debug` command builds an archive containing Nomad cluster configuration and state information, Nomad server and client node