Commit Graph

7 Commits

Author SHA1 Message Date
Aaron Gable eda6e4cb4a
Update OTel dependencies to latest (#7206)
This resolves https://github.com/advisories/GHSA-8pgv-569h-w5rw and
https://github.com/advisories/GHSA-rcjv-mgp8-qvmr, both DoS attacks via
metric cardinality explosion in the default OTel http and gRPC
middleware.
2023-12-13 09:33:39 -05:00
Aaron Gable b55499f2d8
Update golang.org/x/ deps to tagged versions (#6596) 2023-01-23 12:34:06 -05:00
Aaron Gable 9abb39d4d6
Honeycomb integration proof-of-concept (#5408)
Add Honeycomb tracing to all Boulder components which act as
HTTP servers, gRPC servers, or gRPC clients. Add many values
which we currently emit to logs to the trace spans. Add a way to
configure the Honeycomb integration to our config files, and by
default configure all of our tests to "mute" (send nothing).

Followup changes will refine the configuration, attempt to reduce
the new dependency load, and introduce better sampling.

Part of https://github.com/letsencrypt/dev-misc-tickets/issues/218
2021-05-24 16:13:08 -07:00
Aaron Gable 8e3c5325c6
Update zlint to v3.1.0 (#5373)
Update the pinned version of zlint from v2.2.1 to v3.1.0.
Also update the relevant path from v2 to v3 in both go.mod
and in individual imports. Update the vendored files to match.

No changes from v2.2.1 to v3.1.0 appear to affect the lints
we directly care about (e.g. those that we explicitly ignore).

Fixes #5206
2021-03-31 11:42:01 -07:00
Daniel McCarney e9e15c9a83
deps: update to prometheus/client_golang 1.2.1 (#4601)
* cmd: update prometheus.NewProcessCollector args.

There's a new struct `prometheus.ProcessCollectorOpts` that is expected
to be used as the sole argument to `prometheus.NewProcessCollector`. We
don't need to specify `os.Getpid` as the `PidFn` of the struct because
the default is to assume `os.Getpid`. Similarly we don't need to set the
namespace to `""` explicitly, it is the default.

* SA: reimplement db metrics as custom collector.

The modern Prometheus golang API supports translating between legacy
metric sources on the fly with a custom collector. We can use this
approach to collect the metrics from `gorp.DbMap`'s via the `sql.DB`
type's `Stats` function and the returned `sql.DbStats` struct.

This is a cleaner solution overall (we can lose the DB metrics updating
go routine) and it avoids the need to use the now-removed `Set` method
of the `prometheus.Counter` type.

* test: Update CountHistogramSamples.

The `With` function of `prometheus.HistogramVec` types we tend to use as
the argument to `test.CountHistogramSamples` changed to return
a `prometheus.Observer`. Since we only use this function in test
contexts, and only with things that cast back to
a `prometheus.Histogram` we take that approach to fix the problem
without updating call-sites.
2019-12-06 16:14:50 -05:00
Jacob Hoffman-Andrews 1014a81606 Switch to modules (#4211)
Because the package versions in go.mod match what we use in Godeps.json,
there are no substantive code diffs. However, there are some tiny
differences resulting from how go mod vendors things differently than
godep:

go mod does not preserve executable permissions on shell scripts
Some packages have import lines like:
package ocsp // import "golang.org/x/crypto/ocsp"

godep used to remove the comment from these lines, but go mod vendor does not.

This introduces several indirect dependencies that we didn't have
before. This is because godep used to operate at a package level, but
go mod operates at a module (~= repository) level. So if we used a
given repository, but didn't use all of its packages, we wouldn't
previously care about the transitive dependencies of the packages we
weren't using. However, in the go mod world, once we care about the
repository, we care about all of that repository's transitive
dependencies. AFAICT this doesn't affect vendoring.

Fixes #4116
2019-05-23 14:14:00 -07:00
Jacob Hoffman-Andrews 6354cccd03 Update gRPC to v1.16.0. (#3901)
Fixes #3837

```
$ go test google.golang.org/grpc/...
ok      google.golang.org/grpc  24.275s
?       google.golang.org/grpc/balancer [no test files]
?       google.golang.org/grpc/balancer/base    [no test files]
ok      google.golang.org/grpc/balancer/grpclb  7.271s
?       google.golang.org/grpc/balancer/grpclb/grpc_lb_v1       [no test files]
ok      google.golang.org/grpc/balancer/roundrobin      0.427s
ok      google.golang.org/grpc/benchmark        0.006s [no tests to run]
?       google.golang.org/grpc/benchmark/benchmain      [no test files]
?       google.golang.org/grpc/benchmark/benchresult    [no test files]
?       google.golang.org/grpc/benchmark/client [no test files]
?       google.golang.org/grpc/benchmark/grpc_testing   [no test files]
ok      google.golang.org/grpc/benchmark/latency        1.012s
ok      google.golang.org/grpc/benchmark/primitives     0.036s [no tests to run]
?       google.golang.org/grpc/benchmark/server [no test files]
?       google.golang.org/grpc/benchmark/stats  [no test files]
?       google.golang.org/grpc/benchmark/worker [no test files]
?       google.golang.org/grpc/binarylog/grpc_binarylog_v1      [no test files]
?       google.golang.org/grpc/channelz/grpc_channelz_v1        [no test files]
ok      google.golang.org/grpc/channelz/service 0.024s
ok      google.golang.org/grpc/codes    0.006s
?       google.golang.org/grpc/connectivity     [no test files]
ok      google.golang.org/grpc/credentials      0.014s
ok      google.golang.org/grpc/credentials/alts 0.009s
?       google.golang.org/grpc/credentials/alts/internal        [no test files]
ok      google.golang.org/grpc/credentials/alts/internal/authinfo       0.006s
ok      google.golang.org/grpc/credentials/alts/internal/conn   0.133s
ok      google.golang.org/grpc/credentials/alts/internal/handshaker     0.045s
ok      google.golang.org/grpc/credentials/alts/internal/handshaker/service     0.013s
?       google.golang.org/grpc/credentials/alts/internal/proto/grpc_gcp [no test files]
?       google.golang.org/grpc/credentials/alts/internal/testutil       [no test files]
?       google.golang.org/grpc/credentials/google       [no test files]
?       google.golang.org/grpc/credentials/oauth        [no test files]
?       google.golang.org/grpc/encoding [no test files]
?       google.golang.org/grpc/encoding/gzip    [no test files]
ok      google.golang.org/grpc/encoding/proto   0.075s
?       google.golang.org/grpc/examples/helloworld/greeter_client       [no test files]
?       google.golang.org/grpc/examples/helloworld/greeter_server       [no test files]
?       google.golang.org/grpc/examples/helloworld/helloworld   [no test files]
ok      google.golang.org/grpc/examples/helloworld/mock_helloworld      0.011s
?       google.golang.org/grpc/examples/oauth/client    [no test files]
?       google.golang.org/grpc/examples/oauth/server    [no test files]
?       google.golang.org/grpc/examples/route_guide/client      [no test files]
ok      google.golang.org/grpc/examples/route_guide/mock_routeguide     0.039s
?       google.golang.org/grpc/examples/route_guide/routeguide  [no test files]
?       google.golang.org/grpc/examples/route_guide/server      [no test files]
?       google.golang.org/grpc/examples/rpc_errors/client       [no test files]
?       google.golang.org/grpc/examples/rpc_errors/server       [no test files]
ok      google.golang.org/grpc/grpclog  0.007s
?       google.golang.org/grpc/grpclog/glogger  [no test files]
ok      google.golang.org/grpc/health   0.005s
?       google.golang.org/grpc/health/grpc_health_v1    [no test files]
?       google.golang.org/grpc/internal [no test files]
?       google.golang.org/grpc/internal/backoff [no test files]
ok      google.golang.org/grpc/internal/binarylog       0.006s
ok      google.golang.org/grpc/internal/channelz        0.012s
?       google.golang.org/grpc/internal/envconfig       [no test files]
?       google.golang.org/grpc/internal/grpcrand        [no test files]
ok      google.golang.org/grpc/internal/grpcsync        0.013s
ok      google.golang.org/grpc/internal/leakcheck       4.052s
?       google.golang.org/grpc/internal/syscall [no test files]
ok      google.golang.org/grpc/internal/testutils       0.002s
ok      google.golang.org/grpc/internal/transport       81.968s
?       google.golang.org/grpc/interop  [no test files]
?       google.golang.org/grpc/interop/alts/client      [no test files]
?       google.golang.org/grpc/interop/alts/server      [no test files]
?       google.golang.org/grpc/interop/client   [no test files]
?       google.golang.org/grpc/interop/fake_grpclb      [no test files]
?       google.golang.org/grpc/interop/grpc_testing     [no test files]
?       google.golang.org/grpc/interop/http2    [no test files]
?       google.golang.org/grpc/interop/server   [no test files]
?       google.golang.org/grpc/keepalive        [no test files]
ok      google.golang.org/grpc/metadata 0.006s
ok      google.golang.org/grpc/naming   0.159s
?       google.golang.org/grpc/peer     [no test files]
ok      google.golang.org/grpc/reflection       0.016s
?       google.golang.org/grpc/reflection/grpc_reflection_v1alpha       [no test files]
?       google.golang.org/grpc/reflection/grpc_testing  [no test files]
?       google.golang.org/grpc/reflection/grpc_testingv3        [no test files]
?       google.golang.org/grpc/resolver [no test files]
ok      google.golang.org/grpc/resolver/dns     1.370s
?       google.golang.org/grpc/resolver/manual  [no test files]
?       google.golang.org/grpc/resolver/passthrough     [no test files]
ok      google.golang.org/grpc/stats    0.104s
?       google.golang.org/grpc/stats/grpc_testing       [no test files]
ok      google.golang.org/grpc/status   0.017s
?       google.golang.org/grpc/stress/client    [no test files]
?       google.golang.org/grpc/stress/grpc_testing      [no test files]
?       google.golang.org/grpc/stress/metrics_client    [no test files]
?       google.golang.org/grpc/tap      [no test files]
ok      google.golang.org/grpc/test     33.866s
ok      google.golang.org/grpc/test/bufconn     0.005s
?       google.golang.org/grpc/test/codec_perf  [no test files]
?       google.golang.org/grpc/test/go_vet      [no test files]
?       google.golang.org/grpc/test/grpc_testing        [no test files]
```
2018-10-25 12:19:40 -07:00