From 0ca867da8146a0ee6bea452f7d727d3ed2cb7d80 Mon Sep 17 00:00:00 2001 From: theteacat Date: Mon, 11 Aug 2025 10:32:48 +0100 Subject: [PATCH 1/2] Add metadata.source to logs and populate it with the value "lambda-extension" --- firetail/log_entry.go | 5 +++++ firetail/send_records_to_saas.go | 3 +++ 2 files changed, 8 insertions(+) diff --git a/firetail/log_entry.go b/firetail/log_entry.go index 9f19f93..595d4f5 100644 --- a/firetail/log_entry.go +++ b/firetail/log_entry.go @@ -25,6 +25,7 @@ type LogEntry struct { Request LogEntryRequest `json:"request"` Response LogEntryResponse `json:"response"` Version LogEntryVersion `json:"version"` // The version of the firetail logging schema used + Metadata LogEntryMetadata `json:"metadata"` } type LogEntryRequest struct { @@ -103,6 +104,10 @@ const ( // The version of the firetail logging schema used type LogEntryVersion string +type LogEntryMetadata struct { + Source string `json:"source"` +} + const ( The100Alpha LogEntryVersion = "1.0.0-alpha" ) diff --git a/firetail/send_records_to_saas.go b/firetail/send_records_to_saas.go index e759971..45d2d0b 100644 --- a/firetail/send_records_to_saas.go +++ b/firetail/send_records_to_saas.go @@ -40,6 +40,9 @@ func SendRecordsToSaaS(records []Record, apiUrl, apiKey string) (int, error) { StatusCode: record.Response.StatusCode, }, Version: The100Alpha, + Metadata: LogEntryMetadata{ + Source: "lambda-extension", + }, }) if err != nil { errs = multierror.Append(errs, fmt.Errorf("Err marshalling record to bytes, err: %s", err.Error())) From d6af8e974a4efe700aac995043c80627a22116a0 Mon Sep 17 00:00:00 2001 From: theteacat Date: Mon, 11 Aug 2025 10:34:06 +0100 Subject: [PATCH 2/2] update tests --- firetail/log_entry_test.go | 3 +++ firetail/send_records_to_saas_test.go | 2 +- logsapi/options_test.go | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/firetail/log_entry_test.go b/firetail/log_entry_test.go index ed2a2cc..4d8b995 100644 --- a/firetail/log_entry_test.go +++ b/firetail/log_entry_test.go @@ -31,6 +31,9 @@ func TestEncodeAndDecodeLogEntry(t *testing.T) { StatusCode: 200, }, Version: The100Alpha, + Metadata: LogEntryMetadata{ + Source: "lambda-extension", + }, } testLogEntryBytes, err := testLogEntry.Marshal() diff --git a/firetail/send_records_to_saas_test.go b/firetail/send_records_to_saas_test.go index 1962b0e..646804e 100644 --- a/firetail/send_records_to_saas_test.go +++ b/firetail/send_records_to_saas_test.go @@ -76,7 +76,7 @@ func TestSendRecordToSaas(t *testing.T) { assert.Nil(t, err) assert.Equal(t, 1, recordsSent) assert.Equal(t, - "{\"dateCreated\":1668685315222,\"executionTime\":50,\"request\":{\"body\":\"\",\"headers\":{\"Content-Length\":[\"0\"],\"Host\":[\"5iagptskg6.execute-api.eu-west-2.amazonaws.com\"],\"Postman-Token\":[\"8639a798-d0e7-420a-bd98-0c5cb16c6115\"],\"User-Agent\":[\"PostmanRuntime/7.28.4\"],\"X-Amzn-Trace-Id\":[\"Root=1-63761e03-7bc79fb21f90dbbe66feba18\"],\"X-Forwarded-For\":[\"37.228.214.117\"],\"X-Forwarded-Port\":[\"443\"],\"X-Forwarded-Proto\":[\"https\"],\"accept\":[\"*/*\"],\"accept-encoding\":[\"gzip, deflate, br\"]},\"httpProtocol\":\"HTTP/1.1\",\"ip\":\"37.228.214.117\",\"method\":\"GET\",\"uri\":\"https://5iagptskg6.execute-api.eu-west-2.amazonaws.com/hi\",\"resource\":\"/hi\"},\"response\":{\"body\":\"{\\\"Description\\\":\\\"This is a test response body\\\"}\",\"headers\":{\"Test-Header-Name\":[\"Test-Header-Value\"]},\"statusCode\":200},\"version\":\"1.0.0-alpha\"}\n", + "{\"dateCreated\":1668685315222,\"executionTime\":50,\"request\":{\"body\":\"\",\"headers\":{\"Content-Length\":[\"0\"],\"Host\":[\"5iagptskg6.execute-api.eu-west-2.amazonaws.com\"],\"Postman-Token\":[\"8639a798-d0e7-420a-bd98-0c5cb16c6115\"],\"User-Agent\":[\"PostmanRuntime/7.28.4\"],\"X-Amzn-Trace-Id\":[\"Root=1-63761e03-7bc79fb21f90dbbe66feba18\"],\"X-Forwarded-For\":[\"37.228.214.117\"],\"X-Forwarded-Port\":[\"443\"],\"X-Forwarded-Proto\":[\"https\"],\"accept\":[\"*/*\"],\"accept-encoding\":[\"gzip, deflate, br\"]},\"httpProtocol\":\"HTTP/1.1\",\"ip\":\"37.228.214.117\",\"method\":\"GET\",\"uri\":\"https://5iagptskg6.execute-api.eu-west-2.amazonaws.com/hi\",\"resource\":\"/hi\"},\"response\":{\"body\":\"{\\\"Description\\\":\\\"This is a test response body\\\"}\",\"headers\":{\"Test-Header-Name\":[\"Test-Header-Value\"]},\"statusCode\":200},\"version\":\"1.0.0-alpha\",\"metadata\":{\"source\":\"lambda-extension\"}}\n", string(receivedBody), ) } diff --git a/logsapi/options_test.go b/logsapi/options_test.go index efa98e2..0925bc9 100644 --- a/logsapi/options_test.go +++ b/logsapi/options_test.go @@ -139,7 +139,7 @@ func TestDefaultBatchCallback(t *testing.T) { require.Nil(t, err) assert.Equal(t, - "{\"dateCreated\":0,\"executionTime\":3.142,\"request\":{\"body\":\"\",\"headers\":{},\"httpProtocol\":\"\",\"ip\":\"\",\"method\":\"\",\"uri\":\"https://\",\"resource\":\"\"},\"response\":{\"body\":\"{\\\"description\\\":\\\"test response body\\\"}\",\"headers\":{\"Test-Header-Name\":[\"Test-Header-Value\"]},\"statusCode\":200},\"version\":\"1.0.0-alpha\"}\n", + "{\"dateCreated\":0,\"executionTime\":3.142,\"request\":{\"body\":\"\",\"headers\":{},\"httpProtocol\":\"\",\"ip\":\"\",\"method\":\"\",\"uri\":\"https://\",\"resource\":\"\"},\"response\":{\"body\":\"{\\\"description\\\":\\\"test response body\\\"}\",\"headers\":{\"Test-Header-Name\":[\"Test-Header-Value\"]},\"statusCode\":200},\"version\":\"1.0.0-alpha\",\"metadata\":{\"source\":\"lambda-extension\"}}\n", string(requestBody), ) }