Skip to content

Commit 5218465

Browse files
committed
hostmetricsreceiver (process): Refactor to use metric metadata
1 parent c9e0180 commit 5218465

File tree

7 files changed

+158
-116
lines changed

7 files changed

+158
-116
lines changed

receiver/hostmetricsreceiver/internal/metadata/generated_metrics.go

Lines changed: 86 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

receiver/hostmetricsreceiver/internal/scraper/processscraper/process_metadata.go

Lines changed: 0 additions & 91 deletions
This file was deleted.

receiver/hostmetricsreceiver/internal/scraper/processscraper/process_scraper.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828
"go.opentelemetry.io/collector/consumer/pdata"
2929
"go.opentelemetry.io/collector/internal/processor/filterset"
3030
"go.opentelemetry.io/collector/receiver/hostmetricsreceiver/internal"
31+
"go.opentelemetry.io/collector/receiver/hostmetricsreceiver/internal/metadata"
3132
"go.opentelemetry.io/collector/receiver/scraperhelper"
3233
)
3334

@@ -190,7 +191,7 @@ func scrapeAndAppendCPUTimeMetric(metrics pdata.MetricSlice, startTime, now pdat
190191
}
191192

192193
func initializeCPUTimeMetric(metric pdata.Metric, startTime, now pdata.TimestampUnixNano, times *cpu.TimesStat) {
193-
cpuTimeDescriptor.CopyTo(metric)
194+
metadata.Metrics.ProcessCPUTime.Init(metric)
194195

195196
ddps := metric.DoubleSum().DataPoints()
196197
ddps.Resize(cpuStatesLen)
@@ -205,8 +206,8 @@ func scrapeAndAppendMemoryUsageMetrics(metrics pdata.MetricSlice, now pdata.Time
205206

206207
startIdx := metrics.Len()
207208
metrics.Resize(startIdx + memoryMetricsLen)
208-
initializeMemoryUsageMetric(metrics.At(startIdx+0), physicalMemoryUsageDescriptor, now, int64(mem.RSS))
209-
initializeMemoryUsageMetric(metrics.At(startIdx+1), virtualMemoryUsageDescriptor, now, int64(mem.VMS))
209+
initializeMemoryUsageMetric(metrics.At(startIdx+0), metadata.Metrics.ProcessMemoryPhysicalUsage.New(), now, int64(mem.RSS))
210+
initializeMemoryUsageMetric(metrics.At(startIdx+1), metadata.Metrics.ProcessMemoryVirtualUsage.New(), now, int64(mem.VMS))
210211
return nil
211212
}
212213

@@ -236,17 +237,17 @@ func scrapeAndAppendDiskIOMetric(metrics pdata.MetricSlice, startTime, now pdata
236237
}
237238

238239
func initializeDiskIOMetric(metric pdata.Metric, startTime, now pdata.TimestampUnixNano, io *process.IOCountersStat) {
239-
diskIODescriptor.CopyTo(metric)
240+
metadata.Metrics.ProcessDiskIo.Init(metric)
240241

241242
idps := metric.IntSum().DataPoints()
242243
idps.Resize(2)
243-
initializeDiskIODataPoint(idps.At(0), startTime, now, int64(io.ReadBytes), readDirectionLabelValue)
244-
initializeDiskIODataPoint(idps.At(1), startTime, now, int64(io.WriteBytes), writeDirectionLabelValue)
244+
initializeDiskIODataPoint(idps.At(0), startTime, now, int64(io.ReadBytes), metadata.LabelProcessDirection.Read)
245+
initializeDiskIODataPoint(idps.At(1), startTime, now, int64(io.WriteBytes), metadata.LabelProcessDirection.Write)
245246
}
246247

247248
func initializeDiskIODataPoint(dataPoint pdata.IntDataPoint, startTime, now pdata.TimestampUnixNano, value int64, directionLabel string) {
248249
labelsMap := dataPoint.LabelsMap()
249-
labelsMap.Insert(directionLabelName, directionLabel)
250+
labelsMap.Insert(metadata.Labels.ProcessDirection, directionLabel)
250251
dataPoint.SetStartTime(startTime)
251252
dataPoint.SetTimestamp(now)
252253
dataPoint.SetValue(value)

receiver/hostmetricsreceiver/internal/scraper/processscraper/process_scraper_linux.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,20 @@ import (
2020
"github.com/shirou/gopsutil/cpu"
2121

2222
"go.opentelemetry.io/collector/consumer/pdata"
23+
"go.opentelemetry.io/collector/receiver/hostmetricsreceiver/internal/metadata"
2324
)
2425

2526
const cpuStatesLen = 3
2627

2728
func appendCPUTimeStateDataPoints(ddps pdata.DoubleDataPointSlice, startTime, now pdata.TimestampUnixNano, cpuTime *cpu.TimesStat) {
28-
initializeCPUTimeDataPoint(ddps.At(0), startTime, now, cpuTime.User, userStateLabelValue)
29-
initializeCPUTimeDataPoint(ddps.At(1), startTime, now, cpuTime.System, systemStateLabelValue)
30-
initializeCPUTimeDataPoint(ddps.At(2), startTime, now, cpuTime.Iowait, waitStateLabelValue)
29+
initializeCPUTimeDataPoint(ddps.At(0), startTime, now, cpuTime.User, metadata.LabelProcessState.User)
30+
initializeCPUTimeDataPoint(ddps.At(1), startTime, now, cpuTime.System, metadata.LabelProcessState.System)
31+
initializeCPUTimeDataPoint(ddps.At(2), startTime, now, cpuTime.Iowait, metadata.LabelProcessState.Wait)
3132
}
3233

3334
func initializeCPUTimeDataPoint(dataPoint pdata.DoubleDataPoint, startTime, now pdata.TimestampUnixNano, value float64, stateLabel string) {
3435
labelsMap := dataPoint.LabelsMap()
35-
labelsMap.Insert(stateLabelName, stateLabel)
36+
labelsMap.Insert(metadata.Labels.ProcessState, stateLabel)
3637
dataPoint.SetStartTime(startTime)
3738
dataPoint.SetTimestamp(now)
3839
dataPoint.SetValue(value)

receiver/hostmetricsreceiver/internal/scraper/processscraper/process_scraper_test.go

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import (
3232
"go.opentelemetry.io/collector/consumer/pdata"
3333
"go.opentelemetry.io/collector/internal/processor/filterset"
3434
"go.opentelemetry.io/collector/receiver/hostmetricsreceiver/internal"
35+
"go.opentelemetry.io/collector/receiver/hostmetricsreceiver/internal/metadata"
3536
"go.opentelemetry.io/collector/translator/conventions"
3637
)
3738

@@ -72,8 +73,8 @@ func TestScrape(t *testing.T) {
7273
require.Greater(t, resourceMetrics.Len(), 1)
7374
assertProcessResourceAttributesExist(t, resourceMetrics)
7475
assertCPUTimeMetricValid(t, resourceMetrics, expectedStartTime)
75-
assertMemoryUsageMetricValid(t, physicalMemoryUsageDescriptor, resourceMetrics)
76-
assertMemoryUsageMetricValid(t, virtualMemoryUsageDescriptor, resourceMetrics)
76+
assertMemoryUsageMetricValid(t, metadata.Metrics.ProcessMemoryPhysicalUsage.New(), resourceMetrics)
77+
assertMemoryUsageMetricValid(t, metadata.Metrics.ProcessMemoryVirtualUsage.New(), resourceMetrics)
7778
assertDiskIOMetricValid(t, resourceMetrics, expectedStartTime)
7879
assertSameTimeStampForAllMetricsWithinResource(t, resourceMetrics)
7980
}
@@ -91,15 +92,15 @@ func assertProcessResourceAttributesExist(t *testing.T, resourceMetrics pdata.Re
9192
}
9293

9394
func assertCPUTimeMetricValid(t *testing.T, resourceMetrics pdata.ResourceMetricsSlice, startTime pdata.TimestampUnixNano) {
94-
cpuTimeMetric := getMetric(t, cpuTimeDescriptor, resourceMetrics)
95-
internal.AssertDescriptorEqual(t, cpuTimeDescriptor, cpuTimeMetric)
95+
cpuTimeMetric := getMetric(t, metadata.Metrics.ProcessCPUTime.New(), resourceMetrics)
96+
internal.AssertDescriptorEqual(t, metadata.Metrics.ProcessCPUTime.New(), cpuTimeMetric)
9697
if startTime != 0 {
9798
internal.AssertDoubleSumMetricStartTimeEquals(t, cpuTimeMetric, startTime)
9899
}
99-
internal.AssertDoubleSumMetricLabelHasValue(t, cpuTimeMetric, 0, stateLabelName, userStateLabelValue)
100-
internal.AssertDoubleSumMetricLabelHasValue(t, cpuTimeMetric, 1, stateLabelName, systemStateLabelValue)
100+
internal.AssertDoubleSumMetricLabelHasValue(t, cpuTimeMetric, 0, "state", "user")
101+
internal.AssertDoubleSumMetricLabelHasValue(t, cpuTimeMetric, 1, "state", "system")
101102
if runtime.GOOS == "linux" {
102-
internal.AssertDoubleSumMetricLabelHasValue(t, cpuTimeMetric, 2, stateLabelName, waitStateLabelValue)
103+
internal.AssertDoubleSumMetricLabelHasValue(t, cpuTimeMetric, 2, "state", "wait")
103104
}
104105
}
105106

@@ -109,13 +110,13 @@ func assertMemoryUsageMetricValid(t *testing.T, descriptor pdata.Metric, resourc
109110
}
110111

111112
func assertDiskIOMetricValid(t *testing.T, resourceMetrics pdata.ResourceMetricsSlice, startTime pdata.TimestampUnixNano) {
112-
diskIOMetric := getMetric(t, diskIODescriptor, resourceMetrics)
113-
internal.AssertDescriptorEqual(t, diskIODescriptor, diskIOMetric)
113+
diskIOMetric := getMetric(t, metadata.Metrics.ProcessDiskIo.New(), resourceMetrics)
114+
internal.AssertDescriptorEqual(t, metadata.Metrics.ProcessDiskIo.New(), diskIOMetric)
114115
if startTime != 0 {
115116
internal.AssertIntSumMetricStartTimeEquals(t, diskIOMetric, startTime)
116117
}
117-
internal.AssertIntSumMetricLabelHasValue(t, diskIOMetric, 0, directionLabelName, readDirectionLabelValue)
118-
internal.AssertIntSumMetricLabelHasValue(t, diskIOMetric, 1, directionLabelName, writeDirectionLabelValue)
118+
internal.AssertIntSumMetricLabelHasValue(t, diskIOMetric, 0, "direction", "read")
119+
internal.AssertIntSumMetricLabelHasValue(t, diskIOMetric, 1, "direction", "write")
119120
}
120121

121122
func assertSameTimeStampForAllMetricsWithinResource(t *testing.T, resourceMetrics pdata.ResourceMetricsSlice) {

receiver/hostmetricsreceiver/internal/scraper/processscraper/process_scraper_windows.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,19 @@ import (
2323
"github.com/shirou/gopsutil/cpu"
2424

2525
"go.opentelemetry.io/collector/consumer/pdata"
26+
"go.opentelemetry.io/collector/receiver/hostmetricsreceiver/internal/metadata"
2627
)
2728

2829
const cpuStatesLen = 2
2930

3031
func appendCPUTimeStateDataPoints(ddps pdata.DoubleDataPointSlice, startTime, now pdata.TimestampUnixNano, cpuTime *cpu.TimesStat) {
31-
initializeCPUTimeDataPoint(ddps.At(0), startTime, now, cpuTime.User, userStateLabelValue)
32-
initializeCPUTimeDataPoint(ddps.At(1), startTime, now, cpuTime.System, systemStateLabelValue)
32+
initializeCPUTimeDataPoint(ddps.At(0), startTime, now, cpuTime.User, metadata.LabelProcessState.User)
33+
initializeCPUTimeDataPoint(ddps.At(1), startTime, now, cpuTime.System, metadata.LabelProcessState.System)
3334
}
3435

3536
func initializeCPUTimeDataPoint(dataPoint pdata.DoubleDataPoint, startTime, now pdata.TimestampUnixNano, value float64, stateLabel string) {
3637
labelsMap := dataPoint.LabelsMap()
37-
labelsMap.Insert(stateLabelName, stateLabel)
38+
labelsMap.Insert(metadata.Labels.ProcessState, stateLabel)
3839
dataPoint.SetStartTime(startTime)
3940
dataPoint.SetTimestamp(now)
4041
dataPoint.SetValue(value)

0 commit comments

Comments
 (0)