From fb8bb93121cd8dfd7bb24cd38edf743624dfb6ee Mon Sep 17 00:00:00 2001 From: Bogdan Drutu Date: Thu, 30 Jan 2025 11:04:27 -0800 Subject: [PATCH] Add helper to get a metric for componentest.Telemetry (#12215) Signed-off-by: Bogdan Drutu --- .chloggen/add-get-metrics.yaml | 25 +++++++ .../metadatatest/generated_telemetrytest.go | 21 +++--- .../internal/templates/telemetrytest.go.tmpl | 9 +-- component/componenttest/obsreporttest.go | 20 ++--- component/componenttest/otelchecker.go | 74 +++++++------------ component/componenttest/telemetry.go | 18 +++++ .../metadatatest/generated_telemetrytest.go | 39 +++++----- .../metadatatest/generated_telemetrytest.go | 21 +++--- .../metadatatest/generated_telemetrytest.go | 24 +++--- .../metadatatest/generated_telemetrytest.go | 12 +-- .../metadatatest/generated_telemetrytest.go | 24 +++--- .../metadatatest/generated_telemetrytest.go | 18 ++--- .../metadatatest/generated_telemetrytest.go | 24 +++--- 13 files changed, 173 insertions(+), 156 deletions(-) create mode 100644 .chloggen/add-get-metrics.yaml diff --git a/.chloggen/add-get-metrics.yaml b/.chloggen/add-get-metrics.yaml new file mode 100644 index 00000000000..85693f53a74 --- /dev/null +++ b/.chloggen/add-get-metrics.yaml @@ -0,0 +1,25 @@ +# Use this changelog template to create an entry for release notes. + +# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' +change_type: enhancement + +# The name of the component, or a single word describing the area of concern, (e.g. otlpreceiver) +component: componenttest + +# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). +note: Add helper to get a metric for componentest.Telemetry + +# One or more tracking issues or pull requests related to the change +issues: [12215] + +# (Optional) One or more lines of additional information to render under the primary note. +# These lines will be padded with 2 spaces and then inserted directly into the document. +# Use pipe (|) for multiline entries. +subtext: + +# Optional: The change log or logs in which this entry should be included. +# e.g. '[user]' or '[user, api]' +# Include 'user' if the change is relevant to end users. +# Include 'api' if there is a change to a library API. +# Default: '[user]' +change_logs: [api] diff --git a/cmd/mdatagen/internal/samplereceiver/internal/metadatatest/generated_telemetrytest.go b/cmd/mdatagen/internal/samplereceiver/internal/metadatatest/generated_telemetrytest.go index baa09b571fa..4509442e366 100644 --- a/cmd/mdatagen/internal/samplereceiver/internal/metadatatest/generated_telemetrytest.go +++ b/cmd/mdatagen/internal/samplereceiver/internal/metadatatest/generated_telemetrytest.go @@ -55,7 +55,8 @@ func AssertEqualBatchSizeTriggerSend(t *testing.T, tt componenttest.Telemetry, d DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_batch_size_trigger_send") + got, err := tt.GetMetric("otelcol_batch_size_trigger_send") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -70,7 +71,8 @@ func AssertEqualProcessRuntimeTotalAllocBytes(t *testing.T, tt componenttest.Tel DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_process_runtime_total_alloc_bytes") + got, err := tt.GetMetric("otelcol_process_runtime_total_alloc_bytes") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -83,7 +85,8 @@ func AssertEqualQueueCapacity(t *testing.T, tt componenttest.Telemetry, dps []me DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_queue_capacity") + got, err := tt.GetMetric("otelcol_queue_capacity") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -96,7 +99,8 @@ func AssertEqualQueueLength(t *testing.T, tt componenttest.Telemetry, dps []metr DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_queue_length") + got, err := tt.GetMetric("otelcol_queue_length") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -110,16 +114,11 @@ func AssertEqualRequestDuration(t *testing.T, tt componenttest.Telemetry, dps [] DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_request_duration") + got, err := tt.GetMetric("otelcol_request_duration") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } -func getMetric(t *testing.T, tt componenttest.Telemetry, name string) metricdata.Metrics { - var md metricdata.ResourceMetrics - require.NoError(t, tt.Reader.Collect(context.Background(), &md)) - return getMetricFromResource(name, md) -} - func getMetricFromResource(name string, got metricdata.ResourceMetrics) metricdata.Metrics { for _, sm := range got.ScopeMetrics { for _, m := range sm.Metrics { diff --git a/cmd/mdatagen/internal/templates/telemetrytest.go.tmpl b/cmd/mdatagen/internal/templates/telemetrytest.go.tmpl index 480c098aaea..97816a9a2bf 100644 --- a/cmd/mdatagen/internal/templates/telemetrytest.go.tmpl +++ b/cmd/mdatagen/internal/templates/telemetrytest.go.tmpl @@ -67,18 +67,13 @@ func AssertEqual{{ $name.Render }}(t *testing.T, tt componenttest.Telemetry, dps DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_{{ $name }}") + got, err := tt.GetMetric("otelcol_{{ $name }}") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } {{- end }} -func getMetric(t *testing.T, tt componenttest.Telemetry, name string) metricdata.Metrics { - var md metricdata.ResourceMetrics - require.NoError(t, tt.Reader.Collect(context.Background(), &md)) - return getMetricFromResource(name, md) -} - func getMetricFromResource(name string, got metricdata.ResourceMetrics) metricdata.Metrics { for _, sm := range got.ScopeMetrics { for _, m := range sm.Metrics { diff --git a/component/componenttest/obsreporttest.go b/component/componenttest/obsreporttest.go index d74fb97a24d..7e1c9dd343a 100644 --- a/component/componenttest/obsreporttest.go +++ b/component/componenttest/obsreporttest.go @@ -33,55 +33,55 @@ type TestTelemetry struct { // Deprecated: [v0.119.0] use the metadatatest.AssertEqualMetric series of functions instead. // CheckExporterTraces checks that for the current exported values for trace exporter metrics match given values. func (tts *TestTelemetry) CheckExporterTraces(sentSpans, sendFailedSpans int64) error { - return checkExporterTraces(tts.Reader, tts.id, sentSpans, sendFailedSpans) + return checkExporterTraces(&tts.Telemetry, tts.id, sentSpans, sendFailedSpans) } // Deprecated: [v0.119.0] use the metadatatest.AssertEqualMetric series of functions instead. // CheckExporterMetrics checks that for the current exported values for metrics exporter metrics match given values. func (tts *TestTelemetry) CheckExporterMetrics(sentMetricsPoints, sendFailedMetricsPoints int64) error { - return checkExporterMetrics(tts.Reader, tts.id, sentMetricsPoints, sendFailedMetricsPoints) + return checkExporterMetrics(&tts.Telemetry, tts.id, sentMetricsPoints, sendFailedMetricsPoints) } // Deprecated: [v0.119.0] use the metadatatest.AssertEqualMetric series of functions instead. func (tts *TestTelemetry) CheckExporterEnqueueFailedMetrics(enqueueFailed int64) error { - return checkExporterEnqueueFailed(tts.Reader, tts.id, "metric_points", enqueueFailed) + return checkExporterEnqueueFailed(&tts.Telemetry, tts.id, "metric_points", enqueueFailed) } // Deprecated: [v0.119.0] use the metadatatest.AssertEqualMetric series of functions instead. func (tts *TestTelemetry) CheckExporterEnqueueFailedTraces(enqueueFailed int64) error { - return checkExporterEnqueueFailed(tts.Reader, tts.id, "spans", enqueueFailed) + return checkExporterEnqueueFailed(&tts.Telemetry, tts.id, "spans", enqueueFailed) } // Deprecated: [v0.119.0] use the metadatatest.AssertEqualMetric series of functions instead. func (tts *TestTelemetry) CheckExporterEnqueueFailedLogs(enqueueFailed int64) error { - return checkExporterEnqueueFailed(tts.Reader, tts.id, "log_records", enqueueFailed) + return checkExporterEnqueueFailed(&tts.Telemetry, tts.id, "log_records", enqueueFailed) } // Deprecated: [v0.119.0] use the metadatatest.AssertEqualMetric series of functions instead. // CheckExporterLogs checks that for the current exported values for logs exporter metrics match given values. func (tts *TestTelemetry) CheckExporterLogs(sentLogRecords, sendFailedLogRecords int64) error { - return checkExporterLogs(tts.Reader, tts.id, sentLogRecords, sendFailedLogRecords) + return checkExporterLogs(&tts.Telemetry, tts.id, sentLogRecords, sendFailedLogRecords) } func (tts *TestTelemetry) CheckExporterMetricGauge(metric string, val int64, extraAttrs ...attribute.KeyValue) error { attrs := attributesForExporterMetrics(tts.id, extraAttrs...) - return checkIntGauge(tts.Reader, metric, val, attrs) + return checkIntGauge(&tts.Telemetry, metric, val, attrs) } // CheckReceiverTraces checks that for the current exported values for trace receiver metrics match given values. func (tts *TestTelemetry) CheckReceiverTraces(protocol string, acceptedSpans, droppedSpans int64) error { - return checkReceiverTraces(tts.Reader, tts.id, protocol, acceptedSpans, droppedSpans) + return checkReceiverTraces(&tts.Telemetry, tts.id, protocol, acceptedSpans, droppedSpans) } // Deprecated: [v0.119.0] use the metadatatest.AssertEqualMetric series of functions instead. // CheckReceiverLogs checks that for the current exported values for logs receiver metrics match given values. func (tts *TestTelemetry) CheckReceiverLogs(protocol string, acceptedLogRecords, droppedLogRecords int64) error { - return checkReceiverLogs(tts.Reader, tts.id, protocol, acceptedLogRecords, droppedLogRecords) + return checkReceiverLogs(&tts.Telemetry, tts.id, protocol, acceptedLogRecords, droppedLogRecords) } // CheckReceiverMetrics checks that for the current exported values for metrics receiver metrics match given values. func (tts *TestTelemetry) CheckReceiverMetrics(protocol string, acceptedMetricPoints, droppedMetricPoints int64) error { - return checkReceiverMetrics(tts.Reader, tts.id, protocol, acceptedMetricPoints, droppedMetricPoints) + return checkReceiverMetrics(&tts.Telemetry, tts.id, protocol, acceptedMetricPoints, droppedMetricPoints) } // TelemetrySettings returns the TestTelemetry's TelemetrySettings diff --git a/component/componenttest/otelchecker.go b/component/componenttest/otelchecker.go index 9a5aa113c54..eb029af33de 100644 --- a/component/componenttest/otelchecker.go +++ b/component/componenttest/otelchecker.go @@ -4,68 +4,66 @@ package componenttest // import "go.opentelemetry.io/collector/component/componenttest" import ( - "context" "fmt" "go.opentelemetry.io/otel/attribute" - sdkmetric "go.opentelemetry.io/otel/sdk/metric" "go.opentelemetry.io/otel/sdk/metric/metricdata" "go.uber.org/multierr" "go.opentelemetry.io/collector/component" ) -func checkReceiverTraces(reader *sdkmetric.ManualReader, receiver component.ID, protocol string, accepted, dropped int64) error { - return checkReceiver(reader, receiver, "spans", protocol, accepted, dropped) +func checkReceiverTraces(tel *Telemetry, receiver component.ID, protocol string, accepted, dropped int64) error { + return checkReceiver(tel, receiver, "spans", protocol, accepted, dropped) } -func checkReceiverLogs(reader *sdkmetric.ManualReader, receiver component.ID, protocol string, accepted, dropped int64) error { - return checkReceiver(reader, receiver, "log_records", protocol, accepted, dropped) +func checkReceiverLogs(tel *Telemetry, receiver component.ID, protocol string, accepted, dropped int64) error { + return checkReceiver(tel, receiver, "log_records", protocol, accepted, dropped) } -func checkReceiverMetrics(reader *sdkmetric.ManualReader, receiver component.ID, protocol string, accepted, dropped int64) error { - return checkReceiver(reader, receiver, "metric_points", protocol, accepted, dropped) +func checkReceiverMetrics(tel *Telemetry, receiver component.ID, protocol string, accepted, dropped int64) error { + return checkReceiver(tel, receiver, "metric_points", protocol, accepted, dropped) } -func checkReceiver(reader *sdkmetric.ManualReader, receiver component.ID, datatype, protocol string, acceptedMetricPoints, droppedMetricPoints int64) error { +func checkReceiver(tel *Telemetry, receiver component.ID, datatype, protocol string, acceptedMetricPoints, droppedMetricPoints int64) error { receiverAttrs := attributesForReceiverMetrics(receiver, protocol) return multierr.Combine( - checkIntSum(reader, "otelcol_receiver_accepted_"+datatype, acceptedMetricPoints, receiverAttrs), - checkIntSum(reader, "otelcol_receiver_refused_"+datatype, droppedMetricPoints, receiverAttrs)) + checkIntSum(tel, "otelcol_receiver_accepted_"+datatype, acceptedMetricPoints, receiverAttrs), + checkIntSum(tel, "otelcol_receiver_refused_"+datatype, droppedMetricPoints, receiverAttrs)) } -func checkExporterTraces(reader *sdkmetric.ManualReader, exporter component.ID, sent, sendFailed int64) error { - return checkExporter(reader, exporter, "spans", sent, sendFailed) +func checkExporterTraces(tel *Telemetry, exporter component.ID, sent, sendFailed int64) error { + return checkExporter(tel, exporter, "spans", sent, sendFailed) } -func checkExporterLogs(reader *sdkmetric.ManualReader, exporter component.ID, sent, sendFailed int64) error { - return checkExporter(reader, exporter, "log_records", sent, sendFailed) +func checkExporterLogs(tel *Telemetry, exporter component.ID, sent, sendFailed int64) error { + return checkExporter(tel, exporter, "log_records", sent, sendFailed) } -func checkExporterMetrics(reader *sdkmetric.ManualReader, exporter component.ID, sent, sendFailed int64) error { - return checkExporter(reader, exporter, "metric_points", sent, sendFailed) +func checkExporterMetrics(tel *Telemetry, exporter component.ID, sent, sendFailed int64) error { + return checkExporter(tel, exporter, "metric_points", sent, sendFailed) } -func checkExporter(reader *sdkmetric.ManualReader, exporter component.ID, datatype string, sent, sendFailed int64) error { +func checkExporter(tel *Telemetry, exporter component.ID, datatype string, sent, sendFailed int64) error { exporterAttrs := attributesForExporterMetrics(exporter) - errs := checkIntSum(reader, "otelcol_exporter_sent_"+datatype, sent, exporterAttrs) + errs := checkIntSum(tel, "otelcol_exporter_sent_"+datatype, sent, exporterAttrs) if sendFailed > 0 { errs = multierr.Append(errs, - checkIntSum(reader, "otelcol_exporter_send_failed_"+datatype, sendFailed, exporterAttrs)) + checkIntSum(tel, "otelcol_exporter_send_failed_"+datatype, sendFailed, exporterAttrs)) } return errs } -func checkExporterEnqueueFailed(reader *sdkmetric.ManualReader, exporter component.ID, datatype string, enqueueFailed int64) error { +func checkExporterEnqueueFailed(tel *Telemetry, exporter component.ID, datatype string, enqueueFailed int64) error { if enqueueFailed == 0 { return nil } exporterAttrs := attributesForExporterMetrics(exporter) - return checkIntSum(reader, "otelcol_exporter_enqueue_failed_"+datatype, enqueueFailed, exporterAttrs) + return checkIntSum(tel, "otelcol_exporter_enqueue_failed_"+datatype, enqueueFailed, exporterAttrs) } -func checkIntGauge(reader *sdkmetric.ManualReader, metric string, expected int64, expectedAttrs attribute.Set) error { - dp, err := getGaugeDataPoint[int64](reader, metric, expectedAttrs) +func checkIntGauge(tel *Telemetry, metric string, expected int64, expectedAttrs attribute.Set) error { + dp, err := getGaugeDataPoint[int64](tel, metric, expectedAttrs) if err != nil { return err } @@ -77,8 +75,8 @@ func checkIntGauge(reader *sdkmetric.ManualReader, metric string, expected int64 return nil } -func checkIntSum(reader *sdkmetric.ManualReader, expectedMetric string, expected int64, expectedAttrs attribute.Set) error { - dp, err := getSumDataPoint[int64](reader, expectedMetric, expectedAttrs) +func checkIntSum(tel *Telemetry, expectedMetric string, expected int64, expectedAttrs attribute.Set) error { + dp, err := getSumDataPoint[int64](tel, expectedMetric, expectedAttrs) if err != nil { return err } @@ -90,8 +88,8 @@ func checkIntSum(reader *sdkmetric.ManualReader, expectedMetric string, expected return nil } -func getSumDataPoint[N int64 | float64](reader *sdkmetric.ManualReader, expectedName string, expectedAttrs attribute.Set) (metricdata.DataPoint[N], error) { - m, err := getMetric(reader, expectedName) +func getSumDataPoint[N int64 | float64](tel *Telemetry, expectedName string, expectedAttrs attribute.Set) (metricdata.DataPoint[N], error) { + m, err := tel.GetMetric(expectedName) if err != nil { return metricdata.DataPoint[N]{}, err } @@ -104,8 +102,8 @@ func getSumDataPoint[N int64 | float64](reader *sdkmetric.ManualReader, expected } } -func getGaugeDataPoint[N int64 | float64](reader *sdkmetric.ManualReader, expectedName string, expectedAttrs attribute.Set) (metricdata.DataPoint[N], error) { - m, err := getMetric(reader, expectedName) +func getGaugeDataPoint[N int64 | float64](tel *Telemetry, expectedName string, expectedAttrs attribute.Set) (metricdata.DataPoint[N], error) { + m, err := tel.GetMetric(expectedName) if err != nil { return metricdata.DataPoint[N]{}, err } @@ -127,22 +125,6 @@ func getDataPoint[N int64 | float64](dps []metricdata.DataPoint[N], expectedName return metricdata.DataPoint[N]{}, fmt.Errorf("metric '%s' doesn't have a data point with the given attributes: %s", expectedName, expectedAttrs.Encoded(attribute.DefaultEncoder())) } -func getMetric(reader *sdkmetric.ManualReader, expectedName string) (metricdata.Metrics, error) { - var rm metricdata.ResourceMetrics - if err := reader.Collect(context.Background(), &rm); err != nil { - return metricdata.Metrics{}, err - } - - for _, sm := range rm.ScopeMetrics { - for _, m := range sm.Metrics { - if m.Name == expectedName { - return m, nil - } - } - } - return metricdata.Metrics{}, fmt.Errorf("metric '%s' not found", expectedName) -} - // attributesForReceiverMetrics returns the attributes that are needed for the receiver metrics. func attributesForReceiverMetrics(receiver component.ID, transport string) attribute.Set { return attribute.NewSet( diff --git a/component/componenttest/telemetry.go b/component/componenttest/telemetry.go index 2be20efbe21..589964de414 100644 --- a/component/componenttest/telemetry.go +++ b/component/componenttest/telemetry.go @@ -6,8 +6,10 @@ package componenttest // import "go.opentelemetry.io/collector/component/compone import ( "context" "errors" + "fmt" sdkmetric "go.opentelemetry.io/otel/sdk/metric" + "go.opentelemetry.io/otel/sdk/metric/metricdata" sdktrace "go.opentelemetry.io/otel/sdk/trace" "go.opentelemetry.io/otel/sdk/trace/tracetest" @@ -73,6 +75,22 @@ func (tt *Telemetry) NewTelemetrySettings() component.TelemetrySettings { return set } +func (tt *Telemetry) GetMetric(name string) (metricdata.Metrics, error) { + var rm metricdata.ResourceMetrics + if err := tt.Reader.Collect(context.Background(), &rm); err != nil { + return metricdata.Metrics{}, err + } + + for _, sm := range rm.ScopeMetrics { + for _, m := range sm.Metrics { + if m.Name == name { + return m, nil + } + } + } + return metricdata.Metrics{}, fmt.Errorf("metric '%s' not found", name) +} + func (tt *Telemetry) Shutdown(ctx context.Context) error { return errors.Join( tt.meterProvider.Shutdown(ctx), diff --git a/exporter/exporterhelper/internal/metadatatest/generated_telemetrytest.go b/exporter/exporterhelper/internal/metadatatest/generated_telemetrytest.go index cdbe846dfe0..a841ba81052 100644 --- a/exporter/exporterhelper/internal/metadatatest/generated_telemetrytest.go +++ b/exporter/exporterhelper/internal/metadatatest/generated_telemetrytest.go @@ -55,7 +55,8 @@ func AssertEqualExporterEnqueueFailedLogRecords(t *testing.T, tt componenttest.T DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_exporter_enqueue_failed_log_records") + got, err := tt.GetMetric("otelcol_exporter_enqueue_failed_log_records") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -70,7 +71,8 @@ func AssertEqualExporterEnqueueFailedMetricPoints(t *testing.T, tt componenttest DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_exporter_enqueue_failed_metric_points") + got, err := tt.GetMetric("otelcol_exporter_enqueue_failed_metric_points") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -85,7 +87,8 @@ func AssertEqualExporterEnqueueFailedSpans(t *testing.T, tt componenttest.Teleme DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_exporter_enqueue_failed_spans") + got, err := tt.GetMetric("otelcol_exporter_enqueue_failed_spans") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -98,7 +101,8 @@ func AssertEqualExporterQueueCapacity(t *testing.T, tt componenttest.Telemetry, DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_exporter_queue_capacity") + got, err := tt.GetMetric("otelcol_exporter_queue_capacity") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -111,7 +115,8 @@ func AssertEqualExporterQueueSize(t *testing.T, tt componenttest.Telemetry, dps DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_exporter_queue_size") + got, err := tt.GetMetric("otelcol_exporter_queue_size") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -126,7 +131,8 @@ func AssertEqualExporterSendFailedLogRecords(t *testing.T, tt componenttest.Tele DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_exporter_send_failed_log_records") + got, err := tt.GetMetric("otelcol_exporter_send_failed_log_records") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -141,7 +147,8 @@ func AssertEqualExporterSendFailedMetricPoints(t *testing.T, tt componenttest.Te DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_exporter_send_failed_metric_points") + got, err := tt.GetMetric("otelcol_exporter_send_failed_metric_points") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -156,7 +163,8 @@ func AssertEqualExporterSendFailedSpans(t *testing.T, tt componenttest.Telemetry DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_exporter_send_failed_spans") + got, err := tt.GetMetric("otelcol_exporter_send_failed_spans") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -171,7 +179,8 @@ func AssertEqualExporterSentLogRecords(t *testing.T, tt componenttest.Telemetry, DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_exporter_sent_log_records") + got, err := tt.GetMetric("otelcol_exporter_sent_log_records") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -186,7 +195,8 @@ func AssertEqualExporterSentMetricPoints(t *testing.T, tt componenttest.Telemetr DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_exporter_sent_metric_points") + got, err := tt.GetMetric("otelcol_exporter_sent_metric_points") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -201,16 +211,11 @@ func AssertEqualExporterSentSpans(t *testing.T, tt componenttest.Telemetry, dps DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_exporter_sent_spans") + got, err := tt.GetMetric("otelcol_exporter_sent_spans") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } -func getMetric(t *testing.T, tt componenttest.Telemetry, name string) metricdata.Metrics { - var md metricdata.ResourceMetrics - require.NoError(t, tt.Reader.Collect(context.Background(), &md)) - return getMetricFromResource(name, md) -} - func getMetricFromResource(name string, got metricdata.ResourceMetrics) metricdata.Metrics { for _, sm := range got.ScopeMetrics { for _, m := range sm.Metrics { diff --git a/processor/batchprocessor/internal/metadatatest/generated_telemetrytest.go b/processor/batchprocessor/internal/metadatatest/generated_telemetrytest.go index 1be69ee3db3..cfecd4d1ff0 100644 --- a/processor/batchprocessor/internal/metadatatest/generated_telemetrytest.go +++ b/processor/batchprocessor/internal/metadatatest/generated_telemetrytest.go @@ -54,7 +54,8 @@ func AssertEqualProcessorBatchBatchSendSize(t *testing.T, tt componenttest.Telem DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_processor_batch_batch_send_size") + got, err := tt.GetMetric("otelcol_processor_batch_batch_send_size") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -68,7 +69,8 @@ func AssertEqualProcessorBatchBatchSendSizeBytes(t *testing.T, tt componenttest. DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_processor_batch_batch_send_size_bytes") + got, err := tt.GetMetric("otelcol_processor_batch_batch_send_size_bytes") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -83,7 +85,8 @@ func AssertEqualProcessorBatchBatchSizeTriggerSend(t *testing.T, tt componenttes DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_processor_batch_batch_size_trigger_send") + got, err := tt.GetMetric("otelcol_processor_batch_batch_size_trigger_send") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -98,7 +101,8 @@ func AssertEqualProcessorBatchMetadataCardinality(t *testing.T, tt componenttest DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_processor_batch_metadata_cardinality") + got, err := tt.GetMetric("otelcol_processor_batch_metadata_cardinality") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -113,16 +117,11 @@ func AssertEqualProcessorBatchTimeoutTriggerSend(t *testing.T, tt componenttest. DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_processor_batch_timeout_trigger_send") + got, err := tt.GetMetric("otelcol_processor_batch_timeout_trigger_send") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } -func getMetric(t *testing.T, tt componenttest.Telemetry, name string) metricdata.Metrics { - var md metricdata.ResourceMetrics - require.NoError(t, tt.Reader.Collect(context.Background(), &md)) - return getMetricFromResource(name, md) -} - func getMetricFromResource(name string, got metricdata.ResourceMetrics) metricdata.Metrics { for _, sm := range got.ScopeMetrics { for _, m := range sm.Metrics { diff --git a/processor/memorylimiterprocessor/internal/metadatatest/generated_telemetrytest.go b/processor/memorylimiterprocessor/internal/metadatatest/generated_telemetrytest.go index 7df7ff2ee4e..64724b5d0cc 100644 --- a/processor/memorylimiterprocessor/internal/metadatatest/generated_telemetrytest.go +++ b/processor/memorylimiterprocessor/internal/metadatatest/generated_telemetrytest.go @@ -55,7 +55,8 @@ func AssertEqualProcessorAcceptedLogRecords(t *testing.T, tt componenttest.Telem DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_processor_accepted_log_records") + got, err := tt.GetMetric("otelcol_processor_accepted_log_records") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -70,7 +71,8 @@ func AssertEqualProcessorAcceptedMetricPoints(t *testing.T, tt componenttest.Tel DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_processor_accepted_metric_points") + got, err := tt.GetMetric("otelcol_processor_accepted_metric_points") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -85,7 +87,8 @@ func AssertEqualProcessorAcceptedSpans(t *testing.T, tt componenttest.Telemetry, DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_processor_accepted_spans") + got, err := tt.GetMetric("otelcol_processor_accepted_spans") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -100,7 +103,8 @@ func AssertEqualProcessorRefusedLogRecords(t *testing.T, tt componenttest.Teleme DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_processor_refused_log_records") + got, err := tt.GetMetric("otelcol_processor_refused_log_records") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -115,7 +119,8 @@ func AssertEqualProcessorRefusedMetricPoints(t *testing.T, tt componenttest.Tele DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_processor_refused_metric_points") + got, err := tt.GetMetric("otelcol_processor_refused_metric_points") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -130,16 +135,11 @@ func AssertEqualProcessorRefusedSpans(t *testing.T, tt componenttest.Telemetry, DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_processor_refused_spans") + got, err := tt.GetMetric("otelcol_processor_refused_spans") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } -func getMetric(t *testing.T, tt componenttest.Telemetry, name string) metricdata.Metrics { - var md metricdata.ResourceMetrics - require.NoError(t, tt.Reader.Collect(context.Background(), &md)) - return getMetricFromResource(name, md) -} - func getMetricFromResource(name string, got metricdata.ResourceMetrics) metricdata.Metrics { for _, sm := range got.ScopeMetrics { for _, m := range sm.Metrics { diff --git a/processor/processorhelper/internal/metadatatest/generated_telemetrytest.go b/processor/processorhelper/internal/metadatatest/generated_telemetrytest.go index cfae75b36e2..8a724c35a90 100644 --- a/processor/processorhelper/internal/metadatatest/generated_telemetrytest.go +++ b/processor/processorhelper/internal/metadatatest/generated_telemetrytest.go @@ -55,7 +55,8 @@ func AssertEqualProcessorIncomingItems(t *testing.T, tt componenttest.Telemetry, DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_processor_incoming_items") + got, err := tt.GetMetric("otelcol_processor_incoming_items") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -70,16 +71,11 @@ func AssertEqualProcessorOutgoingItems(t *testing.T, tt componenttest.Telemetry, DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_processor_outgoing_items") + got, err := tt.GetMetric("otelcol_processor_outgoing_items") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } -func getMetric(t *testing.T, tt componenttest.Telemetry, name string) metricdata.Metrics { - var md metricdata.ResourceMetrics - require.NoError(t, tt.Reader.Collect(context.Background(), &md)) - return getMetricFromResource(name, md) -} - func getMetricFromResource(name string, got metricdata.ResourceMetrics) metricdata.Metrics { for _, sm := range got.ScopeMetrics { for _, m := range sm.Metrics { diff --git a/receiver/receiverhelper/internal/metadatatest/generated_telemetrytest.go b/receiver/receiverhelper/internal/metadatatest/generated_telemetrytest.go index 448782ada8f..b94847dd273 100644 --- a/receiver/receiverhelper/internal/metadatatest/generated_telemetrytest.go +++ b/receiver/receiverhelper/internal/metadatatest/generated_telemetrytest.go @@ -55,7 +55,8 @@ func AssertEqualReceiverAcceptedLogRecords(t *testing.T, tt componenttest.Teleme DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_receiver_accepted_log_records") + got, err := tt.GetMetric("otelcol_receiver_accepted_log_records") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -70,7 +71,8 @@ func AssertEqualReceiverAcceptedMetricPoints(t *testing.T, tt componenttest.Tele DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_receiver_accepted_metric_points") + got, err := tt.GetMetric("otelcol_receiver_accepted_metric_points") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -85,7 +87,8 @@ func AssertEqualReceiverAcceptedSpans(t *testing.T, tt componenttest.Telemetry, DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_receiver_accepted_spans") + got, err := tt.GetMetric("otelcol_receiver_accepted_spans") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -100,7 +103,8 @@ func AssertEqualReceiverRefusedLogRecords(t *testing.T, tt componenttest.Telemet DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_receiver_refused_log_records") + got, err := tt.GetMetric("otelcol_receiver_refused_log_records") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -115,7 +119,8 @@ func AssertEqualReceiverRefusedMetricPoints(t *testing.T, tt componenttest.Telem DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_receiver_refused_metric_points") + got, err := tt.GetMetric("otelcol_receiver_refused_metric_points") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -130,16 +135,11 @@ func AssertEqualReceiverRefusedSpans(t *testing.T, tt componenttest.Telemetry, d DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_receiver_refused_spans") + got, err := tt.GetMetric("otelcol_receiver_refused_spans") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } -func getMetric(t *testing.T, tt componenttest.Telemetry, name string) metricdata.Metrics { - var md metricdata.ResourceMetrics - require.NoError(t, tt.Reader.Collect(context.Background(), &md)) - return getMetricFromResource(name, md) -} - func getMetricFromResource(name string, got metricdata.ResourceMetrics) metricdata.Metrics { for _, sm := range got.ScopeMetrics { for _, m := range sm.Metrics { diff --git a/scraper/scraperhelper/internal/metadatatest/generated_telemetrytest.go b/scraper/scraperhelper/internal/metadatatest/generated_telemetrytest.go index cf3605ac8e9..c8ca1f77752 100644 --- a/scraper/scraperhelper/internal/metadatatest/generated_telemetrytest.go +++ b/scraper/scraperhelper/internal/metadatatest/generated_telemetrytest.go @@ -45,7 +45,8 @@ func AssertEqualScraperErroredLogRecords(t *testing.T, tt componenttest.Telemetr DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_scraper_errored_log_records") + got, err := tt.GetMetric("otelcol_scraper_errored_log_records") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -60,7 +61,8 @@ func AssertEqualScraperErroredMetricPoints(t *testing.T, tt componenttest.Teleme DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_scraper_errored_metric_points") + got, err := tt.GetMetric("otelcol_scraper_errored_metric_points") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -75,7 +77,8 @@ func AssertEqualScraperScrapedLogRecords(t *testing.T, tt componenttest.Telemetr DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_scraper_scraped_log_records") + got, err := tt.GetMetric("otelcol_scraper_scraped_log_records") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -90,16 +93,11 @@ func AssertEqualScraperScrapedMetricPoints(t *testing.T, tt componenttest.Teleme DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_scraper_scraped_metric_points") + got, err := tt.GetMetric("otelcol_scraper_scraped_metric_points") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } -func getMetric(t *testing.T, tt componenttest.Telemetry, name string) metricdata.Metrics { - var md metricdata.ResourceMetrics - require.NoError(t, tt.Reader.Collect(context.Background(), &md)) - return getMetricFromResource(name, md) -} - func getMetricFromResource(name string, got metricdata.ResourceMetrics) metricdata.Metrics { for _, sm := range got.ScopeMetrics { for _, m := range sm.Metrics { diff --git a/service/internal/metadatatest/generated_telemetrytest.go b/service/internal/metadatatest/generated_telemetrytest.go index 0c1d98388d2..c119d5e7be3 100644 --- a/service/internal/metadatatest/generated_telemetrytest.go +++ b/service/internal/metadatatest/generated_telemetrytest.go @@ -45,7 +45,8 @@ func AssertEqualProcessCPUSeconds(t *testing.T, tt componenttest.Telemetry, dps DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_process_cpu_seconds") + got, err := tt.GetMetric("otelcol_process_cpu_seconds") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -58,7 +59,8 @@ func AssertEqualProcessMemoryRss(t *testing.T, tt componenttest.Telemetry, dps [ DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_process_memory_rss") + got, err := tt.GetMetric("otelcol_process_memory_rss") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -71,7 +73,8 @@ func AssertEqualProcessRuntimeHeapAllocBytes(t *testing.T, tt componenttest.Tele DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_process_runtime_heap_alloc_bytes") + got, err := tt.GetMetric("otelcol_process_runtime_heap_alloc_bytes") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -86,7 +89,8 @@ func AssertEqualProcessRuntimeTotalAllocBytes(t *testing.T, tt componenttest.Tel DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_process_runtime_total_alloc_bytes") + got, err := tt.GetMetric("otelcol_process_runtime_total_alloc_bytes") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -99,7 +103,8 @@ func AssertEqualProcessRuntimeTotalSysMemoryBytes(t *testing.T, tt componenttest DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_process_runtime_total_sys_memory_bytes") + got, err := tt.GetMetric("otelcol_process_runtime_total_sys_memory_bytes") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } @@ -114,16 +119,11 @@ func AssertEqualProcessUptime(t *testing.T, tt componenttest.Telemetry, dps []me DataPoints: dps, }, } - got := getMetric(t, tt, "otelcol_process_uptime") + got, err := tt.GetMetric("otelcol_process_uptime") + require.NoError(t, err) metricdatatest.AssertEqual(t, want, got, opts...) } -func getMetric(t *testing.T, tt componenttest.Telemetry, name string) metricdata.Metrics { - var md metricdata.ResourceMetrics - require.NoError(t, tt.Reader.Collect(context.Background(), &md)) - return getMetricFromResource(name, md) -} - func getMetricFromResource(name string, got metricdata.ResourceMetrics) metricdata.Metrics { for _, sm := range got.ScopeMetrics { for _, m := range sm.Metrics {