Commit Graph

71 Commits (3f6c889152027b1323b46b049850a5afb94b628b)

Author SHA1 Message Date
Conrad Ludgate 3f6c889152
fix otel status 2023-05-15 11:39:18 +01:00
Alex Wakefield af1080f21c
Move path matching changes to right log (#91)
* doc: move path matching changes to right log

* update

---------

Co-authored-by: Conrad Ludgate <conrad.ludgate@truelayer.com>
2023-05-12 11:16:42 +01:00
Conrad Ludgate 80d56d89f3
release middleware 2023-05-11 14:17:05 +01:00
Jeramy Singleton d5e71a0c89
Added version function to RequestBuilder impl (#90)
* Adds version function to RequestBuilder impl

Addresses an issue where the Http version of a request cannot be changed when using reqwest_middleware

* Removes  function from wasm compiles

---------

Co-authored-by: Jeramy Singleton <wisingle@microsoft.com>
2023-05-11 13:30:15 +01:00
Alex Wakefield 3457bf5702
Add `OtelPathNames` for span names (#89)
* feat: add `OtelPathNames` for span names

If this extension is provided span names will be `<method> <path name>`.
These path names will include parameter names rather than IDs or other elements that would increase the cardinality.

* doc: update changelog

* refactor: update `known_paths` to return error

* refactor: return `anyhow::Error` instead

This is as `reqwest_middleware::Error` is more focused on handling a
request.
2023-04-26 15:28:32 +01:00
Matthew Gapp f8ff599f50
fix: remove middleware retry limit (#87)
* refactor: Simplify retry middleware in reqwest.

Removed retry limit:

- Remove MAXIMUM_NUMBER_OF_RETRIES metadata and references in middleware.rs
- Correct mispelling: retry_decision to retry_decision in middleware.rs
- Update Retryable matching to only match Retryable::Transient in middleware.rs
- Simplify branching by removing n_past_retries < MAXIMUM_NUMBER_OF_RETRIES condition in middleware.rs

* test: Remove retry cap assertion from test file

remove retry limit assertion test
2023-04-17 13:02:13 +01:00
Léo Gaspard fef18b3506
feat: wasm32-unknown-unknown support (#79)
* feat: wasm32-unknown-unknown support

This replaces task-local-extensions with http's extensions, as http was
already in the dependency closure anyway and the other features of
task-local-extensions (that required an incompatible-with-wasm part of
tokio) were not used anyway.

* feat: have ci check that wasm32-unknown-unknown keeps compiling

* revert back to task-local-extensions

* fix ci

* fix random on wasm

* fix ci again

* bump

---------

Co-authored-by: Conrad Ludgate <conrad.ludgate@truelayer.com>
2023-03-09 11:33:13 +00:00
tl-helge-hoff f854725791
feat: classify io error connection reset by peer (#78)
* feat: classify io error connection reset by peer

* doc: explain tests

* chore: add changelog

* fix: use and_then

* chore: docs and clippy

* chore: bump reqwest-retry to 0.2.1

* fix: use get_source_error_type

* fix: remove unused import

* fix: make clippy happy

* doc: describe canceled
2022-12-02 10:57:24 +01:00
John Vandenberg 8763ab1e30
README.md: Add third party middleware list (#75) 2022-11-23 11:20:21 +00:00
John Vandenberg a7f9a112ed
Update example in tracing README (#76) 2022-11-23 07:39:54 +00:00
Conrad Ludgate 289bb0452c
bump all versions (#71) 2022-11-15 10:31:34 +00:00
tl-rodrigo-gryzinski 197f19781d
Make http.url field opt-in (#70) 2022-11-10 13:21:07 +00:00
Robert Collins 4fb158f785
Fix indents in Changelog. (#67) 2022-11-07 14:23:43 +00:00
Balaji Arun 2e57e95f99
Borrow self when try_clone and clone inner client. (#60)
Co-authored-by: Conrad Ludgate <conrad.ludgate@truelayer.com>
2022-11-07 13:14:02 +00:00
Robert Collins 07d154cadf
Custom otel names (#65)
* Breaking change(macros): require explicit name for tracing middleware

Closes: #52

This is suggested by the Opentelemetry spec, which requires "Therefore,
HTTP client spans SHOULD be using conservative, low cardinality names
formed from the available parameters of an HTTP request, such as "HTTP
{METHOD_NAME}". Instrumentation MUST NOT default to using URI path as
span name, but MAY provide hooks to allow custom logic to override the
default span name.
"

* Permit customisation of otel span names via OtelName
2022-11-07 13:07:23 +00:00
Robert Collins 920cb5ac16
Capture URL as http.url (#64) 2022-11-07 08:45:58 +00:00
Robert Collins 7a09e335aa
Fix main builds (#66)
* Remove unneeded derefs

* Resolve reqwest_otel_span correctly in docs.

Macros always resolve to the crate root.
2022-11-07 08:39:03 +00:00
Robert Collins ddd7e12104
Make clear examples are just examples (#63) 2022-11-07 06:51:40 +00:00
Kai 0f7c2e15fa
Add missing dep in reqwest-tracing README (#61) 2022-10-05 14:56:46 +01:00
Conrad Ludgate 85e520f78b
extensions middleware and request extensions (#56)
* extensions middleware and request extensions

* fix publish

* request initialisers

* simplify example

* docs

* changelog

* Apply suggestions from code review

Co-authored-by: Alex Butler <alexheretic@gmail.com>

Co-authored-by: Alex Butler <alexheretic@gmail.com>
2022-09-30 10:14:31 +01:00
Conrad Ludgate 3c00388cfb
bump reqwest-tracing (#59) 2022-09-29 16:17:12 +01:00
birkmose dd877924c4
Opentelemetry 0.18 (#58)
* Support for opentelemetry 0.18

* Updated changelog

* Update CI/CD to test 0.18

* Update documentation to use opentelemetry 0.18

* Update to use 0.18 in libs
2022-09-20 16:07:32 +03:00
tl-rodrigo-gryzinski e2635c9f8d
Add note about streaming requests in RetryTransientMiddleware docs (#51) 2022-07-21 16:39:15 +01:00
Tomasz Andrzejak 360f23c952
Add implementation of `Debug` trait for `RequestBuilder`. (#50) 2022-07-21 13:23:27 +01:00
Conrad Ludgate b3f7ce40d3
fix recursion in retry (#49) 2022-07-09 23:34:23 +01:00
tl-flavio-barinas ad18935d1f
bump/use alpha versions (#48) 2022-06-30 16:08:59 +01:00
tl-flavio-barinas cbe69f61a1 reqwest-tracing: bump to v0.3.0 2022-06-30 14:57:55 +01:00
Alessandro Zanin 13ca870d20
Allows adding properties to the span (#43)
Provides reqwest-tracing with a trait ReqwestOtelSpanBackend, allowing custom fields/behaviour to be defined.

This is a breaking change as the TracingMiddleware signature now requires you to define a ReqwestOtelSpanBackend to provide it with the desired span behaviour.

Co-authored-by: Alessandro Zanin <ale.zanin90@gmail.com>
Co-authored-by: tl-flavio-barinas <flavio.barinas@truelayer.com>
Co-authored-by: Marco Tormento <tl-marco-tormento@users.noreply.github.com>
2022-06-30 14:54:54 +01:00
tl-flavio-barinas 8a6b2ea571
bump reqwest-tracing to v0.2.3 (#46)
* (cargo-release) reqwest-tracing v0.2.3

* sort dependencies

* Fix dependency versions

* Fix reqwest-middleware dependency

Co-authored-by: azanin <ale.zanin90@gmail.com>
2022-06-29 15:06:52 +01:00
James Hinshelwood 762007b524
Update `otel.status_code` mapping with latest version of spec. (#41)
Co-authored-by: James Hinshelwood <james.hinshelwood@bigpayme.com>
Signed-off-by: James Hinshelwood <jameshinshelwood1@gmail.com>

Co-authored-by: James Hinshelwood <james.hinshelwood@bigpayme.com>
2022-05-17 10:25:58 +01:00
Rodrigo Gryzinski 8f6af94914 bump versions and update changelog for reqwest-tracing 2022-04-21 18:53:32 +01:00
Rodrigo Gryzinski 8458d82eef (cargo-release) version 0.2.2 2022-04-21 18:49:16 +01:00
Rodrigo Gryzinski 57ee4ec439 (cargo-release) version 0.1.5 2022-04-21 18:49:16 +01:00
Rodrigo Gryzinski e9fd6f80ea (cargo-release) version 0.1.6 2022-04-21 18:49:16 +01:00
Conrad Ludgate dc44128c7f
fix: context not propagated if request_span is disabled (#39) 2022-04-21 18:39:06 +01:00
Conrad Ludgate f928a7b2d6
docs: fix readme (#40) 2022-04-21 18:38:15 +01:00
Marcus Griep 643f47ad92
chore: correct OpenTracing -> OpenTelemetry (#34) 2022-03-09 16:23:43 +00:00
tl-rodrigo-gryzinski 5f180155ef
Release reqwest middleware 0.1.5 (#31)
* (cargo-release) reqwest-middleware version 0.1.5
* (cargo-release) reqwest-retry version 0.1.4
* (cargo-release) reqwest-tracing version 0.2.1
* (cargo-release) reqwest-middleware start next development iteration 0.1.6-alpha.0
* (cargo-release) reqwest-retry start next development iteration 0.1.5-alpha.0
* (cargo-release) reqwest-tracing start next development iteration 0.2.2-alpha.0
* Updated CHANGELOGS for 0.1.4 and 0.1.5
2022-02-21 12:50:18 +00:00
Marco Ieni 6f75e43ad4
allow RUSTSEC-2020-0159 (#30)
Co-authored-by: MarcoIeni <11428655+MarcoIeni@users.noreply.github.com>
2022-02-21 11:47:52 +00:00
Geoffroy Couprie 7b288f582b
update to opentelemetry 0.17 (#29)
* update to opentelemetry 0.17
2022-02-16 17:37:54 +00:00
Luca Palmieri 53b8b066f3 (cargo-release) start next development iteration 0.1.5-alpha.0 2022-01-24 11:26:25 +00:00
Luca Palmieri 992221d48a (cargo-release) version 0.1.4 2022-01-24 11:25:35 +00:00
Christian Haynes 8b8d22cafd
moved to finish_non_exhaustive in Debug impl for ClientWithMiddleware (#27) 2022-01-24 11:24:34 +00:00
Luca Palmieri d3fe5acf02 (cargo-release) start next development iteration 0.1.4-alpha.0 2021-12-06 16:20:20 +00:00
Luca Palmieri 00f28c3bf0 (cargo-release) version 0.1.3 2021-12-06 16:19:44 +00:00
Christian Haynes 6cbea8d7e6
added custom Debug implementation for ClientWithMiddleware, skipping middleware_stack field (#22) 2021-12-06 16:18:49 +00:00
Luca Palmieri 525f62039f
Fix clippy lint. (#23) 2021-12-06 16:06:23 +00:00
Luca Palmieri ff0593d4c5
Update README.md 2021-11-30 16:16:17 +00:00
Luca Palmieri d3a6900cea
Cut 0.2.0 release of `reqwest-tracing`. (#19)
* Cut 0.2.0 release of `reqwest-tracing`.

* (cargo-release) version 0.2.0

* (cargo-release) start next development iteration 0.2.1-alpha.0
2021-11-30 16:15:36 +00:00
Geoffroy Couprie 422566972a
update tracing-opentelemetry to 0.16 (#18)
this update requires moving to tracing-subscriber 0.3. It removes chrono
from transitive dependencies, following
https://rustsec.org/advisories/RUSTSEC-2020-0159.html
2021-11-30 16:00:23 +00:00