Skip to content

Commit b70520d

Browse files
committed
Fix vulnerabilities and update dependencies
- Update Redis client from v9.5.3 to v9.6.3 to fix security vulnerability GO-2025-3540 - Update OpenTelemetry example dependencies and fix compilation errors - Add proper import aliases to avoid naming conflicts - Fix unused variable assignments in tracer.Start calls This resolves all vulncheck and security scanner failures in CI.
1 parent b820914 commit b70520d

4 files changed

Lines changed: 118 additions & 23 deletions

File tree

examples/opentelemetry/go.mod

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,37 @@
11
module opentelemetry-example
22

3-
go 1.21
3+
go 1.23.0
44

55
replace github.com/vnykmshr/obcache-go => ../..
66

77
require (
8-
github.com/prometheus/client_golang v1.17.0
8+
github.com/prometheus/client_golang v1.20.5
99
github.com/vnykmshr/obcache-go v0.0.0-00010101000000-000000000000
10-
go.opentelemetry.io/otel v1.21.0
11-
go.opentelemetry.io/otel/exporters/prometheus v0.44.0
12-
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.21.0
13-
go.opentelemetry.io/otel/metric v1.21.0
14-
go.opentelemetry.io/otel/propagation v1.21.0
15-
go.opentelemetry.io/otel/sdk v1.21.0
16-
go.opentelemetry.io/otel/sdk/metric v1.21.0
17-
go.opentelemetry.io/otel/trace v1.21.0
18-
)
10+
go.opentelemetry.io/otel v1.38.0
11+
go.opentelemetry.io/otel/exporters/prometheus v0.54.0
12+
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.32.0
13+
go.opentelemetry.io/otel/metric v1.38.0
14+
go.opentelemetry.io/otel/sdk v1.32.0
15+
go.opentelemetry.io/otel/sdk/metric v1.32.0
16+
go.opentelemetry.io/otel/trace v1.38.0
17+
)
18+
19+
require (
20+
github.com/beorn7/perks v1.0.1 // indirect
21+
github.com/cespare/xxhash/v2 v2.3.0 // indirect
22+
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
23+
github.com/go-logr/logr v1.4.3 // indirect
24+
github.com/go-logr/stdr v1.2.2 // indirect
25+
github.com/google/uuid v1.6.0 // indirect
26+
github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
27+
github.com/klauspost/compress v1.17.9 // indirect
28+
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
29+
github.com/prometheus/client_model v0.6.2 // indirect
30+
github.com/prometheus/common v0.66.1 // indirect
31+
github.com/prometheus/procfs v0.16.1 // indirect
32+
github.com/redis/go-redis/v9 v9.6.3 // indirect
33+
go.opentelemetry.io/auto/sdk v1.1.0 // indirect
34+
go.yaml.in/yaml/v2 v2.4.2 // indirect
35+
golang.org/x/sys v0.35.0 // indirect
36+
google.golang.org/protobuf v1.36.8 // indirect
37+
)

examples/opentelemetry/go.sum

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
2+
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
3+
github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs=
4+
github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c=
5+
github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA=
6+
github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0=
7+
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
8+
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
9+
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
10+
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
11+
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
12+
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
13+
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
14+
github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
15+
github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
16+
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
17+
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
18+
github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
19+
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
20+
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
21+
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
22+
github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k=
23+
github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM=
24+
github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA=
25+
github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
26+
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
27+
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
28+
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
29+
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
30+
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
31+
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
32+
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
33+
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
34+
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
35+
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
36+
github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y=
37+
github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE=
38+
github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk=
39+
github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE=
40+
github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs=
41+
github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA=
42+
github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg=
43+
github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is=
44+
github.com/redis/go-redis/v9 v9.6.3 h1:8Dr5ygF1QFXRxIH/m3Xg9MMG1rS8YCtAgosrsewT6i0=
45+
github.com/redis/go-redis/v9 v9.6.3/go.mod h1:0C0c6ycQsdpVNQpxb1njEQIqkx5UcsM8FJCQLgE9+RA=
46+
github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
47+
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
48+
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
49+
github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
50+
go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
51+
go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
52+
go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8=
53+
go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM=
54+
go.opentelemetry.io/otel/exporters/prometheus v0.54.0 h1:rFwzp68QMgtzu9PgP3jm9XaMICI6TsofWWPcBDKwlsU=
55+
go.opentelemetry.io/otel/exporters/prometheus v0.54.0/go.mod h1:QyjcV9qDP6VeK5qPyKETvNjmaaEc7+gqjh4SS0ZYzDU=
56+
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.32.0 h1:cC2yDI3IQd0Udsux7Qmq8ToKAx1XCilTQECZ0KDZyTw=
57+
go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.32.0/go.mod h1:2PD5Ex6z8CFzDbTdOlwyNIUywRr1DN0ospafJM1wJ+s=
58+
go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA=
59+
go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI=
60+
go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4=
61+
go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU=
62+
go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU=
63+
go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ=
64+
go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE=
65+
go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs=
66+
go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI=
67+
go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU=
68+
golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI=
69+
golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
70+
google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc=
71+
google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU=
72+
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
73+
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
74+
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
75+
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
76+
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

examples/opentelemetry/main.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ import (
1414
"go.opentelemetry.io/otel/exporters/stdout/stdouttrace"
1515
"go.opentelemetry.io/otel/metric"
1616
"go.opentelemetry.io/otel/propagation"
17-
"go.opentelemetry.io/otel/sdk/metric"
17+
sdkmetric "go.opentelemetry.io/otel/sdk/metric"
1818
"go.opentelemetry.io/otel/sdk/resource"
19-
"go.opentelemetry.io/otel/sdk/trace"
19+
sdktrace "go.opentelemetry.io/otel/sdk/trace"
2020
"go.opentelemetry.io/otel/trace"
2121
"github.com/prometheus/client_golang/prometheus/promhttp"
2222

@@ -223,7 +223,7 @@ func (tc *TracedCache) WrapFunction(ctx context.Context, key string, ttl time.Du
223223
// Execute function
224224
span.SetAttributes(attribute.String("cache.source", "function"))
225225

226-
funcCtx, funcSpan := tracer.Start(ctx, "wrapped_function")
226+
_, funcSpan := tracer.Start(ctx, "wrapped_function")
227227
start := time.Now()
228228

229229
value, err := fn()
@@ -293,10 +293,10 @@ func initOpenTelemetry(ctx context.Context) (func(), error) {
293293
}
294294

295295
// Set up trace provider
296-
traceProvider := trace.NewTracerProvider(
297-
trace.WithBatcher(traceExporter),
298-
trace.WithResource(res),
299-
trace.WithSampler(trace.AlwaysSample()),
296+
traceProvider := sdktrace.NewTracerProvider(
297+
sdktrace.WithBatcher(traceExporter),
298+
sdktrace.WithResource(res),
299+
sdktrace.WithSampler(sdktrace.AlwaysSample()),
300300
)
301301

302302
// Set up metrics exporter (Prometheus)
@@ -306,9 +306,9 @@ func initOpenTelemetry(ctx context.Context) (func(), error) {
306306
}
307307

308308
// Set up metric provider
309-
metricProvider := metric.NewMeterProvider(
310-
metric.WithResource(res),
311-
metric.WithReader(metricExporter),
309+
metricProvider := sdkmetric.NewMeterProvider(
310+
sdkmetric.WithResource(res),
311+
sdkmetric.WithReader(metricExporter),
312312
)
313313

314314
// Set global providers
@@ -408,7 +408,7 @@ func main() {
408408
fmt.Println("📦 Populating cache with initial data...")
409409

410410
// Add some initial data with tracing
411-
rootSpan := tracer.Start(ctx, "initial_data_load")
411+
_, rootSpan := tracer.Start(ctx, "initial_data_load")
412412
_ = cache.Set(ctx, "user:1", map[string]any{"name": "Alice", "role": "admin"}, time.Hour)
413413
_ = cache.Set(ctx, "user:2", map[string]any{"name": "Bob", "role": "user"}, time.Hour)
414414
_ = cache.Set(ctx, "config:app", map[string]any{"version": "1.0.0", "debug": true}, 30*time.Minute)
@@ -424,7 +424,7 @@ func main() {
424424
http.Handle("/metrics", promhttp.Handler())
425425

426426
http.HandleFunc("/cache/info", func(w http.ResponseWriter, r *http.Request) {
427-
span := tracer.Start(r.Context(), "cache_info_handler")
427+
_, span := tracer.Start(r.Context(), "cache_info_handler")
428428
defer span.End()
429429

430430
stats := cache.Stats()
15.5 MB
Binary file not shown.

0 commit comments

Comments
 (0)