Skip to content

Commit c9e67c4

Browse files
authored
Fixed empty log record bug by platform events (#1522)
1 parent e06aa18 commit c9e67c4

File tree

2 files changed

+141
-9
lines changed

2 files changed

+141
-9
lines changed

collector/receiver/telemetryapireceiver/receiver.go

+9-9
Original file line numberDiff line numberDiff line change
@@ -191,16 +191,16 @@ func (r *telemetryAPIReceiver) createLogs(slice []event) (plog.Logs, error) {
191191
scopeLog.Scope().SetName(scopeName)
192192
for _, el := range slice {
193193
r.logger.Debug(fmt.Sprintf("Event: %s", el.Type), zap.Any("event", el))
194-
logRecord := scopeLog.LogRecords().AppendEmpty()
195-
logRecord.Attributes().PutStr("type", el.Type)
196-
if t, err := time.Parse(time.RFC3339, el.Time); err == nil {
197-
logRecord.SetTimestamp(pcommon.NewTimestampFromTime(t))
198-
logRecord.SetObservedTimestamp(pcommon.NewTimestampFromTime(time.Now()))
199-
} else {
200-
r.logger.Error("error parsing time", zap.Error(err))
201-
return plog.Logs{}, err
202-
}
203194
if el.Type == string(telemetryapi.Function) || el.Type == string(telemetryapi.Extension) {
195+
logRecord := scopeLog.LogRecords().AppendEmpty()
196+
logRecord.Attributes().PutStr("type", el.Type)
197+
if t, err := time.Parse(time.RFC3339, el.Time); err == nil {
198+
logRecord.SetTimestamp(pcommon.NewTimestampFromTime(t))
199+
logRecord.SetObservedTimestamp(pcommon.NewTimestampFromTime(time.Now()))
200+
} else {
201+
r.logger.Error("error parsing time", zap.Error(err))
202+
return plog.Logs{}, err
203+
}
204204
if record, ok := el.Record.(map[string]interface{}); ok {
205205
// in JSON format https://docs.aws.amazon.com/lambda/latest/dg/telemetry-schema-reference.html#telemetry-api-function
206206
if timestamp, ok := record["timestamp"].(string); ok {

collector/receiver/telemetryapireceiver/receiver_test.go

+132
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,138 @@ func TestCreateLogs(t *testing.T) {
311311
expectedSeverityNumber: plog.SeverityNumberUnspecified,
312312
expectError: false,
313313
},
314+
{
315+
desc: "platform.initStart anything",
316+
slice: []event{
317+
{
318+
Time: "2022-10-12T00:03:50.000Z",
319+
Type: "platform.initStart",
320+
Record: map[string]any{},
321+
},
322+
},
323+
expectedLogRecords: 0,
324+
expectError: false,
325+
},
326+
{
327+
desc: "platform.initRuntimeDone anything",
328+
slice: []event{
329+
{
330+
Time: "2022-10-12T00:03:50.000Z",
331+
Type: "platform.initRuntimeDone",
332+
Record: map[string]any{},
333+
},
334+
},
335+
expectedLogRecords: 0,
336+
expectError: false,
337+
},
338+
{
339+
desc: "platform.initReport anything",
340+
slice: []event{
341+
{
342+
Time: "2022-10-12T00:03:50.000Z",
343+
Type: "platform.initReport",
344+
Record: map[string]any{},
345+
},
346+
},
347+
expectedLogRecords: 0,
348+
expectError: false,
349+
},
350+
{
351+
desc: "platform.start anything",
352+
slice: []event{
353+
{
354+
Time: "2022-10-12T00:03:50.000Z",
355+
Type: "platform.start",
356+
Record: map[string]any{},
357+
},
358+
},
359+
expectedLogRecords: 0,
360+
expectError: false,
361+
},
362+
{
363+
desc: "platform.runtimeDone anything",
364+
slice: []event{
365+
{
366+
Time: "2022-10-12T00:03:50.000Z",
367+
Type: "platform.runtimeDone",
368+
Record: map[string]any{},
369+
},
370+
},
371+
expectedLogRecords: 0,
372+
expectError: false,
373+
},
374+
{
375+
desc: "platform.report anything",
376+
slice: []event{
377+
{
378+
Time: "2022-10-12T00:03:50.000Z",
379+
Type: "platform.report",
380+
Record: map[string]any{},
381+
},
382+
},
383+
expectedLogRecords: 0,
384+
expectError: false,
385+
},
386+
{
387+
desc: "platform.restoreStart anything",
388+
slice: []event{
389+
{
390+
Time: "2022-10-12T00:03:50.000Z",
391+
Type: "platform.restoreStart",
392+
Record: map[string]any{},
393+
},
394+
},
395+
expectedLogRecords: 0,
396+
expectError: false,
397+
},
398+
{
399+
desc: "platform.restoreRuntimeDone anything",
400+
slice: []event{
401+
{
402+
Time: "2022-10-12T00:03:50.000Z",
403+
Type: "platform.restoreRuntimeDone",
404+
Record: map[string]any{},
405+
},
406+
},
407+
expectedLogRecords: 0,
408+
expectError: false,
409+
},
410+
{
411+
desc: "platform.restoreReport anything",
412+
slice: []event{
413+
{
414+
Time: "2022-10-12T00:03:50.000Z",
415+
Type: "platform.restoreStart",
416+
Record: map[string]any{},
417+
},
418+
},
419+
expectedLogRecords: 0,
420+
expectError: false,
421+
},
422+
{
423+
desc: "platform.telemetrySubscription anything",
424+
slice: []event{
425+
{
426+
Time: "2022-10-12T00:03:50.000Z",
427+
Type: "platform.telemetrySubscription",
428+
Record: map[string]any{},
429+
},
430+
},
431+
expectedLogRecords: 0,
432+
expectError: false,
433+
},
434+
{
435+
desc: "platform.logsDropped anything",
436+
slice: []event{
437+
{
438+
Time: "2022-10-12T00:03:50.000Z",
439+
Type: "platform.logsDropped",
440+
Record: map[string]any{},
441+
},
442+
},
443+
expectedLogRecords: 0,
444+
expectError: false,
445+
},
314446
}
315447
for _, tc := range testCases {
316448
t.Run(tc.desc, func(t *testing.T) {

0 commit comments

Comments
 (0)