Skip to content

Commit

Permalink
Remove deprecate obsreporttest.Check*; Deprecate SetupTelemetryWithID (
Browse files Browse the repository at this point in the history
…open-telemetry#6720)

Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>

Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
  • Loading branch information
jaronoff97 committed Dec 14, 2022
1 parent d8be368 commit 0cedbf3
Show file tree
Hide file tree
Showing 15 changed files with 189 additions and 273 deletions.
11 changes: 11 additions & 0 deletions .chloggen/rmobstest-1.yaml
Original file line number Diff line number Diff line change
@@ -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]
11 changes: 11 additions & 0 deletions .chloggen/rmobstest-2.yaml
Original file line number Diff line number Diff line change
@@ -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]
14 changes: 7 additions & 7 deletions config/configgrpc/configgrpc_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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())) })

Expand All @@ -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())) })

Expand Down Expand Up @@ -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())) })

Expand Down Expand Up @@ -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())) })

Expand Down Expand Up @@ -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())) })

Expand Down Expand Up @@ -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())) })

Expand Down Expand Up @@ -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()))
Expand Down
6 changes: 3 additions & 3 deletions exporter/exporterhelper/logs_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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())) })

Expand All @@ -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())) })

Expand All @@ -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())) })

Expand Down
6 changes: 3 additions & 3 deletions exporter/exporterhelper/metrics_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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())) })

Expand All @@ -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())) })

Expand All @@ -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())) })

Expand Down
2 changes: 1 addition & 1 deletion exporter/exporterhelper/obsreport_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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())) })

Expand Down
6 changes: 3 additions & 3 deletions exporter/exporterhelper/queued_retry_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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())) })

Expand Down Expand Up @@ -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())) })

Expand All @@ -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())) })

Expand Down
6 changes: 3 additions & 3 deletions exporter/exporterhelper/traces_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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())) })

Expand All @@ -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())) })

Expand All @@ -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())) })

Expand Down
69 changes: 34 additions & 35 deletions obsreport/obsreport_exporter.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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(),
Expand All @@ -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.
Expand All @@ -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)
}

Expand All @@ -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)
}

Expand All @@ -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)
}

Expand All @@ -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
}
Expand All @@ -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
}
Expand All @@ -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
}
Expand Down Expand Up @@ -257,4 +256,4 @@ func toNumItems(numExportedItems int, err error) (int64, int64) {
return 0, int64(numExportedItems)
}
return int64(numExportedItems), 0
}
}
Loading

0 comments on commit 0cedbf3

Please sign in to comment.