diff --git a/go.mod b/go.mod index 44b6f95be..904b7df74 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,6 @@ require ( github.com/opentracing/opentracing-go v1.1.0 github.com/pborman/uuid v0.0.0-20160209185913-a97ce2ca70fa github.com/robfig/cron v1.2.0 - github.com/shirou/gopsutil v3.21.11+incompatible github.com/stretchr/testify v1.9.0 github.com/uber-go/tally v3.3.15+incompatible github.com/uber/cadence-idl v0.0.0-20240723221048-0482c040f91d @@ -35,7 +34,6 @@ require ( github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.1.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect - github.com/go-ole/go-ole v1.2.6 // indirect github.com/gogo/googleapis v1.3.2 // indirect github.com/gogo/status v1.1.0 // indirect github.com/golang/protobuf v1.5.3 // indirect @@ -47,11 +45,8 @@ require ( github.com/prometheus/common v0.26.0 // indirect github.com/prometheus/procfs v0.6.0 // indirect github.com/stretchr/objx v0.5.2 // indirect - github.com/tklauser/go-sysconf v0.3.11 // indirect - github.com/tklauser/numcpus v0.6.0 // indirect github.com/uber-go/mapdecode v1.0.0 // indirect github.com/uber/jaeger-lib v2.4.1+incompatible // indirect - github.com/yusufpapurcu/wmi v1.2.3 // indirect go.uber.org/dig v1.10.0 // indirect go.uber.org/fx v1.13.1 // indirect go.uber.org/net/metrics v1.3.0 // indirect diff --git a/go.sum b/go.sum index 4312e7141..8e0160c30 100644 --- a/go.sum +++ b/go.sum @@ -49,8 +49,6 @@ github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vb github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= -github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gogo/googleapis v0.0.0-20180223154316-0cd9801be74a/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/googleapis v1.3.2 h1:kX1es4djPJrsDhY7aZKJy7aZasdcB5oSOEphMjSB53c= @@ -180,8 +178,6 @@ github.com/robfig/cron v1.2.0/go.mod h1:JGuDeoQd7Z6yL4zQhZ3OPEVHB7fL6Ka6skscFHfm github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/samuel/go-thrift v0.0.0-20191111193933-5165175b40af h1:EiWVfh8mr40yFZEui2oF0d45KgH48PkB2H0Z0GANvSI= github.com/samuel/go-thrift v0.0.0-20191111193933-5165175b40af/go.mod h1:Vrkh1pnjV9Bl8c3P9zH0/D4NlOHWP5d4/hF4YTULaec= -github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= -github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= @@ -199,10 +195,6 @@ github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81P github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/tklauser/go-sysconf v0.3.11 h1:89WgdJhk5SNwJfu+GKyYveZ4IaJ7xAkecBo+KdJV0CM= -github.com/tklauser/go-sysconf v0.3.11/go.mod h1:GqXfhXY3kiPa0nAXPDIQIWzJbMCB7AmcWpGR8lSZfqI= -github.com/tklauser/numcpus v0.6.0 h1:kebhY2Qt+3U6RNK7UqpYNA+tJ23IBEGKkB7JQBfDYms= -github.com/tklauser/numcpus v0.6.0/go.mod h1:FEZLMke0lhOUG6w2JadTzp0a+Nl8PF/GFkQ5UVIcaL4= github.com/uber-common/bark v1.2.1/go.mod h1:g0ZuPcD7XiExKHynr93Q742G/sbrdVQkghrqLGOoFuY= github.com/uber-go/mapdecode v1.0.0 h1:euUEFM9KnuCa1OBixz1xM+FIXmpixyay5DLymceOVrU= github.com/uber-go/mapdecode v1.0.0/go.mod h1:b5nP15FwXTgpjTjeA9A2uTHXV5UJCl4arwKpP0FP1Hw= @@ -223,8 +215,6 @@ github.com/uber/tchannel-go v1.32.1/go.mod h1:yT2EUp6YperZ0Tb/jwDX9gVEeiSG74r/L3 github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.5.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= go.uber.org/atomic v1.5.1/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= @@ -317,7 +307,6 @@ golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191220142924-d4481acd189f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200117145432-59e60aa80a0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -332,7 +321,6 @@ golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= diff --git a/internal/common/metrics/constants.go b/internal/common/metrics/constants.go index 33081e059..a20298443 100644 --- a/internal/common/metrics/constants.go +++ b/internal/common/metrics/constants.go @@ -110,13 +110,6 @@ const ( ReplaySkippedCounter = CadenceMetricsPrefix + "replay-skipped" ReplayLatency = CadenceMetricsPrefix + "replay-latency" - NumCPUCores = CadenceMetricsPrefix + "num-cpu-cores" - CPUPercentage = CadenceMetricsPrefix + "cpu-percentage" - TotalMemory = CadenceMetricsPrefix + "total-memory" - MemoryUsedHeap = CadenceMetricsPrefix + "memory-used-heap" - MemoryUsedStack = CadenceMetricsPrefix + "memory-used-stack" - NumGoRoutines = CadenceMetricsPrefix + "num-go-routines" - EstimatedHistorySize = CadenceMetricsPrefix + "estimated-history-size" ServerSideHistorySize = CadenceMetricsPrefix + "server-side-history-size" ConcurrentTaskQuota = CadenceMetricsPrefix + "concurrent-task-quota" diff --git a/internal/internal_worker.go b/internal/internal_worker.go index 07331b761..4319d0b54 100644 --- a/internal/internal_worker.go +++ b/internal/internal_worker.go @@ -83,7 +83,6 @@ const ( testTagsContextKey = "cadence-testTags" clientVersionTag = "cadence_client_version" clientGauge = "client_version_metric" - clientHostTag = "cadence_client_host" ) type ( @@ -330,9 +329,6 @@ func newWorkflowTaskWorkerInternal( // 3) the result pushed to laTunnel will be send as task to workflow worker to process. worker.taskQueueCh = laTunnel.resultCh - worker.options.host = params.Host - localActivityWorker.options.host = params.Host - return &workflowWorker{ executionParameters: params, workflowService: service, @@ -507,7 +503,6 @@ func newActivityTaskWorker( workerParams.MetricsScope, sessionTokenBucket, ) - base.options.host = workerParams.Host return &activityWorker{ executionParameters: workerParams, diff --git a/internal/internal_worker_base.go b/internal/internal_worker_base.go index 1dbe1429a..ba9da7818 100644 --- a/internal/internal_worker_base.go +++ b/internal/internal_worker_base.go @@ -28,14 +28,12 @@ import ( "errors" "fmt" "os" - "runtime" "sync" "syscall" "time" "go.uber.org/cadence/internal/common/debug" - "github.com/shirou/gopsutil/cpu" "github.com/uber-go/tally" "go.uber.org/zap" "go.uber.org/zap/zapcore" @@ -50,7 +48,6 @@ import ( const ( retryPollOperationInitialInterval = 20 * time.Millisecond retryPollOperationMaxInterval = 10 * time.Second - hardwareMetricsCollectInterval = 30 * time.Second ) var ( @@ -59,8 +56,6 @@ var ( var errShutdown = errors.New("worker shutting down") -var collectHardwareUsageOnce sync.Once - type ( // resultHandler that returns result resultHandler func(result []byte, err error) @@ -220,11 +215,6 @@ func (bw *baseWorker) Start() { bw.shutdownWG.Add(1) go bw.runTaskDispatcher() - // We want the emit function run once per host instead of run once per worker - // since the emit function is host level metric. - bw.shutdownWG.Add(1) - go bw.emitHardwareUsage() - bw.isWorkerStarted = true traceLog(func() { bw.logger.Info("Started Worker", @@ -400,7 +390,7 @@ func (bw *baseWorker) Run() { bw.Stop() } -// Shutdown is a blocking call and cleans up all the resources associated with worker. +// Stop is a blocking call and cleans up all the resources associated with worker. func (bw *baseWorker) Stop() { if !bw.isWorkerStarted { return @@ -423,53 +413,3 @@ func (bw *baseWorker) Stop() { } return } - -func (bw *baseWorker) emitHardwareUsage() { - defer func() { - if p := recover(); p != nil { - bw.metricsScope.Counter(metrics.WorkerPanicCounter).Inc(1) - topLine := fmt.Sprintf("base worker for %s [panic]:", bw.options.workerType) - st := getStackTraceRaw(topLine, 7, 0) - bw.logger.Error("Unhandled panic in hardware emitting.", - zap.String(tagPanicError, fmt.Sprintf("%v", p)), - zap.String(tagPanicStack, st)) - } - }() - defer bw.shutdownWG.Done() - collectHardwareUsageOnce.Do( - func() { - ticker := time.NewTicker(hardwareMetricsCollectInterval) - for { - select { - case <-bw.shutdownCh: - ticker.Stop() - return - case <-ticker.C: - host := bw.options.host - scope := bw.metricsScope.Tagged(map[string]string{clientHostTag: host}) - - cpuPercent, err := cpu.Percent(0, false) - if err != nil { - bw.logger.Warn("Failed to get cpu percent", zap.Error(err)) - return - } - cpuCores, err := cpu.Counts(false) - if err != nil { - bw.logger.Warn("Failed to get number of cpu cores", zap.Error(err)) - return - } - scope.Gauge(metrics.NumCPUCores).Update(float64(cpuCores)) - scope.Gauge(metrics.CPUPercentage).Update(cpuPercent[0]) - - var memStats runtime.MemStats - runtime.ReadMemStats(&memStats) - - scope.Gauge(metrics.NumGoRoutines).Update(float64(runtime.NumGoroutine())) - scope.Gauge(metrics.TotalMemory).Update(float64(memStats.Sys)) - scope.Gauge(metrics.MemoryUsedHeap).Update(float64(memStats.HeapInuse)) - scope.Gauge(metrics.MemoryUsedStack).Update(float64(memStats.StackInuse)) - } - } - }) - -} diff --git a/internal/internal_worker_test.go b/internal/internal_worker_test.go index d78b28783..c6d5e0a55 100644 --- a/internal/internal_worker_test.go +++ b/internal/internal_worker_test.go @@ -239,16 +239,6 @@ func (s *internalWorkerTestSuite) TestCreateWorker_WithStrictNonDeterminism() { worker.Stop() } -func (s *internalWorkerTestSuite) TestCreateWorker_WithHost() { - worker := createWorkerWithHost(s.T(), s.service) - err := worker.Start() - require.NoError(s.T(), err) - time.Sleep(time.Millisecond * 200) - assert.Equal(s.T(), "test_host", worker.activityWorker.worker.options.host) - assert.Equal(s.T(), "test_host", worker.workflowWorker.worker.options.host) - worker.Stop() -} - func (s *internalWorkerTestSuite) TestCreateWorkerRun() { // Create service endpoint mockCtrl := gomock.NewController(s.T()) @@ -446,13 +436,6 @@ func createWorkerWithStrictNonDeterminismDisabled( return createWorkerWithThrottle(t, service, 0, WorkerOptions{WorkerBugPorts: WorkerBugPorts{DisableStrictNonDeterminismCheck: true}}) } -func createWorkerWithHost( - t *testing.T, - service *workflowservicetest.MockClient, -) *aggregatedWorker { - return createWorkerWithThrottle(t, service, 0, WorkerOptions{Host: "test_host"}) -} - func (s *internalWorkerTestSuite) testCompleteActivityHelper(opt *ClientOptions) { t := s.T() mockService := s.service diff --git a/internal/worker.go b/internal/worker.go index e246ab080..004239057 100644 --- a/internal/worker.go +++ b/internal/worker.go @@ -266,10 +266,6 @@ type ( // default: No provider Authorization auth.AuthorizationProvider - // Optional: Host is just string on the machine running the client - // default: empty string - Host string - // Optional: See WorkerBugPorts for more details // // Deprecated: All bugports are always deprecated and may be removed at any time.