// Inc increments the counter with the given name. func Inc(name string) { … } // Add adds n to the counter with the given name. func Add(name string, n int64) { … } // New returns a counter with the given name. // New can be called in global initializers and will be compiled down to // linker-initialized data. That is, calling New to initialize a global // has no cost at program startup. // // See "Counter Naming" in the package doc for a description of counter naming // conventions. func New(name string) *Counter { … } type Counter … type StackCounter … // NewStack returns a new stack counter with the given name and depth. // // See "Counter Naming" in the package doc for a description of counter naming // conventions. func NewStack(name string, depth int) *StackCounter { … } // Open prepares telemetry counters for recording to the file system. // // If the telemetry mode is "off", Open is a no-op. Otherwise, it opens the // counter file on disk and starts to mmap telemetry counters to the file. // Open also persists any counters already created in the current process. // // Open should only be called from short-lived processes such as command line // tools. If your process is long-running, use [OpenAndRotate]. func Open() { … } // OpenAndRotate is like [Open], but also schedules a rotation of the counter // file when it expires. // // See golang/go#68497 for background on why [OpenAndRotate] is a separate API. // // TODO(rfindley): refactor Open and OpenAndRotate for Go 1.24. func OpenAndRotate() { … } // OpenDir prepares telemetry counters for recording to the file system, using // the specified telemetry directory, if it is not the empty string. // // If the telemetry mode is "off", Open is a no-op. Otherwise, it opens the // counter file on disk and starts to mmap telemetry counters to the file. // Open also persists any counters already created in the current process. func OpenDir(telemetryDir string) { … } // CountFlags creates a counter for every flag that is set // and increments the counter. The name of the counter is // the concatenation of prefix and the flag name. // // For instance, CountFlags("gopls/flag:", *flag.CommandLine) func CountFlags(prefix string, fs flag.FlagSet) { … } // CountCommandLineFlags creates a counter for every flag // that is set in the default flag.CommandLine FlagSet using // the counter name binaryName+"/flag:"+flagName where // binaryName is the base name of the Path embedded in the // binary's build info. If the binary does not have embedded build // info, the "flag:"+flagName counter will be incremented. // // CountCommandLineFlags must be called after flags are parsed // with flag.Parse. // // For instance, if the -S flag is passed to cmd/compile and // CountCommandLineFlags is called after flags are parsed, // the "compile/flag:S" counter will be incremented. func CountCommandLineFlags() { … }