@@ -45,9 +45,9 @@ type perfCollector struct {
4545 hwProfilerCpuMap map [* perf.HardwareProfiler ]int
4646 swProfilerCpuMap map [* perf.SoftwareProfiler ]int
4747 cacheProfilerCpuMap map [* perf.CacheProfiler ]int
48- perfHwProfilers map [int ]perf.HardwareProfiler
49- perfSwProfilers map [int ]perf.SoftwareProfiler
50- perfCacheProfilers map [int ]perf.CacheProfiler
48+ perfHwProfilers map [int ]* perf.HardwareProfiler
49+ perfSwProfilers map [int ]* perf.SoftwareProfiler
50+ perfCacheProfilers map [int ]* perf.CacheProfiler
5151 desc map [string ]* prometheus.Desc
5252}
5353
@@ -63,9 +63,9 @@ func isValidCPUString(cpus *string) bool {
6363// per CPU.
6464func NewPerfCollector () (Collector , error ) {
6565 collector := & perfCollector {
66- perfHwProfilers : map [int ]perf.HardwareProfiler {},
67- perfSwProfilers : map [int ]perf.SoftwareProfiler {},
68- perfCacheProfilers : map [int ]perf.CacheProfiler {},
66+ perfHwProfilers : map [int ]* perf.HardwareProfiler {},
67+ perfSwProfilers : map [int ]* perf.SoftwareProfiler {},
68+ perfCacheProfilers : map [int ]* perf.CacheProfiler {},
6969 hwProfilerCpuMap : map [* perf.HardwareProfiler ]int {},
7070 swProfilerCpuMap : map [* perf.SoftwareProfiler ]int {},
7171 cacheProfilerCpuMap : map [* perf.CacheProfiler ]int {},
@@ -97,24 +97,24 @@ func NewPerfCollector() (Collector, error) {
9797 // Use -1 to profile all processes on the CPU, see:
9898 // man perf_event_open
9999 p := perf .NewHardwareProfiler (- 1 , i )
100- collector .perfHwProfilers [idx ] = p
101- if err := collector . perfHwProfilers [ idx ] .Start (); err != nil {
100+ collector .perfHwProfilers [idx ] = & p
101+ if err := p .Start (); err != nil {
102102 return collector , err
103103 } else {
104104 collector .hwProfilerCpuMap [& p ] = i
105105 }
106106
107107 p2 := perf .NewSoftwareProfiler (- 1 , i )
108- collector .perfSwProfilers [i ] = p2
109- if err := collector . perfSwProfilers [ i ] .Start (); err != nil {
108+ collector .perfSwProfilers [i ] = & p2
109+ if err := p2 .Start (); err != nil {
110110 return collector , err
111111 } else {
112112 collector .swProfilerCpuMap [& p2 ] = i
113113 }
114114
115115 p3 := perf .NewCacheProfiler (- 1 , i )
116- collector .perfCacheProfilers [i ] = p3
117- if err := collector . perfCacheProfilers [ i ] .Start (); err != nil {
116+ collector .perfCacheProfilers [i ] = & p3
117+ if err := p3 .Start (); err != nil {
118118 return collector , err
119119 } else {
120120 collector .cacheProfilerCpuMap [& p3 ] = i
@@ -386,9 +386,9 @@ func (c *perfCollector) Update(ch chan<- prometheus.Metric) error {
386386
387387func (c * perfCollector ) updateHardwareStats (ch chan <- prometheus.Metric ) error {
388388 for _ , profiler := range c .perfHwProfilers {
389- cpuid := c .hwProfilerCpuMap [& profiler ]
389+ cpuid := c .hwProfilerCpuMap [profiler ]
390390 cpuStr := fmt .Sprintf ("%d" , cpuid )
391- hwProfile , err := profiler .Profile ()
391+ hwProfile , err := ( * profiler ) .Profile ()
392392 if err != nil {
393393 return err
394394 }
@@ -458,9 +458,9 @@ func (c *perfCollector) updateHardwareStats(ch chan<- prometheus.Metric) error {
458458
459459func (c * perfCollector ) updateSoftwareStats (ch chan <- prometheus.Metric ) error {
460460 for _ , profiler := range c .perfSwProfilers {
461- cpuid := c .swProfilerCpuMap [& profiler ]
461+ cpuid := c .swProfilerCpuMap [profiler ]
462462 cpuStr := fmt .Sprintf ("%d" , cpuid )
463- swProfile , err := profiler .Profile ()
463+ swProfile , err := ( * profiler ) .Profile ()
464464 if err != nil {
465465 return err
466466 }
@@ -514,9 +514,9 @@ func (c *perfCollector) updateSoftwareStats(ch chan<- prometheus.Metric) error {
514514
515515func (c * perfCollector ) updateCacheStats (ch chan <- prometheus.Metric ) error {
516516 for _ , profiler := range c .perfCacheProfilers {
517- cpuid := c .cacheProfilerCpuMap [& profiler ]
517+ cpuid := c .cacheProfilerCpuMap [profiler ]
518518 cpuStr := fmt .Sprintf ("%d" , cpuid )
519- cacheProfile , err := profiler .Profile ()
519+ cacheProfile , err := ( * profiler ) .Profile ()
520520 if err != nil {
521521 return err
522522 }
0 commit comments