@@ -11,7 +11,6 @@ import (
11
11
"go.opentelemetry.io/otel/metric"
12
12
"go.opentelemetry.io/otel/trace"
13
13
14
- "go.opentelemetry.io/collector/component"
15
14
"go.opentelemetry.io/collector/exporter"
16
15
"go.opentelemetry.io/collector/exporter/exporterhelper/internal/metadata"
17
16
"go.opentelemetry.io/collector/pipeline"
@@ -23,28 +22,32 @@ type ObsReport struct {
23
22
tracer trace.Tracer
24
23
Signal pipeline.Signal
25
24
26
- otelAttrs metric.MeasurementOption
25
+ spanAttrs trace.SpanStartEventOption
26
+ metricsAttrs metric.MeasurementOption
27
27
TelemetryBuilder * metadata.TelemetryBuilder
28
28
}
29
29
30
30
// ObsReportSettings are settings for creating an ObsReport.
31
31
type ObsReportSettings struct {
32
- ExporterID component.ID
33
- ExporterCreateSettings exporter.Settings
34
- Signal pipeline.Signal
32
+ ExporterSettings exporter.Settings
33
+ Signal pipeline.Signal
35
34
}
36
35
37
- func NewExporter (cfg ObsReportSettings ) (* ObsReport , error ) {
38
- telemetryBuilder , err := metadata .NewTelemetryBuilder (cfg . ExporterCreateSettings .TelemetrySettings )
36
+ func NewExporter (set ObsReportSettings ) (* ObsReport , error ) {
37
+ telemetryBuilder , err := metadata .NewTelemetryBuilder (set . ExporterSettings .TelemetrySettings )
39
38
if err != nil {
40
39
return nil , err
41
40
}
42
41
42
+ idStr := set .ExporterSettings .ID .String ()
43
+ expAttr := attribute .String (ExporterKey , idStr )
44
+
43
45
return & ObsReport {
44
- spanNamePrefix : ExporterPrefix + cfg .ExporterID .String (),
45
- tracer : cfg .ExporterCreateSettings .TracerProvider .Tracer (cfg .ExporterID .String ()),
46
- Signal : cfg .Signal ,
47
- otelAttrs : metric .WithAttributeSet (attribute .NewSet (attribute .String (ExporterKey , cfg .ExporterID .String ()))),
46
+ spanNamePrefix : ExporterPrefix + idStr ,
47
+ tracer : metadata .Tracer (set .ExporterSettings .TelemetrySettings ),
48
+ Signal : set .Signal ,
49
+ spanAttrs : trace .WithAttributes (expAttr , attribute .String (DataTypeKey , set .Signal .String ())),
50
+ metricsAttrs : metric .WithAttributeSet (attribute .NewSet (expAttr )),
48
51
TelemetryBuilder : telemetryBuilder ,
49
52
}, nil
50
53
}
@@ -111,7 +114,7 @@ func (or *ObsReport) EndProfilesOp(ctx context.Context, numSpans int, err error)
111
114
// the updated context and the created span.
112
115
func (or * ObsReport ) startOp (ctx context.Context , operationSuffix string ) context.Context {
113
116
spanName := or .spanNamePrefix + operationSuffix
114
- ctx , _ = or .tracer .Start (ctx , spanName )
117
+ ctx , _ = or .tracer .Start (ctx , spanName , or . spanAttrs )
115
118
return ctx
116
119
}
117
120
@@ -129,8 +132,8 @@ func (or *ObsReport) recordMetrics(ctx context.Context, signal pipeline.Signal,
129
132
failedMeasure = or .TelemetryBuilder .ExporterSendFailedLogRecords
130
133
}
131
134
132
- sentMeasure .Add (ctx , sent , or .otelAttrs )
133
- failedMeasure .Add (ctx , failed , or .otelAttrs )
135
+ sentMeasure .Add (ctx , sent , or .metricsAttrs )
136
+ failedMeasure .Add (ctx , failed , or .metricsAttrs )
134
137
}
135
138
136
139
func endSpan (ctx context.Context , err error , numSent , numFailedToSend int64 , sentItemsKey , failedToSendItemsKey string ) {
@@ -166,5 +169,5 @@ func (or *ObsReport) RecordEnqueueFailure(ctx context.Context, signal pipeline.S
166
169
enqueueFailedMeasure = or .TelemetryBuilder .ExporterEnqueueFailedLogRecords
167
170
}
168
171
169
- enqueueFailedMeasure .Add (ctx , failed , or .otelAttrs )
172
+ enqueueFailedMeasure .Add (ctx , failed , or .metricsAttrs )
170
173
}
0 commit comments