Skip to content

Commit b488e55

Browse files
committed
Remove usage of internal for resourcetuner.go
1 parent 5b7e431 commit b488e55

File tree

4 files changed

+37
-16
lines changed

4 files changed

+37
-16
lines changed

contrib/resourcetuner/resourcetuner.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,24 @@ package resourcetuner
33
import (
44
"context"
55
"errors"
6-
"go.temporal.io/sdk/internal/common/metrics"
76
"runtime"
87
"sync"
98
"time"
109

1110
"github.com/shirou/gopsutil/v4/cpu"
1211
"github.com/shirou/gopsutil/v4/mem"
1312
"go.einride.tech/pid"
13+
"go.temporal.io/sdk/client"
1414
"go.temporal.io/sdk/log"
1515
"go.temporal.io/sdk/worker"
1616
)
1717

18+
// Metric names emitted by the resource-based tuner
19+
const (
20+
ResourceSlotsCPUUsage = "temporal_resource_slots_cpu_usage"
21+
ResourceSlotsMemUsage = "temporal_resource_slots_mem_usage"
22+
)
23+
1824
type ResourceBasedTunerOptions struct {
1925
// TargetMem is the target overall system memory usage as value 0 and 1 that the controller will
2026
// attempt to maintain. Must be set nonzero.
@@ -277,7 +283,7 @@ func NewResourceController(options ResourceControllerOptions) *ResourceControlle
277283
}
278284
}
279285

280-
func (rc *ResourceController) pidDecision(logger log.Logger, metricsHandler metrics.Handler) (bool, error) {
286+
func (rc *ResourceController) pidDecision(logger log.Logger, metricsHandler client.MetricsHandler) (bool, error) {
281287
rc.mu.Lock()
282288
defer rc.mu.Unlock()
283289

@@ -316,12 +322,12 @@ func (rc *ResourceController) pidDecision(logger log.Logger, metricsHandler metr
316322
rc.cpuPid.State.ControlSignal > rc.options.CpuOutputThreshold, nil
317323
}
318324

319-
func (rc *ResourceController) publishResourceMetrics(metricsHandler metrics.Handler, memUsage, cpuUsage float64) {
325+
func (rc *ResourceController) publishResourceMetrics(metricsHandler client.MetricsHandler, memUsage, cpuUsage float64) {
320326
if metricsHandler == nil {
321327
return
322328
}
323-
metricsHandler.Gauge(metrics.ResourceSlotsMemUsage).Update(memUsage * 100)
324-
metricsHandler.Gauge(metrics.ResourceSlotsCPUUsage).Update(cpuUsage * 100)
329+
metricsHandler.Gauge(ResourceSlotsMemUsage).Update(memUsage * 100)
330+
metricsHandler.Gauge(ResourceSlotsCPUUsage).Update(cpuUsage * 100)
325331
}
326332

327333
type psUtilSystemInfoSupplier struct {

contrib/resourcetuner/resourcetuner_test.go

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
package resourcetuner
22

33
import (
4-
"go.temporal.io/sdk/internal/common/metrics"
54
"testing"
65

76
"github.com/stretchr/testify/assert"
8-
"go.temporal.io/sdk/internal/log"
7+
"go.temporal.io/sdk/client"
8+
"go.temporal.io/sdk/internal/common/metrics"
9+
"go.temporal.io/sdk/log"
910
)
1011

1112
type FakeSystemInfoSupplier struct {
@@ -22,8 +23,8 @@ func (f FakeSystemInfoSupplier) GetCpuUsage(_ *SystemInfoContext) (float64, erro
2223
}
2324

2425
func TestPidDecisions(t *testing.T) {
25-
logger := &log.NoopLogger{}
26-
metricsHandler := metrics.NopHandler
26+
logger := log.NewNopLogger()
27+
metricsHandler := client.MetricsNopHandler
2728
fakeSupplier := &FakeSystemInfoSupplier{memUse: 0.5, cpuUse: 0.5}
2829
rcOpts := DefaultResourceControllerOptions()
2930
rcOpts.MemTargetPercent = 0.8
@@ -66,7 +67,7 @@ func TestPidDecisions(t *testing.T) {
6667
}
6768

6869
func TestPidDecisionEmitsUsageMetrics(t *testing.T) {
69-
logger := &log.NoopLogger{}
70+
logger := log.NewNopLogger()
7071
metricsHandler := metrics.NewCapturingHandler()
7172
fakeSupplier := &FakeSystemInfoSupplier{memUse: 0.25, cpuUse: 0.75}
7273

@@ -85,8 +86,8 @@ func TestPidDecisionEmitsUsageMetrics(t *testing.T) {
8586
gaugesByName[gauge.Name] = gauge.Value()
8687
}
8788

88-
assert.Equal(t, 25.0, gaugesByName[metrics.ResourceSlotsMemUsage])
89-
assert.Equal(t, 75.0, gaugesByName[metrics.ResourceSlotsCPUUsage])
89+
assert.Equal(t, 25.0, gaugesByName[ResourceSlotsMemUsage])
90+
assert.Equal(t, 75.0, gaugesByName[ResourceSlotsCPUUsage])
9091

9192
fakeSupplier.memUse = 0.7
9293
fakeSupplier.cpuUse = 0.9
@@ -101,6 +102,6 @@ func TestPidDecisionEmitsUsageMetrics(t *testing.T) {
101102
gaugesByName[gauge.Name] = gauge.Value()
102103
}
103104

104-
assert.Equal(t, 70.0, gaugesByName[metrics.ResourceSlotsMemUsage])
105-
assert.Equal(t, 90.0, gaugesByName[metrics.ResourceSlotsCPUUsage])
105+
assert.Equal(t, 70.0, gaugesByName[ResourceSlotsMemUsage])
106+
assert.Equal(t, 90.0, gaugesByName[ResourceSlotsCPUUsage])
106107
}

internal/common/metrics/constants.go

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,6 @@ const (
4040
WorkerStartCounter = TemporalMetricsPrefix + "worker_start"
4141
WorkerTaskSlotsAvailable = TemporalMetricsPrefix + "worker_task_slots_available"
4242
WorkerTaskSlotsUsed = TemporalMetricsPrefix + "worker_task_slots_used"
43-
ResourceSlotsCPUUsage = TemporalMetricsPrefix + "resource_slots_cpu_usage"
44-
ResourceSlotsMemUsage = TemporalMetricsPrefix + "resource_slots_mem_usage"
4543
PollerStartCounter = TemporalMetricsPrefix + "poller_start"
4644
NumPoller = TemporalMetricsPrefix + "num_pollers"
4745

log/noop.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package log
2+
3+
// NewNopLogger creates a Logger implementation that discards all log messages.
4+
// This is useful for testing or when logging is not desired.
5+
func NewNopLogger() Logger {
6+
return nopLogger{}
7+
}
8+
9+
type nopLogger struct{}
10+
11+
func (nopLogger) Debug(string, ...interface{}) {}
12+
func (nopLogger) Info(string, ...interface{}) {}
13+
func (nopLogger) Warn(string, ...interface{}) {}
14+
func (nopLogger) Error(string, ...interface{}) {}
15+
func (nopLogger) With(...interface{}) Logger { return nopLogger{} }
16+
func (nopLogger) WithCallerSkip(int) Logger { return nopLogger{} }

0 commit comments

Comments
 (0)