Skip to content

feat(multipath): add back basic metrics#3672

Merged
Frando merged 7 commits intofeat-multipathfrom
Frando/mp-metrics-basics
Dec 9, 2025
Merged

feat(multipath): add back basic metrics#3672
Frando merged 7 commits intofeat-multipathfrom
Frando/mp-metrics-basics

Conversation

@Frando
Copy link
Copy Markdown
Member

@Frando Frando commented Nov 17, 2025

Description

This adds back basic metrics to feat-multipath.

  • Refactor the conn_ metrics (they were all currently unused on feat-multipath) into something meaningful: Track the total number of opened and closed connections - their diff at any time is the number of currently-active conne
  • Adds transport_ip_paths_added, transport_ip_paths_removed, transport_relay_paths_added, transport_relay_paths_removed counters
  • Removes metrics that are unused and - IMO - not going to come back
  • Comments out metrics that are unused and likely to come back

Breaking Changes

Notes & open questions

Change checklist

  • Self-review.
  • Documentation updates following the style guide, if relevant.
  • Tests if relevant.
  • All breaking changes documented.
    • List all breaking changes in the above "Breaking Changes" section.
    • Open an issue or PR on any number0 repos that are affected by this breaking change. Give guidance on how the updates should be handled or do the actual updates themselves. The major ones are:

Comment thread iroh/src/magicsock/metrics.rs
Comment thread iroh/src/magicsock/metrics.rs
pub actor_tick_other: Counter,

/// Number of endpoints we have attempted to contact.
pub endpoints_contacted: Counter,
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we ever could do this in a good way, because we don't keep lists of endpoint ids over restarts, so this was already a bad metric for a while - removed it.

/// Number of endpoints we have attempted to contact.
pub endpoints_contacted: Counter,
/// Number of endpoints we have managed to contact directly.
pub endpoints_contacted_directly: Counter,
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same as above, I don't think there's a good way to do it meaningfully.

/// Number of connections with a successful handshake.
pub connection_handshake_success: Counter,
/// Number of connections with a successful handshake that became direct.
pub connection_became_direct: Counter,
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These two are better handled by the new conn_ metrics above

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Nov 17, 2025

Documentation for this PR has been generated and is available at: https://n0-computer.github.io/iroh/pr/3672/docs/iroh/

Last updated: 2025-12-09T11:27:18Z

@Frando Frando linked an issue Nov 17, 2025 that may be closed by this pull request
@n0bot n0bot Bot added this to iroh Nov 17, 2025
@github-project-automation github-project-automation Bot moved this to 🏗 In progress in iroh Nov 17, 2025
@Frando Frando requested a review from flub November 18, 2025 09:59
@github-actions
Copy link
Copy Markdown

Netsim report & logs for this PR have been generated and is available at: LOGS
This report will remain available for 3 days.

Last updated for commit: 6516d6f

Comment on lines +1463 to +1469
metrics.num_conns_transport_ip_only.inc();
}
TransportSummary::RelayOnly => {
metrics.num_conns_transport_relay_only.inc();
}
TransportSummary::IpAndRelay => {
metrics.num_conns_transport_ip_and_relay.inc();
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Talked with @Arqu and we agreed to remove these 3 metrics and instead have these 4:

  • ip_transport_paths_added: counter
  • ip_transport_paths_removed: counter
  • relay_transport_paths_added: counter
  • relay_transport_paths_removed: counter

That way we can increment counters when paths are opened and closed. It doesn't give you full view into what connections have been doing, but neither does this, because typically nearly everything would have been num_conns_transport_ip_and_relay.

@Frando
Copy link
Copy Markdown
Member Author

Frando commented Dec 8, 2025

I rebased this branch, removed the TransportSummary metrics and added the paths counters. I named the counters to transport_paths_ip_added etc, so that they share a prefix and are easily correlated when having a sorted list of metrics - lmk if you prefer your naming @flub.

@Frando Frando requested a review from flub December 8, 2025 12:47
Copy link
Copy Markdown
Contributor

@flub flub left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally LGTM though would appreciate fixing the nits.

Thanks for getting back to this!

&mut self,
addr: transports::Addr,
source: Source,
metrics: &MagicsockMetrics,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd suggest to clone MagicsockMetrics into here, it exists for the same duration as the actor anyway. But this is optional, as you wish.

metrics: &MagicsockMetrics,
) {
match addr {
transports::Addr::Ip(_) => metrics.transport_paths_ip_added.inc(),
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Names are pretty subjective, I think I'll argue for transport_{ip|relay}_paths_added. Reason being that paths_added is the counter unit and tranport_ip belongs together as ip is the qualifier to transports. Good call to put transports at the front though.

Now what I really want is labels so we can do paths_added{transport=ip} but hey.

Comment thread iroh/src/magicsock/metrics.rs Outdated
// pub path_rtt_variance_ms: Histogram,
// /// Histogram of path quality scores (0.0-1.0).
// #[default(Histogram::new(vec![0.0, 0.3, 0.5, 0.7, 0.85, 0.95, 1.0]))]
// pub path_quality_score: Histogram,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shall we remove the commented out stuff? I think we can come up with this again if we do end up needing something like it (well, I'm hoping we'd come up with something better 😉 )

@Frando Frando merged commit faa2119 into feat-multipath Dec 9, 2025
16 of 28 checks passed
@github-project-automation github-project-automation Bot moved this from 🏗 In progress to ✅ Done in iroh Dec 9, 2025
@Arqu Arqu deleted the Frando/mp-metrics-basics branch December 9, 2025 21:38
eleboucher pushed a commit to eleboucher/towonel that referenced this pull request Apr 18, 2026
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [iroh](https://github.com/n0-computer/iroh) | workspace.dependencies | minor | `0.95` → `0.97` |

---

### Release Notes

<details>
<summary>n0-computer/iroh (iroh)</summary>

### [`v0.97.0`](https://github.com/n0-computer/iroh/blob/HEAD/CHANGELOG.md#0970---2026-03-16)

[Compare Source](n0-computer/iroh@v0.96.1...v0.97.0)

##### ⛰️  Features

- *(iroh)* \[**breaking**] Dropping the endpoint ungracefully should log and error, but still clean up resources immediately ([#&#8203;3879](n0-computer/iroh#3879)) - ([9cf417a](n0-computer/iroh@9cf417a))
- *(iroh)* \[**breaking**] Retain stats for closed and abandoned paths in the path watcher ([#&#8203;3899](n0-computer/iroh#3899)) - ([b11e707](n0-computer/iroh@b11e707))
- *(iroh)* More precise information about incoming connections ([#&#8203;3949](n0-computer/iroh#3949)) - ([abc349c](n0-computer/iroh@abc349c))
- *(iroh)* \[**breaking**] Add address filtering and reordering for Address Lookup Services ([#&#8203;3960](n0-computer/iroh#3960)) - ([d33a32f](n0-computer/iroh@d33a32f))
- *(iroh)* Proper span for endpoints ([#&#8203;3988](n0-computer/iroh#3988)) - ([e23f2f3](n0-computer/iroh@e23f2f3))
- *(iroh)* Allow propagation of addr filters through the endpoint ([#&#8203;4010](n0-computer/iroh#4010)) - ([5df183d](n0-computer/iroh@5df183d))
- *(iroh)* Add tracing events for connections ([#&#8203;4021](n0-computer/iroh#4021)) - ([f226881](n0-computer/iroh@f226881))
- *(iroh)* \[**breaking**] Cleanup preset API ([#&#8203;4014](n0-computer/iroh#4014)) - ([759f14e](n0-computer/iroh@759f14e))
- *(iroh-relay)* Embeddable relay server ([#&#8203;3832](n0-computer/iroh#3832)) - ([fe7f04f](n0-computer/iroh@fe7f04f))
- *(netsim)* Filter tests ([#&#8203;3946](n0-computer/iroh#3946)) - ([1729243](n0-computer/iroh@1729243))
- Allow to customize TLS trust roots ([#&#8203;3973](n0-computer/iroh#3973)) - ([ba4ee62](n0-computer/iroh@ba4ee62))
- Implement custom transports ([#&#8203;3845](n0-computer/iroh#3845)) - ([d434c85](n0-computer/iroh@d434c85))
- \[**breaking**] Switch noq ([#&#8203;4005](n0-computer/iroh#4005)) - ([b32c927](n0-computer/iroh@b32c927))

##### 🐛 Bug Fixes

- *(docs)* Just a typo in the documentation for mdns discovery ([#&#8203;3929](n0-computer/iroh#3929)) - ([cf6acb5](n0-computer/iroh@cf6acb5))
- *(example)* Always close the endpoint ([#&#8203;4007](n0-computer/iroh#4007)) - ([afc1faa](n0-computer/iroh@afc1faa))
- *(iroh)* Disable QAD if no IP transports are configured ([#&#8203;3926](n0-computer/iroh#3926)) - ([aa14381](n0-computer/iroh@aa14381))
- *(iroh)* \[**breaking**] Reexport full dns module from iroh-relay ([#&#8203;3916](n0-computer/iroh#3916)) - ([523c93c](n0-computer/iroh@523c93c))
- *(iroh)* Don't depend on the unused `relays` ff of pkarr ([#&#8203;4004](n0-computer/iroh#4004)) - ([2494255](n0-computer/iroh@2494255))
- *(iroh)* \[**breaking**] Don't publish IP addresses from `PkarrPublisher` by default ([#&#8203;4012](n0-computer/iroh#4012)) - ([b3da940](n0-computer/iroh@b3da940))
- *(iroh-relay)* Turn off nagle for relayed streams in iroh-relay servers ([#&#8203;3995](n0-computer/iroh#3995)) - ([82e0695](n0-computer/iroh@82e0695))
- *(tests)* Give test longer to not be flaky ([#&#8203;3939](n0-computer/iroh#3939)) - ([1324c66](n0-computer/iroh@1324c66))
- Configure git identity in cleanup workflow  - ([dbe5112](n0-computer/iroh@dbe5112))
- Increase DNS timeout and address lookup stagger intervals ([#&#8203;4008](n0-computer/iroh#4008)) - ([993b018](n0-computer/iroh@993b018))

##### 🚜 Refactor

- *(iroh)* Avoid rustls feature flag use in `resolver.rs` ([#&#8203;3985](n0-computer/iroh#3985)) - ([dd381a1](n0-computer/iroh@dd381a1))
- *(iroh)* Use combinator approach for address filtering ([#&#8203;3987](n0-computer/iroh#3987)) - ([a289f63](n0-computer/iroh@a289f63))
- *(iroh, iroh-relay)* \[**breaking**] Relay should not kill old connections when same endpoint id connects ([#&#8203;3921](n0-computer/iroh#3921)) - ([1b4ee2a](n0-computer/iroh@1b4ee2a))
- *(transfer example)* Remove `SelectedPath::Mixed` as an impossible state ([#&#8203;3895](n0-computer/iroh#3895)) - ([9cc8602](n0-computer/iroh@9cc8602))
- Simplify path selection  - ([df6c396](n0-computer/iroh@df6c396))
- Update quinn and simplify path handling in `RemoteStateActor` ([#&#8203;3967](n0-computer/iroh#3967)) - ([1ffb560](n0-computer/iroh@1ffb560))
- Add doc comments, move code around, rename ([#&#8203;3977](n0-computer/iroh#3977)) - ([1c5bd5b](n0-computer/iroh@1c5bd5b))
- Remove special fast path for hickory resolver ([#&#8203;4022](n0-computer/iroh#4022)) - ([7fc9fb9](n0-computer/iroh@7fc9fb9))

##### 📚 Documentation

- Fix typo in documentation comment for generate function ([#&#8203;4001](n0-computer/iroh#4001)) - ([766097b](n0-computer/iroh@766097b))

##### ⚙️ Miscellaneous Tasks

- *(ci)* Add custom RUST\_LOG support for netsim ([#&#8203;3942](n0-computer/iroh#3942)) - ([d240360](n0-computer/iroh@d240360))
- *(ci)* Colocate sims into iroh repo ([#&#8203;3957](n0-computer/iroh#3957)) - ([403238a](n0-computer/iroh@403238a))
- *(ci)* Add text summary for discord notification ([#&#8203;3962](n0-computer/iroh#3962)) - ([6650c78](n0-computer/iroh@6650c78))
- *(iroh)* Add `--logs`  and `--mode ping` features to transfer example ([#&#8203;3893](n0-computer/iroh#3893)) - ([08b0b8a](n0-computer/iroh@08b0b8a))
- *(iroh)* Update noq commit, stop exposing `AeadKey` ([#&#8203;4003](n0-computer/iroh#4003)) - ([bf07082](n0-computer/iroh@bf07082))
- *(readme)* Link to noq instead of Quinn ([#&#8203;3989](n0-computer/iroh#3989)) - ([4033b3c](n0-computer/iroh@4033b3c))
- Update to quinn main ([#&#8203;3938](n0-computer/iroh#3938)) - ([3a45cd0](n0-computer/iroh@3a45cd0))
- Remove process and signal tokio features ([#&#8203;3993](n0-computer/iroh#3993)) - ([086c6e8](n0-computer/iroh@086c6e8))
- Update deps ([#&#8203;4006](n0-computer/iroh#4006)) - ([df0777a](n0-computer/iroh@df0777a))
- Remove netdev from the direct dependencies ([#&#8203;4019](n0-computer/iroh#4019)) - ([76609fd](n0-computer/iroh@76609fd))
- Update changelog generation command - ([29c8c85](n0-computer/iroh@29c8c85))

##### Deps

- Bump wasm-bindgen-test ([#&#8203;3966](n0-computer/iroh#3966)) - ([f628359](n0-computer/iroh@f628359))
- Upgrade away from yanked crate ([#&#8203;3982](n0-computer/iroh#3982)) - ([1e4a738](n0-computer/iroh@1e4a738))
- Prefer portable\_atomic over native AtomicU64 ([#&#8203;3994](n0-computer/iroh#3994)) - ([ae4877e](n0-computer/iroh@ae4877e))
- Feature gate portmapper, and allow disabling portmapper by default. ([#&#8203;4011](n0-computer/iroh#4011)) - ([647f28e](n0-computer/iroh@647f28e))

##### Examples

- *(iroh)* Improve transfer example with qlog flag and timestamp for JSON output ([#&#8203;3964](n0-computer/iroh#3964)) - ([5d9ac04](n0-computer/iroh@5d9ac04))

### [`v0.96.1`](https://github.com/n0-computer/iroh/blob/HEAD/CHANGELOG.md#0961---2026-02-06)

[Compare Source](n0-computer/iroh@v0.96.0...v0.96.1)

##### 🐛 Bug Fixes

- *(iroh)* Use latest portmapper to avoid duplicate dependencies ([#&#8203;3903](n0-computer/iroh#3903)) - ([5126857](n0-computer/iroh@5126857))

##### ⚙️ Miscellaneous Tasks

- Pin digest to version compatible with curve25519-dalek 5.0.0-pre.1 ([#&#8203;3908](n0-computer/iroh#3908)) - ([68243ed](n0-computer/iroh@68243ed))
- Update bytes and time address advisories - ([f2eb1e3](n0-computer/iroh@f2eb1e3))
- Specify minimum iroh-quinn and iroh-quinn-proto patch versions ([#&#8203;3918](n0-computer/iroh#3918)) - ([db429c7](n0-computer/iroh@db429c7))
- Release - ([82650d1](n0-computer/iroh@82650d1))

### [`v0.96.0`](https://github.com/n0-computer/iroh/blob/HEAD/CHANGELOG.md#0960---2026-01-28)

[Compare Source](n0-computer/iroh@v0.95.1...v0.96.0)

##### ⛰️  Features

- *(example)* Improve path stat printing in transfer example ([#&#8203;3860](n0-computer/iroh#3860)) - ([c168e73](n0-computer/iroh@c168e73))
- *(iroh)* Introduce EndpointHooks ([#&#8203;3688](n0-computer/iroh#3688)) - ([1efd2b5](n0-computer/iroh@1efd2b5))
- *(iroh)* Add fast-apple-datapath feature and enable it by default ([#&#8203;3724](n0-computer/iroh#3724)) - ([a5f4a08](n0-computer/iroh@a5f4a08))
- *(iroh)* \[**breaking**] Encapsulate the `quinn::TransportConfig` to enforce certain minimums when used with multipath ([#&#8203;3721](n0-computer/iroh#3721)) - ([cc932ef](n0-computer/iroh@cc932ef))
- *(iroh)* Improve shutdown handling - ([bb3e94a](n0-computer/iroh@bb3e94a))
- *(iroh)* \[**breaking**] Newtype `ServerConfig` and `RetryError`, organize the quinn re-exports ([#&#8203;3757](n0-computer/iroh#3757)) - ([aa6b918](n0-computer/iroh@aa6b918))
- *(iroh)* Implement latency based connection updates ([#&#8203;3797](n0-computer/iroh#3797)) - ([5cb5716](n0-computer/iroh@5cb5716))
- *(iroh)* Ping paths and trigger holepunching on networkchange ([#&#8203;3796](n0-computer/iroh#3796)) - ([ff24cfc](n0-computer/iroh@ff24cfc))
- *(iroh)* \[**breaking**] Allow multiple IP transports, including filtering by interface ([#&#8203;3692](n0-computer/iroh#3692)) - ([2359acf](n0-computer/iroh@2359acf))
- *(metrics)* Add connection latency tracking ([#&#8203;3606](n0-computer/iroh#3606)) - ([b7e5bb0](n0-computer/iroh@b7e5bb0))
- *(multipath)* Add back basic metrics ([#&#8203;3672](n0-computer/iroh#3672)) - ([faa2119](n0-computer/iroh@faa2119))
- *(relay,dns)* Add healthz routes ([#&#8203;3783](n0-computer/iroh#3783)) - ([31a6b10](n0-computer/iroh@31a6b10))
- Do not force relay URLs to be absolute ([#&#8203;3623](n0-computer/iroh#3623)) - ([9bae228](n0-computer/iroh@9bae228))
- Add AcceptError::from\_boxed ([#&#8203;3620](n0-computer/iroh#3620)) - ([280cfc6](n0-computer/iroh@280cfc6))
- Relay only configuration  - ([7f17d98](n0-computer/iroh@7f17d98))
- Instead of duplicating the entire connection API, have a type parameter ([#&#8203;3619](n0-computer/iroh#3619)) - ([5809a56](n0-computer/iroh@5809a56))
- Prune old, inactive paths ([#&#8203;3666](n0-computer/iroh#3666)) - ([7fb80b9](n0-computer/iroh@7fb80b9))
- Qlog support in iroh  - ([2d9681c](n0-computer/iroh@2d9681c))
- Expose known remote addrs ([#&#8203;3752](n0-computer/iroh#3752)) - ([4c4f242](n0-computer/iroh@4c4f242))
- Add must\_use attributes to Router::spawn ([#&#8203;3772](n0-computer/iroh#3772)) - ([0a9b7a0](n0-computer/iroh@0a9b7a0))
- Improve RelayMap and RelayMode configuration ([#&#8203;3734](n0-computer/iroh#3734)) - ([c0dacd0](n0-computer/iroh@c0dacd0))
- Basic holepunch metrics ([#&#8203;3748](n0-computer/iroh#3748)) - ([37bda14](n0-computer/iroh@37bda14))
- Update to released iroh-quinn ([#&#8203;3834](n0-computer/iroh#3834)) - ([e25c5da](n0-computer/iroh@e25c5da))

##### 🐛 Bug Fixes

- *(ci)* Better cli caching ([#&#8203;3779](n0-computer/iroh#3779)) - ([94caac0](n0-computer/iroh@94caac0))
- *(deps)* Update to newest quinn main and fix api usage ([#&#8203;3802](n0-computer/iroh#3802)) - ([8e9b5c0](n0-computer/iroh@8e9b5c0))
- *(docs)* Fix link to EndpointTicket ([#&#8203;3814](n0-computer/iroh#3814)) - ([ccf876e](n0-computer/iroh@ccf876e))
- *(iroh)* Typo(s) ([#&#8203;3630](n0-computer/iroh#3630)) - ([1cc5897](n0-computer/iroh@1cc5897))
- *(iroh)* Clear `EndpointStateActor::selected_path` once the last connection closes ([#&#8203;3650](n0-computer/iroh#3650)) - ([4b6824c](n0-computer/iroh@4b6824c))
- *(iroh)* \[**breaking**] Correct the error structure ([#&#8203;3663](n0-computer/iroh#3663)) - ([dab9d5f](n0-computer/iroh@dab9d5f))
- *(iroh)* Only switch paths if the new path is actually better - ([fbdf2c7](n0-computer/iroh@fbdf2c7))
- *(iroh)* Accurately set `RecvMeta::dst_ip`, remove `normalized_local_addr` ([#&#8203;3770](n0-computer/iroh#3770)) - ([692bb53](n0-computer/iroh@692bb53))
- *(iroh)* Ensure the selected holepunched path is set to `PathStatus::Available` ([#&#8203;3771](n0-computer/iroh#3771)) - ([561d2fd](n0-computer/iroh@561d2fd))
- *(iroh)* Retry holepunching  - ([a58aff4](n0-computer/iroh@a58aff4))
- *(iroh)* Improve handling of no available transports - ([5e79a56](n0-computer/iroh@5e79a56))
- *(iroh)* Actually use user-provided bind addrs ([#&#8203;3835](n0-computer/iroh#3835)) - ([fecc909](n0-computer/iroh@fecc909))
- *(iroh)* Properly set quinn paths to available when holepunched ([#&#8203;3864](n0-computer/iroh#3864)) - ([a774841](n0-computer/iroh@a774841))
- *(iroh-bench)* Gracefully close the quinn benchmark ([#&#8203;3621](n0-computer/iroh#3621)) - ([0799d4f](n0-computer/iroh@0799d4f))
- *(iroh-dns-server)* Inverted validation logic in DoH JSON response handler ([#&#8203;3737](n0-computer/iroh#3737)) - ([2efbff6](n0-computer/iroh@2efbff6))
- *(multipath)* Fix remote state actor termination ([#&#8203;3676](n0-computer/iroh#3676)) - ([d328bf2](n0-computer/iroh@d328bf2))
- *(tests)* Also run the tests in isolation in the default profile ([#&#8203;3664](n0-computer/iroh#3664)) - ([13fe787](n0-computer/iroh@13fe787))
- Stop polling transports when the magicsock is closing ([#&#8203;3615](n0-computer/iroh#3615)) - ([e101d26](n0-computer/iroh@e101d26))
- Update to main net-tools ([#&#8203;3726](n0-computer/iroh#3726)) - ([1d6e453](n0-computer/iroh@1d6e453))
- Update deny warnings ([#&#8203;3819](n0-computer/iroh#3819)) - ([99242af](n0-computer/iroh@99242af))

##### 🚜 Refactor

- *(deps)* Remove rustls-pemfile ([#&#8203;3747](n0-computer/iroh#3747)) - ([06772c3](n0-computer/iroh@06772c3))
- *(example)* Reduce timeouts and add close - ([e750ccf](n0-computer/iroh@e750ccf))
- *(iroh)* Simplify internal transports sending ([#&#8203;3708](n0-computer/iroh#3708)) - ([8d56889](n0-computer/iroh@8d56889))
- *(iroh)* Avoid storing the TransportsSender ([#&#8203;3712](n0-computer/iroh#3712)) - ([3f4d365](n0-computer/iroh@3f4d365))
- *(iroh)* \[**breaking**] Remove Endpoint::latency ([#&#8203;3717](n0-computer/iroh#3717)) - ([783e2ef](n0-computer/iroh@783e2ef))
- *(iroh)* \[**breaking**] Make net-report private ([#&#8203;3758](n0-computer/iroh#3758)) - ([5b616f0](n0-computer/iroh@5b616f0))
- *(iroh)* Do not export quinn-proto encoding traits ([#&#8203;3803](n0-computer/iroh#3803)) - ([f12467b](n0-computer/iroh@f12467b))
- *(iroh)* Spawn `RemoteStateActor` in `JoinSet` and remove `guarded_channel.rs` ([#&#8203;3681](n0-computer/iroh#3681)) - ([37f69e0](n0-computer/iroh@37f69e0))
- *(iroh)* \[**breaking**] Improve BindError ([#&#8203;3837](n0-computer/iroh#3837)) - ([acbca8c](n0-computer/iroh@acbca8c))
- *(iroh)* \[**breaking**] No longer fall back to a random free port when using `endpoint::Builder::bind_addr` with an unusable port ([#&#8203;3836](n0-computer/iroh#3836)) - ([f2b6026](n0-computer/iroh@f2b6026))
- *(iroh)* \[**breaking**] Bind addrs with prefix len 0 are default routes ([#&#8203;3838](n0-computer/iroh#3838)) - ([e0fcf7d](n0-computer/iroh@e0fcf7d))
- *(iroh)* Remove mutexes from `RemoteMap` ([#&#8203;3841](n0-computer/iroh#3841)) - ([99268b8](n0-computer/iroh@99268b8))
- *(iroh)* Move socket actor\_sender out of shared socket state ([#&#8203;3890](n0-computer/iroh#3890)) - ([a738ac7](n0-computer/iroh@a738ac7))
- *(iroh-dns-server)* \[**breaking**] Add storage path config and add tests for DNS-over-HTTPS ([#&#8203;3745](n0-computer/iroh#3745)) - ([3bf1e24](n0-computer/iroh@3bf1e24))
- *(multipath)* Make registering connections with the magicsock async ([#&#8203;3629](n0-computer/iroh#3629)) - ([e0f10ce](n0-computer/iroh@e0f10ce))
- *(multipath)* Stop inactive endpoint actors ([#&#8203;3643](n0-computer/iroh#3643)) - ([25fe805](n0-computer/iroh@25fe805))
- *(multipath)* Rename EndpointMap/EndpointState to RemoteMap/RemoteState ([#&#8203;3673](n0-computer/iroh#3673)) - ([34f52c6](n0-computer/iroh@34f52c6))
- *(multipath)* Move discovery into `EndpointStateActor` ([#&#8203;3645](n0-computer/iroh#3645)) - ([01545ee](n0-computer/iroh@01545ee))
- Improve path watching, add path stats ([#&#8203;3622](n0-computer/iroh#3622)) - ([d1c1dab](n0-computer/iroh@d1c1dab))
- Minor cleanups in endpoint state ([#&#8203;3626](n0-computer/iroh#3626)) - ([7887fb5](n0-computer/iroh@7887fb5))
- Use Connection::on\_closed in endpoint state actor ([#&#8203;3627](n0-computer/iroh#3627)) - ([1d5937c](n0-computer/iroh@1d5937c))
- Remove the TransportsSenderActor  - ([6380246](n0-computer/iroh@6380246))
- Disallow certain Source variants to be constructed externally - ([50fdda3](n0-computer/iroh@50fdda3))
- Remove Endpoint::conn\_type ([#&#8203;3647](n0-computer/iroh#3647)) - ([2f924d9](n0-computer/iroh@2f924d9))
- Use boxed watcher, not watchable, on connection ([#&#8203;3632](n0-computer/iroh#3632)) - ([492b74e](n0-computer/iroh@492b74e))
- Remove Endpoint::path\_selection ([#&#8203;3668](n0-computer/iroh#3668)) - ([1a7a88b](n0-computer/iroh@1a7a88b))
- Prefer EndpointAddr::from\_parts over EndpointAddr { ... } ([#&#8203;3662](n0-computer/iroh#3662)) - ([25c2d4d](n0-computer/iroh@25c2d4d))
- Add Side re-export ([#&#8203;3739](n0-computer/iroh#3739)) - ([136ff04](n0-computer/iroh@136ff04))
- Use qlog\_from\_env in iroh bench ([#&#8203;3743](n0-computer/iroh#3743)) - ([3eff16d](n0-computer/iroh@3eff16d))
- Adapt to new UnorderedRecvStream in iroh-quinn  - ([952b50e](n0-computer/iroh@952b50e))
- \[**breaking**] Goodbye magic ([#&#8203;3887](n0-computer/iroh#3887)) - ([2d8b2d4](n0-computer/iroh@2d8b2d4))

##### 📚 Documentation

- *(endpoint::Builder)* Clarify that clearing relay transport doesn't alter holepunching ([#&#8203;3833](n0-computer/iroh#3833)) - ([52c4284](n0-computer/iroh@52c4284))
- *(iroh)* Improve builder docs about discovery ([#&#8203;3801](n0-computer/iroh#3801)) - ([56fc0f7](n0-computer/iroh@56fc0f7))
- *(iroh)* Add detail & example to online method ([#&#8203;3722](n0-computer/iroh#3722)) - ([94f8a83](n0-computer/iroh@94f8a83))
- *(iroh-relay)* Add section on how to use as a library ([#&#8203;3715](n0-computer/iroh#3715)) - ([40a5ce6](n0-computer/iroh@40a5ce6))

##### ⚡ Performance

- Various improvements  - ([8d819f0](n0-computer/iroh@8d819f0))

##### 🧪 Testing

- *(iroh)* Fix `test_two_devices_setup_teardown` hanging ([#&#8203;3675](n0-computer/iroh#3675)) - ([59a7e85](n0-computer/iroh@59a7e85))
- *(iroh)* Fix `test_active_relay_inactive` test being flaky ([#&#8203;3680](n0-computer/iroh#3680)) - ([160d535](n0-computer/iroh@160d535))
- *(iroh)* Fix doctests for bind\_addr to use port 0 ([#&#8203;3839](n0-computer/iroh#3839)) - ([0dba0ff](n0-computer/iroh@0dba0ff))
- *(iroh)* Reduce flakyness of holepunching test ([#&#8203;3877](n0-computer/iroh#3877)) - ([8ed8cfa](n0-computer/iroh@8ed8cfa))
- Mark test\_active\_relay\_inactive as non flaky - ([e620b5e](n0-computer/iroh@e620b5e))
- Reduce testing rounds in potentially slow tests ([#&#8203;3782](n0-computer/iroh#3782)) - ([45a8b7d](n0-computer/iroh@45a8b7d))
- Improve timeouts for shutdown and reduce some more test rounds - ([95dee08](n0-computer/iroh@95dee08))

##### ⚙️ Miscellaneous Tasks

- *(ci)* Cache more deps ([#&#8203;3773](n0-computer/iroh#3773)) - ([f0ab853](n0-computer/iroh@f0ab853))
- *(ci)* Improve netsim perf and logging + update to lld ([#&#8203;3793](n0-computer/iroh#3793)) - ([f0e5094](n0-computer/iroh@f0e5094))
- *(dependabot)* Skip patch versions ([#&#8203;3885](n0-computer/iroh#3885)) - ([6975379](n0-computer/iroh@6975379))
- Only patch quinn directly - ([1a5c4dd](n0-computer/iroh@1a5c4dd))
- Fixup deny - ([d0707e8](n0-computer/iroh@d0707e8))
- Fixup wasm test - ([a28d1fb](n0-computer/iroh@a28d1fb))
- Update to quinn\@&#8203;main-iroh ([#&#8203;3716](n0-computer/iroh#3716)) - ([e22c001](n0-computer/iroh@e22c001))
- Update iroh-quinn ([#&#8203;3718](n0-computer/iroh#3718)) - ([2cf93a5](n0-computer/iroh@2cf93a5))
- Cargo update ([#&#8203;3744](n0-computer/iroh#3744)) - ([dd280b8](n0-computer/iroh@dd280b8))
- Update iroh-quinn ([#&#8203;3753](n0-computer/iroh#3753)) - ([9e34569](n0-computer/iroh@9e34569))
- Update quinn to use main branch ([#&#8203;3777](n0-computer/iroh#3777)) - ([ff7118e](n0-computer/iroh@ff7118e))
- Update quinn ([#&#8203;3781](n0-computer/iroh#3781)) - ([116513d](n0-computer/iroh@116513d))
- Switch from tracing-test to n0-tracing-test ([#&#8203;3787](n0-computer/iroh#3787)) - ([e45600b](n0-computer/iroh@e45600b))
- Update to latest iroh-quinn ([#&#8203;3795](n0-computer/iroh#3795)) - ([b68c057](n0-computer/iroh@b68c057))
- \[**breaking**] Rename `Discovery` to `AddressLookup` ([#&#8203;3853](n0-computer/iroh#3853)) - ([6ad5ac4](n0-computer/iroh@6ad5ac4))
- Release prep ([#&#8203;3889](n0-computer/iroh#3889)) - ([9130711](n0-computer/iroh@9130711))
- Release - ([d5299bf](n0-computer/iroh@d5299bf))

##### Bench

- Add ipv6 option and metrics feature - ([147e6bb](n0-computer/iroh@147e6bb))

##### Deps

- *(multipath)* Bump netdev ([#&#8203;3667](n0-computer/iroh#3667)) - ([6ef582d](n0-computer/iroh@6ef582d))
- Bump quinn in feat-multipath ([#&#8203;3723](n0-computer/iroh#3723)) - ([51ba699](n0-computer/iroh@51ba699))

##### Example

- Add qlog support to transfer example - ([6bca5d0](n0-computer/iroh@6bca5d0))

##### Examples

- *(iroh)* In transfer example print stats independent of endpoint shutdown ([#&#8203;3872](n0-computer/iroh#3872)) - ([5c4b9b4](n0-computer/iroh@5c4b9b4))
- Improve transfer example ([#&#8203;3873](n0-computer/iroh#3873)) - ([f4bfc9d](n0-computer/iroh@f4bfc9d))

##### Multipath

- Merge main ([#&#8203;3674](n0-computer/iroh#3674)) - ([d538b11](n0-computer/iroh@d538b11))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDEuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEwMS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJ0eXBlL21pbm9yIl19-->

Reviewed-on: https://git.erwanleboucher.dev/eleboucher/towonel/pulls/6
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

Multipath metrics

3 participants