Skip to content

Commit 7bfe00a

Browse files
authored
Return an error if the logs api is not supported (#64)
1 parent 0efcbb5 commit 7bfe00a

File tree

2 files changed

+17
-12
lines changed

2 files changed

+17
-12
lines changed

apm-lambda-extension/logsapi/client.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ func (c *Client) Subscribe(types []EventType, bufferingCfg BufferingCfg, destina
154154

155155
if resp.StatusCode == http.StatusAccepted {
156156
log.Println("Logs API is not supported. Is this extension running in a local sandbox?")
157+
return nil, errors.Errorf("Logs API is not supported in this environment")
157158
} else if resp.StatusCode != http.StatusOK {
158159
body, err := ioutil.ReadAll(resp.Body)
159160
if err != nil {

apm-lambda-extension/main.go

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -65,22 +65,26 @@ func main() {
6565

6666
extension.NewHttpServer(dataChannel, config)
6767

68+
// Make channel for collecting logs and create a HTTP server to listen for them
69+
logsChannel := make(chan logsapi.LogEvent)
70+
6871
// Subscribe to the Logs API
69-
logsapi.Subscribe(
72+
err = logsapi.Subscribe(
7073
extensionClient.ExtensionID,
7174
[]logsapi.EventType{logsapi.Platform})
72-
73-
// Make channel for collecting logs and create a HTTP server to listen for them
74-
logsChannel := make(chan logsapi.LogEvent)
75-
logsAPIListener, err := logsapi.NewLogsAPIHttpListener(logsChannel)
7675
if err != nil {
77-
log.Printf("Error while creating Logs API listener: %v", err)
78-
}
76+
log.Printf("Could not subscribe to the logs API. Will instead flush APM data 100ms before the function deadline.")
77+
} else {
78+
logsAPIListener, err := logsapi.NewLogsAPIHttpListener(logsChannel)
79+
if err != nil {
80+
log.Printf("Error while creating Logs API listener: %v", err)
81+
}
7982

80-
// Start the logs HTTP server
81-
_, err = logsAPIListener.Start(logsapi.ListenOnAddress())
82-
if err != nil {
83-
log.Printf("Error while starting Logs API listener: %v", err)
83+
// Start the logs HTTP server
84+
_, err = logsAPIListener.Start(logsapi.ListenOnAddress())
85+
if err != nil {
86+
log.Printf("Error while starting Logs API listener: %v", err)
87+
}
8488
}
8589

8690
for {
@@ -170,7 +174,7 @@ func main() {
170174

171175
select {
172176
case <-runtimeDone:
173-
log.Println("Receive runtimeDone event signal")
177+
log.Println("Received runtimeDone event signal")
174178
case <-timer.C:
175179
log.Println("Time expired waiting for runtimeDone event")
176180
}

0 commit comments

Comments
 (0)