Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(cmd/debuginfo) add new metrics to be collected #7439

Merged
merged 12 commits into from
Mar 12, 2021

Conversation

OmarAyo
Copy link
Contributor

@OmarAyo OmarAyo commented Feb 17, 2021

  • This PR adds 5 new metrics (/jemalloc, /state, /health, /debug/vars, /metrics) to be collected when running the debuginfo
  • the flag -p has been changed to -m to reflect the change. This new flag will let you pick up one or multiple metrics/pprof to be collected:
-m, --metrics strings    List of metrics & profile to dump in the report. (default [jemalloc,state,health,vars,metrics,heap,cpu_profile,trace,goroutine,threadcreate,block,mutex])
  • default value of -s flag is now 30sec since it requires 30s to collect a cpu profile
  • when saving the metric/profile - it will log the metric/profile name and the path where it's saving to.
  • added new flag for time based profiles that are cpu and trace profiles:
-c, --cron_pprof strings   time-based pprof (default [cpu_profile,trace])

output of running the debuginfo command:

 dgraph debuginfo -s 30
I0305 21:01:44.730085   10587 run.go:126] using directory /tmp/dgraph-debuginfo041885197 for debug info dump.
I0305 21:01:44.730251   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/jemalloc
I0305 21:01:44.730261   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.731077   10587 debugging.go:51] saving jemalloc metric in /tmp/dgraph-debuginfo041885197/alpha_jemalloc.gz
I0305 21:01:44.731086   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/state
I0305 21:01:44.731092   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.731720   10587 debugging.go:51] saving state metric in /tmp/dgraph-debuginfo041885197/alpha_state.gz
I0305 21:01:44.731731   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/health
I0305 21:01:44.731736   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.732048   10587 debugging.go:51] saving health metric in /tmp/dgraph-debuginfo041885197/alpha_health.gz
I0305 21:01:44.732058   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/vars
I0305 21:01:44.732065   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.732557   10587 debugging.go:51] saving vars metric in /tmp/dgraph-debuginfo041885197/alpha_vars.gz
I0305 21:01:44.732568   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/metrics
I0305 21:01:44.732573   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.734904   10587 debugging.go:51] saving metrics metric in /tmp/dgraph-debuginfo041885197/alpha_metrics.gz
I0305 21:01:44.734912   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/heap
I0305 21:01:44.734917   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.738036   10587 debugging.go:51] saving heap metric in /tmp/dgraph-debuginfo041885197/alpha_heap.gz
I0305 21:01:44.738048   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/goroutine?debug=2
I0305 21:01:44.738057   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.739136   10587 debugging.go:51] saving goroutine metric in /tmp/dgraph-debuginfo041885197/alpha_goroutine.gz
I0305 21:01:44.739145   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/threadcreate
I0305 21:01:44.739151   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.740182   10587 debugging.go:51] saving threadcreate metric in /tmp/dgraph-debuginfo041885197/alpha_threadcreate.gz
I0305 21:01:44.740192   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/block
I0305 21:01:44.740198   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.741154   10587 debugging.go:51] saving block metric in /tmp/dgraph-debuginfo041885197/alpha_block.gz
I0305 21:01:44.741163   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/mutex
I0305 21:01:44.741169   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.742330   10587 debugging.go:51] saving mutex metric in /tmp/dgraph-debuginfo041885197/alpha_mutex.gz
I0305 21:01:44.742341   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/profile?seconds=30s
I0305 21:01:44.742348   10587 debugging.go:76] please wait... (30s)
I0305 21:02:14.812492   10587 debugging.go:63] saving cpu_profile metric in /tmp/dgraph-debuginfo041885197/alpha_cpu_profile.gz
I0305 21:02:14.812570   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/trace?seconds=30s
I0305 21:02:14.812596   10587 debugging.go:76] please wait... (30s)
I0305 21:02:15.816449   10587 debugging.go:63] saving trace metric in /tmp/dgraph-debuginfo041885197/alpha_trace.gz
I0305 21:02:15.842375   10587 run.go:159] Debuginfo archive successful: dgraph-debuginfo041885197.tar.gz


This change is Reviewable

2. renamed the func saveProfile --> saveDebug
3. renamed the file pprof.go --> debugging.go to reflect that we are not collecting only pprof profiles
4. added flag for selecting above newly added metrics
Copy link
Contributor

@danielmai danielmai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewable status: 0 of 2 files reviewed, 1 unresolved discussion (waiting on @manishrjain, @OmarAyo, and @vvbalaji-dgraph)


dgraph/cmd/debuginfo/debugging.go, line 42 at r1 (raw file):

}

var metricTypes = []string{

This can be a struct for the metric types. It can have a name and its endpoint. Something like

type debugMetric struct {
	name     string
	endpoint string
}

var metricTypes = []debugMetric{
	{
		name:     "jemalloc",
		endpoint: "/jemalloc",
	},
	{
		name:     "state",
		endpoint: "/state",
	},
	{
		name:     "health",
		endpoint: "/health",
	},
	{
		name:     "vars",
		endpoint: "/debug/vars",
	},
	{
		name:     "metrics",
		endpoint: "/metrics",
	},
}

Then the name and endpoint can be used separately.

…nc to for saveMetircs

- made the -s flag = 30sec as that's the min required by profile
- now when saving the metric/profile this will be printed as message
@OmarAyo OmarAyo requested a review from danielmai February 25, 2021 16:17
@OmarAyo
Copy link
Contributor Author

OmarAyo commented Feb 25, 2021


dgraph/cmd/debuginfo/debugging.go, line 42 at r1 (raw file):

Previously, danielmai (Daniel Mai) wrote…

This can be a struct for the metric types. It can have a name and its endpoint. Something like

type debugMetric struct {
	name     string
	endpoint string
}

var metricTypes = []debugMetric{
	{
		name:     "jemalloc",
		endpoint: "/jemalloc",
	},
	{
		name:     "state",
		endpoint: "/state",
	},
	{
		name:     "health",
		endpoint: "/health",
	},
	{
		name:     "vars",
		endpoint: "/debug/vars",
	},
	{
		name:     "metrics",
		endpoint: "/metrics",
	},
}

Then the name and endpoint can be used separately.

Addressed this by using a map instead

Copy link
Contributor

@danielmai danielmai left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 1 of 2 files at r2.
Reviewable status: 1 of 2 files reviewed, 5 unresolved discussions (waiting on @danielmai, @manishrjain, @OmarAyo, and @vvbalaji-dgraph)


dgraph/cmd/debuginfo/run.go, line 55 at r2 (raw file):

	"cpu_profile":  "/debug/pprof/profile",
	"trace":        "/debug/pprof/trace",
	"goroutine":    "/debug/pprof/goroutine",

This should be /debug/pprof/goroutine?debug=2 for the right goroutine stack format: https://dgraph.io/docs/howto/retrieving-debug-information/#goroutine-stack


dgraph/cmd/debuginfo/debugging.go, line 55 at r2 (raw file):

the debug

the debug info


dgraph/cmd/debuginfo/debugging.go, line 75 at r2 (raw file):

dump file

debug file


dgraph/cmd/debuginfo/pprof.go, line 53 at r2 (raw file):

	for _, profileType := range profiles {
		source := fmt.Sprintf("%s/debug/pprof/%s?duration=%d", u.String(),

Are we still setting ?duration in the new one?

@OmarAyo
Copy link
Contributor Author

OmarAyo commented Mar 5, 2021


dgraph/cmd/debuginfo/debugging.go, line 42 at r1 (raw file):

Previously, OmarAyo (OmarAyo) wrote…

Addressed this by using a map instead

Done.

@OmarAyo
Copy link
Contributor Author

OmarAyo commented Mar 5, 2021


dgraph/cmd/debuginfo/pprof.go, line 53 at r2 (raw file):

Previously, danielmai (Daniel Mai) wrote…

Are we still setting ?duration in the new one?

Done.

@OmarAyo
Copy link
Contributor Author

OmarAyo commented Mar 5, 2021


dgraph/cmd/debuginfo/debugging.go, line 55 at r2 (raw file):

Previously, danielmai (Daniel Mai) wrote…
the debug

the debug info

Done.

@OmarAyo
Copy link
Contributor Author

OmarAyo commented Mar 5, 2021


dgraph/cmd/debuginfo/debugging.go, line 75 at r2 (raw file):

Previously, danielmai (Daniel Mai) wrote…
dump file

debug file

Done.

@OmarAyo OmarAyo requested a review from danielmai March 5, 2021 21:09
OmarAyo added a commit to dgraph-io/dgraph-docs that referenced this pull request Mar 11, 2021
@OmarAyo
Copy link
Contributor Author

OmarAyo commented Mar 12, 2021


dgraph/cmd/debuginfo/run.go, line 55 at r2 (raw file):

Previously, danielmai (Daniel Mai) wrote…

This should be /debug/pprof/goroutine?debug=2 for the right goroutine stack format: https://dgraph.io/docs/howto/retrieving-debug-information/#goroutine-stack

Done.

Copy link
Contributor Author

@OmarAyo OmarAyo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed 1 of 2 files at r4, 1 of 1 files at r5.
Reviewable status: all files reviewed, 5 unresolved discussions (waiting on @danielmai, @manishrjain, and @vvbalaji-dgraph)

@OmarAyo OmarAyo merged commit 79ada0e into master Mar 12, 2021
OmarAyo added a commit that referenced this pull request Mar 12, 2021
- This PR adds 5 new metrics (/jemalloc, /state, /health, /debug/vars, /metrics) to be collected when running  the `debuginfo` 
- the flag `-p` has been changed to `-m` to reflect the change. This new flag will let you pick up one or multiple metrics/pprof to be collected:
```
-m, --metrics strings    List of metrics & profile to dump in the report. (default [jemalloc,state,health,vars,metrics,heap,cpu_profile,trace,goroutine,threadcreate,block,mutex])
```
- default value of `-s` flag is now 30sec since it requires 30s to collect a cpu profile
- when saving the metric/profile - it will log the metric/profile name and the path where it's saving to.
- added new flag for time based profiles that are cpu and trace profiles:
```
-c, --cron_pprof strings   time-based pprof (default [cpu_profile,trace])
```

output of running the `debuginfo` command:
```
 dgraph debuginfo -s 30
I0305 21:01:44.730085   10587 run.go:126] using directory /tmp/dgraph-debuginfo041885197 for debug info dump.
I0305 21:01:44.730251   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/jemalloc
I0305 21:01:44.730261   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.731077   10587 debugging.go:51] saving jemalloc metric in /tmp/dgraph-debuginfo041885197/alpha_jemalloc.gz
I0305 21:01:44.731086   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/state
I0305 21:01:44.731092   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.731720   10587 debugging.go:51] saving state metric in /tmp/dgraph-debuginfo041885197/alpha_state.gz
I0305 21:01:44.731731   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/health
I0305 21:01:44.731736   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.732048   10587 debugging.go:51] saving health metric in /tmp/dgraph-debuginfo041885197/alpha_health.gz
I0305 21:01:44.732058   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/vars
I0305 21:01:44.732065   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.732557   10587 debugging.go:51] saving vars metric in /tmp/dgraph-debuginfo041885197/alpha_vars.gz
I0305 21:01:44.732568   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/metrics
I0305 21:01:44.732573   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.734904   10587 debugging.go:51] saving metrics metric in /tmp/dgraph-debuginfo041885197/alpha_metrics.gz
I0305 21:01:44.734912   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/heap
I0305 21:01:44.734917   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.738036   10587 debugging.go:51] saving heap metric in /tmp/dgraph-debuginfo041885197/alpha_heap.gz
I0305 21:01:44.738048   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/goroutine?debug=2
I0305 21:01:44.738057   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.739136   10587 debugging.go:51] saving goroutine metric in /tmp/dgraph-debuginfo041885197/alpha_goroutine.gz
I0305 21:01:44.739145   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/threadcreate
I0305 21:01:44.739151   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.740182   10587 debugging.go:51] saving threadcreate metric in /tmp/dgraph-debuginfo041885197/alpha_threadcreate.gz
I0305 21:01:44.740192   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/block
I0305 21:01:44.740198   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.741154   10587 debugging.go:51] saving block metric in /tmp/dgraph-debuginfo041885197/alpha_block.gz
I0305 21:01:44.741163   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/mutex
I0305 21:01:44.741169   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.742330   10587 debugging.go:51] saving mutex metric in /tmp/dgraph-debuginfo041885197/alpha_mutex.gz
I0305 21:01:44.742341   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/profile?seconds=30s
I0305 21:01:44.742348   10587 debugging.go:76] please wait... (30s)
I0305 21:02:14.812492   10587 debugging.go:63] saving cpu_profile metric in /tmp/dgraph-debuginfo041885197/alpha_cpu_profile.gz
I0305 21:02:14.812570   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/trace?seconds=30s
I0305 21:02:14.812596   10587 debugging.go:76] please wait... (30s)
I0305 21:02:15.816449   10587 debugging.go:63] saving trace metric in /tmp/dgraph-debuginfo041885197/alpha_trace.gz
I0305 21:02:15.842375   10587 run.go:159] Debuginfo archive successful: dgraph-debuginfo041885197.tar.gz

```

(cherry picked from commit 79ada0e)
OmarAyo added a commit to dgraph-io/dgraph-docs that referenced this pull request Mar 12, 2021
1. Updated the docs to reflect the implementation that will be introduced by hypermodeinc/dgraph#7439
2. minor fixes
OmarAyo added a commit to dgraph-io/dgraph-docs that referenced this pull request Mar 12, 2021
1. Updated the docs to reflect the implementation that will be introduced by hypermodeinc/dgraph#7439
2. minor fixes 

(cherry picked from commit 3d9d22f)
OmarAyo added a commit that referenced this pull request Mar 12, 2021
- This PR adds 5 new metrics (/jemalloc, /state, /health, /debug/vars, /metrics) to be collected when running  the `debuginfo` 
- the flag `-p` has been changed to `-m` to reflect the change. This new flag will let you pick up one or multiple metrics/pprof to be collected:
```
-m, --metrics strings    List of metrics & profile to dump in the report. (default [jemalloc,state,health,vars,metrics,heap,cpu_profile,trace,goroutine,threadcreate,block,mutex])
```
- default value of `-s` flag is now 30sec since it requires 30s to collect a cpu profile
- when saving the metric/profile - it will log the metric/profile name and the path where it's saving to.
- added new flag for time based profiles that are cpu and trace profiles:
```
-c, --cron_pprof strings   time-based pprof (default [cpu_profile,trace])
```

output of running the `debuginfo` command:
```
 dgraph debuginfo -s 30
I0305 21:01:44.730085   10587 run.go:126] using directory /tmp/dgraph-debuginfo041885197 for debug info dump.
I0305 21:01:44.730251   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/jemalloc
I0305 21:01:44.730261   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.731077   10587 debugging.go:51] saving jemalloc metric in /tmp/dgraph-debuginfo041885197/alpha_jemalloc.gz
I0305 21:01:44.731086   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/state
I0305 21:01:44.731092   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.731720   10587 debugging.go:51] saving state metric in /tmp/dgraph-debuginfo041885197/alpha_state.gz
I0305 21:01:44.731731   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/health
I0305 21:01:44.731736   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.732048   10587 debugging.go:51] saving health metric in /tmp/dgraph-debuginfo041885197/alpha_health.gz
I0305 21:01:44.732058   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/vars
I0305 21:01:44.732065   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.732557   10587 debugging.go:51] saving vars metric in /tmp/dgraph-debuginfo041885197/alpha_vars.gz
I0305 21:01:44.732568   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/metrics
I0305 21:01:44.732573   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.734904   10587 debugging.go:51] saving metrics metric in /tmp/dgraph-debuginfo041885197/alpha_metrics.gz
I0305 21:01:44.734912   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/heap
I0305 21:01:44.734917   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.738036   10587 debugging.go:51] saving heap metric in /tmp/dgraph-debuginfo041885197/alpha_heap.gz
I0305 21:01:44.738048   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/goroutine?debug=2
I0305 21:01:44.738057   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.739136   10587 debugging.go:51] saving goroutine metric in /tmp/dgraph-debuginfo041885197/alpha_goroutine.gz
I0305 21:01:44.739145   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/threadcreate
I0305 21:01:44.739151   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.740182   10587 debugging.go:51] saving threadcreate metric in /tmp/dgraph-debuginfo041885197/alpha_threadcreate.gz
I0305 21:01:44.740192   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/block
I0305 21:01:44.740198   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.741154   10587 debugging.go:51] saving block metric in /tmp/dgraph-debuginfo041885197/alpha_block.gz
I0305 21:01:44.741163   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/mutex
I0305 21:01:44.741169   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.742330   10587 debugging.go:51] saving mutex metric in /tmp/dgraph-debuginfo041885197/alpha_mutex.gz
I0305 21:01:44.742341   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/profile?seconds=30s
I0305 21:01:44.742348   10587 debugging.go:76] please wait... (30s)
I0305 21:02:14.812492   10587 debugging.go:63] saving cpu_profile metric in /tmp/dgraph-debuginfo041885197/alpha_cpu_profile.gz
I0305 21:02:14.812570   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/trace?seconds=30s
I0305 21:02:14.812596   10587 debugging.go:76] please wait... (30s)
I0305 21:02:15.816449   10587 debugging.go:63] saving trace metric in /tmp/dgraph-debuginfo041885197/alpha_trace.gz
I0305 21:02:15.842375   10587 run.go:159] Debuginfo archive successful: dgraph-debuginfo041885197.tar.gz

```

(cherry picked from commit 79ada0e)
aaroncarey pushed a commit to dgraph-io/dgraph-docs that referenced this pull request Mar 12, 2021
1. Updated the docs to reflect the implementation that will be introduced by hypermodeinc/dgraph#7439
2. minor fixes 

(cherry picked from commit 3d9d22f)
OmarAyo added a commit that referenced this pull request Mar 16, 2021
- This PR adds 5 new metrics (/jemalloc, /state, /health, /debug/vars, /metrics) to be collected when running  the `debuginfo` 
- the flag `-p` has been changed to `-m` to reflect the change. This new flag will let you pick up one or multiple metrics/pprof to be collected:
```
-m, --metrics strings    List of metrics & profile to dump in the report. (default [jemalloc,state,health,vars,metrics,heap,cpu_profile,trace,goroutine,threadcreate,block,mutex])
```
- default value of `-s` flag is now 30sec since it requires 30s to collect a cpu profile
- when saving the metric/profile - it will log the metric/profile name and the path where it's saving to.
- added new flag for time based profiles that are cpu and trace profiles:
```
-c, --cron_pprof strings   time-based pprof (default [cpu_profile,trace])
```

output of running the `debuginfo` command:
```
 dgraph debuginfo -s 30
I0305 21:01:44.730085   10587 run.go:126] using directory /tmp/dgraph-debuginfo041885197 for debug info dump.
I0305 21:01:44.730251   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/jemalloc
I0305 21:01:44.730261   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.731077   10587 debugging.go:51] saving jemalloc metric in /tmp/dgraph-debuginfo041885197/alpha_jemalloc.gz
I0305 21:01:44.731086   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/state
I0305 21:01:44.731092   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.731720   10587 debugging.go:51] saving state metric in /tmp/dgraph-debuginfo041885197/alpha_state.gz
I0305 21:01:44.731731   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/health
I0305 21:01:44.731736   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.732048   10587 debugging.go:51] saving health metric in /tmp/dgraph-debuginfo041885197/alpha_health.gz
I0305 21:01:44.732058   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/vars
I0305 21:01:44.732065   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.732557   10587 debugging.go:51] saving vars metric in /tmp/dgraph-debuginfo041885197/alpha_vars.gz
I0305 21:01:44.732568   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/metrics
I0305 21:01:44.732573   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.734904   10587 debugging.go:51] saving metrics metric in /tmp/dgraph-debuginfo041885197/alpha_metrics.gz
I0305 21:01:44.734912   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/heap
I0305 21:01:44.734917   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.738036   10587 debugging.go:51] saving heap metric in /tmp/dgraph-debuginfo041885197/alpha_heap.gz
I0305 21:01:44.738048   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/goroutine?debug=2
I0305 21:01:44.738057   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.739136   10587 debugging.go:51] saving goroutine metric in /tmp/dgraph-debuginfo041885197/alpha_goroutine.gz
I0305 21:01:44.739145   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/threadcreate
I0305 21:01:44.739151   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.740182   10587 debugging.go:51] saving threadcreate metric in /tmp/dgraph-debuginfo041885197/alpha_threadcreate.gz
I0305 21:01:44.740192   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/block
I0305 21:01:44.740198   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.741154   10587 debugging.go:51] saving block metric in /tmp/dgraph-debuginfo041885197/alpha_block.gz
I0305 21:01:44.741163   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/mutex
I0305 21:01:44.741169   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.742330   10587 debugging.go:51] saving mutex metric in /tmp/dgraph-debuginfo041885197/alpha_mutex.gz
I0305 21:01:44.742341   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/profile?seconds=30s
I0305 21:01:44.742348   10587 debugging.go:76] please wait... (30s)
I0305 21:02:14.812492   10587 debugging.go:63] saving cpu_profile metric in /tmp/dgraph-debuginfo041885197/alpha_cpu_profile.gz
I0305 21:02:14.812570   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/trace?seconds=30s
I0305 21:02:14.812596   10587 debugging.go:76] please wait... (30s)
I0305 21:02:15.816449   10587 debugging.go:63] saving trace metric in /tmp/dgraph-debuginfo041885197/alpha_trace.gz
I0305 21:02:15.842375   10587 run.go:159] Debuginfo archive successful: dgraph-debuginfo041885197.tar.gz

```

(cherry picked from commit 79ada0e)
OmarAyo added a commit that referenced this pull request Mar 16, 2021
- This PR adds 5 new metrics (/jemalloc, /state, /health, /debug/vars, /metrics) to be collected when running  the `debuginfo` 
- the flag `-p` has been changed to `-m` to reflect the change. This new flag will let you pick up one or multiple metrics/pprof to be collected:
```
-m, --metrics strings    List of metrics & profile to dump in the report. (default [jemalloc,state,health,vars,metrics,heap,cpu_profile,trace,goroutine,threadcreate,block,mutex])
```
- default value of `-s` flag is now 30sec since it requires 30s to collect a cpu profile
- when saving the metric/profile - it will log the metric/profile name and the path where it's saving to.
- added new flag for time based profiles that are cpu and trace profiles:
```
-c, --cron_pprof strings   time-based pprof (default [cpu_profile,trace])
```

output of running the `debuginfo` command:
```
 dgraph debuginfo -s 30
I0305 21:01:44.730085   10587 run.go:126] using directory /tmp/dgraph-debuginfo041885197 for debug info dump.
I0305 21:01:44.730251   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/jemalloc
I0305 21:01:44.730261   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.731077   10587 debugging.go:51] saving jemalloc metric in /tmp/dgraph-debuginfo041885197/alpha_jemalloc.gz
I0305 21:01:44.731086   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/state
I0305 21:01:44.731092   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.731720   10587 debugging.go:51] saving state metric in /tmp/dgraph-debuginfo041885197/alpha_state.gz
I0305 21:01:44.731731   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/health
I0305 21:01:44.731736   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.732048   10587 debugging.go:51] saving health metric in /tmp/dgraph-debuginfo041885197/alpha_health.gz
I0305 21:01:44.732058   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/vars
I0305 21:01:44.732065   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.732557   10587 debugging.go:51] saving vars metric in /tmp/dgraph-debuginfo041885197/alpha_vars.gz
I0305 21:01:44.732568   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/metrics
I0305 21:01:44.732573   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.734904   10587 debugging.go:51] saving metrics metric in /tmp/dgraph-debuginfo041885197/alpha_metrics.gz
I0305 21:01:44.734912   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/heap
I0305 21:01:44.734917   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.738036   10587 debugging.go:51] saving heap metric in /tmp/dgraph-debuginfo041885197/alpha_heap.gz
I0305 21:01:44.738048   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/goroutine?debug=2
I0305 21:01:44.738057   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.739136   10587 debugging.go:51] saving goroutine metric in /tmp/dgraph-debuginfo041885197/alpha_goroutine.gz
I0305 21:01:44.739145   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/threadcreate
I0305 21:01:44.739151   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.740182   10587 debugging.go:51] saving threadcreate metric in /tmp/dgraph-debuginfo041885197/alpha_threadcreate.gz
I0305 21:01:44.740192   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/block
I0305 21:01:44.740198   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.741154   10587 debugging.go:51] saving block metric in /tmp/dgraph-debuginfo041885197/alpha_block.gz
I0305 21:01:44.741163   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/mutex
I0305 21:01:44.741169   10587 debugging.go:76] please wait... (30s)
I0305 21:01:44.742330   10587 debugging.go:51] saving mutex metric in /tmp/dgraph-debuginfo041885197/alpha_mutex.gz
I0305 21:01:44.742341   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/profile?seconds=30s
I0305 21:01:44.742348   10587 debugging.go:76] please wait... (30s)
I0305 21:02:14.812492   10587 debugging.go:63] saving cpu_profile metric in /tmp/dgraph-debuginfo041885197/alpha_cpu_profile.gz
I0305 21:02:14.812570   10587 debugging.go:74] fetching information over HTTP from http://localhost:8080/debug/pprof/trace?seconds=30s
I0305 21:02:14.812596   10587 debugging.go:76] please wait... (30s)
I0305 21:02:15.816449   10587 debugging.go:63] saving trace metric in /tmp/dgraph-debuginfo041885197/alpha_trace.gz
I0305 21:02:15.842375   10587 run.go:159] Debuginfo archive successful: dgraph-debuginfo041885197.tar.gz

```

(cherry picked from commit 79ada0e)
@joshua-goldstein joshua-goldstein deleted the omar/debuginfo_get_jemalloc branch August 11, 2022 21:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants