Skip to content

Commit 41c8ac4

Browse files
authored
Merge pull request #24 from SumoLogic/hpal_extension_upgrade
Sumo Logic Extension version 8
2 parents 22665a3 + 1e40ab6 commit 41c8ac4

File tree

16 files changed

+199
-110
lines changed

16 files changed

+199
-110
lines changed

.github/workflows/unittest.yml

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -12,35 +12,21 @@ on:
1212

1313
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
1414
jobs:
15-
build:
15+
buildAndTest:
1616
runs-on: ubuntu-latest
1717

1818
steps:
1919
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
2020
- name: Checkout code
21-
uses: actions/checkout@v2
21+
uses: actions/checkout@v4
2222

2323
- name: Setup Go environment
24-
uses: actions/setup-go@v2
24+
uses: actions/setup-go@v5
25+
with:
26+
go-version: 1.22
2527

2628
- name: Checking compilation errors while generating image
2729
run: env GOOS=linux go build -o "sumologic-extension" "lambda-extensions/sumologic-extension.go"
2830

29-
test:
30-
strategy:
31-
matrix:
32-
go-version: [1.14.x, 1.15.x]
33-
os: [ubuntu-latest, macos-latest]
34-
runs-on: ${{ matrix.os }}
35-
36-
steps:
37-
- name: Setup Go (version - ${{ matrix.go }})
38-
uses: actions/setup-go@v2
39-
with:
40-
go-version: ${{ matrix.go }}
41-
42-
- name: Checkout code
43-
uses: actions/checkout@v2
44-
4531
- name: Run Unit Tests
4632
run: go test ./...

CONTRIBUTING.md

Lines changed: 38 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,46 @@ First of all, thanks for contributing!. Before contributing please read the [COD
2525

2626
```go build -o target/extensions/sumologic-extension lambda-extensions/sumologic-extension.go```
2727

28-
## Unit Testing
28+
## Testing
2929

30-
go test sumoclient_test.go -v
30+
1> Unit Testing locally
3131

32-
## Deploying the layer
33-
* Change the *AWS_PROFILE* environment variable.
34-
* Update the layer version in *config/version.go*.
35-
* Use below command for creating and deploying layer
36-
37-
cd scripts/
38-
sh zip.sh
32+
- Go to root folder and run "go test ./..."
3933

34+
- Go to lambda-extensions folder and run "go test ./..."
4035

41-
## Integration Testing (Manual)
36+
2> Testing with Lambda function
4237

43-
Add your layer to lambda by following [docs](https://help.sumologic.com/03Send-Data/Collect-from-Other-Data-Sources/Collect_Logs_from_AWS_Lambda_using_Lambda_Extension) and test the function manually. Confirm that logs are coming to Sumo Logic.
38+
Add the layer arn generated from build command output to your lambda function by following instructions in [docs](https://help.sumologic.com/03Send-Data/Collect-from-Other-Data-Sources/Collect_AWS_Lambda_Logs_using_an_Extension).Test by running the function manually. Confirm that logs are coming to Sumo Logic.
39+
40+
## Releasing the layers
41+
1. Change the *AWS_PROFILE* environment variable using below command. The profile should point to sumocontent aws account.
42+
`export AWS_PROFILE=<sumo content profile>`
43+
1. Update the layer version in *config/version.go*.
44+
1. Go to scripts folder
45+
`cd scripts/`
46+
1. Change the layer_name variable in zip.sh to avoid replacing the prod.
47+
1. Run below command
48+
`sh zip.sh`
49+
50+
### Github Release
51+
52+
- The new extension binary and zip files gets released automatically after the tags are pushed using Github actions(Refer tagged-release in https://github.com/marvinpinto/action-automatic-releases).
53+
54+
Run below commands to create and push tags
55+
56+
git tag -a v<major.minor.patch> <commit_id>
57+
58+
git push origin v<major.minor.patch>
59+
60+
- Add the sumologic-extension-amd64.tar.gz and sumologic-extension-arm64.tar.gz files manually from the target folder generated after running zip.sh.
61+
- Update the release description with new layer arns and more details on what's changed.
62+
63+
64+
### Upgrading to new golang versions
65+
1. Make sure to install new go version. Preferably use [gvm](https://github.com/moovweb/gvm).
66+
1. Update golang version in `go.mod` or run command `go mod edit -go <version ex 1.22>`.
67+
1. Run `go mod tidy`. This will update `go.sum` file and clean up unwanted dependencies.
68+
1. Install `golangci-lint` by running command `brew install golangci-lint`. Go to `lambda-extensions` directory and run `golangci-lint run`, this will check for deprecated methods. Check enabled linters using `golangci-lint linters` command.
69+
1. Install `govulncheck` by running command `go install golang.org/x/vuln/cmd/govulncheck@latest` and run `~/go/bin/govulncheck -mode=binary target/amd64/extensions/sumologic-extension`. this will find common security issues.
70+
1. Run `go test ./...` to run the unit tests

README.md

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -60,51 +60,3 @@ For Full Change Log, please visit [Releases](https://github.com/SumoLogic/sumolo
6060
[github-release-badge]: https://img.shields.io/github/release/sumologic/sumologic-lambda-extensions/all.svg?label=release
6161

6262
[github-release]: https://github.com/sumologic/sumologic-lambda-extensions/releases/latest
63-
64-
65-
## Compiling
66-
67-
`env GOOS=darwin go build -o "sumologic-extension" "lambda-extensions/sumologic-extension.go"`
68-
69-
70-
## Building
71-
This script assumes you have aws cli already configured.
72-
73-
- Go to scripts folder
74-
- Export Profile export AWS_PROFILE=<sumo content profile>
75-
- Change the layer_name variable in zip.sh to avoid replacing the prod.
76-
- Run below command
77-
`sh zip.sh`
78-
79-
## Release
80-
Releasing new layer versions
81-
82-
- Go to scripts folder
83-
- Export Profile export AWS_PROFILE=<sumo content profile>. The profile should point to sumocontnet aws account.
84-
- Run below command
85-
`sh zip.sh`
86-
87-
88-
- The new extension binary and zip files gets released automatically after the tags are pushed using Github actions(Refer tagged-release in https://github.com/marvinpinto/action-automatic-releases).
89-
90-
Run below commands to create and push tags
91-
92-
git tag -a v<major.minor.patch> <commit_id>
93-
94-
git push origin v<major.minor.patch>
95-
96-
- Add the sumologic-extension-amd64.tar.gz and sumologic-extension-arm64.tar.gz files manually from the target folder generated after running zip.sh.
97-
- Update the release description with new layer arns and more details on what's changed.
98-
99-
## Testing
100-
101-
1> Unit Testing locally
102-
103-
- Go to root folder and run "go test ./..."
104-
105-
- Go to lambda-extensions folder and run "go test ./..."
106-
107-
2> Testing with Lambda function
108-
109-
Add the layer arn generated from build command output to your lambda function by following instructions in [docs](https://help.sumologic.com/03Send-Data/Collect-from-Other-Data-Sources/Collect_AWS_Lambda_Logs_using_an_Extension).
110-

go.mod

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,28 @@
11
module github.com/SumoLogic/sumologic-lambda-extensions
22

3-
go 1.15
3+
go 1.22
44

55
require (
6-
github.com/aws/aws-sdk-go v1.35.23
7-
github.com/aws/aws-sdk-go-v2 v1.17.1
8-
github.com/aws/aws-sdk-go-v2/config v1.17.11
9-
github.com/aws/aws-sdk-go-v2/service/kms v1.18.16
10-
github.com/google/uuid v1.1.2
11-
github.com/sirupsen/logrus v1.7.0
12-
golang.org/x/sys v0.2.0 // indirect
6+
github.com/aws/aws-sdk-go v1.51.25
7+
github.com/aws/aws-sdk-go-v2 v1.26.1
8+
github.com/aws/aws-sdk-go-v2/config v1.27.11
9+
github.com/aws/aws-sdk-go-v2/service/kms v1.31.0
10+
github.com/google/uuid v1.6.0
11+
github.com/sirupsen/logrus v1.9.3
12+
)
13+
14+
require (
15+
github.com/aws/aws-sdk-go-v2/credentials v1.17.11 // indirect
16+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 // indirect
17+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 // indirect
18+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 // indirect
19+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
20+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect
21+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 // indirect
22+
github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 // indirect
23+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 // indirect
24+
github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 // indirect
25+
github.com/aws/smithy-go v1.20.2 // indirect
26+
github.com/jmespath/go-jmespath v0.4.0 // indirect
27+
golang.org/x/sys v0.19.0 // indirect
1328
)

go.sum

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,70 @@
11
github.com/aws/aws-sdk-go v1.35.23 h1:SCP0d0XvyJTDmfnHEQPvBaYi3kea1VNUo7uQmkVgFts=
22
github.com/aws/aws-sdk-go v1.35.23/go.mod h1:tlPOdRjfxPBpNIwqDj61rmsnA85v9jc0Ps9+muhnW+k=
3+
github.com/aws/aws-sdk-go v1.51.25 h1:DjTT8mtmsachhV6yrXR8+yhnG6120dazr720nopRsls=
4+
github.com/aws/aws-sdk-go v1.51.25/go.mod h1:LF8svs817+Nz+DmiMQKTO3ubZ/6IaTpq3TjupRn3Eqk=
35
github.com/aws/aws-sdk-go-v2 v1.17.1 h1:02c72fDJr87N8RAC2s3Qu0YuvMRZKNZJ9F+lAehCazk=
46
github.com/aws/aws-sdk-go-v2 v1.17.1/go.mod h1:JLnGeGONAyi2lWXI1p0PCIOIy333JMVK1U7Hf0aRFLw=
7+
github.com/aws/aws-sdk-go-v2 v1.26.1 h1:5554eUqIYVWpU0YmeeYZ0wU64H2VLBs8TlhRB2L+EkA=
8+
github.com/aws/aws-sdk-go-v2 v1.26.1/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM=
59
github.com/aws/aws-sdk-go-v2/config v1.17.11 h1:9JQUKwRN8oUqeOFIrNaH6RSPmmcNk1+bQrDka/f/bPc=
610
github.com/aws/aws-sdk-go-v2/config v1.17.11/go.mod h1:cw6HIEr0FaZQfcoyRWYZpMfv4qAH19hZFZ5mglwWo3g=
11+
github.com/aws/aws-sdk-go-v2/config v1.27.11 h1:f47rANd2LQEYHda2ddSCKYId18/8BhSRM4BULGmfgNA=
12+
github.com/aws/aws-sdk-go-v2/config v1.27.11/go.mod h1:SMsV78RIOYdve1vf36z8LmnszlRWkwMQtomCAI0/mIE=
713
github.com/aws/aws-sdk-go-v2/credentials v1.12.24 h1:yz4fhoMfgwymG0rU6q5eCydFhYNQxk9yrNjMA7L7xmg=
814
github.com/aws/aws-sdk-go-v2/credentials v1.12.24/go.mod h1:prZpUfBu1KZLBLVX482Sq4DpDXGugAre08TPEc21GUg=
15+
github.com/aws/aws-sdk-go-v2/credentials v1.17.11 h1:YuIB1dJNf1Re822rriUOTxopaHHvIq0l/pX3fwO+Tzs=
16+
github.com/aws/aws-sdk-go-v2/credentials v1.17.11/go.mod h1:AQtFPsDH9bI2O+71anW6EKL+NcD7LG3dpKGMV4SShgo=
917
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.19 h1:E3PXZSI3F2bzyj6XxUXdTIfvp425HHhwKsFvmzBwHgs=
1018
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.19/go.mod h1:VihW95zQpeKQWVPGkwT+2+WJNQV8UXFfMTWdU6VErL8=
19+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 h1:FVJ0r5XTHSmIHJV6KuDmdYhEpvlHpiSd38RQWhut5J4=
20+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1/go.mod h1:zusuAeqezXzAB24LGuzuekqMAEgWkVYukBec3kr3jUg=
1121
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.25 h1:nBO/RFxeq/IS5G9Of+ZrgucRciie2qpLy++3UGZ+q2E=
1222
github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.25/go.mod h1:Zb29PYkf42vVYQY6pvSyJCJcFHlPIiY+YKdPtwnvMkY=
23+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 h1:aw39xVGeRWlWx9EzGVnhOR4yOjQDHPQ6o6NmBlscyQg=
24+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5/go.mod h1:FSaRudD0dXiMPK2UjknVwwTYyZMRsHv3TtkabsZih5I=
1325
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.19 h1:oRHDrwCTVT8ZXi4sr9Ld+EXk7N/KGssOr2ygNeojEhw=
1426
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.19/go.mod h1:6Q0546uHDp421okhmmGfbxzq2hBqbXFNpi4k+Q1JnQA=
27+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 h1:PG1F3OD1szkuQPzDw3CIQsRIrtTlUC3lP84taWzHlq0=
28+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5/go.mod h1:jU1li6RFryMz+so64PpKtudI+QzbKoIEivqdf6LNpOc=
1529
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.26 h1:Mza+vlnZr+fPKFKRq/lKGVvM6B/8ZZmNdEopOwSQLms=
1630
github.com/aws/aws-sdk-go-v2/internal/ini v1.3.26/go.mod h1:Y2OJ+P+MC1u1VKnavT+PshiEuGPyh/7DqxoDNij4/bg=
31+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU=
32+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY=
33+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs=
34+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2/go.mod h1:5CsjAbs3NlGQyZNFACh+zztPDI7fU6eW9QsxjfnuBKg=
1735
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.19 h1:GE25AWCdNUPh9AOJzI9KIJnja7IwUc1WyUqz/JTyJ/I=
1836
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.19/go.mod h1:02CP6iuYP+IVnBX5HULVdSAku/85eHB2Y9EsFhrkEwU=
37+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 h1:ogRAwT1/gxJBcSWDMZlgyFUM962F51A5CRhDLbxLdmo=
38+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7/go.mod h1:YCsIZhXfRPLFFCl5xxY+1T9RKzOKjCut+28JSX2DnAk=
1939
github.com/aws/aws-sdk-go-v2/service/kms v1.18.16 h1:KHzeOb0G5ZvaIOewRSs3iyHR5MeAKkIZ75tUJCO9ijg=
2040
github.com/aws/aws-sdk-go-v2/service/kms v1.18.16/go.mod h1:kZodDPTQjSH/qM6/OvyTfM5mms5JHB/EKYp5dhn/vI4=
41+
github.com/aws/aws-sdk-go-v2/service/kms v1.31.0 h1:yl7wcqbisxPzknJVfWTLnK83McUvXba+pz2+tPbIUmQ=
42+
github.com/aws/aws-sdk-go-v2/service/kms v1.31.0/go.mod h1:2snWQJQUKsbN66vAawJuOGX7dr37pfOq9hb0tZDGIqQ=
2143
github.com/aws/aws-sdk-go-v2/service/sso v1.11.25 h1:GFZitO48N/7EsFDt8fMa5iYdmWqkUDDB3Eje6z3kbG0=
2244
github.com/aws/aws-sdk-go-v2/service/sso v1.11.25/go.mod h1:IARHuzTXmj1C0KS35vboR0FeJ89OkEy1M9mWbK2ifCI=
45+
github.com/aws/aws-sdk-go-v2/service/sso v1.20.5 h1:vN8hEbpRnL7+Hopy9dzmRle1xmDc7o8tmY0klsr175w=
46+
github.com/aws/aws-sdk-go-v2/service/sso v1.20.5/go.mod h1:qGzynb/msuZIE8I75DVRCUXw3o3ZyBmUvMwQ2t/BrGM=
2347
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.13.8 h1:jcw6kKZrtNfBPJkaHrscDOZoe5gvi9wjudnxvozYFJo=
2448
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.13.8/go.mod h1:er2JHN+kBY6FcMfcBBKNGCT3CarImmdFzishsqBmSRI=
49+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4 h1:Jux+gDDyi1Lruk+KHF91tK2KCuY61kzoCpvtvJJBtOE=
50+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.4/go.mod h1:mUYPBhaF2lGiukDEjJX2BLRRKTmoUSitGDUgM4tRxak=
2551
github.com/aws/aws-sdk-go-v2/service/sts v1.17.2 h1:tpwEMRdMf2UsplengAOnmSIRdvAxf75oUFR+blBr92I=
2652
github.com/aws/aws-sdk-go-v2/service/sts v1.17.2/go.mod h1:bXcN3koeVYiJcdDU89n3kCYILob7Y34AeLopUbZgLT4=
53+
github.com/aws/aws-sdk-go-v2/service/sts v1.28.6 h1:cwIxeBttqPN3qkaAjcEcsh8NYr8n2HZPkcKgPAi1phU=
54+
github.com/aws/aws-sdk-go-v2/service/sts v1.28.6/go.mod h1:FZf1/nKNEkHdGGJP/cI2MoIMquumuRK6ol3QQJNDxmw=
2755
github.com/aws/smithy-go v1.13.4 h1:/RN2z1txIJWeXeOkzX+Hk/4Uuvv7dWtCjbmVJcrskyk=
2856
github.com/aws/smithy-go v1.13.4/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA=
57+
github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q=
58+
github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E=
2959
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
3060
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
3161
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
3262
github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg=
3363
github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
3464
github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y=
3565
github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
66+
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
67+
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
3668
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
3769
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
3870
github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
@@ -42,19 +74,28 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
4274
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
4375
github.com/sirupsen/logrus v1.7.0 h1:ShrD1U9pZB12TX0cVy0DtePoCH97K8EtX+mg7ZARUtM=
4476
github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0=
77+
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
78+
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
4579
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
4680
github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w=
4781
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
82+
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
83+
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
4884
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
4985
golang.org/x/net v0.0.0-20200202094626-16171245cfb2 h1:CCH4IOTTfewWjGOlSp+zGcjutRKlBEZQ6wTn8ozI/nI=
5086
golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
87+
golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM=
5188
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
5289
golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
90+
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
5391
golang.org/x/sys v0.2.0 h1:ljd4t30dBnAvMZaQCevtY0xLLD0A+bRZXbgLMLU1F/A=
5492
golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
93+
golang.org/x/sys v0.19.0 h1:q5f1RH2jigJ1MoAWp2KTp3gm5zAGFUTarQZ5U386+4o=
94+
golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
5595
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
5696
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
57-
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
97+
golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k=
5898
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
5999
gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
60100
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
101+
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

lambda-extensions/config/config.go

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,9 @@ type LambdaExtensionConfig struct {
3838
EnhanceJsonLogs bool
3939
EnableSpanDrops bool
4040
KmsCacheSeconds int64
41+
TelemetryTimeoutMs int
42+
TelemetryMaxBytes int64
43+
TelemetryMaxItems int
4144
}
4245

4346
var defaultLogTypes = []string{"platform", "function"}
@@ -82,6 +85,22 @@ func (cfg *LambdaExtensionConfig) setDefaults() {
8285
enhanceJsonLogs := os.Getenv("SUMO_ENHANCE_JSON_LOGS")
8386
enableSpanDrops := os.Getenv("SUMO_SPAN_DROP")
8487
kmsCacheSeconds := os.Getenv("KMS_CACHE_SECONDS")
88+
telemetryTimeoutMs := os.Getenv("TELEMETRY_TIMEOUT_MS")
89+
telemetryMaxBytes := os.Getenv("TELEMETRY_MAX_BYTES")
90+
telemetryMaxItems := os.Getenv("TELEMETRY_MAX_ITEMS")
91+
92+
if telemetryTimeoutMs == "" {
93+
cfg.TelemetryTimeoutMs = 1000
94+
}
95+
96+
if telemetryMaxBytes == "" {
97+
cfg.TelemetryMaxBytes = 262144
98+
}
99+
100+
if telemetryMaxItems == "" {
101+
cfg.TelemetryMaxItems = 10000
102+
}
103+
85104

86105
if numRetry == "" {
87106
cfg.NumRetry = 3
@@ -141,6 +160,9 @@ func (cfg *LambdaExtensionConfig) validateConfig() error {
141160
enhanceJsonLogs := os.Getenv("SUMO_ENHANCE_JSON_LOGS")
142161
enableSpanDrops := os.Getenv("SUMO_SPAN_DROP")
143162
kmsCacheSeconds := os.Getenv("KMS_CACHE_SECONDS")
163+
telemetryTimeoutMs := os.Getenv("TELEMETRY_TIMEOUT_MS")
164+
telemetryMaxBytes := os.Getenv("TELEMETRY_MAX_BYTES")
165+
telemetryMaxItems := os.Getenv("TELEMETRY_MAX_ITEMS")
144166

145167
var allErrors []string
146168
var err error
@@ -239,6 +261,38 @@ func (cfg *LambdaExtensionConfig) validateConfig() error {
239261
}
240262
}
241263

264+
if telemetryTimeoutMs != "" {
265+
telemetryTimeoutMs, err := strconv.ParseInt(telemetryTimeoutMs, 10, 32)
266+
if err != nil {
267+
allErrors = append(allErrors, fmt.Sprintf("Unable to parse TELEMETRY_TIMEOUT_MS: %v", err))
268+
} else {
269+
cfg.TelemetryTimeoutMs = int(telemetryTimeoutMs)
270+
}
271+
cfg.TelemetryTimeoutMs = max(cfg.TelemetryTimeoutMs, 25)
272+
cfg.TelemetryTimeoutMs = min(cfg.TelemetryTimeoutMs, 30000)
273+
}
274+
275+
if telemetryMaxBytes != "" {
276+
cfg.TelemetryMaxBytes, err = strconv.ParseInt(telemetryMaxBytes, 10, 64)
277+
if err != nil {
278+
allErrors = append(allErrors, fmt.Sprintf("Unable to parse TELEMETRY_MAX_BYTES: %v", err))
279+
}
280+
cfg.TelemetryMaxBytes = max(cfg.TelemetryMaxBytes, 262144)
281+
cfg.TelemetryMaxBytes = min(cfg.TelemetryMaxBytes, 1048576)
282+
}
283+
284+
if telemetryMaxItems != "" {
285+
telemetryMaxItems, err := strconv.ParseInt(telemetryMaxItems, 10, 32)
286+
if err != nil {
287+
allErrors = append(allErrors, fmt.Sprintf("Unable to parse TELEMETRY_MAX_ITEMS: %v", err))
288+
} else {
289+
cfg.TelemetryMaxItems = int(telemetryMaxItems)
290+
}
291+
cfg.TelemetryMaxItems = max(cfg.TelemetryMaxItems, 1000)
292+
cfg.TelemetryMaxItems = min(cfg.TelemetryMaxItems, 10000)
293+
}
294+
295+
242296
// test valid log format type
243297
for _, logType := range cfg.LogTypes {
244298
if !utils.StringInSlice(strings.TrimSpace(logType), validLogTypes) {

0 commit comments

Comments
 (0)