Version: v9.1.0+incompatible Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Jan 30, 2018 License: Apache-2.0 Imports: 26 Imported by: 0



Package profiler is a client for the Stackdriver Profiler service.

This package is still experimental and subject to change.

Usage example:

import ""
if err := profiler.Start(profiler.Config{Service: "my-service"}); err != nil {
    // TODO: Handle error.

Calling Start will start a goroutine to collect profiles and upload to the profiler server, at the rhythm specified by the server.

The caller must provide the service string in the config, and may provide other information as well. See Config for details.

Profiler has CPU, heap and goroutine profiling enabled by default. Mutex profiling can be enabled in the config. Note that goroutine and mutex profiles are shown as "threads" and "contention" profiles in the profiler UI.




This section is empty.


This section is empty.


func Start

func Start(cfg Config, options ...option.ClientOption) error

Start starts a goroutine to collect and upload profiles. The caller must provide the service string in the config. See Config for details. Start should only be called once. Any additional calls will be ignored.

package main

import (

func main() {
	if err := profiler.Start(profiler.Config{Service: "my-service", ServiceVersion: "v1"}); err != nil {
		//TODO: Handle error.


type Config

type Config struct {
	// Service (or deprecated Target) must be provided to start the profiler.
	// It specifies the name of the service under which the profiled data
	// will be recorded and exposed at the Profiler UI for the project.
	// You can specify an arbitrary string, but see at
	// for restrictions.
	// NOTE: The string should be the same across different replicas of
	// your service so that the globally constant profiling rate is
	// maintained. Do not put things like PID or unique pod ID in the name.
	Service string

	// ServiceVersion is an optional field specifying the version of the
	// service. It can be an arbitrary string. Profiler profiles
	// once per minute for each version of each service in each zone.
	// ServiceVersion defaults to an empty string.
	ServiceVersion string

	// DebugLogging enables detailed debug logging from profiler. It
	// defaults to false.
	DebugLogging bool

	// MutexProfiling enables mutex profiling. It defaults to false.
	// Note that mutex profiling is not supported by Go versions older
	// than Go 1.8.
	MutexProfiling bool

	// ProjectID is the Cloud Console project ID to use instead of
	// the one read from the VM metadata server.
	// Set this if you are running the agent in your local environment
	// or anywhere else outside of Google Cloud Platform.
	ProjectID string

	// APIAddr is the HTTP endpoint to use to connect to the profiler
	// agent API. Defaults to the production environment, overridable
	// for testing.
	APIAddr string

	// Target is deprecated, use Service instead.
	Target string
	// contains filtered or unexported fields

Config is the profiler configuration.


Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL