Skip to content

Commit 6ad9c7a

Browse files
committed
feat: integrate secret resolution into HTTP prober and agent components
1 parent 90ab790 commit 6ad9c7a

File tree

16 files changed

+1317
-190
lines changed

16 files changed

+1317
-190
lines changed

cmd/synthetic-monitoring-agent/main.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -314,7 +314,7 @@ func run(args []string, stdout io.Writer) error {
314314

315315
publisher := publisherFactory(ctx, tm, zl.With().Str("subsystem", "publisher").Str("version", config.SelectedPublisher).Logger(), promRegisterer)
316316
limits := limits.NewTenantLimits(tm)
317-
secrets := secrets.NewTenantSecrets(tm, zl.With().Str("subsystem", "secretstore").Logger())
317+
secretProvider := secrets.NewSecretProvider(tm, 60*time.Second, zl.With().Str("subsystem", "secretstore").Logger())
318318

319319
telemetry := telemetry.NewTelemeter(
320320
ctx, uuid.New().String(), time.Duration(config.TelemetryTimeSpan)*time.Minute,
@@ -335,7 +335,7 @@ func run(args []string, stdout io.Writer) error {
335335
K6Runner: k6Runner,
336336
ScraperFactory: scraper.New,
337337
TenantLimits: limits,
338-
TenantSecrets: secrets,
338+
TenantSecrets: secretProvider,
339339
Telemeter: telemetry,
340340
UsageReporter: usageReporter,
341341
})
@@ -356,7 +356,7 @@ func run(args []string, stdout io.Writer) error {
356356
PromRegisterer: promRegisterer,
357357
Features: features,
358358
K6Runner: k6Runner,
359-
TenantSecrets: secrets,
359+
TenantSecrets: secretProvider,
360360
})
361361
if err != nil {
362362
return fmt.Errorf("cannot create ad-hoc checks handler: %w", err)

go.mod

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,11 @@ require (
3434
github.com/felixge/httpsnoop v1.0.4
3535
github.com/go-kit/log v0.2.1
3636
github.com/gogo/status v1.1.1
37+
github.com/grafana/gsm-api-go-client v0.0.0-20250408225536-13991b80a507
3738
github.com/grafana/loki/pkg/push v0.0.0-20241004191050-c2f38e18c6b8
3839
github.com/jpillora/backoff v1.0.0
3940
github.com/mccutchen/go-httpbin/v2 v2.18.3
41+
github.com/patrickmn/go-cache v2.1.0+incompatible
4042
github.com/prometheus-community/pro-bing v0.7.0
4143
github.com/quasilyte/go-ruleguard/dsl v0.3.22
4244
github.com/spf13/afero v1.14.0
@@ -49,6 +51,7 @@ require (
4951
cel.dev/expr v0.24.0 // indirect
5052
github.com/andybalholm/brotli v1.1.1 // indirect
5153
github.com/antlr4-go/antlr/v4 v4.13.1 // indirect
54+
github.com/apapsch/go-jsonmerge/v2 v2.0.0 // indirect
5255
github.com/beorn7/perks v1.0.1 // indirect
5356
github.com/buger/goterm v1.0.4 // indirect
5457
github.com/cespare/xxhash/v2 v2.3.0 // indirect
@@ -61,11 +64,13 @@ require (
6164
github.com/mattn/go-colorable v0.1.14 // indirect
6265
github.com/mattn/go-isatty v0.0.20 // indirect
6366
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
67+
github.com/oapi-codegen/runtime v1.1.1 // indirect
6468
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 // indirect
6569
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
6670
github.com/prometheus/procfs v0.15.1 // indirect
67-
github.com/rogpeppe/go-internal v1.13.1 // indirect
71+
github.com/sirupsen/logrus v1.9.3 // indirect
6872
github.com/stoewer/go-strcase v1.2.0 // indirect
73+
go.k6.io/k6 v0.58.0 // indirect
6974
go.uber.org/atomic v1.11.0 // indirect
7075
golang.org/x/mod v0.27.0 // indirect
7176
golang.org/x/oauth2 v0.30.0 // indirect

go.sum

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,22 @@ github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 h1:oygO0locgZJ
1616
github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI=
1717
github.com/KimMachineGun/automemlimit v0.7.4 h1:UY7QYOIfrr3wjjOAqahFmC3IaQCLWvur9nmfIn6LnWk=
1818
github.com/KimMachineGun/automemlimit v0.7.4/go.mod h1:QZxpHaGOQoYvFhv/r4u3U0JTC2ZcOwbSr11UZF46UBM=
19+
github.com/RaveNoX/go-jsoncommentstrip v1.0.0/go.mod h1:78ihd09MekBnJnxpICcwzCMzGrKSKYe4AqU6PDYYpjk=
1920
github.com/alecthomas/units v0.0.0-20240927000941-0f3dac36c52b h1:mimo19zliBX/vSQ6PWWSL9lK8qwHozUj03+zLoEB8O0=
2021
github.com/alecthomas/units v0.0.0-20240927000941-0f3dac36c52b/go.mod h1:fvzegU4vN3H1qMT+8wDmzjAcDONcgo2/SZ/TyfdUOFs=
2122
github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA=
2223
github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA=
2324
github.com/antlr4-go/antlr/v4 v4.13.1 h1:SqQKkuVZ+zWkMMNkjy5FZe5mr5WURWnlpmOuzYWrPrQ=
2425
github.com/antlr4-go/antlr/v4 v4.13.1/go.mod h1:GKmUxMtwp6ZgGwZSva4eWPC5mS6vUAmOABFgjdkM7Nw=
26+
github.com/apapsch/go-jsonmerge/v2 v2.0.0 h1:axGnT1gRIfimI7gJifB699GoE/oq+F2MU7Dml6nw9rQ=
27+
github.com/apapsch/go-jsonmerge/v2 v2.0.0/go.mod h1:lvDnEdqiQrp0O42VQGgmlKpxL1AP2+08jFMw88y4klk=
2528
github.com/aws/aws-sdk-go v1.55.7 h1:UJrkFq7es5CShfBwlWAC8DA077vp8PyVbQd3lqLiztE=
2629
github.com/aws/aws-sdk-go v1.55.7/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU=
2730
github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3 h1:6df1vn4bBlDDo4tARvBm7l6KA9iVMnE3NWizDeWSrps=
2831
github.com/bboreham/go-loser v0.0.0-20230920113527-fcc2c21820a3/go.mod h1:CIWtjkly68+yqLPbvwwR/fjNJA/idrtULjZWh2v1ys0=
2932
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
3033
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
34+
github.com/bmatcuk/doublestar v1.1.1/go.mod h1:UD6OnuiIn0yFxxA2le/rnRU1G4RaI4UvFv1sNto9p6w=
3135
github.com/buger/goterm v0.0.0-20181115115552-c206103e1f37/go.mod h1:u9UyCz2eTrSGy6fbupqJ54eY5c4IC8gREQ1053dK12U=
3236
github.com/buger/goterm v1.0.4 h1:Z9YvGmOih81P0FbVtEYTFF6YsSgxSUKEhf/f9bTMXbY=
3337
github.com/buger/goterm v1.0.4/go.mod h1:HiFWV3xnkolgrBV3mY8m0X0Pumt4zg4QhbdOzQtB8tE=
@@ -80,6 +84,8 @@ github.com/googleapis/enterprise-certificate-proxy v0.3.6 h1:GW/XbdyBFQ8Qe+YAmFU
8084
github.com/googleapis/enterprise-certificate-proxy v0.3.6/go.mod h1:MkHOF77EYAE7qfSuSS9PU6g4Nt4e11cnsDUowfwewLA=
8185
github.com/googleapis/gax-go/v2 v2.14.1 h1:hb0FFeiPaQskmvakKu5EbCbpntQn48jyHuvrkurSS/Q=
8286
github.com/googleapis/gax-go/v2 v2.14.1/go.mod h1:Hb/NubMaVM88SrNkvl8X/o8XWwDJEPqouaLeN2IUxoA=
87+
github.com/grafana/gsm-api-go-client v0.0.0-20250408225536-13991b80a507 h1:A7MiNeoZgGM/Xd4V7+/cLEnXPz34JXsS/hZ8TK8hn8E=
88+
github.com/grafana/gsm-api-go-client v0.0.0-20250408225536-13991b80a507/go.mod h1:lUsYIxuMBnLafl8SvNHge+CnNpWRjMZw19+iCA+JVA4=
8389
github.com/grafana/loki/pkg/push v0.0.0-20241004191050-c2f38e18c6b8 h1:mMfKxRrvuJ8EqI6SMmlORN3BUqZfIAc55ARPhIwBXQ4=
8490
github.com/grafana/loki/pkg/push v0.0.0-20241004191050-c2f38e18c6b8/go.mod h1:lJEF/Wh5MYlmBem6tOYAFObkLsuikfrEf8Iy9AdMPiQ=
8591
github.com/grafana/mtr v0.1.1-0.20221107202107-a9806fdda166 h1:COSDtVDArtLKK9p+mkUlPXCfWFslQFVVuQos39vxQrU=
@@ -92,6 +98,7 @@ github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9Y
9298
github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo=
9399
github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA=
94100
github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4=
101+
github.com/juju/gnuflag v0.0.0-20171113085948-2ce1bb71843d/go.mod h1:2PavIy+JPciBPrBUjwbNvtwB6RQlve+hkpll6QSNmOE=
95102
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
96103
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
97104
github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo=
@@ -121,9 +128,13 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq
121128
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
122129
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU=
123130
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
131+
github.com/oapi-codegen/runtime v1.1.1 h1:EXLHh0DXIJnWhdRPN2w4MXAzFyE4CskzhNLUmtpMYro=
132+
github.com/oapi-codegen/runtime v1.1.1/go.mod h1:SK9X900oXmPWilYR5/WKPzt3Kqxn/uS/+lbpREv+eCg=
124133
github.com/oklog/ulid v1.3.1 h1:EGfNDEx6MqHz8B3uNV6QAib1UR2Lm97sHi3ocA6ESJ4=
125134
github.com/oklog/ulid/v2 v2.1.0 h1:+9lhoxAP56we25tyYETBBY1YLA2SaoLvUFgrP2miPJU=
126135
github.com/oklog/ulid/v2 v2.1.0/go.mod h1:rcEKHmBBKfef9DhnvX7y1HZBYxjXb0cP5ExxNsTT1QQ=
136+
github.com/patrickmn/go-cache v2.1.0+incompatible h1:HRMgzkcYKYpi3C8ajMPV8OFXaaRUnok+kx1WdO15EQc=
137+
github.com/patrickmn/go-cache v2.1.0+incompatible/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ=
127138
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58 h1:onHthvaw9LFnH4t2DcNVpwGmV9E1BkGknEliJkfwQj0=
128139
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58/go.mod h1:DXv8WO4yhMYhSNPKjeNKa5WY9YCIEBRbNzFFPJbWO6Y=
129140
github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ=
@@ -156,17 +167,22 @@ github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWN
156167
github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0=
157168
github.com/rs/zerolog v1.34.0 h1:k43nTLIwcTVQAncfCw4KZ2VY6ukYoZaBPNOE8txlOeY=
158169
github.com/rs/zerolog v1.34.0/go.mod h1:bJsvje4Z08ROH4Nhs5iH600c3IkWhwp44iRc54W6wYQ=
170+
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
171+
github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
159172
github.com/spf13/afero v1.14.0 h1:9tH6MapGnn/j0eb0yIXiLjERO8RB6xIVZRDCX7PtqWA=
160173
github.com/spf13/afero v1.14.0/go.mod h1:acJQ8t0ohCGuMN3O+Pv0V0hgMxNYDlvdk+VTfyZmbYo=
161174
github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
162175
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
176+
github.com/spkg/bom v0.0.0-20160624110644-59b7046e48ad/go.mod h1:qLr4V1qq6nMqFKkMo8ZTx3f+BZEkzsRUY10Xsm2mwU0=
163177
github.com/stoewer/go-strcase v1.2.0 h1:Z2iHWqGXH00XYgqDmNgQbIBxf3wrNq0F3feEy0ainaU=
164178
github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=
165179
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
166180
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
167181
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
168182
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
183+
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
169184
github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
185+
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
170186
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
171187
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
172188
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
@@ -177,6 +193,8 @@ github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZ
177193
github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E=
178194
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
179195
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
196+
go.k6.io/k6 v0.58.0 h1:jgIQwYiyd1UQJ4XWii3Ch9OPthvvvwoNAz9WboV4kds=
197+
go.k6.io/k6 v0.58.0/go.mod h1:+HSPGg6h2MnNz/C3MDbKRNzKhkM0kSwQlQxcY5vxzMc=
180198
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
181199
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
182200
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 h1:sbiXRNDSWJOTobXh5HyQKjq6wUC5tNybqjIqDpAY4CU=
@@ -224,6 +242,7 @@ golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7w
224242
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
225243
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
226244
golang.org/x/sys v0.0.0-20210331175145-43e1dd70ce54/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
245+
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
227246
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
228247
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
229248
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=

internal/adhoc/adhoc.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,8 @@ import (
88
"io"
99
"time"
1010

11-
"github.com/grafana/synthetic-monitoring-agent/internal/secrets"
12-
1311
"github.com/prometheus/client_golang/prometheus"
14-
"github.com/prometheus/prometheus/prompb"
12+
prompb "github.com/prometheus/prometheus/prompb"
1513
"github.com/rs/zerolog"
1614
"google.golang.org/grpc"
1715
"google.golang.org/grpc/codes"
@@ -24,6 +22,7 @@ import (
2422
"github.com/grafana/synthetic-monitoring-agent/internal/model"
2523
"github.com/grafana/synthetic-monitoring-agent/internal/prober"
2624
"github.com/grafana/synthetic-monitoring-agent/internal/pusher"
25+
"github.com/grafana/synthetic-monitoring-agent/internal/secrets"
2726
"github.com/grafana/synthetic-monitoring-agent/internal/version"
2827
sm "github.com/grafana/synthetic-monitoring-agent/pkg/pb/synthetic_monitoring"
2928
)
@@ -112,7 +111,7 @@ type HandlerOpts struct {
112111
PromRegisterer prometheus.Registerer
113112
Features feature.Collection
114113
K6Runner k6runner.Runner
115-
TenantSecrets *secrets.TenantSecrets
114+
TenantSecrets secrets.SecretProvider
116115

117116
// these two fields exists so that tests can pass alternate
118117
// implementations, they are unexported so that clients of this

internal/checks/checks.go

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import (
1313
"syscall"
1414
"time"
1515

16+
"github.com/jpillora/backoff"
1617
"github.com/prometheus/client_golang/prometheus"
1718
"github.com/prometheus/prometheus/prompb"
1819
"github.com/rs/zerolog"
@@ -22,7 +23,6 @@ import (
2223
"google.golang.org/grpc/status"
2324

2425
logproto "github.com/grafana/loki/pkg/push"
25-
2626
"github.com/grafana/synthetic-monitoring-agent/internal/error_types"
2727
"github.com/grafana/synthetic-monitoring-agent/internal/feature"
2828
"github.com/grafana/synthetic-monitoring-agent/internal/k6runner"
@@ -81,7 +81,7 @@ type Updater struct {
8181
k6Runner k6runner.Runner
8282
scraperFactory scraper.Factory
8383
tenantLimits *limits.TenantLimits
84-
tenantSecrets *secrets.TenantSecrets
84+
tenantSecrets secrets.SecretProvider
8585
telemeter *telemetry.Telemeter
8686
usageReporter usage.Reporter
8787
}
@@ -108,7 +108,7 @@ type (
108108
type UpdaterOptions struct {
109109
Conn *grpc.ClientConn
110110
Logger zerolog.Logger
111-
Backoff Backoffer
111+
Backoff *backoff.Backoff
112112
Publisher pusher.Publisher
113113
TenantCh chan<- sm.Tenant
114114
IsConnected func(bool)
@@ -117,8 +117,8 @@ type UpdaterOptions struct {
117117
K6Runner k6runner.Runner
118118
ScraperFactory scraper.Factory
119119
TenantLimits *limits.TenantLimits
120+
TenantSecrets secrets.SecretProvider
120121
Telemeter *telemetry.Telemeter
121-
TenantSecrets *secrets.TenantSecrets
122122
UsageReporter usage.Reporter
123123
}
124124

@@ -243,6 +243,7 @@ func NewUpdater(opts UpdaterOptions) (*Updater, error) {
243243
tenantLimits: opts.TenantLimits,
244244
tenantSecrets: opts.TenantSecrets,
245245
telemeter: opts.Telemeter,
246+
usageReporter: opts.UsageReporter,
246247
metrics: metrics{
247248
changeErrorsCounter: changeErrorsCounter,
248249
changesCounter: changesCounter,
@@ -252,7 +253,6 @@ func NewUpdater(opts UpdaterOptions) (*Updater, error) {
252253
scrapeErrorCounter: scrapeErrorCounter,
253254
scrapesCounter: scrapesCounter,
254255
},
255-
usageReporter: opts.UsageReporter,
256256
}, nil
257257
}
258258

@@ -332,7 +332,6 @@ func handleError(ctx context.Context, logger zerolog.Logger, backoff Backoffer,
332332
return false, nil
333333
}
334334

335-
//goland:noinspection GoBoolExpressions
336335
func (c *Updater) loop(ctx context.Context) (bool, error) {
337336
connected := false
338337

@@ -399,9 +398,23 @@ func (c *Updater) loop(ctx context.Context) (bool, error) {
399398

400399
c.probe = &result.Probe
401400

402-
err = c.usageReporter.ReportProbe(ctx, result.Probe, c.features)
403-
if err != nil {
404-
c.logger.Warn().Err(err).Msg("reporting usage failed")
401+
// Report usage if reporter is configured
402+
if c.usageReporter != nil {
403+
err := c.usageReporter.ReportProbe(ctx, result.Probe, c.features)
404+
if err != nil {
405+
c.logger.Warn().Err(err).Msg("reporting usage failed")
406+
}
407+
}
408+
409+
// Update secret provider with probe capabilities if it supports it
410+
if updatableSecretProvider, ok := c.tenantSecrets.(interface{ UpdateCapabilities(*sm.Probe_Capabilities) }); ok {
411+
updatableSecretProvider.UpdateCapabilities(c.probe.Capabilities)
412+
logger := c.logger.With().Int64("probe_id", c.probe.Id).Logger()
413+
enableProtocolSecrets := false
414+
if c.probe.Capabilities != nil {
415+
enableProtocolSecrets = c.probe.Capabilities.EnableProtocolSecrets
416+
}
417+
logger.Debug().Bool("enable_protocol_secrets", enableProtocolSecrets).Msg("updated secret provider with probe capabilities")
405418
}
406419

407420
logger := c.logger.With().Int64("probe_id", c.probe.Id).Logger()

internal/checks/checks_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,7 @@ func testScraperFactory(ctx context.Context, check model.Check, publisher pusher
473473
k6Runner k6runner.Runner,
474474
labelsLimiter scraper.LabelsLimiter,
475475
telemeter *telemetry.Telemeter,
476-
secretStore *secrets.TenantSecrets,
476+
secretStore secrets.SecretProvider,
477477
) (*scraper.Scraper, error) {
478478
return scraper.NewWithOpts(
479479
ctx,

0 commit comments

Comments
 (0)