boulder/vendor/github.com/cenkalti/backoff/v4
Matthew McPherrin 0060e695b5
Introduce OpenTelemetry Tracing (#6750)
Add a new shared config stanza which all boulder components can use to
configure their Open Telemetry tracing. This allows components to
specify where their traces should be sent, what their sampling ratio
should be, and whether or not they should respect their parent's
sampling decisions (so that web front-ends can ignore sampling info
coming from outside our infrastructure). It's likely we'll need to
evolve this configuration over time, but this is a good starting point.

Add basic Open Telemetry setup to our existing cmd.StatsAndLogging
helper, so that it gets initialized at the same time as our other
observability helpers. This sets certain default fields on all
traces/spans generated by the service. Currently these include the
service name, the service version, and information about the telemetry
SDK itself. In the future we'll likely augment this with information
about the host and process.

Finally, add instrumentation for the HTTP servers and grpc
clients/servers. This gives us a starting point of being able to monitor
Boulder, but is fairly minimal as this PR is already somewhat unwieldy:
It's really only enough to understand that everything is wired up
properly in the configuration. In subsequent work we'll enhance those
spans with more data, and add more spans for things not automatically
traced here.

Fixes https://github.com/letsencrypt/boulder/issues/6361

---------

Co-authored-by: Aaron Gable <aaron@aarongable.com>
2023-04-21 10:46:59 -07:00
..
.gitignore Introduce OpenTelemetry Tracing (#6750) 2023-04-21 10:46:59 -07:00
LICENSE Introduce OpenTelemetry Tracing (#6750) 2023-04-21 10:46:59 -07:00
README.md Introduce OpenTelemetry Tracing (#6750) 2023-04-21 10:46:59 -07:00
backoff.go Introduce OpenTelemetry Tracing (#6750) 2023-04-21 10:46:59 -07:00
context.go Introduce OpenTelemetry Tracing (#6750) 2023-04-21 10:46:59 -07:00
exponential.go Introduce OpenTelemetry Tracing (#6750) 2023-04-21 10:46:59 -07:00
retry.go Introduce OpenTelemetry Tracing (#6750) 2023-04-21 10:46:59 -07:00
ticker.go Introduce OpenTelemetry Tracing (#6750) 2023-04-21 10:46:59 -07:00
timer.go Introduce OpenTelemetry Tracing (#6750) 2023-04-21 10:46:59 -07:00
tries.go Introduce OpenTelemetry Tracing (#6750) 2023-04-21 10:46:59 -07:00

README.md

Exponential Backoff GoDoc Build Status Coverage Status

This is a Go port of the exponential backoff algorithm from Google's HTTP Client Library for Java.

Exponential backoff is an algorithm that uses feedback to multiplicatively decrease the rate of some process, in order to gradually find an acceptable rate. The retries exponentially increase and stop increasing when a certain threshold is met.

Usage

Import path is github.com/cenkalti/backoff/v4. Please note the version part at the end.

Use https://pkg.go.dev/github.com/cenkalti/backoff/v4 to view the documentation.

Contributing

  • I would like to keep this library as small as possible.
  • Please don't send a PR without opening an issue and discussing it first.
  • If proposed change is not a common use case, I will probably not accept it.