Skip to content

Commit c4183f9

Browse files
authored
Minor cleanup in perf collector (prometheus#1616)
* Use `strconv.Itoa()` instead of `fmt.Sprintf()` for simple conversion. * Eliminate copy-paste in collector setup. Signed-off-by: Ben Kochie <[email protected]>
1 parent ec62141 commit c4183f9

File tree

1 file changed

+28
-38
lines changed

1 file changed

+28
-38
lines changed

collector/perf_linux.go

Lines changed: 28 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -111,52 +111,42 @@ func NewPerfCollector(logger log.Logger) (Collector, error) {
111111
logger: logger,
112112
}
113113

114+
var (
115+
cpus []int
116+
err error
117+
)
114118
if perfCPUsFlag != nil && *perfCPUsFlag != "" {
115-
cpus, err := perfCPUFlagToCPUs(*perfCPUsFlag)
119+
cpus, err = perfCPUFlagToCPUs(*perfCPUsFlag)
116120
if err != nil {
117121
return nil, err
118122
}
119-
for _, cpu := range cpus {
120-
// Use -1 to profile all processes on the CPU, see:
121-
// man perf_event_open
122-
hwProf := perf.NewHardwareProfiler(-1, cpu)
123-
if err := hwProf.Start(); err != nil {
124-
return nil, err
125-
}
126-
collector.perfHwProfilers[cpu] = &hwProf
127-
128-
swProf := perf.NewSoftwareProfiler(-1, cpu)
129-
if err := swProf.Start(); err != nil {
130-
return nil, err
131-
}
132-
collector.perfSwProfilers[cpu] = &swProf
123+
} else {
124+
cpus = make([]int, runtime.NumCPU())
125+
for i := range cpus {
126+
cpus[i] = i
127+
}
128+
}
133129

134-
cacheProf := perf.NewCacheProfiler(-1, cpu)
135-
if err := cacheProf.Start(); err != nil {
136-
return nil, err
137-
}
138-
collector.perfCacheProfilers[cpu] = &cacheProf
130+
for _, cpu := range cpus {
131+
// Use -1 to profile all processes on the CPU, see:
132+
// man perf_event_open
133+
hwProf := perf.NewHardwareProfiler(-1, cpu)
134+
if err := hwProf.Start(); err != nil {
135+
return nil, err
139136
}
140-
} else {
141-
for i := 0; i < runtime.NumCPU(); i++ {
142-
hwProf := perf.NewHardwareProfiler(-1, i)
143-
if err := hwProf.Start(); err != nil {
144-
return nil, err
145-
}
146-
collector.perfHwProfilers[i] = &hwProf
137+
collector.perfHwProfilers[cpu] = &hwProf
147138

148-
swProf := perf.NewSoftwareProfiler(-1, i)
149-
if err := swProf.Start(); err != nil {
150-
return nil, err
151-
}
152-
collector.perfSwProfilers[i] = &swProf
139+
swProf := perf.NewSoftwareProfiler(-1, cpu)
140+
if err := swProf.Start(); err != nil {
141+
return nil, err
142+
}
143+
collector.perfSwProfilers[cpu] = &swProf
153144

154-
cacheProf := perf.NewCacheProfiler(-1, i)
155-
if err := cacheProf.Start(); err != nil {
156-
return nil, err
157-
}
158-
collector.perfCacheProfilers[i] = &cacheProf
145+
cacheProf := perf.NewCacheProfiler(-1, cpu)
146+
if err := cacheProf.Start(); err != nil {
147+
return nil, err
159148
}
149+
collector.perfCacheProfilers[cpu] = &cacheProf
160150
}
161151

162152
collector.desc = map[string]*prometheus.Desc{
@@ -425,7 +415,7 @@ func (c *perfCollector) Update(ch chan<- prometheus.Metric) error {
425415
func (c *perfCollector) updateHardwareStats(ch chan<- prometheus.Metric) error {
426416
for _, profiler := range c.perfHwProfilers {
427417
cpuid := c.hwProfilerCPUMap[profiler]
428-
cpuStr := fmt.Sprintf("%d", cpuid)
418+
cpuStr := strconv.Itoa(cpuid)
429419
hwProfile, err := (*profiler).Profile()
430420
if err != nil {
431421
return err

0 commit comments

Comments
 (0)