Skip to content

Commit

Permalink
hostmetricsreceiver (processes): Refactor to use metric metadata
Browse files Browse the repository at this point in the history
  • Loading branch information
asuresh4 committed Jan 29, 2021
1 parent 8492d78 commit c9e0180
Show file tree
Hide file tree
Showing 6 changed files with 75 additions and 67 deletions.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import (
"github.com/shirou/gopsutil/load"

"go.opentelemetry.io/collector/consumer/pdata"
"go.opentelemetry.io/collector/receiver/hostmetricsreceiver/internal/metadata"
)

const unixSystemSpecificMetricsLen = 1
Expand All @@ -30,7 +31,7 @@ func appendUnixSystemSpecificProcessesMetrics(metrics pdata.MetricSlice, startIn
}

func initializeProcessesCreatedMetric(metric pdata.Metric, now pdata.TimestampUnixNano, misc *load.MiscStat) {
processesCreatedDescriptor.CopyTo(metric)
metadata.Metrics.SystemProcessesCreated.Init(metric)

ddps := metric.IntSum().DataPoints()
ddps.Resize(1)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import (
"go.opentelemetry.io/collector/consumer/consumererror"
"go.opentelemetry.io/collector/consumer/pdata"
"go.opentelemetry.io/collector/receiver/hostmetricsreceiver/internal"
"go.opentelemetry.io/collector/receiver/hostmetricsreceiver/internal/metadata"
)

func TestScrape(t *testing.T) {
Expand Down Expand Up @@ -99,14 +100,14 @@ func TestScrape(t *testing.T) {
}

func assertProcessesCountMetricValid(t *testing.T, metric pdata.Metric) {
internal.AssertDescriptorEqual(t, processesCountDescriptor, metric)
internal.AssertDescriptorEqual(t, metadata.Metrics.SystemProcessesCount.New(), metric)
assert.Equal(t, 2, metric.IntSum().DataPoints().Len())
internal.AssertIntSumMetricLabelHasValue(t, metric, 0, statusLabelName, runningStatusLabelValue)
internal.AssertIntSumMetricLabelHasValue(t, metric, 1, statusLabelName, blockedStatusLabelValue)
internal.AssertIntSumMetricLabelHasValue(t, metric, 0, "status", "running")
internal.AssertIntSumMetricLabelHasValue(t, metric, 1, "status", "blocked")
}

func assertProcessesCreatedMetricValid(t *testing.T, metric pdata.Metric) {
internal.AssertDescriptorEqual(t, processesCreatedDescriptor, metric)
internal.AssertDescriptorEqual(t, metadata.Metrics.SystemProcessesCreated.New(), metric)
assert.Equal(t, 1, metric.IntSum().DataPoints().Len())
assert.Equal(t, 0, metric.IntSum().DataPoints().At(0).LabelsMap().Len())
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import (
"go.opentelemetry.io/collector/consumer/consumererror"
"go.opentelemetry.io/collector/consumer/pdata"
"go.opentelemetry.io/collector/receiver/hostmetricsreceiver/internal"
"go.opentelemetry.io/collector/receiver/hostmetricsreceiver/internal/metadata"
)

const (
Expand All @@ -45,17 +46,17 @@ func appendSystemSpecificProcessesMetrics(metrics pdata.MetricSlice, startIndex
}

func initializeProcessesCountMetric(metric pdata.Metric, now pdata.TimestampUnixNano, misc *load.MiscStat) {
processesCountDescriptor.CopyTo(metric)
metadata.Metrics.SystemProcessesCount.Init(metric)

ddps := metric.IntSum().DataPoints()
ddps.Resize(2)
initializeProcessesCountDataPoint(ddps.At(0), now, runningStatusLabelValue, int64(misc.ProcsRunning))
initializeProcessesCountDataPoint(ddps.At(1), now, blockedStatusLabelValue, int64(misc.ProcsBlocked))
initializeProcessesCountDataPoint(ddps.At(0), now, metadata.LabelProcessesStatus.Running, int64(misc.ProcsRunning))
initializeProcessesCountDataPoint(ddps.At(1), now, metadata.LabelProcessesStatus.Blocked, int64(misc.ProcsBlocked))
}

func initializeProcessesCountDataPoint(dataPoint pdata.IntDataPoint, now pdata.TimestampUnixNano, statusLabel string, value int64) {
labelsMap := dataPoint.LabelsMap()
labelsMap.Insert(statusLabelName, statusLabel)
labelsMap.Insert(metadata.Labels.ProcessesStatus, statusLabel)
dataPoint.SetTimestamp(now)
dataPoint.SetValue(value)
}
21 changes: 21 additions & 0 deletions receiver/hostmetricsreceiver/metadata.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,11 @@ labels:
description: Type of fault.
enum: [major, minor]

processes.status:
value: status
description: Breakdown status of the processes.
enum: [blocked, running]

metrics:
system.cpu.time:
description: Total CPU seconds broken down by different states.
Expand Down Expand Up @@ -253,3 +258,19 @@ metrics:
type: int sum
aggregation: cumulative
monotonic: true

system.processes.created:
description: Total number of created processes.
unit: "{processes}"
data:
type: int sum
aggregation: cumulative
monotonic: true

system.processes.count:
description: Total number of processes in each state.
unit: "{processes}"
data:
type: int sum
aggregation: cumulative
monotonic: false

0 comments on commit c9e0180

Please sign in to comment.