Skip to content

Commit 5ee12ea

Browse files
authored
Merge pull request #18 from lacer93/enhance-json-logs-feature-switch
Add feature switch for JSON log enhancement
2 parents a503d68 + 2b31f95 commit 5ee12ea

File tree

2 files changed

+20
-4
lines changed

2 files changed

+20
-4
lines changed

lambda-extensions/config/config.go

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ type LambdaExtensionConfig struct {
3434
MaxDataPayloadSize int
3535
LambdaRegion string
3636
SourceCategoryOverride string
37+
EnhanceJsonLogs bool
3738
}
3839

3940
var defaultLogTypes = []string{"platform", "function"}
@@ -73,6 +74,7 @@ func (cfg *LambdaExtensionConfig) setDefaults() {
7374
maxConcurrentRequests := os.Getenv("SUMO_MAX_CONCURRENT_REQUESTS")
7475
enableFailover := os.Getenv("SUMO_ENABLE_FAILOVER")
7576
logTypes := os.Getenv("SUMO_LOG_TYPES")
77+
enhanceJsonLogs := os.Getenv("SUMO_ENHANCE_JSON_LOGS")
7678

7779
if numRetry == "" {
7880
cfg.NumRetry = 3
@@ -99,9 +101,11 @@ func (cfg *LambdaExtensionConfig) setDefaults() {
99101
cfg.LogTypes = strings.Split(logTypes, ",")
100102
}
101103
if retrySleepTime == "" {
102-
cfg.RetrySleepTime = 300 * time.Millisecond
104+
cfg.RetrySleepTime = 300 * time.Millisecond
105+
}
106+
if enhanceJsonLogs == "" {
107+
cfg.EnhanceJsonLogs = true
103108
}
104-
105109
}
106110

107111
func (cfg *LambdaExtensionConfig) validateConfig() error {
@@ -111,6 +115,7 @@ func (cfg *LambdaExtensionConfig) validateConfig() error {
111115
maxConcurrentRequests := os.Getenv("SUMO_MAX_CONCURRENT_REQUESTS")
112116
enableFailover := os.Getenv("SUMO_ENABLE_FAILOVER")
113117
retrySleepTime := os.Getenv("SUMO_RETRY_SLEEP_TIME_MS")
118+
enhanceJsonLogs := os.Getenv("SUMO_ENHANCE_JSON_LOGS")
114119

115120
var allErrors []string
116121
var err error
@@ -189,6 +194,13 @@ func (cfg *LambdaExtensionConfig) validateConfig() error {
189194

190195
}
191196

197+
if enhanceJsonLogs != "" {
198+
cfg.EnhanceJsonLogs, err = strconv.ParseBool(enhanceJsonLogs)
199+
if err != nil {
200+
allErrors = append(allErrors, fmt.Sprintf("Unable to parse SUMO_ENHANCE_JSON_LOGS: %v", err))
201+
}
202+
}
203+
192204
// test valid log format type
193205
for _, logType := range cfg.LogTypes {
194206
if !utils.StringInSlice(strings.TrimSpace(logType), validLogTypes) {

lambda-extensions/sumoclient/sumoclient.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,11 @@ func (s *sumoLogicClient) enhanceLogs(msg responseBody) {
202202
if err != nil {
203203
item["message"] = message
204204
} else {
205-
item["message"] = json
205+
if s.config.EnhanceJsonLogs {
206+
item["message"] = json
207+
} else {
208+
item = json
209+
}
206210
}
207211
} else if ok && logType == "platform.report" {
208212
s.createCWLogLine(item)
@@ -287,7 +291,7 @@ func (s *sumoLogicClient) SendLogs(ctx context.Context, rawmsg []byte) error {
287291
}
288292

289293
func (s *sumoLogicClient) SendAllLogs(ctx context.Context, allMessages [][]byte) error {
290-
if (len(allMessages) == 0) {
294+
if len(allMessages) == 0 {
291295
s.logger.Debugf("SendAllLogs: No messages to send")
292296
return nil
293297
}

0 commit comments

Comments
 (0)