diff --git a/.chloggen/rmobstest-1.yaml b/.chloggen/rmobstest-1.yaml new file mode 100755 index 00000000000..7b1df994d7e --- /dev/null +++ b/.chloggen/rmobstest-1.yaml @@ -0,0 +1,11 @@ +# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' +change_type: breaking + +# The name of the component, or a single word describing the area of concern, (e.g. otlpreceiver) +component: obsreporttest + +# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). +note: Remove deprecate obsreporttest.Check* + +# One or more tracking issues or pull requests related to the change +issues: [6720] diff --git a/.chloggen/rmobstest-2.yaml b/.chloggen/rmobstest-2.yaml new file mode 100755 index 00000000000..1d4f77fd5d2 --- /dev/null +++ b/.chloggen/rmobstest-2.yaml @@ -0,0 +1,11 @@ +# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' +change_type: deprecation + +# The name of the component, or a single word describing the area of concern, (e.g. otlpreceiver) +component: obsreporttest + +# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). +note: Deprecate obsreporttest.SetupTelemetryWithID in favor of obsreporttest.SetupTelemetry + +# One or more tracking issues or pull requests related to the change +issues: [6720] diff --git a/config/configgrpc/configgrpc_test.go b/config/configgrpc/configgrpc_test.go index 683af1a2b80..c2bc8f76037 100644 --- a/config/configgrpc/configgrpc_test.go +++ b/config/configgrpc/configgrpc_test.go @@ -46,7 +46,7 @@ import ( ) func TestDefaultGrpcClientSettings(t *testing.T) { - tt, err := obsreporttest.SetupTelemetryWithID(component.NewID("component")) + tt, err := obsreporttest.SetupTelemetry(component.NewID("component")) require.NoError(t, err) t.Cleanup(func() { require.NoError(t, tt.Shutdown(context.Background())) }) @@ -61,7 +61,7 @@ func TestDefaultGrpcClientSettings(t *testing.T) { } func TestAllGrpcClientSettings(t *testing.T) { - tt, err := obsreporttest.SetupTelemetryWithID(component.NewID("component")) + tt, err := obsreporttest.SetupTelemetry(component.NewID("component")) require.NoError(t, err) t.Cleanup(func() { require.NoError(t, tt.Shutdown(context.Background())) }) @@ -228,7 +228,7 @@ func TestGrpcServerAuthSettings(t *testing.T) { } func TestGRPCClientSettingsError(t *testing.T) { - tt, err := obsreporttest.SetupTelemetryWithID(component.NewID("component")) + tt, err := obsreporttest.SetupTelemetry(component.NewID("component")) require.NoError(t, err) t.Cleanup(func() { require.NoError(t, tt.Shutdown(context.Background())) }) @@ -351,7 +351,7 @@ func TestGRPCClientSettingsError(t *testing.T) { } func TestUseSecure(t *testing.T) { - tt, err := obsreporttest.SetupTelemetryWithID(component.NewID("component")) + tt, err := obsreporttest.SetupTelemetry(component.NewID("component")) require.NoError(t, err) t.Cleanup(func() { require.NoError(t, tt.Shutdown(context.Background())) }) @@ -490,7 +490,7 @@ func TestGRPCServerSettings_ToListener_Error(t *testing.T) { } func TestHttpReception(t *testing.T) { - tt, err := obsreporttest.SetupTelemetryWithID(component.NewID("component")) + tt, err := obsreporttest.SetupTelemetry(component.NewID("component")) require.NoError(t, err) t.Cleanup(func() { require.NoError(t, tt.Shutdown(context.Background())) }) @@ -642,7 +642,7 @@ func TestReceiveOnUnixDomainSocket(t *testing.T) { if runtime.GOOS == "windows" { t.Skip("skipping test on windows") } - tt, err := obsreporttest.SetupTelemetryWithID(component.NewID("component")) + tt, err := obsreporttest.SetupTelemetry(component.NewID("component")) require.NoError(t, err) t.Cleanup(func() { require.NoError(t, tt.Shutdown(context.Background())) }) @@ -871,7 +871,7 @@ func TestClientInfoInterceptors(t *testing.T) { }, } - tt, err := obsreporttest.SetupTelemetryWithID(component.NewID("component")) + tt, err := obsreporttest.SetupTelemetry(component.NewID("component")) require.NoError(t, err) defer func() { require.NoError(t, tt.Shutdown(context.Background())) diff --git a/exporter/exporterhelper/logs_test.go b/exporter/exporterhelper/logs_test.go index c74af4e96db..fd41b35a8b2 100644 --- a/exporter/exporterhelper/logs_test.go +++ b/exporter/exporterhelper/logs_test.go @@ -109,7 +109,7 @@ func TestLogsExporter_Default_ReturnError(t *testing.T) { } func TestLogsExporter_WithRecordLogs(t *testing.T) { - tt, err := obsreporttest.SetupTelemetryWithID(fakeLogsExporterName) + tt, err := obsreporttest.SetupTelemetry(fakeLogsExporterName) require.NoError(t, err) t.Cleanup(func() { require.NoError(t, tt.Shutdown(context.Background())) }) @@ -122,7 +122,7 @@ func TestLogsExporter_WithRecordLogs(t *testing.T) { func TestLogsExporter_WithRecordLogs_ReturnError(t *testing.T) { want := errors.New("my_error") - tt, err := obsreporttest.SetupTelemetryWithID(fakeLogsExporterName) + tt, err := obsreporttest.SetupTelemetry(fakeLogsExporterName) require.NoError(t, err) t.Cleanup(func() { require.NoError(t, tt.Shutdown(context.Background())) }) @@ -134,7 +134,7 @@ func TestLogsExporter_WithRecordLogs_ReturnError(t *testing.T) { } func TestLogsExporter_WithRecordEnqueueFailedMetrics(t *testing.T) { - tt, err := obsreporttest.SetupTelemetryWithID(fakeLogsExporterName) + tt, err := obsreporttest.SetupTelemetry(fakeLogsExporterName) require.NoError(t, err) t.Cleanup(func() { require.NoError(t, tt.Shutdown(context.Background())) }) diff --git a/exporter/exporterhelper/metrics_test.go b/exporter/exporterhelper/metrics_test.go index 910c0424898..9a1a43911b2 100644 --- a/exporter/exporterhelper/metrics_test.go +++ b/exporter/exporterhelper/metrics_test.go @@ -108,7 +108,7 @@ func TestMetricsExporter_Default_ReturnError(t *testing.T) { } func TestMetricsExporter_WithRecordMetrics(t *testing.T) { - tt, err := obsreporttest.SetupTelemetryWithID(fakeMetricsExporterName) + tt, err := obsreporttest.SetupTelemetry(fakeMetricsExporterName) require.NoError(t, err) t.Cleanup(func() { require.NoError(t, tt.Shutdown(context.Background())) }) @@ -121,7 +121,7 @@ func TestMetricsExporter_WithRecordMetrics(t *testing.T) { func TestMetricsExporter_WithRecordMetrics_ReturnError(t *testing.T) { want := errors.New("my_error") - tt, err := obsreporttest.SetupTelemetryWithID(fakeMetricsExporterName) + tt, err := obsreporttest.SetupTelemetry(fakeMetricsExporterName) require.NoError(t, err) t.Cleanup(func() { require.NoError(t, tt.Shutdown(context.Background())) }) @@ -133,7 +133,7 @@ func TestMetricsExporter_WithRecordMetrics_ReturnError(t *testing.T) { } func TestMetricsExporter_WithRecordEnqueueFailedMetrics(t *testing.T) { - tt, err := obsreporttest.SetupTelemetryWithID(fakeMetricsExporterName) + tt, err := obsreporttest.SetupTelemetry(fakeMetricsExporterName) require.NoError(t, err) t.Cleanup(func() { require.NoError(t, tt.Shutdown(context.Background())) }) diff --git a/exporter/exporterhelper/obsreport_test.go b/exporter/exporterhelper/obsreport_test.go index e23c2398f3f..137691bf3ce 100644 --- a/exporter/exporterhelper/obsreport_test.go +++ b/exporter/exporterhelper/obsreport_test.go @@ -29,7 +29,7 @@ import ( func TestExportEnqueueFailure(t *testing.T) { exporter := component.NewID("fakeExporter") - tt, err := obsreporttest.SetupTelemetryWithID(exporter) + tt, err := obsreporttest.SetupTelemetry(exporter) require.NoError(t, err) t.Cleanup(func() { require.NoError(t, tt.Shutdown(context.Background())) }) diff --git a/exporter/exporterhelper/queued_retry_test.go b/exporter/exporterhelper/queued_retry_test.go index ad36c5e44bb..e4e8ec7d8c8 100644 --- a/exporter/exporterhelper/queued_retry_test.go +++ b/exporter/exporterhelper/queued_retry_test.go @@ -312,7 +312,7 @@ func TestQueuedRetry_DropOnFull(t *testing.T) { } func TestQueuedRetryHappyPath(t *testing.T) { - tt, err := obsreporttest.SetupTelemetryWithID(defaultID) + tt, err := obsreporttest.SetupTelemetry(defaultID) require.NoError(t, err) t.Cleanup(func() { require.NoError(t, tt.Shutdown(context.Background())) }) @@ -536,7 +536,7 @@ func TestQueuedRetry_RequeuingEnabledQueueFull(t *testing.T) { } func TestQueuedRetryPersistenceEnabled(t *testing.T) { - tt, err := obsreporttest.SetupTelemetryWithID(defaultID) + tt, err := obsreporttest.SetupTelemetry(defaultID) require.NoError(t, err) t.Cleanup(func() { require.NoError(t, tt.Shutdown(context.Background())) }) @@ -560,7 +560,7 @@ func TestQueuedRetryPersistenceEnabled(t *testing.T) { func TestQueuedRetryPersistenceEnabledStorageError(t *testing.T) { storageError := errors.New("could not get storage client") - tt, err := obsreporttest.SetupTelemetryWithID(defaultID) + tt, err := obsreporttest.SetupTelemetry(defaultID) require.NoError(t, err) t.Cleanup(func() { require.NoError(t, tt.Shutdown(context.Background())) }) diff --git a/exporter/exporterhelper/traces_test.go b/exporter/exporterhelper/traces_test.go index 5455d71a1a4..e0d51b862a3 100644 --- a/exporter/exporterhelper/traces_test.go +++ b/exporter/exporterhelper/traces_test.go @@ -106,7 +106,7 @@ func TestTracesExporter_Default_ReturnError(t *testing.T) { } func TestTracesExporter_WithRecordMetrics(t *testing.T) { - tt, err := obsreporttest.SetupTelemetryWithID(fakeTracesExporterName) + tt, err := obsreporttest.SetupTelemetry(fakeTracesExporterName) require.NoError(t, err) t.Cleanup(func() { require.NoError(t, tt.Shutdown(context.Background())) }) @@ -119,7 +119,7 @@ func TestTracesExporter_WithRecordMetrics(t *testing.T) { func TestTracesExporter_WithRecordMetrics_ReturnError(t *testing.T) { want := errors.New("my_error") - tt, err := obsreporttest.SetupTelemetryWithID(fakeTracesExporterName) + tt, err := obsreporttest.SetupTelemetry(fakeTracesExporterName) require.NoError(t, err) t.Cleanup(func() { require.NoError(t, tt.Shutdown(context.Background())) }) @@ -131,7 +131,7 @@ func TestTracesExporter_WithRecordMetrics_ReturnError(t *testing.T) { } func TestTracesExporter_WithRecordEnqueueFailedMetrics(t *testing.T) { - tt, err := obsreporttest.SetupTelemetryWithID(fakeTracesExporterName) + tt, err := obsreporttest.SetupTelemetry(fakeTracesExporterName) require.NoError(t, err) t.Cleanup(func() { require.NoError(t, tt.Shutdown(context.Background())) }) diff --git a/obsreport/obsreport_exporter.go b/obsreport/obsreport_exporter.go index db203f4dc60..c104153b2a9 100644 --- a/obsreport/obsreport_exporter.go +++ b/obsreport/obsreport_exporter.go @@ -24,12 +24,11 @@ import ( "go.opentelemetry.io/otel/metric/instrument/syncint64" "go.opentelemetry.io/otel/metric/unit" "go.opentelemetry.io/otel/trace" - "go.uber.org/multierr" "go.uber.org/zap" "go.opentelemetry.io/collector/component" + "go.opentelemetry.io/collector/config" "go.opentelemetry.io/collector/config/configtelemetry" - "go.opentelemetry.io/collector/exporter" "go.opentelemetry.io/collector/featuregate" "go.opentelemetry.io/collector/internal/obsreportconfig" "go.opentelemetry.io/collector/internal/obsreportconfig/obsmetrics" @@ -61,16 +60,16 @@ type Exporter struct { // ExporterSettings are settings for creating an Exporter. type ExporterSettings struct { - ExporterID component.ID - ExporterCreateSettings exporter.CreateSettings + ExporterID config.ComponentID + ExporterCreateSettings component.ExporterCreateSettings } // NewExporter creates a new Exporter. -func NewExporter(cfg ExporterSettings) (*Exporter, error) { +func NewExporter(cfg ExporterSettings) *Exporter { return newExporter(cfg, featuregate.GetRegistry()) } -func newExporter(cfg ExporterSettings, registry *featuregate.Registry) (*Exporter, error) { +func newExporter(cfg ExporterSettings, registry *featuregate.Registry) *Exporter { exp := &Exporter{ level: cfg.ExporterCreateSettings.TelemetrySettings.MetricsLevel, spanNamePrefix: obsmetrics.ExporterPrefix + cfg.ExporterID.String(), @@ -84,58 +83,58 @@ func newExporter(cfg ExporterSettings, registry *featuregate.Registry) (*Exporte }, } - if err := exp.createOtelMetrics(cfg); err != nil { - return nil, err - } + exp.createOtelMetrics(cfg) - return exp, nil + return exp } -func (exp *Exporter) createOtelMetrics(cfg ExporterSettings) error { +func (exp *Exporter) createOtelMetrics(cfg ExporterSettings) { if !exp.useOtelForMetrics { - return nil + return } meter := cfg.ExporterCreateSettings.MeterProvider.Meter(exporterScope) - var errors, err error - + var err error + handleError := func(metricName string, err error) { + if err != nil { + exp.logger.Warn("failed to create otel instrument", zap.Error(err), zap.String("metric", metricName)) + } + } exp.sentSpans, err = meter.SyncInt64().Counter( obsmetrics.ExporterPrefix+obsmetrics.SentSpansKey, instrument.WithDescription("Number of spans successfully sent to destination."), instrument.WithUnit(unit.Dimensionless)) - errors = multierr.Append(errors, err) + handleError(obsmetrics.ExporterPrefix+obsmetrics.SentSpansKey, err) exp.failedToSendSpans, err = meter.SyncInt64().Counter( obsmetrics.ExporterPrefix+obsmetrics.FailedToSendSpansKey, instrument.WithDescription("Number of spans in failed attempts to send to destination."), instrument.WithUnit(unit.Dimensionless)) - errors = multierr.Append(errors, err) + handleError(obsmetrics.ExporterPrefix+obsmetrics.FailedToSendSpansKey, err) exp.sentMetricPoints, err = meter.SyncInt64().Counter( obsmetrics.ExporterPrefix+obsmetrics.SentMetricPointsKey, instrument.WithDescription("Number of metric points successfully sent to destination."), instrument.WithUnit(unit.Dimensionless)) - errors = multierr.Append(errors, err) + handleError(obsmetrics.ExporterPrefix+obsmetrics.SentMetricPointsKey, err) exp.failedToSendMetricPoints, err = meter.SyncInt64().Counter( obsmetrics.ExporterPrefix+obsmetrics.FailedToSendMetricPointsKey, instrument.WithDescription("Number of metric points in failed attempts to send to destination."), instrument.WithUnit(unit.Dimensionless)) - errors = multierr.Append(errors, err) + handleError(obsmetrics.ExporterPrefix+obsmetrics.FailedToSendMetricPointsKey, err) exp.sentLogRecords, err = meter.SyncInt64().Counter( obsmetrics.ExporterPrefix+obsmetrics.SentLogRecordsKey, instrument.WithDescription("Number of log record successfully sent to destination."), instrument.WithUnit(unit.Dimensionless)) - errors = multierr.Append(errors, err) + handleError(obsmetrics.ExporterPrefix+obsmetrics.SentLogRecordsKey, err) exp.failedToSendLogRecords, err = meter.SyncInt64().Counter( obsmetrics.ExporterPrefix+obsmetrics.FailedToSendLogRecordsKey, instrument.WithDescription("Number of log records in failed attempts to send to destination."), instrument.WithUnit(unit.Dimensionless)) - errors = multierr.Append(errors, err) - - return errors + handleError(obsmetrics.ExporterPrefix+obsmetrics.FailedToSendLogRecordsKey, err) } // StartTracesOp is called at the start of an Export operation. @@ -148,7 +147,7 @@ func (exp *Exporter) StartTracesOp(ctx context.Context) context.Context { // EndTracesOp completes the export operation that was started with StartTracesOp. func (exp *Exporter) EndTracesOp(ctx context.Context, numSpans int, err error) { numSent, numFailedToSend := toNumItems(numSpans, err) - exp.recordMetrics(ctx, component.DataTypeTraces, numSent, numFailedToSend) + exp.recordMetrics(ctx, config.TracesDataType, numSent, numFailedToSend) endSpan(ctx, err, numSent, numFailedToSend, obsmetrics.SentSpansKey, obsmetrics.FailedToSendSpansKey) } @@ -163,7 +162,7 @@ func (exp *Exporter) StartMetricsOp(ctx context.Context) context.Context { // StartMetricsOp. func (exp *Exporter) EndMetricsOp(ctx context.Context, numMetricPoints int, err error) { numSent, numFailedToSend := toNumItems(numMetricPoints, err) - exp.recordMetrics(ctx, component.DataTypeMetrics, numSent, numFailedToSend) + exp.recordMetrics(ctx, config.MetricsDataType, numSent, numFailedToSend) endSpan(ctx, err, numSent, numFailedToSend, obsmetrics.SentMetricPointsKey, obsmetrics.FailedToSendMetricPointsKey) } @@ -177,7 +176,7 @@ func (exp *Exporter) StartLogsOp(ctx context.Context) context.Context { // EndLogsOp completes the export operation that was started with StartLogsOp. func (exp *Exporter) EndLogsOp(ctx context.Context, numLogRecords int, err error) { numSent, numFailedToSend := toNumItems(numLogRecords, err) - exp.recordMetrics(ctx, component.DataTypeLogs, numSent, numFailedToSend) + exp.recordMetrics(ctx, config.LogsDataType, numSent, numFailedToSend) endSpan(ctx, err, numSent, numFailedToSend, obsmetrics.SentLogRecordsKey, obsmetrics.FailedToSendLogRecordsKey) } @@ -189,7 +188,7 @@ func (exp *Exporter) startOp(ctx context.Context, operationSuffix string) contex return ctx } -func (exp *Exporter) recordMetrics(ctx context.Context, dataType component.DataType, numSent, numFailed int64) { +func (exp *Exporter) recordMetrics(ctx context.Context, dataType config.DataType, numSent, numFailed int64) { if exp.level == configtelemetry.LevelNone { return } @@ -200,16 +199,16 @@ func (exp *Exporter) recordMetrics(ctx context.Context, dataType component.DataT } } -func (exp *Exporter) recordWithOtel(ctx context.Context, dataType component.DataType, sent int64, failed int64) { +func (exp *Exporter) recordWithOtel(ctx context.Context, dataType config.DataType, sent int64, failed int64) { var sentMeasure, failedMeasure syncint64.Counter switch dataType { - case component.DataTypeTraces: + case config.TracesDataType: sentMeasure = exp.sentSpans failedMeasure = exp.failedToSendSpans - case component.DataTypeMetrics: + case config.MetricsDataType: sentMeasure = exp.sentMetricPoints failedMeasure = exp.failedToSendMetricPoints - case component.DataTypeLogs: + case config.LogsDataType: sentMeasure = exp.sentLogRecords failedMeasure = exp.failedToSendLogRecords } @@ -218,16 +217,16 @@ func (exp *Exporter) recordWithOtel(ctx context.Context, dataType component.Data failedMeasure.Add(ctx, failed, exp.otelAttrs...) } -func (exp *Exporter) recordWithOC(ctx context.Context, dataType component.DataType, sent int64, failed int64) { +func (exp *Exporter) recordWithOC(ctx context.Context, dataType config.DataType, sent int64, failed int64) { var sentMeasure, failedMeasure *stats.Int64Measure switch dataType { - case component.DataTypeTraces: + case config.TracesDataType: sentMeasure = obsmetrics.ExporterSentSpans failedMeasure = obsmetrics.ExporterFailedToSendSpans - case component.DataTypeMetrics: + case config.MetricsDataType: sentMeasure = obsmetrics.ExporterSentMetricPoints failedMeasure = obsmetrics.ExporterFailedToSendMetricPoints - case component.DataTypeLogs: + case config.LogsDataType: sentMeasure = obsmetrics.ExporterSentLogRecords failedMeasure = obsmetrics.ExporterFailedToSendLogRecords } @@ -257,4 +256,4 @@ func toNumItems(numExportedItems int, err error) (int64, int64) { return 0, int64(numExportedItems) } return int64(numExportedItems), 0 -} \ No newline at end of file +} diff --git a/obsreport/obsreport_receiver.go b/obsreport/obsreport_receiver.go index 13c886a0aa8..c2fdbb76749 100644 --- a/obsreport/obsreport_receiver.go +++ b/obsreport/obsreport_receiver.go @@ -25,15 +25,14 @@ import ( "go.opentelemetry.io/otel/metric/instrument/syncint64" "go.opentelemetry.io/otel/metric/unit" "go.opentelemetry.io/otel/trace" - "go.uber.org/multierr" "go.uber.org/zap" "go.opentelemetry.io/collector/component" + "go.opentelemetry.io/collector/config" "go.opentelemetry.io/collector/config/configtelemetry" "go.opentelemetry.io/collector/featuregate" "go.opentelemetry.io/collector/internal/obsreportconfig" "go.opentelemetry.io/collector/internal/obsreportconfig/obsmetrics" - "go.opentelemetry.io/collector/receiver" ) const ( @@ -42,7 +41,7 @@ const ( receiverScope = scopeName + nameSep + receiverName ) -// Receiver is a helper to add observability to a receiver.Receiver. +// Receiver is a helper to add observability to a component.Receiver. type Receiver struct { level configtelemetry.Level spanNamePrefix string @@ -66,7 +65,7 @@ type Receiver struct { // ReceiverSettings are settings for creating an Receiver. type ReceiverSettings struct { - ReceiverID component.ID + ReceiverID config.ComponentID Transport string // LongLivedCtx when true indicates that the context passed in the call // outlives the individual receive operation. @@ -74,15 +73,15 @@ type ReceiverSettings struct { // eg.: a gRPC stream, for which many batches of data are received in individual // operations without a corresponding new context per operation. LongLivedCtx bool - ReceiverCreateSettings receiver.CreateSettings + ReceiverCreateSettings component.ReceiverCreateSettings } // NewReceiver creates a new Receiver. -func NewReceiver(cfg ReceiverSettings) (*Receiver, error) { +func NewReceiver(cfg ReceiverSettings) *Receiver { return newReceiver(cfg, featuregate.GetRegistry()) } -func newReceiver(cfg ReceiverSettings, registry *featuregate.Registry) (*Receiver, error) { +func newReceiver(cfg ReceiverSettings, registry *featuregate.Registry) *Receiver { rec := &Receiver{ level: cfg.ReceiverCreateSettings.TelemetrySettings.MetricsLevel, spanNamePrefix: obsmetrics.ReceiverPrefix + cfg.ReceiverID.String(), @@ -103,63 +102,64 @@ func newReceiver(cfg ReceiverSettings, registry *featuregate.Registry) (*Receive }, } - if err := rec.createOtelMetrics(); err != nil { - return nil, err - } + rec.createOtelMetrics() - return rec, nil + return rec } -func (rec *Receiver) createOtelMetrics() error { +func (rec *Receiver) createOtelMetrics() { if !rec.useOtelForMetrics { - return nil + return } - var errors, err error + var err error + handleError := func(metricName string, err error) { + if err != nil { + rec.logger.Warn("failed to create otel instrument", zap.Error(err), zap.String("metric", metricName)) + } + } rec.acceptedSpansCounter, err = rec.meter.SyncInt64().Counter( obsmetrics.ReceiverPrefix+obsmetrics.AcceptedSpansKey, instrument.WithDescription("Number of spans successfully pushed into the pipeline."), instrument.WithUnit(unit.Dimensionless), ) - errors = multierr.Append(errors, err) + handleError(obsmetrics.ReceiverPrefix+obsmetrics.AcceptedSpansKey, err) rec.refusedSpansCounter, err = rec.meter.SyncInt64().Counter( obsmetrics.ReceiverPrefix+obsmetrics.RefusedSpansKey, instrument.WithDescription("Number of spans that could not be pushed into the pipeline."), instrument.WithUnit(unit.Dimensionless), ) - errors = multierr.Append(errors, err) + handleError(obsmetrics.ReceiverPrefix+obsmetrics.RefusedSpansKey, err) rec.acceptedMetricPointsCounter, err = rec.meter.SyncInt64().Counter( obsmetrics.ReceiverPrefix+obsmetrics.AcceptedMetricPointsKey, instrument.WithDescription("Number of metric points successfully pushed into the pipeline."), instrument.WithUnit(unit.Dimensionless), ) - errors = multierr.Append(errors, err) + handleError(obsmetrics.ReceiverPrefix+obsmetrics.AcceptedMetricPointsKey, err) rec.refusedMetricPointsCounter, err = rec.meter.SyncInt64().Counter( obsmetrics.ReceiverPrefix+obsmetrics.RefusedMetricPointsKey, instrument.WithDescription("Number of metric points that could not be pushed into the pipeline."), instrument.WithUnit(unit.Dimensionless), ) - errors = multierr.Append(errors, err) + handleError(obsmetrics.ReceiverPrefix+obsmetrics.RefusedMetricPointsKey, err) rec.acceptedLogRecordsCounter, err = rec.meter.SyncInt64().Counter( obsmetrics.ReceiverPrefix+obsmetrics.AcceptedLogRecordsKey, instrument.WithDescription("Number of log records successfully pushed into the pipeline."), instrument.WithUnit(unit.Dimensionless), ) - errors = multierr.Append(errors, err) + handleError(obsmetrics.ReceiverPrefix+obsmetrics.AcceptedLogRecordsKey, err) rec.refusedLogRecordsCounter, err = rec.meter.SyncInt64().Counter( obsmetrics.ReceiverPrefix+obsmetrics.RefusedLogRecordsKey, instrument.WithDescription("Number of log records that could not be pushed into the pipeline."), instrument.WithUnit(unit.Dimensionless), ) - errors = multierr.Append(errors, err) - - return errors + handleError(obsmetrics.ReceiverPrefix+obsmetrics.RefusedLogRecordsKey, err) } // StartTracesOp is called when a request is received from a client. @@ -177,7 +177,7 @@ func (rec *Receiver) EndTracesOp( numReceivedSpans int, err error, ) { - rec.endOp(receiverCtx, format, numReceivedSpans, err, component.DataTypeTraces) + rec.endOp(receiverCtx, format, numReceivedSpans, err, config.TracesDataType) } // StartLogsOp is called when a request is received from a client. @@ -195,7 +195,7 @@ func (rec *Receiver) EndLogsOp( numReceivedLogRecords int, err error, ) { - rec.endOp(receiverCtx, format, numReceivedLogRecords, err, component.DataTypeLogs) + rec.endOp(receiverCtx, format, numReceivedLogRecords, err, config.LogsDataType) } // StartMetricsOp is called when a request is received from a client. @@ -213,7 +213,7 @@ func (rec *Receiver) EndMetricsOp( numReceivedPoints int, err error, ) { - rec.endOp(receiverCtx, format, numReceivedPoints, err, component.DataTypeMetrics) + rec.endOp(receiverCtx, format, numReceivedPoints, err, config.MetricsDataType) } // startOp creates the span used to trace the operation. Returning @@ -247,7 +247,7 @@ func (rec *Receiver) endOp( format string, numReceivedItems int, err error, - dataType component.DataType, + dataType config.DataType, ) { numAccepted := numReceivedItems numRefused := 0 @@ -266,13 +266,13 @@ func (rec *Receiver) endOp( if span.IsRecording() { var acceptedItemsKey, refusedItemsKey string switch dataType { - case component.DataTypeTraces: + case config.TracesDataType: acceptedItemsKey = obsmetrics.AcceptedSpansKey refusedItemsKey = obsmetrics.RefusedSpansKey - case component.DataTypeMetrics: + case config.MetricsDataType: acceptedItemsKey = obsmetrics.AcceptedMetricPointsKey refusedItemsKey = obsmetrics.RefusedMetricPointsKey - case component.DataTypeLogs: + case config.LogsDataType: acceptedItemsKey = obsmetrics.AcceptedLogRecordsKey refusedItemsKey = obsmetrics.RefusedLogRecordsKey } @@ -287,7 +287,7 @@ func (rec *Receiver) endOp( span.End() } -func (rec *Receiver) recordMetrics(receiverCtx context.Context, dataType component.DataType, numAccepted, numRefused int) { +func (rec *Receiver) recordMetrics(receiverCtx context.Context, dataType config.DataType, numAccepted, numRefused int) { if rec.useOtelForMetrics { rec.recordWithOtel(receiverCtx, dataType, numAccepted, numRefused) } else { @@ -295,16 +295,16 @@ func (rec *Receiver) recordMetrics(receiverCtx context.Context, dataType compone } } -func (rec *Receiver) recordWithOtel(receiverCtx context.Context, dataType component.DataType, numAccepted, numRefused int) { +func (rec *Receiver) recordWithOtel(receiverCtx context.Context, dataType config.DataType, numAccepted, numRefused int) { var acceptedMeasure, refusedMeasure syncint64.Counter switch dataType { - case component.DataTypeTraces: + case config.TracesDataType: acceptedMeasure = rec.acceptedSpansCounter refusedMeasure = rec.refusedSpansCounter - case component.DataTypeMetrics: + case config.MetricsDataType: acceptedMeasure = rec.acceptedMetricPointsCounter refusedMeasure = rec.refusedMetricPointsCounter - case component.DataTypeLogs: + case config.LogsDataType: acceptedMeasure = rec.acceptedLogRecordsCounter refusedMeasure = rec.refusedLogRecordsCounter } @@ -313,16 +313,16 @@ func (rec *Receiver) recordWithOtel(receiverCtx context.Context, dataType compon refusedMeasure.Add(receiverCtx, int64(numRefused), rec.otelAttrs...) } -func (rec *Receiver) recordWithOC(receiverCtx context.Context, dataType component.DataType, numAccepted, numRefused int) { +func (rec *Receiver) recordWithOC(receiverCtx context.Context, dataType config.DataType, numAccepted, numRefused int) { var acceptedMeasure, refusedMeasure *stats.Int64Measure switch dataType { - case component.DataTypeTraces: + case config.TracesDataType: acceptedMeasure = obsmetrics.ReceiverAcceptedSpans refusedMeasure = obsmetrics.ReceiverRefusedSpans - case component.DataTypeMetrics: + case config.MetricsDataType: acceptedMeasure = obsmetrics.ReceiverAcceptedMetricPoints refusedMeasure = obsmetrics.ReceiverRefusedMetricPoints - case component.DataTypeLogs: + case config.LogsDataType: acceptedMeasure = obsmetrics.ReceiverAcceptedLogRecords refusedMeasure = obsmetrics.ReceiverRefusedLogRecords } diff --git a/obsreport/obsreport_scraper.go b/obsreport/obsreport_scraper.go index aacea4725c5..fe70977b6be 100644 --- a/obsreport/obsreport_scraper.go +++ b/obsreport/obsreport_scraper.go @@ -21,57 +21,34 @@ import ( "go.opencensus.io/stats" "go.opencensus.io/tag" "go.opentelemetry.io/otel/attribute" - "go.opentelemetry.io/otel/metric/instrument" - "go.opentelemetry.io/otel/metric/instrument/syncint64" - "go.opentelemetry.io/otel/metric/unit" "go.opentelemetry.io/otel/trace" - "go.uber.org/multierr" - "go.uber.org/zap" "go.opentelemetry.io/collector/component" + "go.opentelemetry.io/collector/config" "go.opentelemetry.io/collector/config/configtelemetry" - "go.opentelemetry.io/collector/featuregate" - "go.opentelemetry.io/collector/internal/obsreportconfig" "go.opentelemetry.io/collector/internal/obsreportconfig/obsmetrics" - "go.opentelemetry.io/collector/receiver" "go.opentelemetry.io/collector/receiver/scrapererror" ) -var ( - scraperName = "scraper" - scraperScope = scopeName + nameSep + scraperName -) - // Scraper is a helper to add observability to a component.Scraper. type Scraper struct { level configtelemetry.Level - receiverID component.ID - scraper component.ID + receiverID config.ComponentID + scraper config.ComponentID mutators []tag.Mutator tracer trace.Tracer - - logger *zap.Logger - - useOtelForMetrics bool - otelAttrs []attribute.KeyValue - scrapedMetricsPoints syncint64.Counter - erroredMetricsPoints syncint64.Counter } // ScraperSettings are settings for creating a Scraper. type ScraperSettings struct { - ReceiverID component.ID - Scraper component.ID - ReceiverCreateSettings receiver.CreateSettings + ReceiverID config.ComponentID + Scraper config.ComponentID + ReceiverCreateSettings component.ReceiverCreateSettings } // NewScraper creates a new Scraper. -func NewScraper(cfg ScraperSettings) (*Scraper, error) { - return newScraper(cfg, featuregate.GetRegistry()) -} - -func newScraper(cfg ScraperSettings, registry *featuregate.Registry) (*Scraper, error) { - scraper := &Scraper{ +func NewScraper(cfg ScraperSettings) *Scraper { + return &Scraper{ level: cfg.ReceiverCreateSettings.TelemetrySettings.MetricsLevel, receiverID: cfg.ReceiverID, scraper: cfg.Scraper, @@ -79,45 +56,7 @@ func newScraper(cfg ScraperSettings, registry *featuregate.Registry) (*Scraper, tag.Upsert(obsmetrics.TagKeyReceiver, cfg.ReceiverID.String(), tag.WithTTL(tag.TTLNoPropagation)), tag.Upsert(obsmetrics.TagKeyScraper, cfg.Scraper.String(), tag.WithTTL(tag.TTLNoPropagation))}, tracer: cfg.ReceiverCreateSettings.TracerProvider.Tracer(cfg.Scraper.String()), - - logger: cfg.ReceiverCreateSettings.Logger, - useOtelForMetrics: registry.IsEnabled(obsreportconfig.UseOtelForInternalMetricsfeatureGateID), - otelAttrs: []attribute.KeyValue{ - attribute.String(obsmetrics.ReceiverKey, cfg.ReceiverID.String()), - attribute.String(obsmetrics.ScraperKey, cfg.Scraper.String()), - }, } - - if err := scraper.createOtelMetrics(cfg); err != nil { - return nil, err - } - - return scraper, nil -} - -func (s *Scraper) createOtelMetrics(cfg ScraperSettings) error { - if !s.useOtelForMetrics { - return nil - } - meter := cfg.ReceiverCreateSettings.MeterProvider.Meter(scraperScope) - - var errors, err error - - s.scrapedMetricsPoints, err = meter.SyncInt64().Counter( - obsmetrics.ScraperPrefix+obsmetrics.ScrapedMetricPointsKey, - instrument.WithDescription("Number of metric points successfully scraped."), - instrument.WithUnit(unit.Dimensionless), - ) - errors = multierr.Append(errors, err) - - s.erroredMetricsPoints, err = meter.SyncInt64().Counter( - obsmetrics.ScraperPrefix+obsmetrics.ErroredMetricPointsKey, - instrument.WithDescription("Number of metric points that were unable to be scraped."), - instrument.WithUnit(unit.Dimensionless), - ) - errors = multierr.Append(errors, err) - - return errors } // StartMetricsOp is called when a scrape operation is started. The @@ -152,13 +91,16 @@ func (s *Scraper) EndMetricsOp( span := trace.SpanFromContext(scraperCtx) if s.level != configtelemetry.LevelNone { - s.recordMetrics(scraperCtx, numScrapedMetrics, numErroredMetrics) + stats.Record( + scraperCtx, + obsmetrics.ScraperScrapedMetricPoints.M(int64(numScrapedMetrics)), + obsmetrics.ScraperErroredMetricPoints.M(int64(numErroredMetrics))) } // end span according to errors if span.IsRecording() { span.SetAttributes( - attribute.String(obsmetrics.FormatKey, string(component.DataTypeMetrics)), + attribute.String(obsmetrics.FormatKey, string(config.MetricsDataType)), attribute.Int64(obsmetrics.ScrapedMetricPointsKey, int64(numScrapedMetrics)), attribute.Int64(obsmetrics.ErroredMetricPointsKey, int64(numErroredMetrics)), ) @@ -167,15 +109,3 @@ func (s *Scraper) EndMetricsOp( span.End() } - -func (s *Scraper) recordMetrics(scraperCtx context.Context, numScrapedMetrics, numErroredMetrics int) { - if s.useOtelForMetrics { - s.scrapedMetricsPoints.Add(scraperCtx, int64(numScrapedMetrics), s.otelAttrs...) - s.erroredMetricsPoints.Add(scraperCtx, int64(numErroredMetrics), s.otelAttrs...) - } else { // OC for metrics - stats.Record( - scraperCtx, - obsmetrics.ScraperScrapedMetricPoints.M(int64(numScrapedMetrics)), - obsmetrics.ScraperErroredMetricPoints.M(int64(numErroredMetrics))) - } -} \ No newline at end of file diff --git a/obsreport/obsreporttest/otelprometheuschecker.go b/obsreport/obsreporttest/otelprometheuschecker.go index 3eb16f6b8f5..d189d3037e8 100644 --- a/obsreport/obsreporttest/otelprometheuschecker.go +++ b/obsreport/obsreporttest/otelprometheuschecker.go @@ -26,7 +26,7 @@ import ( "go.opentelemetry.io/otel/attribute" "go.uber.org/multierr" - "go.opentelemetry.io/collector/component" + "go.opentelemetry.io/collector/config" ) // prometheusChecker is used to assert exported metrics from a prometheus handler. @@ -34,73 +34,42 @@ type prometheusChecker struct { promHandler http.Handler } -func (pc *prometheusChecker) checkScraperMetrics(receiver component.ID, scraper component.ID, scrapedMetricPoints, erroredMetricPoints int64) error { - scraperAttrs := attributesForScraperMetrics(receiver, scraper) - return multierr.Combine( - pc.checkCounter("scraper_scraped_metric_points", scrapedMetricPoints, scraperAttrs), - pc.checkCounter("scraper_errored_metric_points", erroredMetricPoints, scraperAttrs)) -} - -func (pc *prometheusChecker) checkReceiverTraces(receiver component.ID, protocol string, acceptedSpans, droppedSpans int64) error { +func (pc *prometheusChecker) checkReceiverTraces(receiver config.ComponentID, protocol string, acceptedSpans, droppedSpans int64) error { receiverAttrs := attributesForReceiverMetrics(receiver, protocol) return multierr.Combine( pc.checkCounter("receiver_accepted_spans", acceptedSpans, receiverAttrs), pc.checkCounter("receiver_refused_spans", droppedSpans, receiverAttrs)) } -func (pc *prometheusChecker) checkReceiverLogs(receiver component.ID, protocol string, acceptedLogRecords, droppedLogRecords int64) error { +func (pc *prometheusChecker) checkReceiverLogs(receiver config.ComponentID, protocol string, acceptedLogRecords, droppedLogRecords int64) error { receiverAttrs := attributesForReceiverMetrics(receiver, protocol) return multierr.Combine( pc.checkCounter("receiver_accepted_log_records", acceptedLogRecords, receiverAttrs), pc.checkCounter("receiver_refused_log_records", droppedLogRecords, receiverAttrs)) } -func (pc *prometheusChecker) checkReceiverMetrics(receiver component.ID, protocol string, acceptedMetricPoints, droppedMetricPoints int64) error { +func (pc *prometheusChecker) checkReceiverMetrics(receiver config.ComponentID, protocol string, acceptedMetricPoints, droppedMetricPoints int64) error { receiverAttrs := attributesForReceiverMetrics(receiver, protocol) return multierr.Combine( pc.checkCounter("receiver_accepted_metric_points", acceptedMetricPoints, receiverAttrs), pc.checkCounter("receiver_refused_metric_points", droppedMetricPoints, receiverAttrs)) } -func (pc *prometheusChecker) checkProcessorTraces(processor component.ID, acceptedSpans, refusedSpans, droppedSpans int64) error { - processorAttrs := attributesForProcessorMetrics(processor) - return multierr.Combine( - pc.checkCounter("processor_accepted_spans", acceptedSpans, processorAttrs), - pc.checkCounter("processor_refused_spans", refusedSpans, processorAttrs), - pc.checkCounter("processor_dropped_spans", droppedSpans, processorAttrs)) -} - -func (pc *prometheusChecker) checkProcessorMetrics(processor component.ID, acceptedMetricPoints, refusedMetricPoints, droppedMetricPoints int64) error { - processorAttrs := attributesForProcessorMetrics(processor) - return multierr.Combine( - pc.checkCounter("processor_accepted_metric_points", acceptedMetricPoints, processorAttrs), - pc.checkCounter("processor_refused_metric_points", refusedMetricPoints, processorAttrs), - pc.checkCounter("processor_dropped_metric_points", droppedMetricPoints, processorAttrs)) -} - -func (pc *prometheusChecker) checkProcessorLogs(processor component.ID, acceptedLogRecords, refusedLogRecords, droppedLogRecords int64) error { - processorAttrs := attributesForProcessorMetrics(processor) - return multierr.Combine( - pc.checkCounter("processor_accepted_log_records", acceptedLogRecords, processorAttrs), - pc.checkCounter("processor_refused_log_records", refusedLogRecords, processorAttrs), - pc.checkCounter("processor_dropped_log_records", droppedLogRecords, processorAttrs)) -} - -func (pc *prometheusChecker) checkExporterTraces(exporter component.ID, sentSpans, sendFailedSpans int64) error { +func (pc *prometheusChecker) checkExporterTraces(exporter config.ComponentID, sentSpans, sendFailedSpans int64) error { exporterAttrs := attributesForExporterMetrics(exporter) return multierr.Combine( pc.checkCounter("exporter_sent_spans", sentSpans, exporterAttrs), pc.checkCounter("exporter_send_failed_spans", sendFailedSpans, exporterAttrs)) } -func (pc *prometheusChecker) checkExporterLogs(exporter component.ID, sentLogRecords, sendFailedLogRecords int64) error { +func (pc *prometheusChecker) checkExporterLogs(exporter config.ComponentID, sentLogRecords, sendFailedLogRecords int64) error { exporterAttrs := attributesForExporterMetrics(exporter) return multierr.Combine( pc.checkCounter("exporter_sent_log_records", sentLogRecords, exporterAttrs), pc.checkCounter("exporter_send_failed_log_records", sendFailedLogRecords, exporterAttrs)) } -func (pc *prometheusChecker) checkExporterMetrics(exporter component.ID, sentMetricPoints, sendFailedMetricPoints int64) error { +func (pc *prometheusChecker) checkExporterMetrics(exporter config.ComponentID, sentMetricPoints, sendFailedMetricPoints int64) error { exporterAttrs := attributesForExporterMetrics(exporter) return multierr.Combine( pc.checkCounter("exporter_sent_metric_points", sentMetricPoints, exporterAttrs), @@ -176,26 +145,17 @@ func fetchPrometheusMetrics(handler http.Handler) (map[string]*io_prometheus_cli return parser.TextToMetricFamilies(rr.Body) } -func attributesForScraperMetrics(receiver component.ID, scraper component.ID) []attribute.KeyValue { +// attributesForReceiverMetrics returns the attributes that are needed for the receiver metrics. +func attributesForReceiverMetrics(receiver config.ComponentID, transport string) []attribute.KeyValue { return []attribute.KeyValue{ - attribute.String(receiverTag, receiver.String()), - attribute.String(scraperTag, scraper.String()), + attribute.String(receiverTag.Name(), receiver.String()), + attribute.String(transportTag.Name(), transport), } } // attributesForReceiverMetrics returns the attributes that are needed for the receiver metrics. -func attributesForReceiverMetrics(receiver component.ID, transport string) []attribute.KeyValue { +func attributesForExporterMetrics(exporter config.ComponentID) []attribute.KeyValue { return []attribute.KeyValue{ - attribute.String(receiverTag, receiver.String()), - attribute.String(transportTag, transport), + attribute.String(exporterTag.Name(), exporter.String()), } } - -func attributesForProcessorMetrics(processor component.ID) []attribute.KeyValue { - return []attribute.KeyValue{attribute.String(processorTag, processor.String())} -} - -// attributesForReceiverMetrics returns the attributes that are needed for the receiver metrics. -func attributesForExporterMetrics(exporter component.ID) []attribute.KeyValue { - return []attribute.KeyValue{attribute.String(exporterTag, exporter.String())} -} \ No newline at end of file diff --git a/obsreport/obsreporttest/otelprometheuschecker_test.go b/obsreport/obsreporttest/otelprometheuschecker_test.go index 0787621994d..ac5027e4ac9 100644 --- a/obsreport/obsreporttest/otelprometheuschecker_test.go +++ b/obsreport/obsreporttest/otelprometheuschecker_test.go @@ -16,41 +16,66 @@ package obsreporttest // import "go.opentelemetry.io/collector/obsreport/obsrepo import ( "net/http" - "os" - "path/filepath" - "strings" "testing" "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" "go.opentelemetry.io/otel/attribute" - "go.opentelemetry.io/collector/component" + "go.opentelemetry.io/collector/config" ) -func newStubPromChecker() (prometheusChecker, error) { - promBytes, err := os.ReadFile(filepath.Join("testdata", "prometheus_response")) - if err != nil { - return prometheusChecker{}, err - } - - promResponse := strings.ReplaceAll(string(promBytes), "\r\n", "\n") - +func newStubPromChecker() prometheusChecker { return prometheusChecker{ promHandler: http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { - _, _ = w.Write([]byte(promResponse)) + _, _ = w.Write([]byte(` +# HELP exporter_send_failed_spans Number of spans in failed attempts to send to destination. +# TYPE exporter_send_failed_spans counter +exporter_send_failed_spans{exporter="fakeExporter"} 14 +# HELP exporter_sent_spans Number of spans successfully sent to destination. +# TYPE exporter_sent_spans counter +exporter_sent_spans{exporter="fakeExporter"} 43 +# HELP exporter_send_failed_metric_points Number of metrics in failed attempts to send to destination. +# TYPE exporter_send_failed_metric_points counter +exporter_send_failed_metric_points{exporter="fakeExporter"} 42 +# HELP exporter_sent_metric_points Number of metrics successfully sent to destination. +# TYPE exporter_sent_metric_points counter +exporter_sent_metric_points{exporter="fakeExporter"} 8 +# HELP exporter_send_failed_log_records Number of logs in failed attempts to send to destination. +# TYPE exporter_send_failed_log_records counter +exporter_send_failed_log_records{exporter="fakeExporter"} 36 +# HELP exporter_sent_log_records Number of logs successfully sent to destination. +# TYPE exporter_sent_log_records counter +exporter_sent_log_records{exporter="fakeExporter"} 103 +# HELP receiver_accepted_log_records Number of log records successfully pushed into the pipeline. +# TYPE receiver_accepted_log_records counter +receiver_accepted_log_records{receiver="fakeReceiver",transport="fakeTransport"} 102 +# HELP receiver_accepted_metric_points Number of metric points successfully pushed into the pipeline. +# TYPE receiver_accepted_metric_points counter +receiver_accepted_metric_points{receiver="fakeReceiver",transport="fakeTransport"} 7 +# HELP receiver_accepted_spans Number of spans successfully pushed into the pipeline. +# TYPE receiver_accepted_spans counter +receiver_accepted_spans{receiver="fakeReceiver",transport="fakeTransport"} 42 +# HELP receiver_refused_log_records Number of log records that could not be pushed into the pipeline. +# TYPE receiver_refused_log_records counter +receiver_refused_log_records{receiver="fakeReceiver",transport="fakeTransport"} 35 +# HELP receiver_refused_metric_points Number of metric points that could not be pushed into the pipeline. +# TYPE receiver_refused_metric_points counter +receiver_refused_metric_points{receiver="fakeReceiver",transport="fakeTransport"} 41 +# HELP receiver_refused_spans Number of spans that could not be pushed into the pipeline. +# TYPE receiver_refused_spans counter +receiver_refused_spans{receiver="fakeReceiver",transport="fakeTransport"} 13 +# HELP gauge_metric A simple gauge metric +# TYPE gauge_metric gauge +gauge_metric 49 +`)) }), - }, nil + } } func TestPromChecker(t *testing.T) { - pc, err := newStubPromChecker() - require.NoError(t, err) - - scraper := component.NewID("fakeScraper") - receiver := component.NewID("fakeReceiver") - processor := component.NewID("fakeProcessor") - exporter := component.NewID("fakeExporter") + pc := newStubPromChecker() + receiver := config.NewComponentID("fakeReceiver") + exporter := config.NewComponentID("fakeExporter") transport := "fakeTransport" assert.NoError(t, @@ -78,11 +103,6 @@ func TestPromChecker(t *testing.T) { "invalid metric type should return error", ) - assert.NoError(t, - pc.checkScraperMetrics(receiver, scraper, 7, 41), - "metrics from Scraper Metrics should be valid", - ) - assert.NoError(t, pc.checkReceiverTraces(receiver, transport, 42, 13), "metrics from Receiver Traces should be valid", @@ -98,21 +118,6 @@ func TestPromChecker(t *testing.T) { "metrics from Receiver Logs should be valid", ) - assert.NoError(t, - pc.checkProcessorTraces(processor, 42, 13, 7), - "metrics from Receiver Traces should be valid", - ) - - assert.NoError(t, - pc.checkProcessorMetrics(processor, 7, 41, 13), - "metrics from Receiver Metrics should be valid", - ) - - assert.NoError(t, - pc.checkProcessorLogs(processor, 102, 35, 14), - "metrics from Receiver Logs should be valid", - ) - assert.NoError(t, pc.checkExporterTraces(exporter, 43, 14), "metrics from Exporter Traces should be valid", diff --git a/receiver/otlpreceiver/otlp_test.go b/receiver/otlpreceiver/otlp_test.go index fb16ddb4a4f..37b7674ec7b 100644 --- a/receiver/otlpreceiver/otlp_test.go +++ b/receiver/otlpreceiver/otlp_test.go @@ -671,7 +671,7 @@ func TestOTLPReceiverTrace_HandleNextConsumerResponse(t *testing.T) { for _, exporter := range exporters { for _, test := range tests { t.Run(test.name+"/"+exporter.receiverTag, func(t *testing.T) { - tt, err := obsreporttest.SetupTelemetryWithID(component.NewIDWithName(typeStr, exporter.receiverTag)) + tt, err := obsreporttest.SetupTelemetry(component.NewIDWithName(typeStr, exporter.receiverTag)) require.NoError(t, err) t.Cleanup(func() { require.NoError(t, tt.Shutdown(context.Background())) }) diff --git a/receiver/scraperhelper/scrapercontroller_test.go b/receiver/scraperhelper/scrapercontroller_test.go index f3e11b90854..1410f882620 100644 --- a/receiver/scraperhelper/scrapercontroller_test.go +++ b/receiver/scraperhelper/scrapercontroller_test.go @@ -136,7 +136,7 @@ func TestScrapeController(t *testing.T) { for _, test := range testCases { t.Run(test.name, func(t *testing.T) { - tt, err := obsreporttest.SetupTelemetryWithID(component.NewID("receiver")) + tt, err := obsreporttest.SetupTelemetry(component.NewID("receiver")) require.NoError(t, err) t.Cleanup(func() { require.NoError(t, tt.Shutdown(context.Background())) })