golang/src/cmd/pprof
Michael Matloob eef288da1e cmd: add telemetry for commands in cmd
This change modifies the commands in cmd to open counter files,
increment invocations counters and to increment counters for the names
of the flags that were passed in.

cmd/pprof and cmd/vet are both wrappers around tools defined in other
modules which do their own flag processing so we can't directly
increment flag counters right after flags are parsed. For those two
commands we wait to increment counters until after the programs have
returned.

cmd/dist is built with the bootstrap go so it can't depend on telemetry
yet. We can add telemetry support to it once 1.23 is the minimum
bootstrap version.

For #58894

Change-Id: Ic7f6009992465e55c56ad4dc6451bcb1ca51374a
Reviewed-on: https://go-review.googlesource.com/c/go/+/585235
Reviewed-by: Sam Thanawalla <samthanawalla@google.com>
Reviewed-by: Cherry Mui <cherryyz@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
2024-05-14 19:41:17 +00:00
..
testdata cmd/pprof: make ObjAddr a no-op 2021-06-17 14:53:37 +00:00
README cmd/pprof: update README to explain relationship with github.com/google/pprof 2017-04-10 19:51:01 +00:00
doc.go all: gofmt main repo 2022-05-19 15:49:05 +00:00
pprof.go cmd: add telemetry for commands in cmd 2024-05-14 19:41:17 +00:00
pprof_test.go runtime,runtime/pprof: get memory mappings on darwin. 2023-08-03 16:07:59 +00:00
readlineui.go all: fix problematic comments 2023-01-30 18:10:36 +00:00

README

This directory is the copy of Google's pprof shipped as part of the Go distribution.
The bulk of the code is vendored from github.com/google/pprof and is in
../vendor/github.com/google/pprof.

Two important notes:

1. Using github.com/google/pprof directly (for example, after installing
with "go get") should work with Go programs, but we cannot guarantee that.
What we test is that the "go tool pprof" shipped with each Go release works
with programs from that release.

2. Pprof is used inside Google for C++, Java, and Go programs.
Because it was developed for that broader context, it is overgeneralized
when used here for the specific use case of profiling standard Go programs.
However, we've left the abstractions intact in order to share updates
between our vendored copy and Google's internal one.
Please do not take the level of abstraction in this program as an example
to follow in your own.