Commit Graph

3222 Commits

Author SHA1 Message Date
Oliver Gould a7226fbf96
build(deps): update hashbrown from 0.15.0 to 0.15.2 (#3422) 2024-12-04 21:26:26 -05:00
katelyn martin 7e9cbf69e8
refactor(app/test): remove unused test `Server` interfaces (#3421)
this `Server` type is not used by any tests.

this commit removes it, to help facilitate the upgrade to the hyper 1.0
major release. see <https://github.com/linkerd/linkerd2/issues/8733>.

Signed-off-by: katelyn martin <kate@buoyant.io>
2024-12-04 18:27:23 -05:00
Oliver Gould 4d9df4c3d0
ci: increase linkerd-install readiness timeout (#3418)
CI runs frequently timeout waiting for pod readiness. There is a hardcoded 1m
timeout.

This change makes this timeout configurable, specifying a 2m timeout in the CI
configuration.
2024-12-04 11:09:32 -05:00
katelyn martin 36474b3e20
refactor(app): update deprecated hyper body calls (#3411)
* chore(app/admin): add `http-body` dependency

before we address deprecated hyper interfaces related to `http_bodies`,
we'll want to add this dependency so that we can call `Body::collect()`.

Signed-off-by: katelyn martin <kate@buoyant.io>

* refactor(app): update deprecated hyper body calls

hyper 0.14.x provided a collection of interfaces related to collecting
and aggregating request and response bodies, which were deprecated and
removed in the 1.x major release.

this commit updates calls to `hyper::body::to_bytes(..)` and
`hyper::body::aggregate(..)`. for now, `http_body::Body` is used, but we
can use `http_body_util::BodyExt` once we've bumped our hyper dependency
to the 1.x major release.

for more information, see:

* https://github.com/linkerd/linkerd2/issues/8733
* https://github.com/hyperium/hyper/issues/2840
* https://github.com/hyperium/hyper/pull/3020

Signed-off-by: katelyn martin <kate@buoyant.io>

---------

Signed-off-by: katelyn martin <kate@buoyant.io>
2024-12-04 10:56:10 -05:00
dependabot[bot] a4113a0d01
build(deps): bump anyhow from 1.0.93 to 1.0.94 (#3415)
Bumps [anyhow](https://github.com/dtolnay/anyhow) from 1.0.93 to 1.0.94.
- [Release notes](https://github.com/dtolnay/anyhow/releases)
- [Commits](https://github.com/dtolnay/anyhow/compare/1.0.93...1.0.94)

---
updated-dependencies:
- dependency-name: anyhow
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-04 07:40:52 -08:00
dependabot[bot] 7743a7cfa4
build(deps): bump libloading from 0.8.5 to 0.8.6 (#3413)
Bumps [libloading](https://github.com/nagisa/rust_libloading) from 0.8.5 to 0.8.6.
- [Commits](https://github.com/nagisa/rust_libloading/compare/0.8.5...0.8.6)

---
updated-dependencies:
- dependency-name: libloading
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-04 07:40:40 -08:00
dependabot[bot] 52a0684aac
build(deps): bump tokio from 1.41.1 to 1.42.0 (#3414)
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.41.1 to 1.42.0.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.41.1...tokio-1.42.0)

---
updated-dependencies:
- dependency-name: tokio
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-04 15:39:31 +00:00
dependabot[bot] a2628c7180
build(deps): bump cc from 1.2.1 to 1.2.2 (#3416)
Bumps [cc](https://github.com/rust-lang/cc-rs) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/rust-lang/cc-rs/releases)
- [Changelog](https://github.com/rust-lang/cc-rs/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/cc-rs/compare/cc-v1.2.1...cc-v1.2.2)

---
updated-dependencies:
- dependency-name: cc
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-04 07:33:26 -08:00
dependabot[bot] f82895c327
build(deps): bump indexmap from 2.6.0 to 2.7.0 (#3407)
Bumps [indexmap](https://github.com/indexmap-rs/indexmap) from 2.6.0 to 2.7.0.
- [Changelog](https://github.com/indexmap-rs/indexmap/blob/master/RELEASES.md)
- [Commits](https://github.com/indexmap-rs/indexmap/compare/2.6.0...2.7.0)

---
updated-dependencies:
- dependency-name: indexmap
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-03 17:59:31 +00:00
katelyn martin 7ccbfa6392 chore(hyper): enable `deprecated` feature flag
this is a prepatory chore, laying more ground to facilitate upgrading
our hyper dependency to the 1.0 major release. this commit adds the
`deprecated` cargo feature to each of the hyper dependencies in the
cargo workspace.

to prevent this from introducing a large number of compiler warnings to
the build, the `#[allow(deprecated)]` attribute is added to relevant
expressions.

these uses of deprecated interfaces will be updated in subsequent
commits. broadly, these fall into a few common cases:

* `hyper::client::conn::SendRequest` now has protocol specific `h1` and
  `h2` variants.

* `hyper::server::conn::Builder` now has protocol specific `h1` and
  `h2` variants.

* `hyper::server::conn::Http` is deprecated.

* functions like `hyper::body::aggregate(..)` and
  `hyper::body::to_bytes(..)` are deprecated.

see https://github.com/linkerd/linkerd2/issues/8733 for more information
on the hyper 1.0 upgrade process.

Signed-off-by: katelyn martin <kate@buoyant.io>
2024-12-03 12:50:11 -05:00
katelyn martin b2f1a4830d chore(hyper): update to hyper `0.14.31`
Signed-off-by: katelyn martin <kate@buoyant.io>
2024-12-03 12:50:11 -05:00
dependabot[bot] 8635a15795
build(deps): bump mio from 1.0.2 to 1.0.3 (#3408)
Bumps [mio](https://github.com/tokio-rs/mio) from 1.0.2 to 1.0.3.
- [Release notes](https://github.com/tokio-rs/mio/releases)
- [Changelog](https://github.com/tokio-rs/mio/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/mio/compare/v1.0.2...v1.0.3)

---
updated-dependencies:
- dependency-name: mio
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-03 17:49:14 +00:00
dependabot[bot] 318cfa4373
build(deps): bump syn from 2.0.89 to 2.0.90 (#3409)
Bumps [syn](https://github.com/dtolnay/syn) from 2.0.89 to 2.0.90.
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/2.0.89...2.0.90)

---
updated-dependencies:
- dependency-name: syn
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-03 09:44:50 -08:00
dependabot[bot] 9627540709
build(deps): bump errno from 0.3.9 to 0.3.10 (#3406)
Bumps [errno](https://github.com/lambda-fairy/rust-errno) from 0.3.9 to 0.3.10.
- [Release notes](https://github.com/lambda-fairy/rust-errno/releases)
- [Changelog](https://github.com/lambda-fairy/rust-errno/blob/main/CHANGELOG.md)
- [Commits](https://github.com/lambda-fairy/rust-errno/compare/v0.3.9...v0.3.10)

---
updated-dependencies:
- dependency-name: errno
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-03 09:43:09 -08:00
dependabot[bot] 995a5b4529
build(deps): bump the opentelemetry group with 2 updates (#3399)
Bumps the opentelemetry group with 2 updates: [opentelemetry](https://github.com/open-telemetry/opentelemetry-rust) and [opentelemetry_sdk](https://github.com/open-telemetry/opentelemetry-rust).


Updates `opentelemetry` from 0.27.0 to 0.27.1
- [Release notes](https://github.com/open-telemetry/opentelemetry-rust/releases)
- [Commits](https://github.com/open-telemetry/opentelemetry-rust/compare/opentelemetry-0.27.0...opentelemetry-0.27.1)

Updates `opentelemetry_sdk` from 0.27.0 to 0.27.1
- [Release notes](https://github.com/open-telemetry/opentelemetry-rust/releases)
- [Commits](https://github.com/open-telemetry/opentelemetry-rust/compare/opentelemetry_sdk-0.27.0...opentelemetry_sdk-0.27.1)

---
updated-dependencies:
- dependency-name: opentelemetry
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: opentelemetry
- dependency-name: opentelemetry_sdk
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: opentelemetry
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-02 17:27:42 -08:00
dependabot[bot] 606416ca6d
build(deps): bump libc from 0.2.165 to 0.2.167 (#3403)
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.165 to 0.2.167.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Changelog](https://github.com/rust-lang/libc/blob/0.2.167/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.165...0.2.167)

---
updated-dependencies:
- dependency-name: libc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-02 17:27:24 -08:00
dependabot[bot] 98d3d25de8
build(deps): bump socket2 from 0.5.7 to 0.5.8 (#3401)
Bumps [socket2](https://github.com/rust-lang/socket2) from 0.5.7 to 0.5.8.
- [Release notes](https://github.com/rust-lang/socket2/releases)
- [Changelog](https://github.com/rust-lang/socket2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/socket2/commits)

---
updated-dependencies:
- dependency-name: socket2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-02 17:27:10 -08:00
Oliver Gould b2ef7b48d1
v2.270.0 2024-12-03 01:08:14 +00:00
dependabot[bot] 1482691284
build(deps): bump tracing from 0.1.40 to 0.1.41 (#3400)
Bumps [tracing](https://github.com/tokio-rs/tracing) from 0.1.40 to 0.1.41.
- [Release notes](https://github.com/tokio-rs/tracing/releases)
- [Commits](https://github.com/tokio-rs/tracing/compare/tracing-0.1.40...tracing-0.1.41)

---
updated-dependencies:
- dependency-name: tracing
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-02 08:37:19 -08:00
dependabot[bot] d95e5abaec
build(deps): bump symbolic-demangle from 12.12.1 to 12.12.3 (#3395)
Bumps [symbolic-demangle](https://github.com/getsentry/symbolic) from 12.12.1 to 12.12.3.
- [Release notes](https://github.com/getsentry/symbolic/releases)
- [Changelog](https://github.com/getsentry/symbolic/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/symbolic/compare/12.12.1...12.12.3)

---
updated-dependencies:
- dependency-name: symbolic-demangle
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-27 12:06:24 -05:00
dependabot[bot] 053b080074
build(deps): bump yoke from 0.7.4 to 0.7.5 (#3396)
Bumps [yoke](https://github.com/unicode-org/icu4x) from 0.7.4 to 0.7.5.
- [Release notes](https://github.com/unicode-org/icu4x/releases)
- [Changelog](https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md)
- [Commits](https://github.com/unicode-org/icu4x/commits)

---
updated-dependencies:
- dependency-name: yoke
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-27 12:06:10 -05:00
dependabot[bot] 23e3dbfbc6
build(deps): bump yoke-derive from 0.7.4 to 0.7.5 (#3397)
Bumps [yoke-derive](https://github.com/unicode-org/icu4x) from 0.7.4 to 0.7.5.
- [Release notes](https://github.com/unicode-org/icu4x/releases)
- [Changelog](https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md)
- [Commits](https://github.com/unicode-org/icu4x/commits)

---
updated-dependencies:
- dependency-name: yoke-derive
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-27 12:06:01 -05:00
dependabot[bot] 97247b1ba9
build(deps): bump symbolic-common from 12.12.1 to 12.12.3 (#3398)
Bumps [symbolic-common](https://github.com/getsentry/symbolic) from 12.12.1 to 12.12.3.
- [Release notes](https://github.com/getsentry/symbolic/releases)
- [Changelog](https://github.com/getsentry/symbolic/blob/master/CHANGELOG.md)
- [Commits](https://github.com/getsentry/symbolic/compare/12.12.1...12.12.3)

---
updated-dependencies:
- dependency-name: symbolic-common
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-27 12:05:45 -05:00
katelyn martin aa1dbd7b2f
refactor(proxy/http): extricate `Body` middleware types (#3382)
* refactor(proxy/http): move types to `linkerd-http-classify` (#3382)

in this case we already had a crate defining the classify traits, but
the http body and other assorted middleware were defined in
`linkerd-proxy-http`.

this commit moves those types to the `linkerd-http-classify` crate,
which astute readers may notice, is a concrete step towards simplifying
the `linkerd-proxy-http` crate's upgrade process.

one small detail worth calling out: we implement `http_body::Body`
directly, to avoid taking on a `hyper` dependency. otherwise, nothing
has changed in the `channel`, `gate`, and `insert` middleware.

Signed-off-by: katelyn martin <kate@buoyant.io>

* refactor(proxy/http): create `linkerd-http-retain` crate (#3382)

this moves the `Retain` middleware from `linkerd-proxy-http` into a new
`linkerd-http-retain` crate.

as previously, reëxports are added to make this a backwards compatible
change.

this moves another http body middleware out of the proxy's core http
crate. great news.

Signed-off-by: katelyn martin <kate@buoyant.io>

* refactor(proxy/http): create `linkerd-http-stream-timeouts` crate (#3382)

this commit outlines the stream timeout middleware, pulling it out of
`linkerd-proxy-http` and into a standalone crate.

again, reëxports are added to make this a backwards compatible change.

Signed-off-by: katelyn martin <kate@buoyant.io>

* refactor(proxy/http): create  `linkerd-http-override-authority` crate (#3382)

NB: based on #3379 and #3380.

this pull the `override_authority` submodule out of
`linkerd-http-proxy` and into a standalone crate.

Signed-off-by: katelyn martin <kate@buoyant.io>

* refactor(proxy/http): move `is_bad_request()` into `upgrade` (#3382)

this is only used in once place, so as a brief chore before we move the
upgrade submodule out into its own crate, we pull `is_bad_request()`
next to its call site.

Signed-off-by: katelyn martin <kate@buoyant.io>

* refactor(proxy/http): create `linkerd-http-upgrade` crate (#3382)

this moves the inter-related `upgrade` and `glue` submodules out of the
`linkerd-proxy-http` library and into a new standalone crate.

Signed-off-by: katelyn martin <kate@buoyant.io>

---------

Signed-off-by: katelyn martin <kate@buoyant.io>
2024-11-26 15:01:54 -05:00
dependabot[bot] 0ff6f48bf6
build(deps): bump libc from 0.2.164 to 0.2.165 (#3394)
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.164 to 0.2.165.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Changelog](https://github.com/rust-lang/libc/blob/0.2.165/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.164...0.2.165)

---
updated-dependencies:
- dependency-name: libc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-26 19:07:21 +00:00
dependabot[bot] 25b0f81857
build(deps): bump zerofrom-derive from 0.1.4 to 0.1.5 (#3391)
Bumps [zerofrom-derive](https://github.com/unicode-org/icu4x) from 0.1.4 to 0.1.5.
- [Release notes](https://github.com/unicode-org/icu4x/releases)
- [Changelog](https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md)
- [Commits](https://github.com/unicode-org/icu4x/commits/ind/databake@0.1.5)

---
updated-dependencies:
- dependency-name: zerofrom-derive
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-26 14:03:16 -05:00
dependabot[bot] 1b45076d2f
build(deps): bump cmake from 0.1.51 to 0.1.52 (#3392)
Bumps [cmake](https://github.com/rust-lang/cmake-rs) from 0.1.51 to 0.1.52.
- [Release notes](https://github.com/rust-lang/cmake-rs/releases)
- [Changelog](https://github.com/rust-lang/cmake-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/cmake-rs/compare/v0.1.51...v0.1.52)

---
updated-dependencies:
- dependency-name: cmake
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-26 14:03:05 -05:00
dependabot[bot] 3098f47678
build(deps): bump itoa from 1.0.13 to 1.0.14 (#3393)
Bumps [itoa](https://github.com/dtolnay/itoa) from 1.0.13 to 1.0.14.
- [Release notes](https://github.com/dtolnay/itoa/releases)
- [Commits](https://github.com/dtolnay/itoa/compare/1.0.13...1.0.14)

---
updated-dependencies:
- dependency-name: itoa
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-26 14:02:52 -05:00
dependabot[bot] 775a5b26ed
build(deps): bump url from 2.5.3 to 2.5.4 (#3388)
Bumps [url](https://github.com/servo/rust-url) from 2.5.3 to 2.5.4.
- [Release notes](https://github.com/servo/rust-url/releases)
- [Commits](https://github.com/servo/rust-url/compare/v2.5.3...v2.5.4)

---
updated-dependencies:
- dependency-name: url
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-25 11:01:03 -05:00
dependabot[bot] 32814635fd
build(deps): bump litemap from 0.7.3 to 0.7.4 (#3390)
Bumps [litemap](https://github.com/unicode-org/icu4x) from 0.7.3 to 0.7.4.
- [Release notes](https://github.com/unicode-org/icu4x/releases)
- [Changelog](https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md)
- [Commits](https://github.com/unicode-org/icu4x/commits)

---
updated-dependencies:
- dependency-name: litemap
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-25 10:08:28 -05:00
dependabot[bot] ba57ee2355
build(deps): bump zerofrom from 0.1.4 to 0.1.5 (#3389)
Bumps [zerofrom](https://github.com/unicode-org/icu4x) from 0.1.4 to 0.1.5.
- [Release notes](https://github.com/unicode-org/icu4x/releases)
- [Changelog](https://github.com/unicode-org/icu4x/blob/main/CHANGELOG.md)
- [Commits](https://github.com/unicode-org/icu4x/commits/ind/databake@0.1.5)

---
updated-dependencies:
- dependency-name: zerofrom
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-25 10:08:08 -05:00
dependabot[bot] f14b6fae97
build(deps): bump portable-atomic from 1.9.0 to 1.10.0 (#3387)
Bumps [portable-atomic](https://github.com/taiki-e/portable-atomic) from 1.9.0 to 1.10.0.
- [Release notes](https://github.com/taiki-e/portable-atomic/releases)
- [Changelog](https://github.com/taiki-e/portable-atomic/blob/main/CHANGELOG.md)
- [Commits](https://github.com/taiki-e/portable-atomic/compare/v1.9.0...v1.10.0)

---
updated-dependencies:
- dependency-name: portable-atomic
  dependency-type: indirect
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-25 10:07:49 -05:00
dependabot[bot] d76dda33d6
build(deps): bump the opentelemetry group with 2 updates (#3356)
Bumps the opentelemetry group with 2 updates: [opentelemetry](https://github.com/open-telemetry/opentelemetry-rust) and [opentelemetry_sdk](https://github.com/open-telemetry/opentelemetry-rust).


Updates `opentelemetry` from 0.26.0 to 0.27.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-rust/releases)
- [Commits](https://github.com/open-telemetry/opentelemetry-rust/compare/opentelemetry-0.26.0...opentelemetry-0.27.0)

Updates `opentelemetry_sdk` from 0.26.0 to 0.27.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-rust/releases)
- [Commits](https://github.com/open-telemetry/opentelemetry-rust/compare/opentelemetry_sdk-0.26.0...opentelemetry_sdk-0.27.0)

---
updated-dependencies:
- dependency-name: opentelemetry
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: opentelemetry
- dependency-name: opentelemetry_sdk
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: opentelemetry
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Oliver Gould <ver@buoyant.io>
2024-11-22 18:53:27 +00:00
Zahari Dichev 7b782128a9
fix(outbound): apply opaq filters in connection handler (#3378)
The initial implementation of opaq filters uses `push_filter` so that
errors originate from `Service::poll_ready` rather than `Service::call`.
This causes the transport metrics middleware to not count failed
connections.

By changing the filter contract so that filters are applied in `Service::call`,
we ensure that middlewares see response failures rather than readiness
failures.

Signed-off-by: Zahari Dichev <zaharidichev@gmail.com>
Co-authored-by: Oliver Gould <ver@buoyant.io>
2024-11-22 09:48:35 -08:00
dependabot[bot] 0a4ccac835
build(deps): bump proc-macro2 from 1.0.91 to 1.0.92 (#3384)
Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.91 to 1.0.92.
- [Release notes](https://github.com/dtolnay/proc-macro2/releases)
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.91...1.0.92)

---
updated-dependencies:
- dependency-name: proc-macro2
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-22 08:23:51 -08:00
dependabot[bot] d0396cdf40
build(deps): bump cpufeatures from 0.2.15 to 0.2.16 (#3383)
Bumps [cpufeatures](https://github.com/RustCrypto/utils) from 0.2.15 to 0.2.16.
- [Commits](https://github.com/RustCrypto/utils/compare/cpufeatures-v0.2.15...cpufeatures-v0.2.16)

---
updated-dependencies:
- dependency-name: cpufeatures
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-22 08:23:37 -08:00
dependabot[bot] 6a8168a1da
build(deps): bump syn from 2.0.87 to 2.0.89 (#3385)
Bumps [syn](https://github.com/dtolnay/syn) from 2.0.87 to 2.0.89.
- [Release notes](https://github.com/dtolnay/syn/releases)
- [Commits](https://github.com/dtolnay/syn/compare/2.0.87...2.0.89)

---
updated-dependencies:
- dependency-name: syn
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-22 08:23:19 -08:00
katelyn martin edef79ccd1
refactor(proxy/http): create `linkerd-http-insert` crate (#3380)
* refactor(proxy/http): create `linkerd-http-insert` crate

this pulls out the `insert` module from `linkerd-proxy-http`.

a reëxport is added so that this does not affect the public api of the
http crate.

NB: based on #3379.

Signed-off-by: katelyn martin <kate@buoyant.io>

* docs(http/insert): doc comments

this commit adds documentation to `linkerd-http-insert`.

Signed-off-by: katelyn martin <kate@buoyant.io>

---------

Signed-off-by: katelyn martin <kate@buoyant.io>
2024-11-21 21:47:26 +00:00
katelyn martin efba099ac5
refactor(proxy/http): create `linkerd-http-version` crate (#3379)
* feat(proxy/http): create `linkerd-http-version` crate

this outlines the http version type into its own crate.

reëxports are added to make this a backwards compatible change, i.e. no
changes to the public api of `linkerd-proxy-http` are performed here.

Signed-off-by: katelyn martin <kate@buoyant.io>

* docs(http/version): doc comments

this adds some brief documentation comments to the crate.

Signed-off-by: katelyn martin <kate@buoyant.io>

---------

Signed-off-by: katelyn martin <kate@buoyant.io>
2024-11-21 12:55:39 -08:00
katelyn martin e4d7d5782d
feat(app): Route frame count metrics (#3334)
###  overview

this introduces a new tower middleware for Prometheus metrics, used for
instrumenting HTTP and gRPC request bodies, and observing (a) the
number of frames yielded by a body, (b) the number of bytes included
in body frames, and (c) a distribution of the size of frames yielded.

this builds upon the backend-level metrics added in #3308. this
additionally uses the route label extractor, hoisted out of the retry
middleware's Prometheus telemetry in #3337.

 ### 📝 changes

* a `linkerd_http_prom::body_data::request::NewRecordBodyData::NewRecordBodyData`
  middleware is added, which complements the equivalent
  `linkerd_http_prom::body_data::response` middleware.

* this is added to policy routes' metrics layer.

see prometheus/client_rust#241 and prometheus/client_rust#242, which
track upstream proposals to add accessors to `Histogram` that will allow
us to make test assertions that metrics are working properly. for now,
these are feature gated as also done in #3308.

Signed-off-by: katelyn martin <kate@buoyant.io>
2024-11-21 14:43:33 -05:00
Zahari Dichev 621ea1991a
build(deps): update linkerd2-proxy-api to v0.15.0 (#3377)
To update to the latest proxy API release, we also update the opaque stack filter types.

Signed-off-by: Zahari Dichev <zaharidichev@gmail.com>
2024-11-21 19:30:36 +00:00
dependabot[bot] ca4612d039
build(deps): bump proc-macro2 from 1.0.89 to 1.0.91 (#3373)
Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.89 to 1.0.91.
- [Release notes](https://github.com/dtolnay/proc-macro2/releases)
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.89...1.0.91)

---
updated-dependencies:
- dependency-name: proc-macro2
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-21 11:14:05 -08:00
dependabot[bot] 9bb3393447
build(deps): bump unicode-ident from 1.0.13 to 1.0.14 (#3370)
Bumps [unicode-ident](https://github.com/dtolnay/unicode-ident) from 1.0.13 to 1.0.14.
- [Release notes](https://github.com/dtolnay/unicode-ident/releases)
- [Commits](https://github.com/dtolnay/unicode-ident/compare/1.0.13...1.0.14)

---
updated-dependencies:
- dependency-name: unicode-ident
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-21 11:13:35 -08:00
dependabot[bot] 7f2d932d38
build(deps): bump itoa from 1.0.11 to 1.0.13 (#3374)
Bumps [itoa](https://github.com/dtolnay/itoa) from 1.0.11 to 1.0.13.
- [Release notes](https://github.com/dtolnay/itoa/releases)
- [Commits](https://github.com/dtolnay/itoa/compare/1.0.11...1.0.13)

---
updated-dependencies:
- dependency-name: itoa
  dependency-type: indirect
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-21 11:13:18 -08:00
katelyn martin e190dae900
refactor(app): Outline route label extractor (#3337)
* refactor(app): Hoist label extractor out of retry middleware

this commit promotes the `RetryLabelExtract` type out of the route retry
middleware, and into the metrics submodule.

in preparation for generalizing this component, we rename it to
`RouteLabelExtract`.

Signed-off-by: katelyn martin <kate@buoyant.io>

* refactor(app): Outline route label extraction

this addresses the `TODO` comment, moving the `RouteLabelExtract` type
out of the policy route layer function.

this defines a method on `MatchedRoute` which may be called to retrieve
a `RouteLabelExtract`. that type holds references to the
contruction-time information about the route, and can be used to later
inspect an outbound request at call-time, returning a `labels::Route`
set of labels.

this is a helpful piece of reusable glue that is broadly useful in
instrumenting our route-level middleware.

Signed-off-by: katelyn martin <kate@buoyant.io>

---------

Signed-off-by: katelyn martin <kate@buoyant.io>
2024-11-21 14:56:49 +00:00
katelyn martin 049e01bfdb
feat(app): Backend frame count metrics (#3308)
* feat(app): Backend response frame count metrics

this introduces a new tower middleware for Prometheus metrics, used for
instrumenting HTTP and gRPC response bodies, and observing (a) the
number of frames yielded by a body, and (b) the number of bytes included
in body frames, and (c) the distribution of frame sizes.

this middleware allows operators to reason about how large or small the
packets being served in a backend's response bodies are.

a route-level middleware that instruments request bodies will be added
in a follow-on PR.

 ### 📝 changes

an overview of changes made here:

* the `linkerd-http-prom` has a new `body_data` submodule. it exposes
  `request` and `response` halves, to be explicit about which body is
  being instrumented on a `tower::Service`.

* the `linkerd-http-prom` crate now has a collection of new
  dependencies: `bytes` is added as a dependency in order to inspect the
  data chunk when the inner body yields a new frame. `futures-util` and
  `http-body` are added as dev-dependencies for the accompanying test
  coverage.

* body metrics are affixed to the `RouteBackendMetrics<L>` structure,
  and registered at startup.

Signed-off-by: katelyn martin <kate@buoyant.io>

* review: Inline attribute to service passthrough

Signed-off-by: katelyn martin <kate@buoyant.io>

* review: Inline attribute to body passthrough

continuing this theme of inlining, we inline the passthrough methods on
`Body` as well.

Signed-off-by: katelyn martin <kate@buoyant.io>

* review: Box `<RecordBodyData as Service>::Future` values

Signed-off-by: katelyn martin <kate@buoyant.io>

* review: rename `get()` to `metrics()`

Signed-off-by: katelyn martin <kate@buoyant.io>

* review: simplify `RecordBodyData<S>` response

Signed-off-by: katelyn martin <kate@buoyant.io>

* Update ResponseBody metrics to use a histogram

Signed-off-by: Oliver Gould <ver@buoyant.io>

* refactor(tests): feature gate frame size histogram assertions

see:

* https://github.com/prometheus/client_rust/pull/242
* https://github.com/prometheus/client_rust/pull/241

for now, refactor this test so that it gates all use of the (proposed)
`sum()` and `count()` accessors behind a temporary feature gate.

Signed-off-by: katelyn martin <kate@buoyant.io>

---------

Signed-off-by: katelyn martin <kate@buoyant.io>
Signed-off-by: Oliver Gould <ver@buoyant.io>
Co-authored-by: Oliver Gould <ver@buoyant.io>
2024-11-20 15:45:27 -05:00
dependabot[bot] 5df46ac601
build(deps): bump codecov/codecov-action from 5.0.2 to 5.0.4 (#3372)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.0.2 to 5.0.4.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](5c47607acb...985343d705)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-20 11:53:59 -08:00
katelyn martin 12905c5edf
refactor(app): `MockBody` convenience functions for test code (#3349)
* refactor(app): add `pending()` helper for mock body

in timeout tests, we construct mock bodies that are backed by a
`Pending<T>` future that will never yield any data.

this introduces a small `pending()` helper to the `MockBody` type used
in test code in the outbound proxy.

Signed-off-by: katelyn martin <kate@buoyant.io>

* refactor(app): add `error()` helper for mock body

in metrics tests, we construct mock bodies that will yield an error
when polled, to examine how telemetry measures certain edge cases.

this introduces a small `error()` helper to the `MockBody` type used
in test code in the outbound proxy.

Signed-off-by: katelyn martin <kate@buoyant.io>

* refactor(app): add `grpc_status()` helper for mock body

in metrics tests, we construct mock bodies that will yield an gRPC
status code in its trailers section
when polled, to examine how telemetry measures gRPC responses.

this refactors the `trailers()` function to more narrowly focus on the
test coverage needed, to help reduce boilerplate in test code.

Signed-off-by: katelyn martin <kate@buoyant.io>

---------

Signed-off-by: katelyn martin <kate@buoyant.io>
2024-11-20 13:54:01 -05:00
dependabot[bot] 4dc979fd31
build(deps): bump codecov/codecov-action from 5.0.0 to 5.0.2 (#3367)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5.0.0 to 5.0.2.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](968872560f...5c47607acb)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-18 08:28:33 -08:00
dependabot[bot] ad0b831af2
build(deps): bump libc from 0.2.162 to 0.2.164 (#3368)
Bumps [libc](https://github.com/rust-lang/libc) from 0.2.162 to 0.2.164.
- [Release notes](https://github.com/rust-lang/libc/releases)
- [Changelog](https://github.com/rust-lang/libc/blob/main/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/libc/compare/0.2.162...0.2.164)

---
updated-dependencies:
- dependency-name: libc
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-11-18 08:28:20 -08:00