@@ -16,6 +16,7 @@ package processor
16
16
17
17
import (
18
18
"context"
19
+ "time"
19
20
20
21
"go.opentelemetry.io/collector/component/componenterror"
21
22
"go.opentelemetry.io/collector/consumer"
@@ -25,6 +26,8 @@ import (
25
26
"go.opentelemetry.io/collector/internal/data"
26
27
)
27
28
29
+ const timeout = 5 * time .Second
30
+
28
31
// This file contains implementations of Trace/Metrics connectors
29
32
// that fan out the data to multiple other consumers.
30
33
@@ -63,9 +66,12 @@ var _ consumer.MetricsConsumerOld = (*metricsFanOutConnectorOld)(nil)
63
66
64
67
// ConsumeMetricsData exports the MetricsData to all consumers wrapped by the current one.
65
68
func (mfc metricsFanOutConnectorOld ) ConsumeMetricsData (ctx context.Context , md consumerdata.MetricsData ) error {
69
+ ctxWithTimeout , cancel := context .WithTimeout (ctx , timeout )
70
+ defer cancel ()
71
+
66
72
var errs []error
67
73
for _ , mc := range mfc {
68
- if err := mc .ConsumeMetricsData (ctx , md ); err != nil {
74
+ if err := mc .ConsumeMetricsData (ctxWithTimeout , md ); err != nil {
69
75
errs = append (errs , err )
70
76
}
71
77
}
@@ -83,9 +89,12 @@ var _ consumer.MetricsConsumer = (*metricsFanOutConnector)(nil)
83
89
84
90
// ConsumeMetricsData exports the MetricsData to all consumers wrapped by the current one.
85
91
func (mfc metricsFanOutConnector ) ConsumeMetrics (ctx context.Context , md pdata.Metrics ) error {
92
+ ctxWithTimeout , cancel := context .WithTimeout (ctx , timeout )
93
+ defer cancel ()
94
+
86
95
var errs []error
87
96
for _ , mc := range mfc {
88
- if err := mc .ConsumeMetrics (ctx , md ); err != nil {
97
+ if err := mc .ConsumeMetrics (ctxWithTimeout , md ); err != nil {
89
98
errs = append (errs , err )
90
99
}
91
100
}
@@ -127,9 +136,12 @@ var _ consumer.TraceConsumerOld = (*traceFanOutConnectorOld)(nil)
127
136
128
137
// ConsumeTraceData exports the span data to all trace consumers wrapped by the current one.
129
138
func (tfc traceFanOutConnectorOld ) ConsumeTraceData (ctx context.Context , td consumerdata.TraceData ) error {
139
+ ctxWithTimeout , cancel := context .WithTimeout (ctx , timeout )
140
+ defer cancel ()
141
+
130
142
var errs []error
131
143
for _ , tc := range tfc {
132
- if err := tc .ConsumeTraceData (ctx , td ); err != nil {
144
+ if err := tc .ConsumeTraceData (ctxWithTimeout , td ); err != nil {
133
145
errs = append (errs , err )
134
146
}
135
147
}
@@ -147,9 +159,12 @@ var _ consumer.TraceConsumer = (*traceFanOutConnector)(nil)
147
159
148
160
// ConsumeTraces exports the span data to all trace consumers wrapped by the current one.
149
161
func (tfc traceFanOutConnector ) ConsumeTraces (ctx context.Context , td pdata.Traces ) error {
162
+ ctxWithTimeout , cancel := context .WithTimeout (ctx , timeout )
163
+ defer cancel ()
164
+
150
165
var errs []error
151
166
for _ , tc := range tfc {
152
- if err := tc .ConsumeTraces (ctx , td ); err != nil {
167
+ if err := tc .ConsumeTraces (ctxWithTimeout , td ); err != nil {
153
168
errs = append (errs , err )
154
169
}
155
170
}
@@ -167,9 +182,12 @@ var _ consumer.LogConsumer = (*LogFanOutConnector)(nil)
167
182
168
183
// Consume exports the span data to all consumers wrapped by the current one.
169
184
func (fc LogFanOutConnector ) ConsumeLogs (ctx context.Context , ld data.Logs ) error {
185
+ ctxWithTimeout , cancel := context .WithTimeout (ctx , timeout )
186
+ defer cancel ()
187
+
170
188
var errs []error
171
189
for _ , tc := range fc {
172
- if err := tc .ConsumeLogs (ctx , ld ); err != nil {
190
+ if err := tc .ConsumeLogs (ctxWithTimeout , ld ); err != nil {
173
191
errs = append (errs , err )
174
192
}
175
193
}
0 commit comments