@@ -2,7 +2,9 @@ package main
2
2
3
3
import (
4
4
"firetail-lambda-extension/extensionsapi"
5
+ "firetail-lambda-extension/firetail"
5
6
"firetail-lambda-extension/logsapi"
7
+ "firetail-lambda-extension/proxy"
6
8
"fmt"
7
9
"io/ioutil"
8
10
"log"
@@ -35,16 +37,36 @@ func main() {
35
37
}
36
38
log .Println ("Registered extension, ID:" , extensionClient .ExtensionID )
37
39
38
- // Create a logsApiClient, start it & remember to shut it down when we're done
39
- logsApiClient , err := logsapi .NewClient (logsapi.Options {
40
- ExtensionID : extensionClient .ExtensionID ,
41
- LogServerAddress : "sandbox:1234" ,
42
- })
43
- if err != nil {
44
- panic (err )
40
+ // In legacy mode, we use the logs API. Otherwise, we use the new proxy client.
41
+ if isLegacy , err := strconv .ParseBool (os .Getenv ("FIRETAIL_EXTENSION_LEGACY" )); err == nil && isLegacy {
42
+ // Create a logsApiClient, start it & remember to shut it down when we're done
43
+ logsApiClient , err := logsapi .NewClient (logsapi.Options {
44
+ ExtensionID : extensionClient .ExtensionID ,
45
+ LogServerAddress : "sandbox:1234" ,
46
+ })
47
+ if err != nil {
48
+ panic (err )
49
+ }
50
+ go logsApiClient .Start (ctx )
51
+ defer logsApiClient .Shutdown (ctx )
52
+ } else {
53
+ firetailApiUrl , firetailApiUrlSet := os .LookupEnv ("FIRETAIL_API_URL" )
54
+ if ! firetailApiUrlSet {
55
+ firetailApiUrl = logsapi .DefaultFiretailApiUrl
56
+ }
57
+ proxyServer , err := proxy .NewProxyServer ()
58
+ if err != nil {
59
+ panic (err )
60
+ }
61
+ go proxyServer .ListenAndServe ()
62
+ defer proxyServer .Shutdown (ctx )
63
+ go firetail .RecordReceiver (
64
+ proxyServer .RecordsChannel ,
65
+ logsapi .DefaultMaxBatchSize ,
66
+ firetailApiUrl ,
67
+ os .Getenv ("FIRETAIL_API_TOKEN" ),
68
+ )
45
69
}
46
- go logsApiClient .Start (ctx )
47
- defer logsApiClient .Shutdown (ctx )
48
70
49
71
// awaitShutdown will block until a shutdown event is received, or the context is cancelled
50
72
reason , err := awaitShutdown (extensionClient , ctx )
0 commit comments