@@ -24,7 +24,7 @@ const (
24
24
phaseRunning = "running"
25
25
)
26
26
27
- type ConsumerFactory func (committer Committer ) (Consumer , error )
27
+ type ConsumerFactory func (committer Committer , logger log. Logger ) (Consumer , error )
28
28
29
29
type Consumer interface {
30
30
Start (ctx context.Context , recordsChan <- chan []Record ) func ()
@@ -126,27 +126,29 @@ func (s *ReaderService) starting(ctx context.Context) error {
126
126
s .metrics .reportOwnerOfPartition (s .reader .Partition ())
127
127
s .metrics .reportStarting ()
128
128
129
+ logger := log .With (s .logger , "phase" , phaseStarting )
130
+
129
131
// Fetch the last committed offset to determine where to start reading
130
132
lastCommittedOffset , err := s .reader .FetchLastCommittedOffset (ctx )
131
133
if err != nil {
132
134
return fmt .Errorf ("fetching last committed offset: %w" , err )
133
135
}
134
136
135
137
if lastCommittedOffset == int64 (KafkaEndOffset ) {
136
- level .Warn (s . logger ).Log ("msg" , fmt .Sprintf ("no committed offset found, starting from %d" , kafkaStartOffset ))
138
+ level .Warn (logger ).Log ("msg" , fmt .Sprintf ("no committed offset found, starting from %d" , kafkaStartOffset ))
137
139
} else {
138
- level .Debug (s . logger ).Log ("msg" , "last committed offset" , "offset" , lastCommittedOffset )
140
+ level .Debug (logger ).Log ("msg" , "last committed offset" , "offset" , lastCommittedOffset )
139
141
}
140
142
141
143
consumeOffset := int64 (kafkaStartOffset )
142
144
if lastCommittedOffset >= 0 {
143
145
// Read from the next offset.
144
146
consumeOffset = lastCommittedOffset + 1
145
147
}
146
- level .Debug (s . logger ).Log ("msg" , "consuming from offset" , "offset" , consumeOffset )
148
+ level .Debug (logger ).Log ("msg" , "consuming from offset" , "offset" , consumeOffset )
147
149
s .reader .SetOffsetForConsumption (consumeOffset )
148
150
149
- if err = s .processConsumerLagAtStartup (ctx ); err != nil {
151
+ if err = s .processConsumerLagAtStartup (ctx , logger ); err != nil {
150
152
return fmt .Errorf ("failed to process consumer lag at startup: %w" , err )
151
153
}
152
154
@@ -157,7 +159,7 @@ func (s *ReaderService) running(ctx context.Context) error {
157
159
level .Info (s .logger ).Log ("msg" , "reader service running" )
158
160
s .metrics .reportRunning ()
159
161
160
- consumer , err := s .consumerFactory (s .committer )
162
+ consumer , err := s .consumerFactory (s .committer , log . With ( s . logger , "phase" , phaseRunning ) )
161
163
if err != nil {
162
164
return fmt .Errorf ("creating consumer: %w" , err )
163
165
}
@@ -172,13 +174,13 @@ func (s *ReaderService) running(ctx context.Context) error {
172
174
return nil
173
175
}
174
176
175
- func (s * ReaderService ) processConsumerLagAtStartup (ctx context.Context ) error {
177
+ func (s * ReaderService ) processConsumerLagAtStartup (ctx context.Context , logger log. Logger ) error {
176
178
if s .cfg .MaxConsumerLagAtStartup <= 0 {
177
- level .Debug (s . logger ).Log ("msg" , "processing consumer lag at startup is disabled" )
179
+ level .Debug (logger ).Log ("msg" , "processing consumer lag at startup is disabled" )
178
180
return nil
179
181
}
180
182
181
- consumer , err := s .consumerFactory (s .committer )
183
+ consumer , err := s .consumerFactory (s .committer , logger )
182
184
if err != nil {
183
185
return fmt .Errorf ("failed to create consumer: %w" , err )
184
186
}
@@ -192,13 +194,13 @@ func (s *ReaderService) processConsumerLagAtStartup(ctx context.Context) error {
192
194
wait ()
193
195
}()
194
196
195
- level .Debug (s . logger ).Log ("msg" , "processing consumer lag at startup" )
196
- _ , err = s .fetchUntilLagSatisfied (ctx , s .cfg .MaxConsumerLagAtStartup , s . logger , recordsCh , time .Since )
197
+ level .Debug (logger ).Log ("msg" , "processing consumer lag at startup" )
198
+ _ , err = s .fetchUntilLagSatisfied (ctx , s .cfg .MaxConsumerLagAtStartup , logger , recordsCh , time .Since )
197
199
if err != nil {
198
- level .Error (s . logger ).Log ("msg" , "failed to catch up" , "err" , err )
200
+ level .Error (logger ).Log ("msg" , "failed to catch up" , "err" , err )
199
201
return err
200
202
}
201
- level .Debug (s . logger ).Log ("msg" , "processing consumer lag at startup finished" )
203
+ level .Debug (logger ).Log ("msg" , "processing consumer lag at startup finished" )
202
204
203
205
return nil
204
206
}
0 commit comments