mirror of
https://github.com/restic/restic.git
synced 2025-10-27 05:51:05 +00:00
Update vendored library cloud.google.com/go
This commit is contained in:
27
vendor/cloud.google.com/go/profiler/profiler.go
generated
vendored
27
vendor/cloud.google.com/go/profiler/profiler.go
generated
vendored
@@ -123,6 +123,12 @@ type Config struct {
|
||||
// than Go 1.8.
|
||||
MutexProfiling bool
|
||||
|
||||
// When true, collecting the heap profiles is disabled.
|
||||
NoHeapProfiling bool
|
||||
|
||||
// When true, collecting the goroutine profiles is disabled.
|
||||
NoGoroutineProfiling bool
|
||||
|
||||
// ProjectID is the Cloud Console project ID to use instead of
|
||||
// the one read from the VM metadata server.
|
||||
//
|
||||
@@ -256,6 +262,9 @@ func (a *agent) createProfile(ctx context.Context) *pb.Profile {
|
||||
gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error {
|
||||
var err error
|
||||
p, err = a.client.CreateProfile(ctx, &req, grpc.Trailer(&md))
|
||||
if err != nil {
|
||||
debugLog("failed to create a profile, will retry: %v", err)
|
||||
}
|
||||
return err
|
||||
}, gax.WithRetry(func() gax.Retryer {
|
||||
return &retryer{
|
||||
@@ -411,7 +420,13 @@ func initializeAgent(c pb.ProfilerServiceClient) *agent {
|
||||
profileLabels[instanceLabel] = config.instance
|
||||
}
|
||||
|
||||
profileTypes := []pb.ProfileType{pb.ProfileType_CPU, pb.ProfileType_HEAP, pb.ProfileType_THREADS}
|
||||
profileTypes := []pb.ProfileType{pb.ProfileType_CPU}
|
||||
if !config.NoHeapProfiling {
|
||||
profileTypes = append(profileTypes, pb.ProfileType_HEAP)
|
||||
}
|
||||
if !config.NoGoroutineProfiling {
|
||||
profileTypes = append(profileTypes, pb.ProfileType_THREADS)
|
||||
}
|
||||
if mutexEnabled {
|
||||
profileTypes = append(profileTypes, pb.ProfileType_CONTENTION)
|
||||
}
|
||||
@@ -442,6 +457,15 @@ func initializeConfig(cfg Config) error {
|
||||
config.ServiceVersion = os.Getenv("GAE_VERSION")
|
||||
}
|
||||
|
||||
if projectID := os.Getenv("GOOGLE_CLOUD_PROJECT"); config.ProjectID == "" && projectID != "" {
|
||||
// Cloud Shell and App Engine set this environment variable to the project
|
||||
// ID, so use it if present. In case of App Engine the project ID is also
|
||||
// available from the GCE metadata server, but by using the environment
|
||||
// variable saves one request to the metadata server. The environment
|
||||
// project ID is only used if no project ID is provided in the
|
||||
// configuration.
|
||||
config.ProjectID = projectID
|
||||
}
|
||||
if onGCE() {
|
||||
var err error
|
||||
if config.ProjectID == "" {
|
||||
@@ -474,6 +498,7 @@ func initializeConfig(cfg Config) error {
|
||||
// server for instructions, and collects and uploads profiles as
|
||||
// requested.
|
||||
func pollProfilerService(ctx context.Context, a *agent) {
|
||||
debugLog("profiler has started")
|
||||
for {
|
||||
p := a.createProfile(ctx)
|
||||
a.profileAndUpload(ctx, p)
|
||||
|
||||
Reference in New Issue
Block a user