@@ -5,12 +5,17 @@ package debugexporter // import "go.opentelemetry.io/collector/exporter/debugexp
5
5
6
6
import (
7
7
"context"
8
+ "time"
8
9
9
10
"go.opentelemetry.io/collector/component"
10
11
"go.opentelemetry.io/collector/config/configtelemetry"
12
+ "go.opentelemetry.io/collector/consumer"
11
13
"go.opentelemetry.io/collector/exporter"
12
14
"go.opentelemetry.io/collector/exporter/debugexporter/internal/metadata"
13
- "go.opentelemetry.io/collector/exporter/internal/common"
15
+ "go.opentelemetry.io/collector/exporter/exporterhelper"
16
+ "go.opentelemetry.io/collector/exporter/internal/otlptext"
17
+ "go.uber.org/zap"
18
+ "go.uber.org/zap/zapcore"
14
19
)
15
20
16
21
// The value of "type" key in configuration.
@@ -42,27 +47,47 @@ func createDefaultConfig() component.Config {
42
47
43
48
func createTracesExporter (ctx context.Context , set exporter.CreateSettings , config component.Config ) (exporter.Traces , error ) {
44
49
cfg := config .(* Config )
45
- return common .CreateTracesExporter (ctx , set , config , & common.Common {
46
- Verbosity : cfg .Verbosity ,
47
- SamplingInitial : cfg .SamplingInitial ,
48
- SamplingThereafter : cfg .SamplingThereafter ,
49
- })
50
+ exporterLogger := createLogger (cfg , set .TelemetrySettings .Logger )
51
+ debugExporter := newDebugExporter (exporterLogger , cfg .Verbosity )
52
+ return exporterhelper .NewTracesExporter (ctx , set , config ,
53
+ debugExporter .pushTraces ,
54
+ exporterhelper .WithCapabilities (consumer.Capabilities {MutatesData : false }),
55
+ exporterhelper .WithTimeout (exporterhelper.TimeoutSettings {Timeout : 0 }),
56
+ exporterhelper .WithShutdown (otlptext .LoggerSync (exporterLogger )),
57
+ )
50
58
}
51
59
52
60
func createMetricsExporter (ctx context.Context , set exporter.CreateSettings , config component.Config ) (exporter.Metrics , error ) {
53
61
cfg := config .(* Config )
54
- return common .CreateMetricsExporter (ctx , set , config , & common.Common {
55
- Verbosity : cfg .Verbosity ,
56
- SamplingInitial : cfg .SamplingInitial ,
57
- SamplingThereafter : cfg .SamplingThereafter ,
58
- })
62
+ exporterLogger := createLogger (cfg , set .TelemetrySettings .Logger )
63
+ debugExporter := newDebugExporter (exporterLogger , cfg .Verbosity )
64
+ return exporterhelper .NewMetricsExporter (ctx , set , config ,
65
+ debugExporter .pushMetrics ,
66
+ exporterhelper .WithCapabilities (consumer.Capabilities {MutatesData : false }),
67
+ exporterhelper .WithTimeout (exporterhelper.TimeoutSettings {Timeout : 0 }),
68
+ exporterhelper .WithShutdown (otlptext .LoggerSync (exporterLogger )),
69
+ )
59
70
}
60
71
61
72
func createLogsExporter (ctx context.Context , set exporter.CreateSettings , config component.Config ) (exporter.Logs , error ) {
62
73
cfg := config .(* Config )
63
- return common .CreateLogsExporter (ctx , set , config , & common.Common {
64
- Verbosity : cfg .Verbosity ,
65
- SamplingInitial : cfg .SamplingInitial ,
66
- SamplingThereafter : cfg .SamplingThereafter ,
67
- })
74
+ exporterLogger := createLogger (cfg , set .TelemetrySettings .Logger )
75
+ debugExporter := newDebugExporter (exporterLogger , cfg .Verbosity )
76
+ return exporterhelper .NewLogsExporter (ctx , set , config ,
77
+ debugExporter .pushLogs ,
78
+ exporterhelper .WithCapabilities (consumer.Capabilities {MutatesData : false }),
79
+ exporterhelper .WithTimeout (exporterhelper.TimeoutSettings {Timeout : 0 }),
80
+ exporterhelper .WithShutdown (otlptext .LoggerSync (exporterLogger )),
81
+ )
82
+ }
83
+
84
+ func createLogger (cfg * Config , logger * zap.Logger ) * zap.Logger {
85
+ core := zapcore .NewSamplerWithOptions (
86
+ logger .Core (),
87
+ 1 * time .Second ,
88
+ cfg .SamplingInitial ,
89
+ cfg .SamplingThereafter ,
90
+ )
91
+
92
+ return zap .New (core )
68
93
}
0 commit comments