Skip to content

Commit c3b3f06

Browse files
authored
Print cloud event as json message in log (#174)
Signed-off-by: Jian Qiu <jqiu@redhat.com>
1 parent 5f448fd commit c3b3f06

4 files changed

Lines changed: 41 additions & 17 deletions

File tree

pkg/cloudevents/generic/clients/agentclient.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,12 @@ func (c *CloudEventAgentClient[T]) receive(ctx context.Context, evt cloudevents.
200200

201201
action, err := c.specAction(evt.Source(), eventType.CloudEventsDataType, obj)
202202
if err != nil {
203-
logger.Error(err, "failed to generate spec action", "event", evt)
203+
if logger.V(4).Enabled() {
204+
evtData, _ := evt.MarshalJSON()
205+
logger.Error(err, "failed to generate spec action", "event", string(evtData))
206+
} else {
207+
logger.Error(err, "failed to generate spec action")
208+
}
204209
return
205210
}
206211

@@ -211,7 +216,12 @@ func (c *CloudEventAgentClient[T]) receive(ctx context.Context, evt cloudevents.
211216

212217
for _, handler := range handlers {
213218
if err := handler(ctx, action, obj); err != nil {
214-
logger.Error(err, "failed to handle spec event", "event", evt)
219+
if logger.V(4).Enabled() {
220+
evtData, _ := evt.MarshalJSON()
221+
logger.Error(err, "failed to handle spec event", "event", string(evtData))
222+
} else {
223+
logger.Error(err, "failed to handle spec event")
224+
}
215225
}
216226
}
217227
}

pkg/cloudevents/generic/clients/baseclient.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,9 +140,12 @@ func (c *baseClient) publish(ctx context.Context, evt cloudevents.Event) error {
140140
return fmt.Errorf("the cloudevents client is not ready")
141141
}
142142

143-
logger.V(2).Info("Sending event", "event", evt.Context)
144143
if logger.V(5).Enabled() {
145-
logger.V(5).Info("Sending event", "event", evt.String())
144+
evtData, _ := evt.MarshalJSON()
145+
logger.V(5).Info("Sending event", "event", string(evtData))
146+
} else {
147+
logger.V(2).Info("Sending event",
148+
"eventType", evt.Type(), "extensions", evt.Extensions())
146149
}
147150
if err := c.transport.Send(ctx, evt); err != nil {
148151
return err
@@ -204,9 +207,12 @@ func (c *baseClient) subscribe(ctx context.Context, receive receiveFn) {
204207
if err := c.transport.Receive(receiverCtx, func(ctx context.Context, evt cloudevents.Event) {
205208
receiveLogger := logging.SetLogTracingByCloudEvent(klog.FromContext(ctx), &evt)
206209
ctx = klog.NewContext(ctx, receiveLogger)
207-
receiveLogger.V(2).Info("Received event", "event", evt.Context)
208210
if receiveLogger.V(5).Enabled() {
209-
receiveLogger.V(5).Info("Received event", "event", evt.String())
211+
evtData, _ := evt.MarshalJSON()
212+
receiveLogger.V(5).Info("Received event", "event", string(evtData))
213+
} else {
214+
receiveLogger.V(2).Info("Received event",
215+
"eventType", evt.Type(), "extensions", evt.Extensions())
210216
}
211217
receive(ctx, evt)
212218
}); err != nil {

pkg/cloudevents/generic/clients/sourceclient.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,12 @@ func (c *CloudEventSourceClient[T]) receive(ctx context.Context, evt cloudevents
204204

205205
for _, handler := range handlers {
206206
if err := handler(ctx, types.StatusModified, obj); err != nil {
207-
logger.Error(err, "failed to handle status event", "event", evt)
207+
if logger.V(4).Enabled() {
208+
evtData, _ := evt.MarshalJSON()
209+
logger.Error(err, "failed to handle status event", "event", string(evtData))
210+
} else {
211+
logger.Error(err, "failed to handle status event")
212+
}
208213
}
209214
}
210215
}

pkg/cloudevents/server/grpc/broker.go

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ func (bkr *GRPCBroker) Publish(ctx context.Context, pubReq *pbv1.PublishRequest)
9292
return nil, status.Error(codes.InvalidArgument, fmt.Sprintf("failed to parse cloud event type %s, %v", evt.Type(), err))
9393
}
9494

95-
logger.V(4).Info("receive the event with grpc broker", "eventContext", evt.Context)
95+
logger.V(4).Info("receive the event with grpc broker", "eventType", evt.Type(), "extensions", evt.Extensions())
9696

9797
// handler resync request
9898
if eventType.Action == types.ResyncRequestAction {
@@ -234,7 +234,8 @@ func (bkr *GRPCBroker) Subscribe(subReq *pbv1.SubscriptionRequest, subServer pbv
234234
}
235235

236236
// send the cloudevent to the subscriber
237-
logger.V(4).Info("sending the event to spec subscribers", "subID", subID, "eventContext", evt.Context)
237+
logger.V(4).Info("sending the event to spec subscribers",
238+
"subID", subID, "eventType", evt.Type(), "extensions", evt.Extensions())
238239
select {
239240
case eventCh <- pbEvt:
240241
case <-subCtx.Done():
@@ -280,7 +281,8 @@ func (bkr *GRPCBroker) Subscribe(subReq *pbv1.SubscriptionRequest, subServer pbv
280281
// - If the requested resource version is older than the source's current maintained resource version, the source
281282
// sends the resource.
282283
func (bkr *GRPCBroker) respondResyncSpecRequest(ctx context.Context, eventDataType types.CloudEventsDataType, evt *cloudevents.Event) error {
283-
log := klog.FromContext(ctx)
284+
log := klog.FromContext(ctx).WithValues(
285+
"eventDataType", eventDataType, "eventType", evt.Type(), "extensions", evt.Extensions())
284286

285287
resourceVersions, err := payload.DecodeSpecResyncRequest(*evt)
286288
if err != nil {
@@ -304,35 +306,36 @@ func (bkr *GRPCBroker) respondResyncSpecRequest(ctx context.Context, eventDataTy
304306
}
305307

306308
if len(objs) == 0 {
307-
log.V(4).Info("no objs from the lister, do nothing", "eventContext", evt.Context)
309+
log.V(4).Info("no objs from the lister, do nothing")
308310
return nil
309311
}
310312

311313
for _, obj := range objs {
312314
// respond with the deleting resource regardless of the resource version
315+
objLogger := log.WithValues("eventType", obj.Type(), "extensions", obj.Extensions())
313316
if _, ok := obj.Extensions()[types.ExtensionDeletionTimestamp]; ok {
314-
log.V(4).Info("respond spec resync request", "eventContext", evt.Context)
317+
objLogger.V(4).Info("respond spec resync request")
315318
err = bkr.handleRes(ctx, obj, eventDataType, "delete_request")
316319
if err != nil {
317-
log.Error(err, "failed to handle resync spec request")
320+
objLogger.Error(err, "failed to handle resync spec request")
318321
}
319322
continue
320323
}
321324

322325
lastResourceVersion := findResourceVersion(obj.ID(), resourceVersions.Versions)
323326
currentResourceVersion, err := cloudeventstypes.ToInteger(obj.Extensions()[types.ExtensionResourceVersion])
324327
if err != nil {
325-
log.V(4).Info("ignore the event since it has a invalid resourceVersion", "eventContext", obj.Context, "error", err)
328+
objLogger.V(4).Info("ignore the event since it has a invalid resourceVersion", "error", err)
326329
continue
327330
}
328331

329332
// the version of the work is not maintained on source or the source's work is newer than agent, send
330333
// the newer work to agent
331334
if currentResourceVersion == 0 || int64(currentResourceVersion) > lastResourceVersion {
332-
log.V(4).Info("respond spec resync request", "eventContext", evt.Context)
335+
objLogger.V(4).Info("respond spec resync request")
333336
err := bkr.handleRes(ctx, obj, eventDataType, "update_request")
334337
if err != nil {
335-
log.Error(err, "failed to handle resync spec request")
338+
objLogger.Error(err, "failed to handle resync spec request")
336339
}
337340
}
338341
}
@@ -356,7 +359,7 @@ func (bkr *GRPCBroker) respondResyncSpecRequest(ctx context.Context, eventDataTy
356359
NewEvent()
357360

358361
// send a delete event for the current resource
359-
log.V(4).Info("respond spec resync request", "eventContext", evt.Context)
362+
log.V(4).Info("respond spec resync request")
360363
err := bkr.handleRes(ctx, &obj, eventDataType, "delete_request")
361364
if err != nil {
362365
log.Error(err, "failed to handle delete request")

0 commit comments

Comments
 (0)