From 79a9b0b665e143a80968f22b5303c7f0d4d95391 Mon Sep 17 00:00:00 2001 From: Sean Marciniak Date: Tue, 28 Jan 2025 09:12:07 +1030 Subject: [PATCH] Fixing up metric definition values --- .../scraper/processscraper/documentation.md | 8 ++++---- .../internal/metadata/generated_metrics.go | 20 +++++++++---------- .../metadata/generated_metrics_test.go | 14 ++++++------- .../scraper/processscraper/metadata.yaml | 8 +++----- .../scraper/processscraper/process_scraper.go | 2 +- .../processscraper/process_scraper_test.go | 6 +++--- 6 files changed, 26 insertions(+), 32 deletions(-) diff --git a/receiver/hostmetricsreceiver/internal/scraper/processscraper/documentation.md b/receiver/hostmetricsreceiver/internal/scraper/processscraper/documentation.md index 616ce221c2109..906a7eb845c9c 100644 --- a/receiver/hostmetricsreceiver/internal/scraper/processscraper/documentation.md +++ b/receiver/hostmetricsreceiver/internal/scraper/processscraper/documentation.md @@ -174,11 +174,11 @@ Process threads count. ### process.uptime -The total duration the process has been running for. +The time the process has been running. -| Unit | Metric Type | Value Type | Aggregation Temporality | Monotonic | -| ---- | ----------- | ---------- | ----------------------- | --------- | -| s | Sum | Int | Cumulative | false | +| Unit | Metric Type | Value Type | +| ---- | ----------- | ---------- | +| s | Gauge | Double | ## Resource Attributes diff --git a/receiver/hostmetricsreceiver/internal/scraper/processscraper/internal/metadata/generated_metrics.go b/receiver/hostmetricsreceiver/internal/scraper/processscraper/internal/metadata/generated_metrics.go index 55a8561c4090d..22e2d85442521 100644 --- a/receiver/hostmetricsreceiver/internal/scraper/processscraper/internal/metadata/generated_metrics.go +++ b/receiver/hostmetricsreceiver/internal/scraper/processscraper/internal/metadata/generated_metrics.go @@ -801,33 +801,31 @@ type metricProcessUptime struct { // init fills process.uptime metric with initial data. func (m *metricProcessUptime) init() { m.data.SetName("process.uptime") - m.data.SetDescription("The total duration the process has been running for.") + m.data.SetDescription("The time the process has been running.") m.data.SetUnit("s") - m.data.SetEmptySum() - m.data.Sum().SetIsMonotonic(false) - m.data.Sum().SetAggregationTemporality(pmetric.AggregationTemporalityCumulative) + m.data.SetEmptyGauge() } -func (m *metricProcessUptime) recordDataPoint(start pcommon.Timestamp, ts pcommon.Timestamp, val int64) { +func (m *metricProcessUptime) recordDataPoint(start pcommon.Timestamp, ts pcommon.Timestamp, val float64) { if !m.config.Enabled { return } - dp := m.data.Sum().DataPoints().AppendEmpty() + dp := m.data.Gauge().DataPoints().AppendEmpty() dp.SetStartTimestamp(start) dp.SetTimestamp(ts) - dp.SetIntValue(val) + dp.SetDoubleValue(val) } // updateCapacity saves max length of data point slices that will be used for the slice capacity. func (m *metricProcessUptime) updateCapacity() { - if m.data.Sum().DataPoints().Len() > m.capacity { - m.capacity = m.data.Sum().DataPoints().Len() + if m.data.Gauge().DataPoints().Len() > m.capacity { + m.capacity = m.data.Gauge().DataPoints().Len() } } // emit appends recorded metric data to a metrics slice and prepares it for recording another set of data points. func (m *metricProcessUptime) emit(metrics pmetric.MetricSlice) { - if m.config.Enabled && m.data.Sum().DataPoints().Len() > 0 { + if m.config.Enabled && m.data.Gauge().DataPoints().Len() > 0 { m.updateCapacity() m.data.MoveTo(metrics.AppendEmpty()) m.init() @@ -1138,7 +1136,7 @@ func (mb *MetricsBuilder) RecordProcessThreadsDataPoint(ts pcommon.Timestamp, va } // RecordProcessUptimeDataPoint adds a data point to process.uptime metric. -func (mb *MetricsBuilder) RecordProcessUptimeDataPoint(ts pcommon.Timestamp, val int64) { +func (mb *MetricsBuilder) RecordProcessUptimeDataPoint(ts pcommon.Timestamp, val float64) { mb.metricProcessUptime.recordDataPoint(mb.startTime, ts, val) } diff --git a/receiver/hostmetricsreceiver/internal/scraper/processscraper/internal/metadata/generated_metrics_test.go b/receiver/hostmetricsreceiver/internal/scraper/processscraper/internal/metadata/generated_metrics_test.go index c0c99b981e5a1..8616a59960800 100644 --- a/receiver/hostmetricsreceiver/internal/scraper/processscraper/internal/metadata/generated_metrics_test.go +++ b/receiver/hostmetricsreceiver/internal/scraper/processscraper/internal/metadata/generated_metrics_test.go @@ -344,17 +344,15 @@ func TestMetricsBuilder(t *testing.T) { case "process.uptime": assert.False(t, validatedMetrics["process.uptime"], "Found a duplicate in the metrics slice: process.uptime") validatedMetrics["process.uptime"] = true - assert.Equal(t, pmetric.MetricTypeSum, ms.At(i).Type()) - assert.Equal(t, 1, ms.At(i).Sum().DataPoints().Len()) - assert.Equal(t, "The total duration the process has been running for.", ms.At(i).Description()) + assert.Equal(t, pmetric.MetricTypeGauge, ms.At(i).Type()) + assert.Equal(t, 1, ms.At(i).Gauge().DataPoints().Len()) + assert.Equal(t, "The time the process has been running.", ms.At(i).Description()) assert.Equal(t, "s", ms.At(i).Unit()) - assert.False(t, ms.At(i).Sum().IsMonotonic()) - assert.Equal(t, pmetric.AggregationTemporalityCumulative, ms.At(i).Sum().AggregationTemporality()) - dp := ms.At(i).Sum().DataPoints().At(0) + dp := ms.At(i).Gauge().DataPoints().At(0) assert.Equal(t, start, dp.StartTimestamp()) assert.Equal(t, ts, dp.Timestamp()) - assert.Equal(t, pmetric.NumberDataPointValueTypeInt, dp.ValueType()) - assert.Equal(t, int64(1), dp.IntValue()) + assert.Equal(t, pmetric.NumberDataPointValueTypeDouble, dp.ValueType()) + assert.InDelta(t, float64(1), dp.DoubleValue(), 0.01) } } }) diff --git a/receiver/hostmetricsreceiver/internal/scraper/processscraper/metadata.yaml b/receiver/hostmetricsreceiver/internal/scraper/processscraper/metadata.yaml index 908fa62c2f141..b0e9daa917240 100644 --- a/receiver/hostmetricsreceiver/internal/scraper/processscraper/metadata.yaml +++ b/receiver/hostmetricsreceiver/internal/scraper/processscraper/metadata.yaml @@ -210,9 +210,7 @@ metrics: process.uptime: enabled: false - description: The total duration the process has been running for. + description: The time the process has been running. unit: s - sum: - value_type: int - aggregation_temporality: cumulative - monotonic: false + gauge: + value_type: double diff --git a/receiver/hostmetricsreceiver/internal/scraper/processscraper/process_scraper.go b/receiver/hostmetricsreceiver/internal/scraper/processscraper/process_scraper.go index a05cff7ddd744..5671d449ea62a 100644 --- a/receiver/hostmetricsreceiver/internal/scraper/processscraper/process_scraper.go +++ b/receiver/hostmetricsreceiver/internal/scraper/processscraper/process_scraper.go @@ -484,7 +484,7 @@ func (s *processScraper) scrapeAndAppendUptimeMetric(ctx context.Context, now pc // Since create time is in milliseconds, it needs to be multiplied // by the constant value so that it can be used as part of the time.Unix function. uptime := now.AsTime().Sub(time.Unix(0, ts*int64(time.Millisecond))) - s.mb.RecordProcessUptimeDataPoint(now, int64(uptime.Seconds())) + s.mb.RecordProcessUptimeDataPoint(now, uptime.Seconds()) return nil } diff --git a/receiver/hostmetricsreceiver/internal/scraper/processscraper/process_scraper_test.go b/receiver/hostmetricsreceiver/internal/scraper/processscraper/process_scraper_test.go index c7d23ecf187fb..b371dbf0c8dc1 100644 --- a/receiver/hostmetricsreceiver/internal/scraper/processscraper/process_scraper_test.go +++ b/receiver/hostmetricsreceiver/internal/scraper/processscraper/process_scraper_test.go @@ -359,9 +359,9 @@ func assertUptimeMetricValid(t *testing.T, resourceMetrics pmetric.ResourceMetri m := getMetric(t, "process.uptime", resourceMetrics) assert.Equal(t, "process.uptime", m.Name()) - for i := 0; i < m.Sum().DataPoints().Len(); i++ { - dp := m.Sum().DataPoints().At(i) - assert.Equal(t, int64(199), dp.IntValue(), "Must have an uptime of 199s") + for i := 0; i < m.Gauge().DataPoints().Len(); i++ { + dp := m.Gauge().DataPoints().At(i) + assert.Equal(t, float64(199.9), dp.DoubleValue(), "Must have an uptime of 199s") } }