Spaces:
Runtime error
Runtime error
| package common | |
| import ( | |
| "runtime" | |
| "github.com/grafana/pyroscope-go" | |
| ) | |
| func StartPyroScope() error { | |
| pyroscopeUrl := GetEnvOrDefaultString("PYROSCOPE_URL", "") | |
| if pyroscopeUrl == "" { | |
| return nil | |
| } | |
| pyroscopeAppName := GetEnvOrDefaultString("PYROSCOPE_APP_NAME", "new-api") | |
| pyroscopeBasicAuthUser := GetEnvOrDefaultString("PYROSCOPE_BASIC_AUTH_USER", "") | |
| pyroscopeBasicAuthPassword := GetEnvOrDefaultString("PYROSCOPE_BASIC_AUTH_PASSWORD", "") | |
| pyroscopeHostname := GetEnvOrDefaultString("HOSTNAME", "new-api") | |
| mutexRate := GetEnvOrDefault("PYROSCOPE_MUTEX_RATE", 5) | |
| blockRate := GetEnvOrDefault("PYROSCOPE_BLOCK_RATE", 5) | |
| runtime.SetMutexProfileFraction(mutexRate) | |
| runtime.SetBlockProfileRate(blockRate) | |
| _, err := pyroscope.Start(pyroscope.Config{ | |
| ApplicationName: pyroscopeAppName, | |
| ServerAddress: pyroscopeUrl, | |
| BasicAuthUser: pyroscopeBasicAuthUser, | |
| BasicAuthPassword: pyroscopeBasicAuthPassword, | |
| Logger: nil, | |
| Tags: map[string]string{"hostname": pyroscopeHostname}, | |
| ProfileTypes: []pyroscope.ProfileType{ | |
| pyroscope.ProfileCPU, | |
| pyroscope.ProfileAllocObjects, | |
| pyroscope.ProfileAllocSpace, | |
| pyroscope.ProfileInuseObjects, | |
| pyroscope.ProfileInuseSpace, | |
| pyroscope.ProfileGoroutines, | |
| pyroscope.ProfileMutexCount, | |
| pyroscope.ProfileMutexDuration, | |
| pyroscope.ProfileBlockCount, | |
| pyroscope.ProfileBlockDuration, | |
| }, | |
| }) | |
| if err != nil { | |
| return err | |
| } | |
| return nil | |
| } | |