Skip to content

Commit 803a4a4

Browse files
committed
refactor: upgrade go sdk v1 to v2
1 parent cf9d7b7 commit 803a4a4

File tree

6 files changed

+229
-168
lines changed

6 files changed

+229
-168
lines changed

go.mod

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ go 1.21
55
toolchain go1.21.6
66

77
require (
8-
github.com/aws/aws-sdk-go v1.54.11
98
github.com/gogo/protobuf v1.3.2
109
github.com/golang/snappy v0.0.4
1110
github.com/pkg/errors v0.9.1
@@ -18,10 +17,28 @@ require (
1817
)
1918

2019
require (
20+
github.com/aws/aws-sdk-go-v2/credentials v1.17.13 // indirect
21+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 // indirect
22+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 // indirect
23+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 // indirect
24+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
25+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 // indirect
26+
github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.6 // indirect
27+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 // indirect
28+
github.com/aws/aws-sdk-go-v2/service/sso v1.20.6 // indirect
29+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.0 // indirect
30+
github.com/aws/aws-sdk-go-v2/service/sts v1.28.7 // indirect
31+
github.com/aws/smithy-go v1.20.2 // indirect
32+
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
33+
)
34+
35+
require (
36+
github.com/aws/aws-sdk-go-v2 v1.26.2
37+
github.com/aws/aws-sdk-go-v2/config v1.27.13
38+
github.com/aws/aws-sdk-go-v2/service/timestreamquery v1.23.1
39+
github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.25.6
2140
github.com/beorn7/perks v1.0.1 // indirect
2241
github.com/cespare/xxhash/v2 v2.3.0 // indirect
23-
github.com/jmespath/go-jmespath v0.4.0 // indirect
24-
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
2542
github.com/prometheus/client_model v0.6.1 // indirect
2643
github.com/prometheus/procfs v0.15.1 // indirect
2744
go.uber.org/multierr v1.11.0 // indirect

go.sum

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,39 @@
1-
github.com/aws/aws-sdk-go v1.54.11 h1:Zxuv/R+IVS0B66yz4uezhxH9FN9/G2nbxejYqAMFjxk=
2-
github.com/aws/aws-sdk-go v1.54.11/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU=
1+
github.com/aws/aws-sdk-go-v2 v1.26.2 h1:OTRAL8EPdNoOdiq5SUhCaHhVPBU2wxAUe5uwasoJGRM=
2+
github.com/aws/aws-sdk-go-v2 v1.26.2/go.mod h1:ffIFB97e2yNsv4aTSGkqtHnppsIJzw7G7BReUZ3jCXM=
3+
github.com/aws/aws-sdk-go-v2/config v1.27.13 h1:WbKW8hOzrWoOA/+35S5okqO/2Ap8hkkFUzoW8Hzq24A=
4+
github.com/aws/aws-sdk-go-v2/config v1.27.13/go.mod h1:XLiyiTMnguytjRER7u5RIkhIqS8Nyz41SwAWb4xEjxs=
5+
github.com/aws/aws-sdk-go-v2/credentials v1.17.13 h1:XDCJDzk/u5cN7Aple7D/MiAhx1Rjo/0nueJ0La8mRuE=
6+
github.com/aws/aws-sdk-go-v2/credentials v1.17.13/go.mod h1:FMNcjQrmuBYvOTZDtOLCIu0esmxjF7RuA/89iSXWzQI=
7+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1 h1:FVJ0r5XTHSmIHJV6KuDmdYhEpvlHpiSd38RQWhut5J4=
8+
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.1/go.mod h1:zusuAeqezXzAB24LGuzuekqMAEgWkVYukBec3kr3jUg=
9+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5 h1:aw39xVGeRWlWx9EzGVnhOR4yOjQDHPQ6o6NmBlscyQg=
10+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.5/go.mod h1:FSaRudD0dXiMPK2UjknVwwTYyZMRsHv3TtkabsZih5I=
11+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5 h1:PG1F3OD1szkuQPzDw3CIQsRIrtTlUC3lP84taWzHlq0=
12+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.5/go.mod h1:jU1li6RFryMz+so64PpKtudI+QzbKoIEivqdf6LNpOc=
13+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU=
14+
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY=
15+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2 h1:Ji0DY1xUsUr3I8cHps0G+XM3WWU16lP6yG8qu1GAZAs=
16+
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.2/go.mod h1:5CsjAbs3NlGQyZNFACh+zztPDI7fU6eW9QsxjfnuBKg=
17+
github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.6 h1:6tayEze2Y+hiL3kdnEUxSPsP+pJsUfwLSFspFl1ru9Q=
18+
github.com/aws/aws-sdk-go-v2/service/internal/endpoint-discovery v1.9.6/go.mod h1:qVNb/9IOVsLCZh0x2lnagrBwQ9fxajUpXS7OZfIsKn0=
19+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7 h1:ogRAwT1/gxJBcSWDMZlgyFUM962F51A5CRhDLbxLdmo=
20+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.7/go.mod h1:YCsIZhXfRPLFFCl5xxY+1T9RKzOKjCut+28JSX2DnAk=
21+
github.com/aws/aws-sdk-go-v2/service/sso v1.20.6 h1:o5cTaeunSpfXiLTIBx5xo2enQmiChtu1IBbzXnfU9Hs=
22+
github.com/aws/aws-sdk-go-v2/service/sso v1.20.6/go.mod h1:qGzynb/msuZIE8I75DVRCUXw3o3ZyBmUvMwQ2t/BrGM=
23+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.0 h1:Qe0r0lVURDDeBQJ4yP+BOrJkvkiCo/3FH/t+wY11dmw=
24+
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.24.0/go.mod h1:mUYPBhaF2lGiukDEjJX2BLRRKTmoUSitGDUgM4tRxak=
25+
github.com/aws/aws-sdk-go-v2/service/sts v1.28.7 h1:et3Ta53gotFR4ERLXXHIHl/Uuk1qYpP5uU7cvNql8ns=
26+
github.com/aws/aws-sdk-go-v2/service/sts v1.28.7/go.mod h1:FZf1/nKNEkHdGGJP/cI2MoIMquumuRK6ol3QQJNDxmw=
27+
github.com/aws/aws-sdk-go-v2/service/timestreamquery v1.23.1 h1:zioYJE/HJP3gbEcA8lBm3behwF5rxxEwX3PJWNjZZIw=
28+
github.com/aws/aws-sdk-go-v2/service/timestreamquery v1.23.1/go.mod h1:y0QPauOtWLFrhzxEjjKP5cBi3ved6SGcozYbf1fleMY=
29+
github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.25.6 h1:7nQoWdsGHF9K6tFbcE0ACjGe1dpXZ/3EYTByJ1IPjbE=
30+
github.com/aws/aws-sdk-go-v2/service/timestreamwrite v1.25.6/go.mod h1:9R1IlrgiivwTCZdbKgMPkseFS+moUM+DLh0TEjO6pvE=
31+
github.com/aws/smithy-go v1.20.2 h1:tbp628ireGtzcHDDmLT/6ADHidqnwgF57XOXZe6tp4Q=
32+
github.com/aws/smithy-go v1.20.2/go.mod h1:krry+ya/rV9RDcV/Q16kpu6ypI4K2czasz0NC3qS14E=
333
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
434
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
535
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
636
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
7-
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
837
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
938
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
1039
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
@@ -13,17 +42,12 @@ github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
1342
github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
1443
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
1544
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
16-
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
17-
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
18-
github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8=
19-
github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U=
2045
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
2146
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
2247
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
2348
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
2449
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
2550
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
26-
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
2751
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
2852
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
2953
github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE=
@@ -38,7 +62,6 @@ github.com/prometheus/prometheus v0.53.0 h1:vOnhpUKrDv954jnVBvhG/ZQJ3kqscnKI+Hbd
3862
github.com/prometheus/prometheus v0.53.0/go.mod h1:RZDkzs+ShMBDkAPQkLEaLBXpjmDcjhNxU2drUVPgKUU=
3963
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
4064
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
41-
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
4265
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
4366
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
4467
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
@@ -82,9 +105,5 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T
82105
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
83106
google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=
84107
google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=
85-
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
86-
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
87-
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
88-
gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
89108
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
90109
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

handler.go

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,19 @@
1919
package main
2020

2121
import (
22+
"context"
23+
"io"
24+
"net/http"
25+
2226
"github.com/gogo/protobuf/proto"
2327
"github.com/golang/snappy"
2428
"github.com/prometheus/prometheus/prompb"
2529
"go.uber.org/zap"
26-
"io/ioutil"
27-
"net/http"
2830
)
2931

30-
func writeHandler(logger *zap.SugaredLogger, ad PrometheusRemoteStorageAdapter) http.HandlerFunc {
32+
func writeHandler(ctx context.Context, logger *zap.SugaredLogger, ad PrometheusRemoteStorageAdapter) http.HandlerFunc {
3133
return func(w http.ResponseWriter, r *http.Request) {
32-
compressed, err := ioutil.ReadAll(r.Body)
34+
compressed, err := io.ReadAll(r.Body)
3335
if err != nil {
3436
logger.Errorw("Read error", "err", err.Error())
3537
http.Error(w, err.Error(), http.StatusInternalServerError)
@@ -50,7 +52,7 @@ func writeHandler(logger *zap.SugaredLogger, ad PrometheusRemoteStorageAdapter)
5052
return
5153
}
5254

53-
err = ad.Write(&req)
55+
err = ad.Write(ctx, &req)
5456

5557
if err != nil {
5658
w.WriteHeader(http.StatusInternalServerError)
@@ -59,9 +61,9 @@ func writeHandler(logger *zap.SugaredLogger, ad PrometheusRemoteStorageAdapter)
5961
}
6062
}
6163

62-
func readHandler(logger *zap.SugaredLogger, ad PrometheusRemoteStorageAdapter) http.HandlerFunc {
64+
func readHandler(ctx context.Context, logger *zap.SugaredLogger, ad PrometheusRemoteStorageAdapter) http.HandlerFunc {
6365
return func(w http.ResponseWriter, r *http.Request) {
64-
compressed, err := ioutil.ReadAll(r.Body)
66+
compressed, err := io.ReadAll(r.Body)
6567
if err != nil {
6668
logger.Errorw("Read error", "err", err.Error())
6769
http.Error(w, err.Error(), http.StatusInternalServerError)
@@ -83,7 +85,7 @@ func readHandler(logger *zap.SugaredLogger, ad PrometheusRemoteStorageAdapter) h
8385
}
8486

8587
var resp *prompb.ReadResponse
86-
resp, err = ad.Read(&req)
88+
resp, err = ad.Read(ctx, &req)
8789
if err != nil {
8890
logger.Errorw("Error executing query", "query", req, "err", err.Error())
8991
http.Error(w, err.Error(), http.StatusInternalServerError)

main.go

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
package main
2020

2121
import (
22+
"context"
2223
"log"
2324
"net/http"
2425
"os"
@@ -31,7 +32,7 @@ import (
3132
flag "github.com/spf13/pflag"
3233
)
3334

34-
type config struct {
35+
type adapterCfg struct {
3536
help bool
3637
awsRegion string
3738
databaseName string
@@ -45,7 +46,7 @@ type config struct {
4546
}
4647

4748
var (
48-
cfg = new(config)
49+
cfg = new(adapterCfg)
4950

5051
receivedSamples = prometheus.NewCounter(
5152
prometheus.CounterOpts{
@@ -103,6 +104,8 @@ func main() {
103104
return
104105
}
105106

107+
ctx := context.Background()
108+
106109
zapConfig := zap.NewProductionConfig()
107110
zapConfig.DisableStacktrace = true
108111

@@ -130,23 +133,23 @@ func main() {
130133

131134
sugar.Debugf("Sending logs to timeseries database %s in AWS Region %s", cfg.databaseName, cfg.awsRegion)
132135

133-
timeStreamAdapter := newTimeStreamAdapter(sugar, cfg, nil, nil)
134-
if err := serve(sugar, cfg.listenAddr, timeStreamAdapter); err != nil {
136+
timeStreamAdapter := newTimeStreamAdapter(ctx, sugar, cfg, newTimestreamQueryPaginator, nil, nil)
137+
if err := serve(ctx, sugar, cfg.listenAddr, timeStreamAdapter); err != nil {
135138
sugar.Errorw("Failed to listen", "addr", cfg.listenAddr, "err", err)
136139
os.Exit(1)
137140
}
138141
}
139142

140143
type PrometheusRemoteStorageAdapter interface {
141-
Write(records *prompb.WriteRequest) error
142-
Read(request *prompb.ReadRequest) (*prompb.ReadResponse, error)
144+
Write(ctx context.Context, records *prompb.WriteRequest) error
145+
Read(ctx context.Context, request *prompb.ReadRequest) (*prompb.ReadResponse, error)
143146
Name() string
144147
}
145148

146-
func serve(logger *zap.SugaredLogger, addr string, storageAdapter PrometheusRemoteStorageAdapter) error {
149+
func serve(ctx context.Context, logger *zap.SugaredLogger, addr string, storageAdapter PrometheusRemoteStorageAdapter) error {
147150
http.Handle(cfg.telemetryPath, promhttp.Handler())
148-
http.Handle("/write", writeHandler(logger, storageAdapter))
149-
http.Handle("/read", readHandler(logger, storageAdapter))
151+
http.Handle("/write", writeHandler(ctx, logger, storageAdapter))
152+
http.Handle("/read", readHandler(ctx, logger, storageAdapter))
150153
http.Handle("/health", healthHandler(logger))
151154

152155
if cfg.tls {

0 commit comments

Comments
 (0)