@@ -21,10 +21,12 @@ import (
21
21
22
22
"go.opentelemetry.io/collector/component"
23
23
"go.opentelemetry.io/collector/config"
24
+ "go.opentelemetry.io/collector/consumer"
24
25
"go.opentelemetry.io/collector/exporter/exporterhelper"
25
26
conventions "go.opentelemetry.io/collector/model/semconv/v1.5.0"
26
27
27
28
"github.com/open-telemetry/opentelemetry-collector-contrib/internal/splunk"
29
+ "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/batchperresourceattr"
28
30
)
29
31
30
32
const (
@@ -34,6 +36,18 @@ const (
34
36
defaultHTTPTimeout = 10 * time .Second
35
37
)
36
38
39
+ // TODO: Find a place for this to be shared.
40
+ type baseMetricsExporter struct {
41
+ component.Component
42
+ consumer.Metrics
43
+ }
44
+
45
+ // TODO: Find a place for this to be shared.
46
+ type baseLogsExporter struct {
47
+ component.Component
48
+ consumer.Logs
49
+ }
50
+
37
51
// NewFactory creates a factory for Splunk HEC exporter.
38
52
func NewFactory () component.ExporterFactory {
39
53
return exporterhelper .NewFactory (
@@ -112,7 +126,7 @@ func createMetricsExporter(
112
126
return nil , err
113
127
}
114
128
115
- return exporterhelper .NewMetricsExporter (
129
+ exporter , err := exporterhelper .NewMetricsExporter (
116
130
expCfg ,
117
131
set ,
118
132
exp .pushMetricsData ,
@@ -122,6 +136,16 @@ func createMetricsExporter(
122
136
exporterhelper .WithQueue (expCfg .QueueSettings ),
123
137
exporterhelper .WithStart (exp .start ),
124
138
exporterhelper .WithShutdown (exp .stop ))
139
+ if err != nil {
140
+ return nil , err
141
+ }
142
+
143
+ wrapped := & baseMetricsExporter {
144
+ Component : exporter ,
145
+ Metrics : batchperresourceattr .NewBatchPerResourceMetrics (splunk .HecTokenLabel , exporter ),
146
+ }
147
+
148
+ return wrapped , nil
125
149
}
126
150
127
151
func createLogsExporter (
@@ -140,7 +164,7 @@ func createLogsExporter(
140
164
return nil , err
141
165
}
142
166
143
- return exporterhelper .NewLogsExporter (
167
+ logsExporter , err := exporterhelper .NewLogsExporter (
144
168
expCfg ,
145
169
set ,
146
170
exp .pushLogData ,
@@ -150,4 +174,15 @@ func createLogsExporter(
150
174
exporterhelper .WithQueue (expCfg .QueueSettings ),
151
175
exporterhelper .WithStart (exp .start ),
152
176
exporterhelper .WithShutdown (exp .stop ))
177
+
178
+ if err != nil {
179
+ return nil , err
180
+ }
181
+
182
+ wrapped := & baseLogsExporter {
183
+ Component : logsExporter ,
184
+ Logs : batchperresourceattr .NewBatchPerResourceLogs (splunk .HecTokenLabel , logsExporter ),
185
+ }
186
+
187
+ return wrapped , nil
153
188
}
0 commit comments